SlideShare une entreprise Scribd logo
1  sur  43
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

Contenu connexe

Tendances

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 supportSpagoWorld
 
Spagic3 Presentation En
Spagic3 Presentation EnSpagic3 Presentation En
Spagic3 Presentation Enguest76d50b
 
Spagic3 Presentation En
Spagic3 Presentation EnSpagic3 Presentation En
Spagic3 Presentation EnSpagoWorld
 
BOral205012007.290213247
BOral205012007.290213247BOral205012007.290213247
BOral205012007.290213247ypai
 

Tendances (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
 

Similaire à Push-Enabling RESTful Business Processes

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 JOperaCesare 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 HPSIOSR Journals
 
WS-* vs. RESTful Services
WS-* vs. RESTful ServicesWS-* vs. RESTful Services
WS-* vs. RESTful ServicesCesare 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 usCesare 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
 
Day1 Forrester Cloud Presentation
Day1 Forrester Cloud PresentationDay1 Forrester Cloud Presentation
Day1 Forrester Cloud PresentationErwinTheunissen
 
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 technologiesNitin 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 Architectureeprentise
 

Similaire à 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
 

Plus de Cesare Pautasso

Beautiful APIs - SOSE2021 Keynote
Beautiful APIs - SOSE2021 KeynoteBeautiful APIs - SOSE2021 Keynote
Beautiful APIs - SOSE2021 KeynoteCesare 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 TheoremCesare Pautasso
 
The Blockchain as a Software Connector
The Blockchain as a Software ConnectorThe Blockchain as a Software Connector
The Blockchain as a Software ConnectorCesare 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 ServicesCesare 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 ExecutionCesare 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 GeograficiCesare Pautasso
 
Towards Scalable Service Composition on Multicores
Towards Scalable Service Composition on MulticoresTowards Scalable Service Composition on Multicores
Towards Scalable Service Composition on MulticoresCesare Pautasso
 
USI SCUBE Associate Member
USI SCUBE Associate MemberUSI SCUBE Associate Member
USI SCUBE Associate MemberCesare 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 JOperaCesare 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
 

Plus de 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
 

Dernier

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 

Dernier (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 

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