Many people are unhappy with the way the HTTP protocol was hijacked by proponents of SOAP without adequately leveraging what HTTP already offered. Some of them put their thoughts and feelings into a book (RESTful WebServices) in 2007 which has since become a bestseller. The original idea for REST (Representational State Transfer) came from a PhD dissertation by Roy Fielding, one of the authors of the HTTP Specification (RFC 2616).
See blog entry here explaining how SOAP is an RPC protocol while REST is an architectural style. RPC (Remote Procedure Call) protocols are designed to invoke (call) functions (procedures) hosted on another machine remotely as if they were on the local machine.
The core idea is that if a web application is architected with enough effort and planning, clients (humans or programs) can invoke the services offered by that application with just the main methods of HTTP which are GET, POST, PUT and HEAD. Amazon’s Simple Storage Service (S3) is the classic example. If you want to set an attribute for a file you are uploading to the S3 service, you do that by setting the value of an HTTP header as part of the HTTP PUT request to the S3 server.
In ES2, LiveCycle now automatically creates RESTful endpoints for orchestrations. If you can design your short-lived orchestrations in such a way that all input is programmatically picked up by actions within the orchestration, and if the output is a single document, you can invoke the orchestration and get its output by using just a web browser. The URL will look like this:
where 1.0 is the version of the process.
Only HTTP GET and POST are supported. More details available here.
Here’s a real URL for a short-lived orchestration:
In the above example, http://server.adobe.com:8080/rest/services/LiveCycleES2_Benchmark_app is the path to the application ‘LiveCycleES2_Benchmark_app’, and
/Processes/LiveCycle_Benchmark:1.0 is the path to the orchestration. v1.0 of the orchestration ‘LiveCycle_Benchmark’ is under the folder ‘Processes’.
Here’s a real URL for a long-lived orchestration:
For more about using REST with Business Process Management (BPM), see excellent presentation by Cesare Pautasso, Assistant Professor at the Faculty of Informatics of the University of Lugano, Switzerland.
For those looking for information about invoking LiveCycle ES2 services via SOAP, see here.