Kevin O'Neill
2003-03-17 07:20:01 UTC
I've been thinking about how I might like to use werkflow to determine
actions in an application. These are part notes, part conversation
piece, part gibberish (or the more localised version "kevineese").
Here's a use case I would like to support using werkflow.
Create User
-----------
Steps
-----
1. Gather - Get the user login, password and email address.
2. Validate - Ensure that the login and password are compliant with our
rules.
3. Store - Store the users record with an unverified flag
4. Send Confirm - Send a notification to the registered address with a
request for confirmation confirmation
5. Receive Confirm - Update the unverified flag for the user
6a. Send Sys Alert - Notify System admin of new user registration
6b. Index - Add the user to the list of active users
6c. Add the user to the announcements mailing list
7. End Process
Alternatives
2.1 -- Failed Validation
2.1.1 Notify - Notify user of validation errors.
2.1.2 End process
5.1 -- Confirm not received in 48 hours
5.1.1 Remove - Remove user record.
5.1.2 Send alert - Notify sys admin of fail registration
5.1.3 End process.
5.2 -- Receive Confirm after 5.1.1
5.2.1 Notify - Notify expiration of confirmation.
5.2.2 End process
---
Okay so it's a pretty straight forward use case (and I'm not a analyst
so excuse any trespass on use case no-nos) but it does highlight each of
the points I want to make from here.
Now lets talk a little about the implementation of this use case.
Our user environment; the user will interact with the system via a
series of html pages delivered via http(s). Notifications will be sent
via email.
----
Event initiation
----------------
I see four messages (1, 5, 5.1, 5.2).
1 is initiated via a an http request. It would be nice be be able to
call the werkflow engine in a blocking mode to handle the 1,2,2.1
interaction
5.1 is a timed event. 5.2 is probably an error (ie the associated case
has been completed)
5 and 5.2 are initiated by email. James?
A shot at some werkflow bits
----------------------------
<process id="confirm" initiation="call">
<attributes>
<attribute id="login" in="true">
<java:attr-type type="java.lang.String"/>
</attribute>
</attributes>
<parallel>
<java:action type="com.example.notify">
...
</java:action>
<jelly:action>
...
</jelly:action>
<java:action type="com.example.index">
...
</java:action>
</parallel>
</process>
enough for now. I'm thinking I want to start on a full working example
with web, email interaction etc. User management seems to fit the bill,
what do others think.
-k.
ps: sorry for cutting this short ... have to go and make dinner for
children :).
actions in an application. These are part notes, part conversation
piece, part gibberish (or the more localised version "kevineese").
Here's a use case I would like to support using werkflow.
Create User
-----------
Steps
-----
1. Gather - Get the user login, password and email address.
2. Validate - Ensure that the login and password are compliant with our
rules.
3. Store - Store the users record with an unverified flag
4. Send Confirm - Send a notification to the registered address with a
request for confirmation confirmation
5. Receive Confirm - Update the unverified flag for the user
6a. Send Sys Alert - Notify System admin of new user registration
6b. Index - Add the user to the list of active users
6c. Add the user to the announcements mailing list
7. End Process
Alternatives
2.1 -- Failed Validation
2.1.1 Notify - Notify user of validation errors.
2.1.2 End process
5.1 -- Confirm not received in 48 hours
5.1.1 Remove - Remove user record.
5.1.2 Send alert - Notify sys admin of fail registration
5.1.3 End process.
5.2 -- Receive Confirm after 5.1.1
5.2.1 Notify - Notify expiration of confirmation.
5.2.2 End process
---
Okay so it's a pretty straight forward use case (and I'm not a analyst
so excuse any trespass on use case no-nos) but it does highlight each of
the points I want to make from here.
Now lets talk a little about the implementation of this use case.
Our user environment; the user will interact with the system via a
series of html pages delivered via http(s). Notifications will be sent
via email.
----
Event initiation
----------------
I see four messages (1, 5, 5.1, 5.2).
1 is initiated via a an http request. It would be nice be be able to
call the werkflow engine in a blocking mode to handle the 1,2,2.1
interaction
5.1 is a timed event. 5.2 is probably an error (ie the associated case
has been completed)
5 and 5.2 are initiated by email. James?
A shot at some werkflow bits
----------------------------
<process id="confirm" initiation="call">
<attributes>
<attribute id="login" in="true">
<java:attr-type type="java.lang.String"/>
</attribute>
</attributes>
<parallel>
<java:action type="com.example.notify">
...
</java:action>
<jelly:action>
...
</jelly:action>
<java:action type="com.example.index">
...
</java:action>
</parallel>
</process>
enough for now. I'm thinking I want to start on a full working example
with web, email interaction etc. User management seems to fit the bill,
what do others think.
-k.
ps: sorry for cutting this short ... have to go and make dinner for
children :).
--
If you don't test then your code is only a collection of bugs which
apparently behave like a working program.
Website: http://www.rocketred.com.au/blogs/kevin/
If you don't test then your code is only a collection of bugs which
apparently behave like a working program.
Website: http://www.rocketred.com.au/blogs/kevin/