SlideShare a Scribd company logo
Push-Enabling
RESTful Business Processes

Cesare Pautasso                     Erik Wilde
Faculty of Informatics,             EMC
University of Lugano, Switzerland
                                    dret@dret.net
c.pautasso@ieee.org
                                    http://dret.net
http://www.pautasso.info
                                    @dret
@pautasso

6.12.2011
RESTful Business Processes

Cesare Pautasso                     Erik Wilde
Faculty of Informatics,             EMC
University of Lugano, Switzerland
                                    dret@dret.net
c.pautasso@ieee.org
                                    http://dret.net
http://www.pautasso.info
                                    @dret
@pautasso

6.12.2011
Abstract
    Representational State Transfer (REST) as an architectural
     style for service design has seen substantial uptake in the
     past years. However, some areas such as Business
     Process Modeling (BPM) and push services so far have
     not been addressed in the context of REST principles.
    In this work, we look at how both BPM and push can be
     combined so that business processes can be modeled
     and observed in a RESTful way. Based on this approach,
     clients can subscribe to be notied when certain states in a
     business process are reached. Our goal is to design an
     architecture that brings REST's claims of loose coupling
     and good scalability to the area of BPM, and still allow
     process-driven composition and interaction between
     resources to be modeled.




©2011 - Cesare Pautasso                                            3
BPM         REST

©2011 - Cesare Pautasso          4
Business
                           RESTful
              Process
                           Web Services
              Management



©2011 - Cesare Pautasso                   5
RESTful APIs…




©2011 - Cesare Pautasso   6
RESTful APIs…




©2011 - Cesare Pautasso   7
WS-* Standards Stack




©2009-2010 - Cesare Pautasso - 30.6.2010   8
WS-* Standards Stack

                                    BPM                             Management
    Interoperability
                       Metadata
                                           Reliability




                                                                      Transactions
                                                         Security



                                                                                     State
                                                         Messaging

©2009-2010 - Cesare Pautasso - 30.6.2010                                                     9
BPM                       Management
    Interoperability
                          Metadata
                                      Reliability




                                                                 Transactions
                                                    Security



                                                                                State
                                        Messaging
                                      Can you do                                 it
                                      with REST?
©2011 - Cesare Pautasso                                                                 10
From REST-*



       “      We believe there is huge potential to
           marrying REST with workflow and BPM.




                                                         http://www.jboss.org/reststar/specifications/workflow.html
                               […]
           Combined with the architecture of the Web,
           a workflow service can provide both a truly
           simple, portable, and flexible way to build
           workflow driven integrations and


                          ”
           applications.




©2011 - Cesare Pautasso                                  11
REST in one slide
  Web Services expose their
   data and functionality trough      PUT
   resources identified by URI
                                             R
  Uniform Interface constraint:       GET
   Clients interact with resources       POST
   through a fix set of verbs.                   DELETE
   Example HTTP:
   GET (read), POST (create), PUT (update), DELETE
  Multiple representations for the same resource
  Hyperlinks model resource relationships and valid
   state transitions for dynamic protocol description
   and discovery
©2011 - Cesare Pautasso                                   12
From REST-*



       “   We believe there is huge potential to
       marrying REST with workflow and BPM.




                                                        http://www.jboss.org/reststar/specifications/workflow.html
      The HATEOAS (hypermedia and linking)
       principal of REST is logically a dynamic state
       machine and fits very well with how
       workflow and BPM systems are designed.
      Combined with the architecture of the Web,
       a workflow service can provide both a truly
       simple, portable, and flexible way to build
       workflow driven integrations and
       applications.

©2011 - Cesare Pautasso                                 13
Business Process Management
                                                          Workflow         Workflow
                          Process Model                   Users/Clients    Participants
                          Act 2      Act 4

           Act 1                     Act 5       Act 7

                          Act 3      Act 6

                                      RESTful Workflow Management Engine

 PUT


   GET
                  R                  Adapters                                       Bus

                                  Applications                                    Web
                                                                                  Services
         POST
                            DELETE        Databases


©2011 - Cesare Pautasso                                                                      14
BPM with REST

                          Process Model
                                                                         Publishing
                          Act 2     Act 4                       R        Processes
           Act 1                    Act 5     Act 7
                                                                         as Resources
                          Act 3     Act 6

                                    RESTful Workflow Management Engine




                                                                  RESTful
                                                                  Service
                                  R          R            R       Composition

©2011 - Cesare Pautasso                                                             15
BPM with REST
                                                               Publishing
       BPEL for REST                                  R        Processes
       BPMN for REST                                           as Resources

                          RESTful Workflow Management Engine




                                                        RESTful
                                                        Service
                          R        R            R       Composition

©2011 - Cesare Pautasso                                                   16
BPM with REST
                                                               Publishing
      We are here                                     R        Processes
                                                               as Resources

                          RESTful Workflow Management Engine




                                                        RESTful
                                                        Service
                          R        R            R       Composition

©2011 - Cesare Pautasso                                                   17
BPM           REST
    Processes             Resources/URIs
    Tasks                 Uniform
    Control Flow           Interface
    Data Flow             Representations
   …                      Hypermedia

©2011 - Cesare Pautasso                       18
Everything is a resource
                    /process/X      /process/X/1

                                     Process
                          Process
                                     Instance



                                     Task
                           Task
                                     Instance
                     /task/Y
                                    /task/Y/1


