30.10.2014 Views

New Features: - YAWL

New Features: - YAWL

New Features: - YAWL

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!