The YAWL System is structured as a service-oriented architecture. It is composed of an extensible set of YAWL Services (see, for example Chaps. 10–12), each of which is deployed at a certain endpoint and offers one or multiple interfaces. Some of these services are user-facing, meaning that they offer interfaces to end users, while others offer interfaces to applications or other services. Among the different styles of service-oriented architectures, the YAWL System adopts the Representational State Transfer (REST) style. In line with the principles of REST (or RESTful) architectures, YAWL services provide access to resources, each with a Unique Resource Identifier (URI). For example, each workflow specification is exposed by the Engine as a resource, and when an instance of a workflow specification (i.e., a case) is created, this case is also represented as a resource. Also, in line with the principles of RESTful architectures, YAWL services interact with one another using the basic operations defined by the HyperText Transfer Protocol (HTTP). Specifically, YAWL services interact by means of HTTP’s GET and POST operations:GET being used to obtain information about a given resource, and POST being used to create resources and to update existing resources.Messages exchanged through these operations are encoded using the eXtensible Markup Language (XML) and (with some exceptions) conform to predefined XML schemas. Messages may contain references to resources, which are concretely represented as Uniform Resource Locators (URLs).
Unable to display preview. Download preview PDF.