Ead Lecture - Soa Bpel (1)

Embed Size (px)

DESCRIPTION

ghkbjbk

Citation preview

  • Service Oriented Architecture (SOA) & Business Process Execution Language (BPEL)

  • What are Services ?Service is aComponent of distinctive functional meaning that typically encapsulates a high level business conceptService containsContract message type definition (response, request), constraint, descriptionInterface set of operationsImplementation Logic and dataA Service is a reusable component.A Service changes business data from one state to another.

  • What is a Business processBusiness Process/ business methodA business process or business method is a collection of related, structured activities or tasks that produce a specific service or product (serve a particular goal) for a particular customer or customers.It often can be visualized with a flowchart as a sequence of activities with interleaving decision points or with a Process Matrix as a sequence of activities with relevance rules based on data in the process.

  • Sales & Marketing DepartmentBusiness Process - ExampleSupplierCustomer

  • Business Process Example (Detailed)Customer OrderPurchasingInventoryManufacturingCustomerSupplier

  • Directions of System Architecture

  • (a+b) * (a-b)(a*b) +(a/b)SOA Approach (Example)

  • Why Service Oriented Architecture ? Drivers:Large scale Enterprise systemsInternet scale provisioning of servicesReduce the cost of doing businessBenefitsBuild scalable, evolvable systemsScalable because minimizes assumptionsManage complex systemsEncourage re-use of business function

  • Why is it different? SOA reflects the reality of ownership boundariesCORBA, RMI, COM, DCOM, etc. all try to implement transparent distributed systemsOwnership is of the essence in SOASOA is task orientedServices are organized by functionGetting something doneSOA is inspired by human organizationsIt worked for us, it should work for machines

  • SOA ApproachService ProviderReserve Purchase RequisitionStartYesNo

    SOA & BPEL

    Service-Oriented Architecture 1(2)A service-oriented architecture (SOA) is a group of services that communicate with each other.

    (SOA) provides methods for systems development and integration where systems package functionality as interoperable services.

    SOA separates functions into distinct units, or services, which developers make accessible over a network in order that users can combine and reuse them in the production of applications.

    SOA builds applications out of software services. Services comprise intrinsically unassociated, loosely coupled units of functionality that have no calls to each other embedded in them.

    SOA & BPEL

    Service-Oriented Architecture 2(2)Underlying and enabling all of this requires metadata in sufficient detail to describe not only the characteristics of these services, but also the data that drives them.

    Programmers have made extensive use of XML in SOA to structure data that they wrap.

    WSDL typically describe the services themselves

    SOAP describes the communication protocols.

    SOA & BPEL

    Importance of Service-Oriented ArchitectureWeb services technology has now advanced so that functionalities available in ERPs and various other systems can easily be published into intranets and internet for remote execution using SOAP, WSDL and UDDI.

    SOA, now brings web services implemented using BPM tools.

    It makes it possible to automate invocation of web services according to business rules.

    SOA & BPEL

    Building a SOA Business needs come first (not services) What problem are we trying to solve?

    What aspects can be implemented as services? Old services? New services? Legacy wrappers?

    Track services with registries and repositories.

    SOA & BPEL

    Building a SOA..Govern the services. We need to encourage desired behavior at many levels, across enterprises, and at different stages. We need to monitor behavior, enforce policies & assess user satisfaction.Secure the services. Using established standards, we need privacy, identification, authentication, and authorization. This may need to be federated security (over more than one organization.)Manage the services. Are messages arriving on time? Is everything operating properly?

    SOA & BPEL

    Building an SOA..Virtualization through mediation. Are we free to move and change the services? Do we need an ESB that acts as a central hub for message routing and transformations?

    Design for interoperability through the adoption of standards.

    SOA & BPEL

    Traditional Systems Development vs. SOATraditional systems development focused on creating, workflow diagrams, systems flowcharts, process models and then coded in a programming language by hand, manually tested and deployed.

    SOA with BPM tools eliminates manual coding and testing. Diagrams are created and then tested for correctness using simulation methods. Verified diagrams are then used to automatically generate XML based BPM language code.

    The SOA approach with BPM tools make it very easy to change logic and rules.

    SOA & BPEL

    Traditional Systems Development vs. SOA

    SOA & BPEL

    Service Orchestration vs. Service Choreography

    Orchestration - Orchestration or arrangement is the study and practice of arranging music for an orchestra or musical ensemble.

    In practical terms it consists of deciding which instruments should play which notes in a piece of music.

    Choreography - The arrangement and movement of performers onstage; though the term customarily applies to dancers, it is also used to denote the orchestrated movement of actors, especially in stage combat

    SOA & BPEL

    Service Orchestration vs. Service Choreography

    Orchestration == Executable Process

    Web Service Orchestration relates to the execution of specific business processes.

    WS-BPEL is a language for defining processes that can be executed on an orchestration engine.

    Choreography == Multi-party Collaboration

    Web Service Choreography relates to describing externally observable interactions between web services.

    WS-CDL is a language for describing multi-party contracts and is somewhat like an extension of WSDL: WSDL describes web services interfaces, WS-CDL describes collaborations between web services.

    SOA & BPEL

    Web Service Business Process Execution Language (WS-BPEL)WS-BPEL is an OASIS standard for service orchestration BPEL is a comprehensive workflow definition execution language specified in XML.

    It can be thought of as a programming language but is more likely to be automatically generated from workflow diagrams.

    SOA & BPEL

    Web Service Business Process Execution Language (WS-BPEL)

    SOA & BPEL

    BPEL CommandsFollowing are some commands of BPEL.Invoke an operation of a web service. Wait for an external message. Generate a response for input. Wait for some time. Copy data between locations. Indicate that an error occurred or something went wrong. Terminate the entire service instance. Define a sequence of steps. Branch using a case statement. Define a loop. Execute one alternative. Execute in parallel.

    SOA & BPEL

    Business Process Management Notation

    SOA & BPEL

    Enterprise Service Bus (ESB)In computing, an enterprise service bus (ESB) consists of a software architecture construct which provides fundamental services for complex architectures via an event-driven and standards-based (the bus) - Wikipedia

    SOA & BPEL

    Enterprise Service Bus (ESB)The idea of an ESB is that many components can connect in a standardized way and then communicate over the bus with any other component.

    Standardized (usually WSDL/XML based) messages are exchanged on that bus.

    Set of adapters act as gateways between a protocol like e.g. SOAP over HTTP, email, FTP and RMI

    SOA & BPEL

    End

    IFS Training IFS Applications 2003

    IFS Training IFS Applications 2003

    IFS Training IFS Applications 2003

    IFS Training IFS Applications 2003

    IFS Training IFS Applications 2003

    EDI - Electronic data interchangeIFS Training IFS Applications 2003

    Source: http://en.wikipedia.org/wiki/Service-oriented_architectureOASIS (organization) defines service as "a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description.Business Function Manage Orders into Services such as Create Order, Fulfill Order, Ship Order, Invoice Order, Cancel/Update Order, etc.Interoperability: Service-orientation aims at a loose coupling of services with operating systems, programming languages and other technologies that underlie applications.

    IFS Training IFS Applications 2003

    Source: http://en.wikipedia.org/wiki/Service-oriented_architecture

    IFS Training IFS Applications 2003

    Universal Description Discovery and Integration

    IFS Training IFS Applications 2003

    IFS Training IFS Applications 2003

    IFS Training IFS Applications 2003

    ESB Enterprise Service BusIFS Training IFS Applications 2003

    Homogenouse- All of the same or similar kind or nature

    Consisting of elements that are not of the same kind or nature

    Pub/sub publish/subscribe eventsIFS Training IFS Applications 2003

    WS-CDL - Web Services Choreography Description Language

    http://www.theserverside.com/discussions/thread.tss?thread_id=37838

    Orchestration: like in an orchestra, there's a man (the director) that says to all the musicians what to do. They're therefore synchronized by following the direction of one person. In practice when orchestration is in place, a central system says to some remote systems what to do. Choreography: in this case, like in a dancing stage, every dancer knows exactly what to do, and looks to all the other dancers involved in the process, to synchronize his steps. A single remote system knows what to do and also what other systems to call after he ends his processing.

    IFS Training IFS Applications 2003

    WS-BPEL Is an executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively.

    An orchestration assembles services into an executable business process that is to be executed by an orchestration engine.

    BPEL is an orchestration language, and not a choreography language. The primary difference between orchestration and choreography is executability and control. An orchestration specifies an executable process that involves message exchanges with other systems, such that the message exchange sequences are controlled by the orchestration designer. A choreography specifies a protocol for peer-to-peer interactions, defining, e.g., the legal sequences of messages exchanged with the purpose of guaranteeing interoperability. Such a protocol is not directly executable, as it allows many different realizations (processes that comply with it). A choreography can be realized by writing an orchestration (e.g., in the form of a BPEL process) for each peer involved in it. The orchestration and the choreography distinctions are based on analogies: orchestration refers to the central control (by the conductor) of the behavior of a distributed system (the orchestra consisting of many players), while choreography refers to a distributed system (the dancing team) which operates according to rules (the choreography) but without centralized control.

    OASIS (Organization for the Advancement of Structured Information Standards) is a non-profit consortium that drives the development, convergence and adoption of open standards for the global information society.

    http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.htmlhttp://www.packtpub.com/article/web-services-soa-and-ws-bpel-technologiesIFS Training IFS Applications 2003

    A simple example of a WS-BPEL process for handling a purchase order.

    http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.htmlIFS Training IFS Applications 2003

    An enterprise service bus (ESB) is a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture. As a software architecture model for distributed computing it is a speciality variant of the more general client server software architecture model and promotes strictly asynchronous message oriented design for communication and interaction between applications. Its primary use is in Enterprise Application Integration of heterogenous and complex landscapes.

    The prime duties of an ESB are:

    Monitor and control routing of message exchange between servicesResolve contention between communicating service componentsControl deployment and versioning of servicesMarshal use of redundant servicesCater for commodity services like event handling, data transformation and mapping, message and event queuing and sequencing, security or exception handling, protocol conversion and enforcing proper quality of communication serviceIFS Training IFS Applications 2003

    IFS Training IFS Applications 2003