©2011 - Cesare Pautasso                            19
Hypermedia
                          /process                              Process
                                                      Process
                                                                Instance
          GET
                          /process/name                         Task
                                                       Task
                                                                Instance
          GET
                          /process/name/instance

           GET
                          /process/name/instance/taskname


             Follow links to discover the processes
             deployed as resources
©2011 - Cesare Pautasso                                                    20
Representations
Web page
with form to start                                                 BPMN2.0 process
a new process                                                      source code
instance         ContentType:                   ContentType:

                          text/html application/bpmn+xml
                                    GET /process/name
                  ContentType:                          ContentType:
                  text/plain                             application/json
                                 ContentType:
  Basic textual                                                        Process
  description                    image/svg+xml                         metadata
  of the process                                                       in JSON

©2011 - Cesare Pautasso                                                           21
Uniform Interface and Hypermedia
                                     List the
               GET /process          deployed       Get a form
                                     processes      describing how
                GET /process/name                   to start the
                                                    process
                                          Start a new
                POST /process/name        process
                                          instance     Check what
                                                      is the state
                 GET /process/name/instance           of the
                                                      instance
                 DELETE /process/name/instance
                                                   Clean up
                                                   (once it is done)
©2011 - Cesare Pautasso                                                22
Starting or Running processes?
                                /process  Should the client be kept
                                            waiting for the process to run
                                            until completion?
             POST /process




                            200 OK         Clients may want to block until
                          (Process          the whole process has
                          Finished          completed its execution
                            Reply)          (or it decides to reply to them)
©2011 - Cesare Pautasso                                                      23
Starting or Running processes?
                             /process  The client starting a long
                                         running process is redirected to
                                         a location x representing the
             POST /process               newly started process instance
                                        The process and the client run
               202 Accepted              asynchronously
               Location: x
                                        The client may retrieve the
                                         current state of the process
             GET /process/x              instance at any time

                          200 OK




©2011 - Cesare Pautasso                                                24
Push vs. Pull Notification
                             /process  Problem: how can the process
                                         instance tell the client that it
                                         has reached a certain state?
             GET /process/x

                          200 OK
                                   PULL
                                       Easy to use a PULL-based event
                                        notification with HTTP


                                   PUSH
                                       Can we also support PUSH-
                                        based event notification with
                                        HTTP?

©2011 - Cesare Pautasso                                                     25
Push-Enabling
RESTful Business Processes

Cesare Pautasso                     Erik Wilde
Faculty of Informatics,             EMC
University of Lugano, Switzerland   dret@dret.net
c.pautasso@ieee.org                 http://dret.net
http://www.pautasso.info            @dret
@pautasso

6.12.2011
What is your SOA connector?

                          RPC           BUS



                                REST/HTTP



©2011 - Cesare Pautasso                       27
REST as a new connector

                          RPC                 BUS
                                         Publish/Subscribe
                          Call


                                 REST/HTTP

                             Get/Put/Post/Delete


©2011 - Cesare Pautasso                                      28
What about event notifications?

                          RPC                   BUS
                                           Publish/Subscribe
                          Callback


                                 REST/HTTP
                                       ?
                               Get/Put/Post/Delete


©2011 - Cesare Pautasso                                        29
Solutions
 1.Web Feeds (PubSubHubbub)
 2.HTTP Long Polling
 3.Inverted REST (HTTP Callbacks)
 4.WebSockets
 5.(XMPP)


©2011 - Cesare Pautasso             30
Representations

          GET /process/name

         ContentType:
         application/atom+xml

              Web feed representing
              the collection of
              process instances with
              links to each instance


                                       31
Representations

          GET /process/name/instance

         ContentType:
         application/atom+xml

              Web feed representing
              the current state of the
              process instance
              (collection of task instances)


                                               32
Loan Approval Example
         Process
      Published as         External
       a Resource         Resources




                                Task
                            Published as
                             a Resource

©2011 - Cesare Pautasso                    33
Process as a Web Feed
  <?xml version="1.0" encoding="utf-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
   <title>Loan Approval Process</title>
   <subtitle>Instance x</subtitle>
   <link href="http://rest.jopera.org/loan/x" rel="self" />
   <link href="http://rest.jopera.org/loan" rel="template" />
   <link href="http://pubsubhubbub.appspot.com/" rel="hub" />
   <id>http://rest.jopera.org/loan/x</id>
   <updated>2011-06-10T11:11:30Z</updated>
   <author><name>Cesare Pautasso</name><email>cp@jopera.org</email></author>
   <entry>
    <title>Choose Task (Ready)</title>
    <link href="http://rest.jopera.org/loan/x/choose" />
    <id>http://rest.jopera.org/loan/x/choose</id>
    <updated>2011-06-10T11:12:20Z</updated>
    <summary>State: ready</summary>
   </entry>
   <entry>
    <title>Approve Task (Waiting)</title>
    <link href="http://rest.jopera.org/loan/x/approve" />
    <id>http://rest.jopera.org/loan/x/approve</id>
    <updated>2011-06-10T11:11:30Z</updated>
    <summary>State: waiting</summary>
   </entry>
  </feed>
©2011 - Cesare Pautasso                                                        34
BPM         Feed
    Process Instance      Feed
    Task                  Feed Entry
    Process User          Feed Author
    Task State            Summary
    Task Timestamp        Updated
    Task Instance URI     Link
©2011 - Cesare Pautasso                   35
Link Relations
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <title>Loan Approval Process</title>
 <subtitle>Instance x</subtitle>
 <link href="http://rest.jopera.org/loan/x" rel="self"/>
 <link href="http://rest.jopera.org/loan" rel="template”/>
 <link href="http://pubsubhubbub.appspot.com/" rel="hub“/>
 <id>http://rest.jopera.org/loan/x</id>
