Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
University of Lugano (USI)
Faculty of Informatics
- Opened 2004
- 30 Professors
- 150+ PhD/Postdoc researchers
- New Software Institute
- New Master in Software and Data Engineering
Architecture, Design and Web Information Systems Engineering
- BenchFlow - a benchmark for workflow engines
- Liquid.js - Liquid Software Architecture
- ASQ - Interactive Web Lectures
- Parallel JavaScript/Multicore Node.JS
- SAW - Collaborative Architectural Decision Making
- NaturalMash - Web Service Composition with Natural Language
http://design.inf.usi.ch
Towards RESTful BPM
Decoupled Sharing
Hypermedia
Discovery by Referral
Software Connectors
The Web as a Software Connector
BP
RESTful Process Engine API
Remote Process Call
POST /process/name HTTP/1.1
...after some time...
HTTP/1.1 200
Process Completed
Processes as Resources
- Bookmark a process instance
- Ask a process instance for links to its pending tasks
- Drive the execution of tasks with PUT/POST/DELETE
- Monitor processes using an RSS/ATOM feed
- Fetch links to active, completed, failed process instances
- Control which subset of tasks is actually exposed as resources
Resources as Processes
Publish resources from processes that drive their internal state transitions
- Activate process control flow on requests routed to resources managed by processes
- Produce responses from process data flow
- Control the lifecycle of resources from the process model
- Mint resource identifiers from process instances
- Map resource identifiers to process instances
RESTful Process Engine API
- Processes can be published as resources
- Only the visible part of processes should be published as resources
- Resource state transitions can be driven by process models
REST Architectural Elements
- User Agent
-
Proxy
-
Gateway
-
Origin Server
-
Gateway
-
HTTP
-
Cache
REST middleware is primarily designed to scale a single server, which may need to service a large number of clients
A Composite REST service provides an aggregated view over the state of multiple REST services
The behavior of /C is defined by
composing /R and /S
The composite resource /C only aggregates
the state of its components /R and /S
The composite resource /C augments or
caches the state of its components
Composing Representations with Hypermedia
The composite representation C refers to its component resources /R and /S via hyperlinks
A composite representation is interpreted by the client that follows its hyperlinks and aggregates the state of the referenced component resources
A composite representation may be retrieved from a composite service
Example: DoodleMap