SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Web Service Orchestration

Emílio Francesquini, Felipe Besson, Leonardo Leite
                   IME - USP
       {emilio, besson, leofl}@ime.usp.br

                    FISL 12
           Porto Alegre, June 29, 2011
Service - Definition

• According to W3C, web service:
  o Is a software system designed to support machine-to-
    machine interaction over a network
  o Is described by an interface which is machine readable
    (more specific WSDL)
• Other systems can interact with web services through
  Soap messages
• The interaction is realized using XML over HTTP, and
  other web standards

                                                      2
Examples in the Web
RSS


Google Calendar (CalDAV over HTTP)
can be synchronized with iCal


Amazon Web Services (SOAP ou REST
over HTTP)
 o EC2
 o S3
 o SimpleDB
 o ...
                                     3
Web Services


• Web services have been used to integrate systems,
  replacing:
  o   The use of TCP/IP sockets
  o   CORBA, JRMI, RPC...



                                                      4
WS – Features

• Any language supporting TCP sockets are ready for using
  web services
• The use of HTTP make web services more suitable for
  bypassing firewalls, proxies, …
• It is widely accepted by companies
• Loose coupling and the possibility of evolution of the
  interface while maintaining backward compatibility



                                                     5
SOAP

• Standard for supporting the interoperability of
  heterogeneous systems.
• Since 2003, it is a W3C standard
• In the beginning, Soap was an acronym for Simple Object
  Access Protocol
   o Then, it was decided that the acronym means
     nothing :-)




                                                     6
Message Format




                 7
Example of a Soap request




                            8
Example of a Soap response




                             9
WSDL - Hello world
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:soap=””http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns=”http://hello” xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://hello/"
name="HelloWorldService">
<types>
<xsd:schema>
<xsd:import namespace="http://hello/"
schemaLocatio=”http://localhost:8080/hello?xsd=1"></xsd:import>
</xsd:schema>
</types>
<message name="sayHelloTo">
<part name="parameter" element="tns:sayHelloTo"></part>
</message>
<message name="sayHelloToResponse">
<part name="parameter" element="tns:sayHelloToResponse"></part>
</message>
<portType name="HelloWorld">
<operation name="sayHelloTo">
<input message="tns:sayHelloTo"></input>
<output message="tns:sayHelloToResponse"></output>
</operation>
</portType>                                                                10
WSDL Example - Hello world

<binding name="HelloWorldPortBinding" type="tns:HelloWorld">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http”
style="document"></soap:binding>
<operation name="sayHelloTo">
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>

<service name="HelloWorldService">
<port name="HelloWorldPort" binding="tns:HelloWorldPortBinding">
<soap:address location="http://localhost:8080/hello”></soap:address>
</port>
</service>
</definitions>                                                         11
Disadvantages


• Messages are too big:
  o Low performance during the processing in the client and
    the server sides
  o Requested Bandwidth is large
  o Extremely inefficient when compared to CORBA or JRMI
    technologies


                                                       12
WS Composition

• Tipically, a real case of WS Composition involves:
   o More than one web service
   o Order / interdependence between requests to web
     services
   o Decision making during the workflow based on the
     information obtained so far
   o Dealing with services unavailability
   o Transaction control
   o Business automation
   o ...


                                                        13
Web Service Compositions



• Orchestration - Centralized


• Choreography - Distributed



                                14
Composition - Example


• Sale system:
  o Customer registration
  o Charging
• Used in all computers of a store




                                     15
Solution 1


• I can write the code using my favorite programming
  language and then, I integrate the ws client into my
  system:
   o web services access
   o exception handling
• The workflow is defined by myself



                                                         16
Solution 2



• I can copy the code and deploy it with my website
• Now, both website and client share the code containing
  the workflow, rules, ….




                                                      17
Problems 1

• Web services are implemented possibly in several languages ​
  but the information flow and their relationship get couple to a
  specific language
• The developer must deal with:
   o Paralelism
   o Transaction
   o Fault tolerance (e.g., service unavailability)




                                                             18
Problems 2


• Changes in web services, even small ones, involves customers'
  upgrade and deployment of new version of the site
• Client/Site can became overloaded due the communication with
  the server
• Limitation of devices / code replication..




                                                         19
Solution 3