</feed>

                               Template
                                                     Self
                                          Process
                     Process
                                          Instance

©2011 - Cesare Pautasso                                     36
PubSubHubbub
                                          Get
           Feed                    Feed           Feed
         Consumer                               Producer

                                 Hub
                                                     Ping

                     Subscribe
                                   Hub
                   Notify/Poll
©2011 - Cesare Pautasso                                     37
Architecture




                          http://www.jopera.org/
©2011 - Cesare Pautasso                            38
Conclusion
  Thanks to hypermedia, URIs and the HTTP
   uniform interface, REST resources are a very
   good abstraction to publish executable business
   processes on the Web
  RESTful HTTP is good enough to interact without
   any extension with process execution engines to
   drive the execution of process and task
   instances and to deliver notifications
  The state of a process instance can be projected
   to be represented as a standard Web feed
  The PubSubHubbub protocol can be used as an
   optimization to scale the corresponding delivery
   of notication callbacks
©2011 - Cesare Pautasso                           39
References
    Roy Fielding, Architectural Styles and the Design of Network-based
      Software Architectures, PhD Thesis, University of California, Irvine,
      2000
    Leonard Richardson, Sam Ruby, RESTful Web Services, O’Reilly,
      May 2007
    Jim Webber, Savas Parastatidis, Ian Robinson, REST in Practice:
      Hypermedia and Systems Architecture, O‘Reilly, 2010
    Subbu Allamaraju, RESTful Web Services Cookbook: Solutions for
      Improving Scalability and Simplicity, O’Reilly, 2010
    Stevan Tilkov, HTTP und REST, dpunkt Verlag, 2009,
      http://rest-http.info/
    Thomas Erl, Raj Balasubramanians, Cesare Pautasso, Benjamin
      Carlyle, SOA with REST, Prentice Hall, end of 2010
    Martin Fowler,
      Richardson Maturity Model: steps toward the glory of REST,
   http://martinfowler.com/articles/richardsonMaturityModel.html

©2009-2010 - Cesare Pautasso, Erik Wilde                                      40
Self-References
    Cesare Pautasso, Olaf Zimmermann, Frank Leymann,
     RESTful Web Services vs. Big Web Services: Making the Right Architectural
     Decision, Proc. of the 17th International World Wide Web Conference
     (WWW2008), Bejing, China, April 2008.
    Cesare Pautasso and Erik Wilde. Why is the Web Loosely Coupled? A Multi-
     Faceted Metric for Service Design, Proc of the 18th International World
     Wide Web Conference (WWW2009), Madrid, Spain, April 2009.
    Cesare Pautasso, BPEL for REST, Proc. of the 6th International Conference
     on Business Process Management (BPM 2008), Milan, Italy, September
     2008.
    Cesare Pautasso, BPMN for REST, Proc. of the 3rd BPMN Workshop (BPMN
     2011), Luzern, Switzerland, November 2011
    Cesare Pautasso, RESTful Web Service Composition with JOpera,
     Proc. Of the International Conference on Software Composition (SC 2009),
     Zurich, Switzerland, July 2009.
    Cesare Pautasso, Gustavo Alonso: From Web Service Composition to
     Megaprogramming In: Proceedings of the 5th VLDB Workshop on
     Technologies for E-Services (TES-04), Toronto, Canada, August 2004.
©2009-2010 - Cesare Pautasso, Erik Wilde                                         41
Raj Balasubramanians,
                          Benjamin Carlyle,
                          Thomas Erl,
                          Cesare Pautasso,
                          SOA with REST,
                          Prentice Hall, 2012




©2011 - Cesare Pautasso                           42
10th International Conference on
                      Business Process Management
                                 (BPM 2012)

                  September 3-6 2012, Tallinn, Estonia
                        http://bpm2012.ut.ee
©2011 - Cesare Pautasso                                  43

More Related Content

What's hot

Webinar: Spagic and eForm Services: a practical approach to PDF support
Webinar: Spagic and eForm Services: a practical approach to PDF supportWebinar: Spagic and eForm Services: a practical approach to PDF support
Webinar: Spagic and eForm Services: a practical approach to PDF support
SpagoWorld
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
Bahaa Farouk
 
Spagic3 Presentation En
Spagic3 Presentation EnSpagic3 Presentation En
Spagic3 Presentation En
guest76d50b
 
Spagic3 Presentation En
Spagic3 Presentation EnSpagic3 Presentation En
Spagic3 Presentation En
SpagoWorld
 
BOral205012007.290213247
BOral205012007.290213247BOral205012007.290213247
BOral205012007.290213247ypai
 
SOA helps in building Interoperability, Agility, and Flexibility
SOA helps in building Interoperability, Agility, and FlexibilitySOA helps in building Interoperability, Agility, and Flexibility
SOA helps in building Interoperability, Agility, and Flexibility
Hazelknight Media & Entertainment Pvt Ltd
 

What's hot (6)

Webinar: Spagic and eForm Services: a practical approach to PDF support
Webinar: Spagic and eForm Services: a practical approach to PDF supportWebinar: Spagic and eForm Services: a practical approach to PDF support
Webinar: Spagic and eForm Services: a practical approach to PDF support
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
 
Spagic3 Presentation En
Spagic3 Presentation EnSpagic3 Presentation En
Spagic3 Presentation En
 
Spagic3 Presentation En
Spagic3 Presentation EnSpagic3 Presentation En
Spagic3 Presentation En
 
