shark1.0新特性:
* Added new functionality of handling Deadlines.
Shark now has defined client API, and its implementation for handling Activity deadlines.
This API is supposed to be used by shark client to periodically ask shark to check deadines.
Shark can be setup to re-evaluate deadlines every time deadline check is performed,
or to initially calculate deadline times and store it into DB, and when asked to
check deadlines, deadline limit is retrieved from DB.
Shark comes with an example XPDL processes contained in deadlineexamples.xpdl file,
that shows ASYNC and SYNC deadline handling.

In shark deadline expressions along with all process variables, you can use special variables called:

1. PROCESS_STARTED_TIME - the time when the process is started

2. ACTIVITY_ACTIVATED_TIME - the time when process flow comes to activity and
assignments for the activity are created

3. ACTIVITY_ACCEPTED_TIME - the time when the first assignment for the activity is accepted

NOTE: If activity is being rejected after its acceptance, or it is not accepted at all,
the ACTIVITY_ACCEPTED_TIME is set to some maximum value in the future

IMPORTANT:

- There shouldn't be process variables (DataField or FormalParameter entities from XPDL)
that have the same Id as the one of previously listed - The Java type of these variables is java.util.Date.

- deadline expression result must be java.util.Date

- if shark is setup to not re-evaluate deadlines, but to initially evaluate
deadline limit times, ACTIVITY_ACCEPTED_TIME should not be used in expressions
because it will contain some maximum time in the future.

When starting Shark CORBA server, it can be configured if it will open a thread for checking Deadlines. 方向:分布式系統(tǒng)設(shè)計(jì)