New in LiveCycle ES2 – RESTful endpoints

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:
http://<server>:<port>/rest/services/<application_name>/<process_name>:1.0
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:
http://server.adobe.com:8080/rest/services/LiveCycleES2_Benchmark_app/Processes/LiveCycle_Benchmark:1.0
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:
http://server.adobe.com:8080/rest/async_invoke/LiveCycleES2_Benchmark_app/Processes/LiveCycle_Benchmark:1.0

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.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)
This entry was posted in Adobe LiveCycle ES and tagged . Bookmark the permalink.

8 Responses to New in LiveCycle ES2 – RESTful endpoints

  1. Esref atak says:

    Wil Reader can connect to LiveCycle application via REST endpoint without apply Reader Extensions? as You know, Reader needs to be applied Reader Extensions to connect to a WebService endpoint.

  2. Jayan Kandathil says:

    You need to apply Reader Extensions to a PDF form for it to be able to call out to a web service from the free Adobe Reader, whether using SOAP or REST.

  3. Kim Christensen says:

    Hi Jayan – great postI would like to hear from you how I can invoke a LC process with more than 1 input variable (for example a process with two string inputs and 1 document input) through a form in Adobe Reader with REST?CheersKim ChristensenDafolo A/S

  4. Don Andrews says:

    It appears to be trivial to generate a REST endpoint with LiveCycle but is there an easy way to enable LiveCycle applications to _consume_ REST services?

    P.S. The link in the June 1 post is broken.

  5. Tim says:

    Jayan, can a LiveCycle REST endpoint authenticate SSO (SPNEGO) users?

    It doesn’t seem to work with my setup.

    • Jayan Kandathil says:

      Tim:

      No our programmatic endpoints (like REST) do not support SSO authentication.