BOral205012007.290213247
BOral205012007.290213247BOral205012007.290213247
BOral205012007.290213247
 
SOA helps in building Interoperability, Agility, and Flexibility
SOA helps in building Interoperability, Agility, and FlexibilitySOA helps in building Interoperability, Agility, and Flexibility
SOA helps in building Interoperability, Agility, and Flexibility
 

Similar to Push-Enabling RESTful Business Processes

SOA with REST
SOA with RESTSOA with REST
SOA with REST
Cesare Pautasso
 
Composing REST Services
Composing REST ServicesComposing REST Services
Composing REST Serviceselliando dias
 
Techniques for Composing REST services - SOA Symposium 2009
Techniques for Composing REST services - SOA Symposium 2009Techniques for Composing REST services - SOA Symposium 2009
Techniques for Composing REST services - SOA Symposium 2009Cesare Pautasso
 
JOpera - Eclipse-based Visual Composition Environment featuring a general lan...
JOpera - Eclipse-based Visual Composition Environment featuring a general lan...JOpera - Eclipse-based Visual Composition Environment featuring a general lan...
JOpera - Eclipse-based Visual Composition Environment featuring a general lan...
Cesare Pautasso
 
RESTful Service Composition with JOpera
RESTful Service Composition with JOperaRESTful Service Composition with JOpera
RESTful Service Composition with JOpera
Cesare Pautasso
 
Intalio BPP 6.0のビジョン
Intalio BPP 6.0のビジョンIntalio BPP 6.0のビジョン
Intalio BPP 6.0のビジョン
Tomoaki Sawada
 
Next Generation_WVI
Next Generation_WVINext Generation_WVI
Next Generation_WVIPrasad Kapu
 
Adaptive SOA with Interactive Monitoring Techniques and HPS
Adaptive SOA with Interactive Monitoring Techniques and HPSAdaptive SOA with Interactive Monitoring Techniques and HPS
Adaptive SOA with Interactive Monitoring Techniques and HPS
IOSR Journals
 
WS-* vs. RESTful Services
WS-* vs. RESTful ServicesWS-* vs. RESTful Services
WS-* vs. RESTful Services
Cesare Pautasso
 
Atomic Transactions for the REST of us
Atomic Transactions for the REST of usAtomic Transactions for the REST of us
Atomic Transactions for the REST of us
Cesare Pautasso
 
WebSphere Connectivity & Integration: Building a foundation for an agile busi...
WebSphere Connectivity & Integration: Building a foundation for an agile busi...WebSphere Connectivity & Integration: Building a foundation for an agile busi...
WebSphere Connectivity & Integration: Building a foundation for an agile busi...
IBM Sverige
 
WSO2 Mashups and BPM
WSO2 Mashups and BPMWSO2 Mashups and BPM
WSO2 Mashups and BPMWSO2
 
Nishant_Kumar_Mule_ESB
Nishant_Kumar_Mule_ESBNishant_Kumar_Mule_ESB
Nishant_Kumar_Mule_ESBNishant Kumar
 
An Unbiased Look: Oracle SOA Suite 12c
An Unbiased Look: Oracle SOA Suite 12cAn Unbiased Look: Oracle SOA Suite 12c
An Unbiased Look: Oracle SOA Suite 12c
Revelation Technologies
 
Day1 Forrester Cloud Presentation
Day1 Forrester Cloud PresentationDay1 Forrester Cloud Presentation
Day1 Forrester Cloud Presentation
ErwinTheunissen
 
Enabling predictive analysis in service oriented BPM solutions.
Enabling predictive analysis in service oriented BPM solutions.Enabling predictive analysis in service oriented BPM solutions.
Enabling predictive analysis in service oriented BPM solutions.
Mindtree Ltd.
 
Responsive process-management-slide
Responsive process-management-slideResponsive process-management-slide
Responsive process-management-slideAericon
 
WebServices and Workflow technologies
WebServices and Workflow technologiesWebServices and Workflow technologies
WebServices and Workflow technologies
Nitin Pande
 
The On-Ramp to Service-Oriented Architecture
The On-Ramp to Service-Oriented ArchitectureThe On-Ramp to Service-Oriented Architecture
The On-Ramp to Service-Oriented Architecture
eprentise
 
Rest Component
Rest ComponentRest Component
Rest Component
sivachandra mandalapu
 

Similar to Push-Enabling RESTful Business Processes (20)

SOA with REST
SOA with RESTSOA with REST
SOA with REST
 
Composing REST Services
Composing REST ServicesComposing REST Services
Composing REST Services
 
Techniques for Composing REST services - SOA Symposium 2009
Techniques for Composing REST services - SOA Symposium 2009Techniques for Composing REST services - SOA Symposium 2009
Techniques for Composing REST services - SOA Symposium 2009
 
JOpera - Eclipse-based Visual Composition Environment featuring a general lan...
JOpera - Eclipse-based Visual Composition Environment featuring a general lan...JOpera - Eclipse-based Visual Composition Environment featuring a general lan...
JOpera - Eclipse-based Visual Composition Environment featuring a general lan...
 
RESTful Service Composition with JOpera
RESTful Service Composition with JOperaRESTful Service Composition with JOpera
RESTful Service Composition with JOpera
 
Intalio BPP 6.0のビジョン
Intalio BPP 6.0のビジョンIntalio BPP 6.0のビジョン
Intalio BPP 6.0のビジョン
 
Next Generation_WVI
Next Generation_WVINext Generation_WVI
Next Generation_WVI
 