• A new web service is created
  o Containing the entire workflow and composition rules
  o Controlling transactions, paralellism and exceptions
    handling

• Clients, sites and devices begin to use this web service
  directly


                                                        20
However, some problems remain



• Workflow coupled to a specific programming language
• The developer still must deal with the transaction,
  parallelism and exceptions handling.




                                                    21
Orchestration

• BPEL – Business Process Execution Language
  o 2002
    o   BPEL4WS – BEA (now Oracle)
    o   WSFL – IBM
    o   XLANG – Microsoft
    o   ... SAP and Siebel Systems.
  o 2003   – Open Standard WS-BPEL, by OASIS
    o   XML with .bpel extension
    o   Normally called by BPEL when the specific version
        does not matter

                                                      22
BPEL




Shin, 2010



                    23
Motivations for using BPEL
• A business standard

• Supported by tools, some of them free, for editing and
  executing BPEL
   o Apache – ODE
   o Oracle – OpenESB, NetBeans 6.X
   o Active Endpoints – The Active BPEL, ActiveBPEL
     Designer
   o Microsoft – BizTalk
   o Oracle – BPEL Process Manager
   o Petalslink – EasyBPEL

• Portability* between different enforcement mechanisms
                                                           24
BPEL Structure
<process ...>

  <partnerLinks> ... </partnerLinks>

  <variables> ... </variables>

  <correlationSets> ... </correlationSets>

  <compensationHandlers> ... </compensationHandlers>

  <eventHandlers> ... </eventHandlers>


 ... (activities belonging to the business flow)
</process>
                                                       25
Activities accepted by BPEL

• Basic                  •   Structured
   •   <invoke>              • <if>
   •   <receive>             • <while>
   •   <reply>               • <repeatUntil>
   •   <assign>              • <foreach>
   •   <throw>               • <pick>
   •   <wait>                • <flow>
   •   <empty>               • <sequence>
   •   <exit>                • <scope>




                                               26
BPEL - synchronous example

<?xml version="1.0" encoding="UTF-8"?>
<process name="SynchronousSample" ...>

<import namespace="http://SynchronousSample"
location="SynchronousSample.xsd"
importType="http://www.w3.org/2001/XMLSchema"/>

<import namespace="http://SynchronousSample"
location="SynchronousSample.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>

                                                  27
BPEL - synchronous example
<partnerLinks>
<partnerLink
name="SynchronousSample"
partnerLinkType="ns1:partnerlinktype1"
myRole="partnerlinktyperole1">
</partnerLink>
</partnerLinks>

<variables>
<variable name="outputVar"
messageType="ns1:responseMessage"/>
<variable name="inputVar"
messageType="ns1:requestMessage"/>
</variables>

                                         28
BPEL - Exemplo síncrono

<sequence>

<receive name="start" partnerLink="SynchronousSample" operation="operation1"
portType="ns1:portType1" variable="inputVar" createInstance="yes"/>

<assign name="Assign1">
<copy>
<from>concat('Hello ', $inputVar.inputType/ns2:paramA, '!!!')</from>
<to>$outputVar.resultType/ns2:paramA</to>
</copy>
</assign>

<reply name="end" partnerLink="SynchronousSample" operation="operation1"
portType="ns1:portType1" variable="outputVar">
</reply>
</sequence>
</process>

                                                                       29
BPEL - synchronous example




                        30
BPEL - synchronous example




                        31
ESB

    • Acronym for Enterprise Service Bus

    • The same idea of hardware bus, ESB is charge of:
       o transporting,
       o routing,
       o And messages delivering


    • Service access management
 
    • These activities can be performed without an ESB
       o The goal of a ESB is just facilitate the work =p



                                                            32
Petals

• Open Source ESB – LGPL 2.1

• Compatible with the standards: JBI and BPEL

• Hot service deployment

• Hot component installation

• Tools to support the development:
   o PetalsStudio
   o Web Console



                                                33
Questions?


 This research has received founding from:




                                             34
References



• W3C Web Services Choreography Working Group Charter
• http://www.w3.org/2005/12/wscwg-charter.html
• Web Services Glossary, http://www.w3.org/TR/ws-gloss/




                                                      35
References


• ZHANG, Liang-Jie. Services Computing, Pequim,
  Springer, 2007
