New Features: - YAWL
New Features: - YAWL
New Features: - YAWL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>New</strong> <strong>Features</strong>:<br />
For Workflow Users:<br />
As of Beta 8<br />
The next iteration of the Worklet Service, which has been completely redeveloped<br />
and now includes a dynamic exception handling service which leverages off the<br />
worklet selection approach and monitors for and manages process exceptions, based<br />
on case contexts, in real time. There have also been improvements made to the SMS<br />
service and general bug fixes and refactors.<br />
As of Beta 7.2<br />
Improved administration functionality, and bug fixes. Reporting functionality in the<br />
administration tool now includes the ability to create charts and tables for reporting<br />
previous executions of cases and tasks.<br />
As of Beta 7.1<br />
Greater robustness and enterprise readiness. Stand alone version is easier to install.<br />
Improvements to diagnostic reporting when processes are loaded into engine.<br />
As of Beta 7<br />
This version includes the first release of a custom service called the Worklet Dynamic<br />
Process Selection Service (workletSelector.war), which is designed to provide the<br />
ability to substitute a workitem in a <strong>YAWL</strong> process with a dynamically selected<br />
"worklet" - a discrete <strong>YAWL</strong> process that acts as a sub-net for the workitem and so<br />
handles one specific task in a larger, composite process activity.<br />
Several bug fixes and enhancements are also in this release.<br />
As of Beta 6<br />
Beta 6 features a modified worklist service (worklist.war). This service is able to<br />
allocate workitems to users according to organisational rules. Therefore process<br />
modellers can define who is able to perform different tasks in a process. This concept<br />
is termed the “Resource Perspective”.<br />
The system is more rigorously built and tested. Persistence is improved to work with<br />
Postgres and hibernate, and it is more robust.<br />
As of Beta 5<br />
Beta 5 features a new custom <strong>YAWL</strong> service. This <strong>YAWL</strong> service is capable of<br />
sending, receiving, SMS messages from process instances. It can correlate SMS
send-replies with process instances automatically. Furthermore it is<br />
model/demonstration of how to create and deploy custom <strong>YAWL</strong> services.<br />
As of Beta 4<br />
Persistent storage of workflow state is now possible.<br />
Automatically generated Forms for editing workitems.<br />
XML Schema integration allows process modellers to incorporate data types into<br />
process specifications.<br />
<strong>Features</strong> a new GUI based, stand-alone, process engine for testing and running non<br />
distributed process specifications.<br />
Tomcat environment provides better feedback to assist deployment and configuration.<br />
Recursive decomposition is now possible from all levels of a process hierarchy.<br />
Engine is fully backwards compatible with the Beta 2 & Beta 3 releases for <strong>YAWL</strong>.<br />
Process definitions written in this format can still be loaded and run in the engine.<br />
There are new detection algorithms that discover problems with process specifications<br />
during runtime and they provide runtime feedback to the user. Once these errors are<br />
detected a diagnostic message is sent to the user that provides information about what<br />
went wrong due to a specification error. This feature is activated after starting a task,<br />
and after completing a task, and also after completing a multiple instance task.<br />
<strong>New</strong> page in Worklist application provides diagnostic information about why user<br />
inputted data failed to pass validation, and how to correct the problem.<br />
Strong typing: runtime validation of user inputted data for both case launching, and<br />
for task completion.<br />
Web applications are much more robust.<br />
For Developers:<br />
As of Beta 8<br />
To facilitate the creation of the worklet exception service, a new interface to the<br />
<strong>YAWL</strong> engine (Interface X) has been developed. This interface notifies custom<br />
services of particular events during the lifecycle of a process instance where<br />
exceptions may have occurred or can be tested for. See the document<br />
Interface_X_Developers_Guide for more details.
As of Beta 7.1<br />
Code is slightly cleaner, safer. Easier to deploy and build with. ObserverGateway<br />
system allows plug-in connectivity of tasks to custom code, without the need for<br />
<strong>YAWL</strong> Custom Web Services.<br />
As of Beta 7<br />
Interface B has a new Complete Case event, which notifies custom services when a<br />
case has been completed. To receive these events, the service must register with the<br />
engine as an ‘observer’ for the event on a case by case basis.<br />
As of Beta 6<br />
Hibernate is more effectively used.<br />
Database is configured off, but is fairly simple to configure connectivity with<br />
Postgres, by editing the persistence enabled flag within ‘web.xml’ files of webapplication<br />
files.<br />
System restore is improved for engine reloading after failure.<br />
If persistence is configured on, and it fails then the engine will stop.<br />
As of Beta 5<br />
I extended the yawlWSInvoker component so that it can invoke WSDL described<br />
Web services that are slightly more sophisitcated, such the new Barnes and Noble<br />
Web service.<br />
I also refactored the module to use task information in a different way, in order to find<br />
information about the Web service. Such information used to be stored in special<br />
fields, but now it is stored as basic variables inside the task, passed to the WSInvoker.<br />
These have reserved names that the yawlWSInvoker module is looking out for. I also<br />
made some significant changes to the Barnes and Noble process specification, in<br />
accordance with the new refactoring.<br />
Refactored the way Custom <strong>YAWL</strong> Services are built making them easier to deploy.<br />
This consisted of removing some methods related to authenitcation from<br />
InterfaceB_EnvironmentBasedServer, that din't really belong there. I put them into a<br />
new class called Authentication Response Servlet. This servlet is designed to be<br />
loaded and running from an appropriately configured web.xml file. See <strong>YAWL</strong><br />
WSInvoker module's web.xml file as an example of this configuration.<br />
The other refactoring I did for Custom <strong>YAWL</strong> Services makes it fairly easy to add a<br />
Service welcome html page. I added method which I called "doGet()" to the<br />
InterfaceBWebsideController abstract class. This way when builders of custom<br />
<strong>YAWL</strong> Services extend this class with versions of their own they can implement this<br />
method to make a better looking cusotm <strong>YAWL</strong> Service.<br />
Make custom <strong>YAWL</strong> services easier to write.
I was writing a custom <strong>YAWL</strong> application for SMS development and found ways of<br />
making it much simpler to write. I added two new utility methods to<br />
InterfaceBWebsideController to assist developers with this.<br />
public Element prepareReplyRootElement(WorkItemRecord enabledWorkItem,<br />
String sessionHandle)<br />
protected List checkOutAllInstancesOfThisTask(WorkItemRecord<br />
enabledWorkItem, String sessionHandle)<br />
Also refactored the checkIn workitem method<br />
public String checkInWorkItem(String workItemID, String inputData, String<br />
outputData, String sessionHandle)<br />
It now takes org.jdom.Element as input and output data params. This was noted by<br />
Stephan as being desireable because it is not clear that the string params have to be<br />
formatted as XML. I replaced the old method signature implementation with one that<br />
calls the new implementation and then deprecated it. This way existing users are not<br />
going to have to recompile thier code to work with this change to <strong>YAWL</strong>.<br />
As of Beta 4<br />
There is a new XML process definition format, (includes data typing).<br />
<strong>Features</strong> a new interface on the administrate page of the process engine (when<br />
running on Tomcat). It allows for easy addition of custom <strong>YAWL</strong> services.<br />
Interface `A' and 'B' are now easier to exploit for developing custom <strong>YAWL</strong> services.<br />
Critical areas such as the InterfaceB classes are fully Javadoc'ed.<br />
We overhauled the exceptions hierarchy, including new compensation strategies, and<br />
in some cases rollback of process state.<br />
Caching was reduced, ensuring that the runtime data is more consistent.<br />
During deployment the worklist <strong>YAWL</strong> service can be hot swapped without causing<br />
problems for the system.<br />
Improved build scripts are more self contained, more stable, and faster.<br />
Improved test files catch more errors.<br />
There is new xml syntax.<br />
Output parameters are used for both atomic task and composite task decompositions.<br />
There is a simpler and more intuitive way of accessing the state space of data<br />
variables.<br />
Unnecessary caching of workitem inside the system has been mitigated.
APIs for Interfaces A & B are more stable and more mature.<br />
For Researchers:<br />
As of Beta 8<br />
Reworking of the Worklet Service with added support for dynamic exception<br />
handling.<br />
As of Beta 7<br />
<strong>New</strong> Worklets custom service.<br />
As of Beta 6<br />
<strong>New</strong> Resource perspective.<br />
As of Beta 5<br />
<strong>New</strong> pure control flow task data pattern. i.e. an input variable of a task can<br />
effectively be processed within the workflow engine, and should not be passed to a<br />
service or sub-process.<br />
Bugs fixed:<br />
As of Beta 7.1<br />
Multiple instance atomic tasks with dynamic instance creation do not experience<br />
failures during execution. Deadlocked processes are reported to the logger and the<br />
database.<br />
As of Beta 6<br />
Fixed failure to effectively report problems in a process specification.<br />
Fixed failure of engine to effectively handle and propagate case cancellation to<br />
custom services.<br />
Fixed problem with the caching of workitems in custom <strong>YAWL</strong> services using<br />
InterfaceBWebsideController.
As of Beta 5<br />
In Response to BUG report by Andrew Hastie: Fixed propagation of task cancellation<br />
so that events are sent to custom <strong>YAWL</strong> services. This was a functionality bug and<br />
required considerable number of problem layers to be resolved.<br />
Bug fixed. When running a beta 4 process with empty tasks, system threw a runtime<br />
exception once trying to run the task. This was fixed by adding some guards to data<br />
processing code to check for the presence of a task decomposition.<br />
Bug fixed. When attempting to check in a work item from a yawl service, if the item<br />
is cancelled then the worklist throws a runtime exception. This was fixed by caching<br />
all active work items in the custom yawl service and letting the engine catch and<br />
report the discrepancy.<br />
Fixed decompositionID of beta 4 XML Schema so that it is now constrained by<br />
NCName, previously a string.<br />
As of Beta 4<br />
After unloading a specification the 'Workflow Specifications' page used to hide the<br />
specification even if there were still active, incomplete cases. Now the unloading of a<br />
specification will still allow existing cases to complete undisturbed.<br />
Active tasks of running cases are now cleaned up when the case gets cancelled.<br />
Bug Fix: Connect method of Interface A now operational.<br />
Bug Fix: Engine state is fully aligned with the work items announced to users.