Adaptive SOA with Interactive Monitoring Techniques and HPS
Adaptive SOA with Interactive Monitoring Techniques and HPSAdaptive SOA with Interactive Monitoring Techniques and HPS
Adaptive SOA with Interactive Monitoring Techniques and HPS
 
WS-* vs. RESTful Services
WS-* vs. RESTful ServicesWS-* vs. RESTful Services
WS-* vs. RESTful Services
 
Atomic Transactions for the REST of us
Atomic Transactions for the REST of usAtomic Transactions for the REST of us
Atomic Transactions for the REST of us
 
WebSphere Connectivity & Integration: Building a foundation for an agile busi...
WebSphere Connectivity & Integration: Building a foundation for an agile busi...WebSphere Connectivity & Integration: Building a foundation for an agile busi...
WebSphere Connectivity & Integration: Building a foundation for an agile busi...
 
WSO2 Mashups and BPM
WSO2 Mashups and BPMWSO2 Mashups and BPM
WSO2 Mashups and BPM
 
Nishant_Kumar_Mule_ESB
Nishant_Kumar_Mule_ESBNishant_Kumar_Mule_ESB
Nishant_Kumar_Mule_ESB
 
An Unbiased Look: Oracle SOA Suite 12c
An Unbiased Look: Oracle SOA Suite 12cAn Unbiased Look: Oracle SOA Suite 12c
An Unbiased Look: Oracle SOA Suite 12c
 
Day1 Forrester Cloud Presentation
Day1 Forrester Cloud PresentationDay1 Forrester Cloud Presentation
Day1 Forrester Cloud Presentation
 
Enabling predictive analysis in service oriented BPM solutions.
Enabling predictive analysis in service oriented BPM solutions.Enabling predictive analysis in service oriented BPM solutions.
Enabling predictive analysis in service oriented BPM solutions.
 
Responsive process-management-slide
Responsive process-management-slideResponsive process-management-slide
Responsive process-management-slide
 
WebServices and Workflow technologies
WebServices and Workflow technologiesWebServices and Workflow technologies
WebServices and Workflow technologies
 
The On-Ramp to Service-Oriented Architecture
The On-Ramp to Service-Oriented ArchitectureThe On-Ramp to Service-Oriented Architecture
The On-Ramp to Service-Oriented Architecture
 
Rest Component
Rest ComponentRest Component
Rest Component
 

More from Cesare Pautasso

Beautiful APIs - SOSE2021 Keynote
Beautiful APIs - SOSE2021 KeynoteBeautiful APIs - SOSE2021 Keynote
Beautiful APIs - SOSE2021 Keynote
Cesare Pautasso
 
How do you back up and consistently recover your microservice architecture?
How do you back up and consistently recover your microservice architecture?How do you back up and consistently recover your microservice architecture?
How do you back up and consistently recover your microservice architecture?
Cesare Pautasso
 
Microservices: An Eventually Inconsistent Architectural Style?
Microservices: An Eventually Inconsistent Architectural Style?Microservices: An Eventually Inconsistent Architectural Style?
Microservices: An Eventually Inconsistent Architectural Style?
Cesare Pautasso
 
Disaster Recovery and Microservices: The BAC Theorem
Disaster Recovery and Microservices: The BAC TheoremDisaster Recovery and Microservices: The BAC Theorem
Disaster Recovery and Microservices: The BAC Theorem
Cesare Pautasso
 
The Blockchain as a Software Connector
The Blockchain as a Software ConnectorThe Blockchain as a Software Connector
The Blockchain as a Software Connector
Cesare Pautasso
 
Team Situational Awareness and Architectural Decision Making with the Softwar...
Team Situational Awareness and Architectural Decision Making with the Softwar...Team Situational Awareness and Architectural Decision Making with the Softwar...
Team Situational Awareness and Architectural Decision Making with the Softwar...
Cesare Pautasso
 
Service Oriented Architectures and Web Services
Service Oriented Architectures and Web ServicesService Oriented Architectures and Web Services
Service Oriented Architectures and Web Services
Cesare Pautasso
 
Exploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process ExecutionExploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process Execution
Cesare Pautasso
 
Real-time Mashups di Web Service Geografici
Real-time Mashups di Web Service GeograficiReal-time Mashups di Web Service Geografici
Real-time Mashups di Web Service Geografici
Cesare Pautasso
 
Towards Scalable Service Composition on Multicores
Towards Scalable Service Composition on MulticoresTowards Scalable Service Composition on Multicores
Towards Scalable Service Composition on Multicores
Cesare Pautasso
 
SOA2010 SOA with REST
SOA2010 SOA with RESTSOA2010 SOA with REST
SOA2010 SOA with REST
Cesare Pautasso
 
USI SCUBE Associate Member
USI SCUBE Associate MemberUSI SCUBE Associate Member
USI SCUBE Associate Member
Cesare Pautasso
 
Lighweight Collaboration Management (Mashups09@OOPSLA)
Lighweight Collaboration Management (Mashups09@OOPSLA)Lighweight Collaboration Management (Mashups09@OOPSLA)
Lighweight Collaboration Management (Mashups09@OOPSLA)
Cesare Pautasso
 
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009Cesare Pautasso
 
Composing RESTful Services with JOpera
Composing RESTful Services with JOperaComposing RESTful Services with JOpera
Composing RESTful Services with JOpera
Cesare Pautasso
 
Scientific and Grid Workflow Management (SGS09)
Scientific and Grid Workflow Management (SGS09)Scientific and Grid Workflow Management (SGS09)
Scientific and Grid Workflow Management (SGS09)Cesare Pautasso
 