• Hewitt, Eben, Java SOA Cookbook, 1st Edition, 2009,
• Shin, San, SOA Using OpenESB, BPEL and NetBeans,
  2010
• http://ccsl.ime.usp.br/baile




                                                   36

Más contenido relacionado

La actualidad más candente

Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”panagenda
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixBruce Snyder
 
Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Peter R. Egli
 
Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Michael Greene
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastNico Meisenzahl
 
Plone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group searchPlone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group searchfredvd
 
Linux in Business - Workstation Integration
Linux in Business - Workstation IntegrationLinux in Business - Workstation Integration
Linux in Business - Workstation IntegrationRichBos
 
Web Performance First Aid
Web Performance First AidWeb Performance First Aid
Web Performance First AidAlan Seiden
 
Interoperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSInteroperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSCarol McDonald
 
AdminCamp 2017 - IBM Connections Adminblast
AdminCamp 2017 - IBM Connections AdminblastAdminCamp 2017 - IBM Connections Adminblast
AdminCamp 2017 - IBM Connections AdminblastNico Meisenzahl
 

La actualidad más candente (15)

Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 
Consuming SOAP
Consuming SOAPConsuming SOAP
Consuming SOAP
 
Php reports sumit
Php reports sumitPhp reports sumit
Php reports sumit
 
Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)
 
PHP at Yahoo!
PHP at Yahoo!PHP at Yahoo!
PHP at Yahoo!
 
Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)
 
20jsp
20jsp20jsp
20jsp
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections Adminblast
 
Plone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group searchPlone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group search
 
Linux in Business - Workstation Integration
Linux in Business - Workstation IntegrationLinux in Business - Workstation Integration
Linux in Business - Workstation Integration
 
Web Performance First Aid
Web Performance First AidWeb Performance First Aid
Web Performance First Aid
 
Interoperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSInteroperable Web Services with JAX-WS
Interoperable Web Services with JAX-WS
 
AdminCamp 2017 - IBM Connections Adminblast
AdminCamp 2017 - IBM Connections AdminblastAdminCamp 2017 - IBM Connections Adminblast
AdminCamp 2017 - IBM Connections Adminblast
 
JAX-WS Basics
JAX-WS BasicsJAX-WS Basics
JAX-WS Basics
 

Destacado

CHOReOS presented @CeBIT 2013, Hannover, Germany
CHOReOS presented @CeBIT 2013, Hannover, GermanyCHOReOS presented @CeBIT 2013, Hannover, Germany
CHOReOS presented @CeBIT 2013, Hannover, Germanychoreos
 
OW2 A presentation pierre_chatel
OW2 A presentation pierre_chatelOW2 A presentation pierre_chatel
OW2 A presentation pierre_chatelchoreos
 
CHOReOS presented at WiNNOVATE Conference April 2012
CHOReOS presented at WiNNOVATE Conference April 2012CHOReOS presented at WiNNOVATE Conference April 2012
CHOReOS presented at WiNNOVATE Conference April 2012choreos
 
CHOReOS Project Presentation at Solutions linux 2013
 CHOReOS Project Presentation at Solutions linux 2013 CHOReOS Project Presentation at Solutions linux 2013
CHOReOS Project Presentation at Solutions linux 2013choreos
 
Service deployer FISL 2013
Service deployer FISL 2013Service deployer FISL 2013
Service deployer FISL 2013choreos
 
CHOReOS European Project presented at OW2Con2011 in Paris
CHOReOS European Project presented at OW2Con2011 in ParisCHOReOS European Project presented at OW2Con2011 in Paris
CHOReOS European Project presented at OW2Con2011 in Parischoreos
 
CHOReVOLUTION WP4 UTC Use case
CHOReVOLUTION WP4 UTC Use caseCHOReVOLUTION WP4 UTC Use case
CHOReVOLUTION WP4 UTC Use caseCHOReVOLUTION
 
@ OW2con' 12
 @ OW2con' 12 @ OW2con' 12
@ OW2con' 12choreos
 

Destacado (8)

CHOReOS presented @CeBIT 2013, Hannover, Germany
CHOReOS presented @CeBIT 2013, Hannover, GermanyCHOReOS presented @CeBIT 2013, Hannover, Germany
CHOReOS presented @CeBIT 2013, Hannover, Germany
 
