Hi, I've been very keen to try out Yawl and read a good chunk of the technical manuals and it seems technically like a good fit for my field (biotech, lab tracking). We are committed to different languages for most of our implementation and would be looking for a way to write workers in another language and preferably interact via REST / HTTP or some similar web protocol. I think InterfaceB is the right route for this, but I can't find any non java example of implementation. Is it possible to have a separate service providing the workers and is there documentation of the web API? Apologies if this is obvious and I've missed anything,

Sincerely,

Darren

Michael Adams

Tue, 10/03/2017 - 10:15

Hi,

Yes, all yawl apis are available via http and so callers can be written in any language (for example, C# can use a WebClient object to converse with the api). The apis are basically RESTful, but not pure REST. In addition to the engine interfaces, the resource service has its own extensive apis that replicate much of the engine ones and do a lot more besides.

You can use the javadoc to get an idea of the api methods and arguments: http://www.yawlfoundation.org/javadoc/yawl/

Particular classes of interest of the resource service are: ResourceGatewayClientAdapter and WorkQueueGatewayClientAdapter. For the engine directly, look at InterfaceA_EnvironmentBasedClient, InterfaceB_EnvironmentBasedClient and InterfaceBWebsideController

Thanks - sorry for slow reply, I didn't get notified of your answer. That looks promising. I'm struggling with translating the java docs into an actual REST api. Which URLs do I hit for example, what data encoding (XML? JSON?), what are the fields required. Can I have the workflow engine call my resource when there is a job to dispatch? Why URLS do I need to provide etc? I have a sense it's all possible but can't quite decode the java classes,

Darren