Composing REST Services
Composing REST ServicesComposing REST Services
Composing REST Services
Cesare Pautasso
 
Mashup Ecosystem
Mashup EcosystemMashup Ecosystem
Mashup Ecosystem
Cesare Pautasso
 
Mashup Atelier
Mashup AtelierMashup Atelier
Mashup Atelier
Cesare Pautasso
 

More from Cesare Pautasso (20)

Beautiful APIs - SOSE2021 Keynote
Beautiful APIs - SOSE2021 KeynoteBeautiful APIs - SOSE2021 Keynote
Beautiful APIs - SOSE2021 Keynote
 
How do you back up and consistently recover your microservice architecture?
How do you back up and consistently recover your microservice architecture?How do you back up and consistently recover your microservice architecture?
How do you back up and consistently recover your microservice architecture?
 
Microservices: An Eventually Inconsistent Architectural Style?
Microservices: An Eventually Inconsistent Architectural Style?Microservices: An Eventually Inconsistent Architectural Style?
Microservices: An Eventually Inconsistent Architectural Style?
 
Disaster Recovery and Microservices: The BAC Theorem
Disaster Recovery and Microservices: The BAC TheoremDisaster Recovery and Microservices: The BAC Theorem
Disaster Recovery and Microservices: The BAC Theorem
 
The Blockchain as a Software Connector
The Blockchain as a Software ConnectorThe Blockchain as a Software Connector
The Blockchain as a Software Connector
 
Team Situational Awareness and Architectural Decision Making with the Softwar...
Team Situational Awareness and Architectural Decision Making with the Softwar...Team Situational Awareness and Architectural Decision Making with the Softwar...
Team Situational Awareness and Architectural Decision Making with the Softwar...
 
Service Oriented Architectures and Web Services
Service Oriented Architectures and Web ServicesService Oriented Architectures and Web Services
Service Oriented Architectures and Web Services
 
Exploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process ExecutionExploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process Execution
 
Real-time Mashups di Web Service Geografici
Real-time Mashups di Web Service GeograficiReal-time Mashups di Web Service Geografici
Real-time Mashups di Web Service Geografici
 
Towards Scalable Service Composition on Multicores
Towards Scalable Service Composition on MulticoresTowards Scalable Service Composition on Multicores
Towards Scalable Service Composition on Multicores
 
SOA2010 SOA with REST
SOA2010 SOA with RESTSOA2010 SOA with REST
SOA2010 SOA with REST
 
USI SCUBE Associate Member
USI SCUBE Associate MemberUSI SCUBE Associate Member
USI SCUBE Associate Member
 
Lighweight Collaboration Management (Mashups09@OOPSLA)
Lighweight Collaboration Management (Mashups09@OOPSLA)Lighweight Collaboration Management (Mashups09@OOPSLA)
Lighweight Collaboration Management (Mashups09@OOPSLA)
 
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
 
Mashups09
Mashups09Mashups09
Mashups09
 
Composing RESTful Services with JOpera
Composing RESTful Services with JOperaComposing RESTful Services with JOpera
Composing RESTful Services with JOpera
 
Scientific and Grid Workflow Management (SGS09)
Scientific and Grid Workflow Management (SGS09)Scientific and Grid Workflow Management (SGS09)
Scientific and Grid Workflow Management (SGS09)
 
Composing REST Services
Composing REST ServicesComposing REST Services
Composing REST Services
 
Mashup Ecosystem
Mashup EcosystemMashup Ecosystem
Mashup Ecosystem
 
Mashup Atelier
Mashup AtelierMashup Atelier
Mashup Atelier
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 