OW2 A presentation pierre_chatel
OW2 A presentation pierre_chatelOW2 A presentation pierre_chatel
OW2 A presentation pierre_chatel
 
CHOReOS presented at WiNNOVATE Conference April 2012
CHOReOS presented at WiNNOVATE Conference April 2012CHOReOS presented at WiNNOVATE Conference April 2012
CHOReOS presented at WiNNOVATE Conference April 2012
 
CHOReOS Project Presentation at Solutions linux 2013
 CHOReOS Project Presentation at Solutions linux 2013 CHOReOS Project Presentation at Solutions linux 2013
CHOReOS Project Presentation at Solutions linux 2013
 
Service deployer FISL 2013
Service deployer FISL 2013Service deployer FISL 2013
Service deployer FISL 2013
 
CHOReOS European Project presented at OW2Con2011 in Paris
CHOReOS European Project presented at OW2Con2011 in ParisCHOReOS European Project presented at OW2Con2011 in Paris
CHOReOS European Project presented at OW2Con2011 in Paris
 
CHOReVOLUTION WP4 UTC Use case
CHOReVOLUTION WP4 UTC Use caseCHOReVOLUTION WP4 UTC Use case
CHOReVOLUTION WP4 UTC Use case
 
@ OW2con' 12
 @ OW2con' 12 @ OW2con' 12
@ OW2con' 12
 

Similar a USP presentation of CHOReOS @ FISL Conference

Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1Qualitest
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting startedQualitest
 
WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...WSO2
 
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...WSO2
 
Portal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppPortal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppTed Tschopp
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practiceaegloff
 
Effective admin and development in iib
Effective admin and development in iibEffective admin and development in iib
Effective admin and development in iibm16k
 
oracle ebs free web service integration tools
oracle ebs free web service integration toolsoracle ebs free web service integration tools
oracle ebs free web service integration toolsSmartDog Services
 
Making Rational HATS a Strategic Investment
Making Rational HATS a Strategic InvestmentMaking Rational HATS a Strategic Investment
Making Rational HATS a Strategic InvestmentStrongback Consulting
 
eSoftHead - groupware solution
eSoftHead - groupware solutioneSoftHead - groupware solution
eSoftHead - groupware solutionNguyen Hai
 
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...WSO2
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB WSO2
 
Week2 cloud computing week2
Week2 cloud computing week2Week2 cloud computing week2
Week2 cloud computing week2Ankit Gupta
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
WSO2 Enterprise Service Bus - Product Overview
WSO2 Enterprise Service Bus - Product OverviewWSO2 Enterprise Service Bus - Product Overview
WSO2 Enterprise Service Bus - Product OverviewWSO2
 
Oracle fusion middleware 11g - IBANK
Oracle fusion middleware 11g - IBANKOracle fusion middleware 11g - IBANK
Oracle fusion middleware 11g - IBANKibankuk
 
nptl cc video.pptx
nptl cc video.pptxnptl cc video.pptx
nptl cc video.pptxMunmunSaha7
 

Similar a USP presentation of CHOReOS @ FISL Conference (20)

Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
 
WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
 
Portal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppPortal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted Tschopp
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practice
 
Effective admin and development in iib
Effective admin and development in iibEffective admin and development in iib
Effective admin and development in iib
 
oracle ebs free web service integration tools
oracle ebs free web service integration toolsoracle ebs free web service integration tools
oracle ebs free web service integration tools
 
Making Rational HATS a Strategic Investment
Making Rational HATS a Strategic InvestmentMaking Rational HATS a Strategic Investment
Making Rational HATS a Strategic Investment
 
SOA_BPM_12c_launch_event_SOA_track_deepdive_developerproductivityandperforman...
SOA_BPM_12c_launch_event_SOA_track_deepdive_developerproductivityandperforman...SOA_BPM_12c_launch_event_SOA_track_deepdive_developerproductivityandperforman...
SOA_BPM_12c_launch_event_SOA_track_deepdive_developerproductivityandperforman...
 
eSoftHead - groupware solution
eSoftHead - groupware solutioneSoftHead - groupware solution
eSoftHead - groupware solution
 
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
 
Soap
SoapSoap
Soap
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
 
Week2 cloud computing week2
Week2 cloud computing week2Week2 cloud computing week2
Week2 cloud computing week2
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
WSO2 Enterprise Service Bus - Product Overview
WSO2 Enterprise Service Bus - Product OverviewWSO2 Enterprise Service Bus - Product Overview
WSO2 Enterprise Service Bus - Product Overview
 