Push-Enabling RESTful Business Processes

  • 1. Push-Enabling RESTful Business Processes Cesare Pautasso Erik Wilde Faculty of Informatics, EMC University of Lugano, Switzerland dret@dret.net c.pautasso@ieee.org http://dret.net http://www.pautasso.info @dret @pautasso 6.12.2011
  • 2. RESTful Business Processes Cesare Pautasso Erik Wilde Faculty of Informatics, EMC University of Lugano, Switzerland dret@dret.net c.pautasso@ieee.org http://dret.net http://www.pautasso.info @dret @pautasso 6.12.2011
  • 3. Abstract  Representational State Transfer (REST) as an architectural style for service design has seen substantial uptake in the past years. However, some areas such as Business Process Modeling (BPM) and push services so far have not been addressed in the context of REST principles.  In this work, we look at how both BPM and push can be combined so that business processes can be modeled and observed in a RESTful way. Based on this approach, clients can subscribe to be notied when certain states in a business process are reached. Our goal is to design an architecture that brings REST's claims of loose coupling and good scalability to the area of BPM, and still allow process-driven composition and interaction between resources to be modeled. ©2011 - Cesare Pautasso 3
  • 4. BPM REST ©2011 - Cesare Pautasso 4
  • 5. Business RESTful Process Web Services Management ©2011 - Cesare Pautasso 5
  • 6. RESTful APIs… ©2011 - Cesare Pautasso 6
  • 7. RESTful APIs… ©2011 - Cesare Pautasso 7
  • 8. WS-* Standards Stack ©2009-2010 - Cesare Pautasso - 30.6.2010 8
  • 9. WS-* Standards Stack BPM Management Interoperability Metadata Reliability Transactions Security State Messaging ©2009-2010 - Cesare Pautasso - 30.6.2010 9
  • 10. BPM Management Interoperability Metadata Reliability Transactions Security State Messaging Can you do it with REST? ©2011 - Cesare Pautasso 10
  • 11. From REST-* “ We believe there is huge potential to marrying REST with workflow and BPM. http://www.jboss.org/reststar/specifications/workflow.html […] Combined with the architecture of the Web, a workflow service can provide both a truly simple, portable, and flexible way to build workflow driven integrations and ” applications. ©2011 - Cesare Pautasso 11
  • 12. REST in one slide  Web Services expose their data and functionality trough PUT resources identified by URI R  Uniform Interface constraint: GET Clients interact with resources POST through a fix set of verbs. DELETE Example HTTP: GET (read), POST (create), PUT (update), DELETE  Multiple representations for the same resource  Hyperlinks model resource relationships and valid state transitions for dynamic protocol description and discovery ©2011 - Cesare Pautasso 12
  • 13. From REST-* “ We believe there is huge potential to marrying REST with workflow and BPM. http://www.jboss.org/reststar/specifications/workflow.html  The HATEOAS (hypermedia and linking) principal of REST is logically a dynamic state machine and fits very well with how workflow and BPM systems are designed.  Combined with the architecture of the Web, a workflow service can provide both a truly simple, portable, and flexible way to build workflow driven integrations and applications. ©2011 - Cesare Pautasso 13
  • 14. Business Process Management Workflow Workflow Process Model Users/Clients Participants Act 2 Act 4 Act 1 Act 5 Act 7 Act 3 Act 6 RESTful Workflow Management Engine PUT GET R Adapters Bus Applications Web Services POST DELETE Databases ©2011 - Cesare Pautasso 14
  • 15. BPM with REST Process Model Publishing Act 2 Act 4 R Processes Act 1 Act 5 Act 7 as Resources Act 3 Act 6 RESTful Workflow Management Engine RESTful Service R R R Composition ©2011 - Cesare Pautasso 15
  • 16. BPM with REST Publishing BPEL for REST R Processes BPMN for REST as Resources RESTful Workflow Management Engine RESTful Service R R R Composition ©2011 - Cesare Pautasso 16
  • 17. BPM with REST Publishing We are here R Processes as Resources RESTful Workflow Management Engine RESTful Service R R R Composition ©2011 - Cesare Pautasso 17
  • 18. BPM REST  Processes  Resources/URIs  Tasks  Uniform  Control Flow Interface  Data Flow  Representations …  Hypermedia ©2011 - Cesare Pautasso 18
  • 19. Everything is a resource /process/X /process/X/1 Process Process Instance Task Task Instance /task/Y /task/Y/1 ©2011 - Cesare Pautasso 19
  • 20. Hypermedia /process Process Process Instance GET /process/name Task Task Instance GET /process/name/instance GET /process/name/instance/taskname Follow links to discover the processes deployed as resources ©2011 - Cesare Pautasso 20
  • 21. Representations Web page with form to start BPMN2.0 process a new process source code instance ContentType: ContentType: text/html application/bpmn+xml GET /process/name ContentType: ContentType: text/plain application/json ContentType: Basic textual Process description image/svg+xml metadata of the process in JSON ©2011 - Cesare Pautasso 21
  • 22. Uniform Interface and Hypermedia List the GET /process deployed Get a form processes describing how GET /process/name to start the process Start a new POST /process/name process instance Check what is the state GET /process/name/instance of the instance DELETE /process/name/instance Clean up (once it is done) ©2011 - Cesare Pautasso 22
  • 23. Starting or Running processes? /process  Should the client be kept waiting for the process to run until completion? POST /process 200 OK  Clients may want to block until (Process the whole process has Finished completed its execution Reply) (or it decides to reply to them) ©2011 - Cesare Pautasso 23
  • 24. Starting or Running processes? /process  The client starting a long running process is redirected to a location x representing the POST /process newly started process instance  The process and the client run 202 Accepted asynchronously Location: x  The client may retrieve the current state of the process GET /process/x instance at any time 200 OK ©2011 - Cesare Pautasso 24
  • 25. Push vs. Pull Notification /process  Problem: how can the process instance tell the client that it has reached a certain state? GET /process/x 200 OK PULL  Easy to use a PULL-based event notification with HTTP PUSH  Can we also support PUSH- based event notification with HTTP? ©2011 - Cesare Pautasso 25
  • 26. Push-Enabling RESTful Business Processes Cesare Pautasso Erik Wilde Faculty of Informatics, EMC University of Lugano, Switzerland dret@dret.net c.pautasso@ieee.org http://dret.net http://www.pautasso.info @dret @pautasso 6.12.2011
  • 27. What is your SOA connector? RPC BUS REST/HTTP ©2011 - Cesare Pautasso 27
  • 28. REST as a new connector RPC BUS Publish/Subscribe Call REST/HTTP Get/Put/Post/Delete ©2011 - Cesare Pautasso 28
  • 29. What about event notifications? RPC BUS Publish/Subscribe Callback REST/HTTP ? Get/Put/Post/Delete ©2011 - Cesare Pautasso 29
  • 30. Solutions 1.Web Feeds (PubSubHubbub) 2.HTTP Long Polling 3.Inverted REST (HTTP Callbacks) 4.WebSockets 5.(XMPP) ©2011 - Cesare Pautasso 30
  • 31. Representations GET /process/name ContentType: application/atom+xml Web feed representing the collection of process instances with links to each instance 31
  • 32. Representations GET /process/name/instance ContentType: application/atom+xml Web feed representing the current state of the process instance (collection of task instances) 32
  • 33. Loan Approval Example Process Published as External a Resource Resources Task Published as a Resource ©2011 - Cesare Pautasso 33
  • 34. Process as a Web Feed <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Loan Approval Process</title> <subtitle>Instance x</subtitle> <link href="http://rest.jopera.org/loan/x" rel="self" /> <link href="http://rest.jopera.org/loan" rel="template" /> <link href="http://pubsubhubbub.appspot.com/" rel="hub" /> <id>http://rest.jopera.org/loan/x</id> <updated>2011-06-10T11:11:30Z</updated> <author><name>Cesare Pautasso</name><email>cp@jopera.org</email></author> <entry> <title>Choose Task (Ready)</title> <link href="http://rest.jopera.org/loan/x/choose" /> <id>http://rest.jopera.org/loan/x/choose</id> <updated>2011-06-10T11:12:20Z</updated> <summary>State: ready</summary> </entry> <entry> <title>Approve Task (Waiting)</title> <link href="http://rest.jopera.org/loan/x/approve" /> <id>http://rest.jopera.org/loan/x/approve</id> <updated>2011-06-10T11:11:30Z</updated> <summary>State: waiting</summary> </entry> </feed> ©2011 - Cesare Pautasso 34
  • 35. BPM Feed  Process Instance  Feed  Task  Feed Entry  Process User  Feed Author  Task State  Summary  Task Timestamp  Updated  Task Instance URI  Link ©2011 - Cesare Pautasso 35
  • 36. Link Relations <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Loan Approval Process</title> <subtitle>Instance x</subtitle> <link href="http://rest.jopera.org/loan/x" rel="self"/> <link href="http://rest.jopera.org/loan" rel="template”/> <link href="http://pubsubhubbub.appspot.com/" rel="hub“/> <id>http://rest.jopera.org/loan/x</id> </feed> Template Self Process Process Instance ©2011 - Cesare Pautasso 36
  • 37. PubSubHubbub Get Feed Feed Feed Consumer Producer Hub Ping Subscribe Hub Notify/Poll ©2011 - Cesare Pautasso 37
  • 38. Architecture http://www.jopera.org/ ©2011 - Cesare Pautasso 38
  • 39. Conclusion  Thanks to hypermedia, URIs and the HTTP uniform interface, REST resources are a very good abstraction to publish executable business processes on the Web  RESTful HTTP is good enough to interact without any extension with process execution engines to drive the execution of process and task instances and to deliver notifications  The state of a process instance can be projected to be represented as a standard Web feed  The PubSubHubbub protocol can be used as an optimization to scale the corresponding delivery of notication callbacks ©2011 - Cesare Pautasso 39
  • 40. References  Roy Fielding, Architectural Styles and the Design of Network-based Software Architectures, PhD Thesis, University of California, Irvine, 2000  Leonard Richardson, Sam Ruby, RESTful Web Services, O’Reilly, May 2007  Jim Webber, Savas Parastatidis, Ian Robinson, REST in Practice: Hypermedia and Systems Architecture, O‘Reilly, 2010  Subbu Allamaraju, RESTful Web Services Cookbook: Solutions for Improving Scalability and Simplicity, O’Reilly, 2010  Stevan Tilkov, HTTP und REST, dpunkt Verlag, 2009, http://rest-http.info/  Thomas Erl, Raj Balasubramanians, Cesare Pautasso, Benjamin Carlyle, SOA with REST, Prentice Hall, end of 2010  Martin Fowler, Richardson Maturity Model: steps toward the glory of REST, http://martinfowler.com/articles/richardsonMaturityModel.html ©2009-2010 - Cesare Pautasso, Erik Wilde 40
  • 41. Self-References  Cesare Pautasso, Olaf Zimmermann, Frank Leymann, RESTful Web Services vs. Big Web Services: Making the Right Architectural Decision, Proc. of the 17th International World Wide Web Conference (WWW2008), Bejing, China, April 2008.  Cesare Pautasso and Erik Wilde. Why is the Web Loosely Coupled? A Multi- Faceted Metric for Service Design, Proc of the 18th International World Wide Web Conference (WWW2009), Madrid, Spain, April 2009.  Cesare Pautasso, BPEL for REST, Proc. of the 6th International Conference on Business Process Management (BPM 2008), Milan, Italy, September 2008.  Cesare Pautasso, BPMN for REST, Proc. of the 3rd BPMN Workshop (BPMN 2011), Luzern, Switzerland, November 2011  Cesare Pautasso, RESTful Web Service Composition with JOpera, Proc. Of the International Conference on Software Composition (SC 2009), Zurich, Switzerland, July 2009.  Cesare Pautasso, Gustavo Alonso: From Web Service Composition to Megaprogramming In: Proceedings of the 5th VLDB Workshop on Technologies for E-Services (TES-04), Toronto, Canada, August 2004. ©2009-2010 - Cesare Pautasso, Erik Wilde 41
  • 42. Raj Balasubramanians, Benjamin Carlyle, Thomas Erl, Cesare Pautasso, SOA with REST, Prentice Hall, 2012 ©2011 - Cesare Pautasso 42
  • 43. 10th International Conference on Business Process Management (BPM 2012) September 3-6 2012, Tallinn, Estonia http://bpm2012.ut.ee ©2011 - Cesare Pautasso 43
  • 44. 16-20 April 2012, Lyon, France http://ws-rest.org/2012 ©2011 - Cesare Pautasso 44
  • 45. PhD Positions Available Cesare Pautasso http://www.pautasso.info/ @pautasso ©2011 Cesare Pautasso 45