Oracle fusion middleware 11g - IBANK
Oracle fusion middleware 11g - IBANKOracle fusion middleware 11g - IBANK
Oracle fusion middleware 11g - IBANK
 
nptl cc video.pptx
nptl cc video.pptxnptl cc video.pptx
nptl cc video.pptx
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
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
 
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
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
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
 
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!
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

USP presentation of CHOReOS @ FISL Conference

  • 1. Web Service Orchestration Emílio Francesquini, Felipe Besson, Leonardo Leite IME - USP {emilio, besson, leofl}@ime.usp.br FISL 12 Porto Alegre, June 29, 2011
  • 2. Service - Definition • According to W3C, web service: o Is a software system designed to support machine-to- machine interaction over a network o Is described by an interface which is machine readable (more specific WSDL) • Other systems can interact with web services through Soap messages • The interaction is realized using XML over HTTP, and other web standards 2
  • 3. Examples in the Web RSS Google Calendar (CalDAV over HTTP) can be synchronized with iCal Amazon Web Services (SOAP ou REST over HTTP) o EC2 o S3 o SimpleDB o ... 3
  • 4. Web Services • Web services have been used to integrate systems, replacing: o The use of TCP/IP sockets o CORBA, JRMI, RPC... 4
  • 5. WS – Features • Any language supporting TCP sockets are ready for using web services • The use of HTTP make web services more suitable for bypassing firewalls, proxies, … • It is widely accepted by companies • Loose coupling and the possibility of evolution of the interface while maintaining backward compatibility 5
  • 6. SOAP • Standard for supporting the interoperability of heterogeneous systems. • Since 2003, it is a W3C standard • In the beginning, Soap was an acronym for Simple Object Access Protocol o Then, it was decided that the acronym means nothing :-) 6
  • 8. Example of a Soap request 8
  • 9. Example of a Soap response 9
  • 10. WSDL - Hello world <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns:soap=””http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns=”http://hello” xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://hello/" name="HelloWorldService"> <types> <xsd:schema> <xsd:import namespace="http://hello/" schemaLocatio=”http://localhost:8080/hello?xsd=1"></xsd:import> </xsd:schema> </types> <message name="sayHelloTo"> <part name="parameter" element="tns:sayHelloTo"></part> </message> <message name="sayHelloToResponse"> <part name="parameter" element="tns:sayHelloToResponse"></part> </message> <portType name="HelloWorld"> <operation name="sayHelloTo"> <input message="tns:sayHelloTo"></input> <output message="tns:sayHelloToResponse"></output> </operation> </portType> 10
  • 11. WSDL Example - Hello world <binding name="HelloWorldPortBinding" type="tns:HelloWorld"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http” style="document"></soap:binding> <operation name="sayHelloTo"> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> </operation> </binding> <service name="HelloWorldService"> <port name="HelloWorldPort" binding="tns:HelloWorldPortBinding"> <soap:address location="http://localhost:8080/hello”></soap:address> </port> </service> </definitions> 11
  • 12. Disadvantages • Messages are too big: o Low performance during the processing in the client and the server sides o Requested Bandwidth is large o Extremely inefficient when compared to CORBA or JRMI technologies 12
  • 13. WS Composition • Tipically, a real case of WS Composition involves: o More than one web service o Order / interdependence between requests to web services o Decision making during the workflow based on the information obtained so far o Dealing with services unavailability o Transaction control o Business automation o ... 13
  • 14. Web Service Compositions • Orchestration - Centralized • Choreography - Distributed 14
  • 15. Composition - Example • Sale system: o Customer registration o Charging • Used in all computers of a store 15
  • 16. Solution 1 • I can write the code using my favorite programming language and then, I integrate the ws client into my system: o web services access o exception handling • The workflow is defined by myself 16
  • 17. Solution 2 • I can copy the code and deploy it with my website • Now, both website and client share the code containing the workflow, rules, …. 17
  • 18. Problems 1 • Web services are implemented possibly in several languages ​ but the information flow and their relationship get couple to a specific language • The developer must deal with: o Paralelism o Transaction o Fault tolerance (e.g., service unavailability) 18
  • 19. Problems 2 • Changes in web services, even small ones, involves customers' upgrade and deployment of new version of the site • Client/Site can became overloaded due the communication with the server • Limitation of devices / code replication.. 19
  • 20. Solution 3 • A new web service is created o Containing the entire workflow and composition rules o Controlling transactions, paralellism and exceptions handling • Clients, sites and devices begin to use this web service directly 20
  • 21. However, some problems remain • Workflow coupled to a specific programming language • The developer still must deal with the transaction, parallelism and exceptions handling. 21
  • 22. Orchestration • BPEL – Business Process Execution Language o 2002 o BPEL4WS – BEA (now Oracle) o WSFL – IBM o XLANG – Microsoft o ... SAP and Siebel Systems. o 2003 – Open Standard WS-BPEL, by OASIS o XML with .bpel extension o Normally called by BPEL when the specific version does not matter 22
  • 24. Motivations for using BPEL • A business standard • Supported by tools, some of them free, for editing and executing BPEL o Apache – ODE o Oracle – OpenESB, NetBeans 6.X o Active Endpoints – The Active BPEL, ActiveBPEL Designer o Microsoft – BizTalk o Oracle – BPEL Process Manager o Petalslink – EasyBPEL • Portability* between different enforcement mechanisms 24
  • 25. BPEL Structure <process ...> <partnerLinks> ... </partnerLinks> <variables> ... </variables> <correlationSets> ... </correlationSets> <compensationHandlers> ... </compensationHandlers> <eventHandlers> ... </eventHandlers> ... (activities belonging to the business flow) </process> 25
  • 26. Activities accepted by BPEL • Basic • Structured • <invoke> • <if> • <receive> • <while> • <reply> • <repeatUntil> • <assign> • <foreach> • <throw> • <pick> • <wait> • <flow> • <empty> • <sequence> • <exit> • <scope> 26
  • 27. BPEL - synchronous example <?xml version="1.0" encoding="UTF-8"?> <process name="SynchronousSample" ...> <import namespace="http://SynchronousSample" location="SynchronousSample.xsd" importType="http://www.w3.org/2001/XMLSchema"/> <import namespace="http://SynchronousSample" location="SynchronousSample.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> 27
  • 28. BPEL - synchronous example <partnerLinks> <partnerLink name="SynchronousSample" partnerLinkType="ns1:partnerlinktype1" myRole="partnerlinktyperole1"> </partnerLink> </partnerLinks> <variables> <variable name="outputVar" messageType="ns1:responseMessage"/> <variable name="inputVar" messageType="ns1:requestMessage"/> </variables> 28
  • 29. BPEL - Exemplo síncrono <sequence> <receive name="start" partnerLink="SynchronousSample" operation="operation1" portType="ns1:portType1" variable="inputVar" createInstance="yes"/> <assign name="Assign1"> <copy> <from>concat('Hello ', $inputVar.inputType/ns2:paramA, '!!!')</from> <to>$outputVar.resultType/ns2:paramA</to> </copy> </assign> <reply name="end" partnerLink="SynchronousSample" operation="operation1" portType="ns1:portType1" variable="outputVar"> </reply> </sequence> </process> 29
  • 30. BPEL - synchronous example 30
  • 31. BPEL - synchronous example 31
  • 32. ESB • Acronym for Enterprise Service Bus • The same idea of hardware bus, ESB is charge of: o transporting, o routing, o And messages delivering • Service access management   • These activities can be performed without an ESB o The goal of a ESB is just facilitate the work =p 32
  • 33. Petals • Open Source ESB – LGPL 2.1 • Compatible with the standards: JBI and BPEL • Hot service deployment • Hot component installation • Tools to support the development: o PetalsStudio o Web Console 33
  • 34. Questions? This research has received founding from: 34
  • 35. References • W3C Web Services Choreography Working Group Charter • http://www.w3.org/2005/12/wscwg-charter.html • Web Services Glossary, http://www.w3.org/TR/ws-gloss/ 35
  • 36. References • ZHANG, Liang-Jie. Services Computing, Pequim, Springer, 2007 • Hewitt, Eben, Java SOA Cookbook, 1st Edition, 2009, • Shin, San, SOA Using OpenESB, BPEL and NetBeans, 2010 • http://ccsl.ime.usp.br/baile 36