UNIT II-WEB SERVICES (WS) AND PRIMITIVE

VahidhabanuY 73 views 141 slides Sep 30, 2024
Slide 1
Slide 1 of 141
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137
Slide 138
138
Slide 139
139
Slide 140
140
Slide 141
141

About This Presentation

Web services — Service descriptions — Messaging with SOAP —Message Exchange Patterns — Service activity—Coordination —Atomic Transactions — Business activities — Orchestration — Choreography


Slide Content

Kongunadu College of Engineering and Technology Department of Computer Science and Engineering 20IT703PE-SERVICE ORIENTED ARCHITECTURE By, Mrs.Vahidhabanu Y, ASP / CSE

UNIT II WEB SERVICES (WS) AND PRIMITIVE SOA

Web services Service descriptions Messaging with SOAP Message Exchange Patterns Service activity Coordination Atomic Transactions Business activities Orchestration Choreography

Web services Web services is software systems designed to support interoperable machine-to machine interaction over a network. Interoperability is gained through a set of XML-based open standards, such as WSDL,SOAP, and UDDI. A web service is used to implement architecture according to service-oriented architecture(SOA) concepts. The basic unit of communication is a message.

A Web Service is can be defined by following ways: It is a client-server application or application component for communication. The method of communication between two devices over the network. It is a software system for the interoperable machine to machine communication. It is a collection of standards or protocols for exchanging information between two devices or application.

Web service framework what is a web service framework? It's an ensemble of tools and libraries used to deploy a web service. As a web service developer, a framework is like a tons of features already developed/thought-out that you can use in your own way to deliver your web service faster. Examples of features handled by frameworks: client-server messaging, authentication and sessions management, files operations, etc.

Service Descriptions Description documents are required To accompany any service wanting to act as ultimate receiver Primary service description document is the WSDL definition WSDL – Web Service Description Language WSDLs enable loose coupling between services

WSDL definitions enable loose coupling between services

This definition file then is used by developers to build the Invoice Submission Service so that it can process SOAP messages in accordance with the service interface requirements defined in the TLS service descriptions.

Each service requestor is using the WSDL of a service provider to ensure that messages sent will be understood and accepted.

Abstract description Concrete description Metadata and service contracts Semantic descriptions Service description advertisement and discovery

Service endpoints and service descriptions WSDL describes the point of contact for a service provider, also known as the service endpoint or just endpoint. It provides a formal definition of the endpoint interface (so that requestors wishing to communicate with the service provider know exactly how to structure request messages) and also establishes the physical location (address) of the service.

A WSDL service description Also known as WSDL service definition (or) WSDL definition WSDL definition contains two categories Abstract description Concrete description Fig 16: WSDL document consisting of abstract and concrete parts that collectively describe a service endpoint.

Abstract description An abstract description establishes the interface characteristics of the Web service without any reference to the technology used to host or enable a Web service to transmit messages.   Three main parts: portType – high-level view of service interface . Sorts messages into groups of functions called Operations Operation – a specific action performed by the service . (Think public method for components in traditional distributed applications) Message – parameters are represented as messages . An operation consists of a set of input and output messages

WSDL Concrete Description Abstract interface definition Must be connected to a real, implemented technology This connection is defined in concrete description portion of WSDL file, This portion consists of three related parts : Binding The requirements to establish physical connection with the service (SOAP,…) Port The physical address for the service Service The service represents a group of related endpoints

Metadata and Service Contracts WSDL definitions rely on XSD schemas To formalize the structure of messages Policies are supplementary information in a WSDL Policies provide Rules, Preferences, and Processing details beyond what is expressed in the WSDL and schema

Fig 17 : A service contract comprised of a collection of service descriptions and possibly additional documents

 Semantic descriptions Most of the metadata currently provided by services focuses on expressing technical information related to data representation and processing requirements.  Examples of service semantics include: how a service behaves under certain conditions how a service will respond to a specific condition what specific tasks the service is most suited for

Service Description Advertisement & Discovery As the number of services within and without organizations increases, Advertising mechanisms may be needed UDDI formed the first generation of Web service standards . (Not commonly implemented) Central directories and registries allow humans and service requestors to : Locate the latest versions of known service descriptions Discover new Web services

Registries Public Accept registrations from organizations with or without Web services They act as service provider entities Private Can be implemented within an organization To provide a central repository for descriptions of services

Fig 18 : Service description locations centralized in a registry

Business entities and business services UDDI Components Business entities and business services Binding Templates and tModels Business entities and business services Each public registry record consists of a business entity Containing basic profile information about the organization (or service provider entity). This record includes one or more business service areas , Each of them provides a description of the services offered by the business entity .

Messaging with SOAP

What is SOAP ? SOAP is an XML-based protocol for accessing web services over HTTP. It has some specification which could be used across all applications. SOAP is known as the Simple Object Access Protocol, but in later times was just shortened to SOAP v1.2. SOAP is a protocol or in other words is a definition of how web services talk to each other or talk to client applications that invoke them. SOAP was developed as an intermediate language so that applications built on various programming languages could talk easily to each other and avoid the extreme development effort.

Why SOAP Exchanging data between applications is crucial in today’s networked world. But data exchange between these heterogeneous applications would be complex. One of the methods used to combat this complexity is to use XML (Extensible Markup Language) as the intermediate language for exchanging data between applications . But there are no standard specifications on use of XML across all programming languages for data exchange. That is where SOAP software comes in. SOAP was designed to work with XML over HTTP and have some sort of specification which could be used across all applications.

SOAP Building Blocks The SOAP specification defines something known as a “ SOAP message ” which is what is sent to the web service and the client application.

An Envelope element that identifies the XML document as a SOAP message – This is the containing part of the SOAP message and is used to encapsulate all the details in the SOAP message. This is the root element in the SOAP message. A Header element that contains header information – The header element can contain information such as authentication credentials which can be used by the calling application. It can also contain the definition of complex types which could be used in the SOAP message. By default, the SOAP message can contain parameters which could be of simple types such as strings and numbers, but can also be a complex object type.

A simple SOAP service example of a complex type we wanted to send a structured data type which had a combination of a “Tutorial Name” and a “Tutorial Description,” then we would define the complex type as shown below. The complex type is defined by the element tag < xsd:complexType >. All of the required elements of the structure along with their respective data types are then defined in the complex type collection.

A Body element that contains call and response information – This element is what contains the actual data which needs to be sent between the web service and the calling application. Below is an SOAP web service example of the SOAP body which actually works on the complex type defined in the header section. Here is the response of the Tutorial Name and Tutorial Description that is sent to the calling application which calls this web service.

SOAP Message Structure The Envelope element The header element and The body element The Fault element (Optional)

As seen from the above SOAP message, the first part of the SOAP message is the envelope element which is used to encapsulate the entire SOAP message. The next element is the SOAP body which contains the details of the actual message. Our message contains a web service which has the name of “Guru99WebService”. The “Guru99Webservice” accepts a parameter of the type ‘ int ’ and has the name of TutorialID .

SOAP Envelope Element The first bit of the building block is the SOAP Envelope. The SOAP Envelope is used to encapsulate all of the necessary details of the SOAP messages, which are exchanged between the web service and the client application. The SOAP envelope element is used to indicate the beginning and end of a SOAP message. This enables the client application which calls the web service to know when the SOAP message ends.

The Fault message When a request is made to a SOAP web service, the response returned can be of either 2 forms which are a successful response or an error response. When a success is generated, the response from the server will always be a SOAP message. But if SOAP faults are generated, they are returned as “HTTP 500” errors.

< faultCode > – This is the code that designates the code of the error. The fault code can be either of any below values SOAP- ENV:VersionMismatch – This is when an invalid namespace for the SOAP Envelope element is encountered. SOAP- ENV:MustUnderstand – An immediate child element of the Header element, with the mustUnderstand attribute set to “1”, was not understood. SOAP- ENV:Client – The message was incorrectly formed or contained incorrect information. SOAP- ENV:Server – There was a problem with the server, so the message could not proceed.

< faultString >  – This is the text message which gives a detailed description of the error. < faultActor > (Optional) – This is a text string which indicates who caused the fault. <detail>(Optional)  – This is the element for application-specific error messages. So the application could have a specific error message for different business logic scenarios.

Practical SOAP Example

Message styles/Communication model The SOAP communication model explains the client-server communication protocol for accessing remote objects. Remote Procedure Call (RPC) Document (Message)-style SOAP Services

Remote Procedure Call (RPC) A remote procedure call (RPC) type web service appears as a remote control object to a client application. Interactions between a client and an RPC-style Web services center around a service-specific interface. Clients declare their request as a method call with a set of arguments, Returns a response containing a return value.

Document (Message)-style SOAP Services In the messaging document style, SOAP contains <Body> XML document part. The <Body> element does not reflect any explicit XML structure. The SOAP runtime environment accepts the SOAP <Body> element as is and passes it to the designated application.Invariably There may or may not be a response associated with this the message.

Case Study Submitting an invoice b/w RailCo and its customer includes: Generation and mailing of invoice Generation and mailing of account statement for currently outstanding amounts Generation and mailing of discount reminder to explain RailCo’s pricing and to show the customer how close they are to a discount All 3 of these documents needed to be included in same SOAP message

RailCo Invoice Submission Service packaging the contents of 3 documents into one SOAP message .

Nodes Programs that services use to transmit and send SOAP messages are SOAP nodes SOAP nodes must conform to SOAP specification , As a result SOAP messages are vendor-neutral A SOAP node transmitting a SOAP message received by the service logic

Node Types

Node Types SOAP sender A SOAP node that transmits a message SOAP receiver A SOAP node that receives a message SOAP intermediary A SOAP node that receives and transmits a message with optional processing Initial SOAP sender The first SOAP node to transmit the message Ultimate SOAP receiver The last SOAP node to receive a message

Different types of SOAP nodes involved with processing a message

Positioning of SOAP nodes within a message transmission between RailCo and TLS. In RailCo Invoice Submission Service, the underlying SOAP server s/w (represent the initial SOAP sender node) executes the transmission of SOAP message via HTTP

SOAP intermediaries SOAP intermediary Responsible for relaying the contents of a message to a subsequent SOAP node . A forwarding SOAP intermediary Process & alter header block information relating to the forwarding logic . Ex: It will remove a header block it has processed, as well as any header blocks that cannot be relayed any further. An active SOAP intermediary Not required to limit its processing logic to the rules & instructions provided in header blocks of a message it receives. Can alter existing header blocks, insert new ones, & execute a variety of supporting actions

Message Paths A message path Route taken from being sent to ultimate arrival Message path modeling is becoming increasingly important for large SOA Use of header blocks can alter the path dynamically

A message path consisting of three Web services

Message Exchange Patterns

Introduction All business task require the transmission of multiple messages . Challenge lies in coordinating these messages in a particular sequence S o that the individual actions performed by the message are Executed properly and in alignment with the overall business task Not all message exchanges require both requests and responses

MEPs MEPs represent a set of templates That provide a group of already mapped out sequences For the exchange of messages . Most common example is a request and response pattern . It states that Upon successful delivery of a message from one service to another, R eceiving service responds with a message back to the initial requestor.

Primitive MEPs Before the arrival of contemporary SOA , Messaging frameworks were used by messaging-oriented middleware products . As a result, a common set of primitive MEPs has been in existence for some time. Request-Response Fire-and-Forget Complex MEPs

Request-response MEP Most popular MEP in use among distributed application environments This pattern defines synchronous communication This pattern establishes a simple exchange A message is first transmitted from a source (service requestor) to a destination (service provider). Upon receiving the message, destination (service provider) then responds with a message back to the source (service requestor).

Case Study TLS Accounts Payable Service U pon receiving an invoice submission from a vendor , Enlists the TLS Vendor Profile Service to validate the invoice header information A sample request-response exchange b/w the TLS Accounts Payable and Vendor Profile Services

Fire-and-Forget MEP This simple asynchronous pattern is based on unidirectional transmission of messages from a source to one or more destinations Several variations: Single-destination pattern : a source sends a message to one destination only Multi-cast pattern : a source sends messages to a predefined set of destinations Broadcast pattern : similar to multi-cast, except that message is sent to a broader range of recipient destinations A response to a transmitted message is not expected

Case Study TLS Accounts Payable Service contains a rule W hen an invoice header fails validation, an e-mail notification is generated . To execute this step, Accounts Payable Service sends a message to Notification Service TLS Accounts Payable Service sending off a one-way notification message

Complex MEPs Primitive MEPs can be assembled in various configurations To create different types of messaging models , called as complex MEPs A classic example is the publish-and-subscribe model Services involved with this model have new roles – Publishers and Subscribers Two Steps involved Subscriber sends a message to notify the publisher that it wants to receive messages on a particular topic. Upon the availability of the requested information, the publisher broadcasts messages on the particular topic to all of that topic's subscribers .

Publish-and-subscribe messaging model is a composite of two primitive MEPs

Case Study Notification Service periodically generates and distributes notification messages for a number of different topics Some pass the notification on as an e-mail to select accounting personnel. TLS Notification Service notifying subscribers about a problem condition via a notification broadcast.

MEPs and SOAP SOAP standard provides its own messaging framework To support single-direction message transfer Extensible nature of SOAP Allows many messaging characteristics and behaviors to be implemented via SOAP header blocks SOAP also provides an optional parameter That can be set to identify the MEP associated with a message

MEPs and WSDL WSDL operations support Different configurations of incoming, outgoing, and fault messages Within WSDL specification , they’re often simply referred to as patterns

Four MEPs applied to service operations Release 1.1 of WSDL specification provides support for 4 MEPs These MEPs are applied to service operations , represented as follows Request-response operation Upon receiving a message, the service must respond with a standard message or a fault message. Solicit-response operation Upon submitting a message to a service requestor, the service expects a standard response message or a fault message . One-way operation Service expects a single message and is not obligated to respond. Notification operation Service sends a message and expects no response

Four MEPs applied to service operations

Eight MEPs applied to service operations Release 2.0 of WSDL specification extends MEP support to 8 patterns in-out pattern out-in pattern in-only pattern out-only pattern robust in-only pattern robust out-only pattern in-optional-out pattern out-optional-in pattern

Service activity

Introduction Completion of business tasks is a major function of any automated solution Tasks are comprised of processing logic that executes To fulfill a number of business requirements. In service-oriented solutions, Each task can involve any number of services . Interaction of a group of services working together to complete a task can be referred to as a service activity Note : “Activity” is a generic term that is most frequently associated with a logical unit of work completed by a collection of services. Fig . In an activity, multiple Web services collaborate to do a specific piece of work.

Primitive service activities Scope of an activity can drastically (hugely) vary. A simple or primitive activity Typified (Demonstrated) by synchronous communication Therefore often consists of 2 services exchanging information using a standard request-response MEP (Figure ). Primitive activities are almost always short-lived ; E xecution of a single MEP generally constitutes the lifespan of a primitive activity Fig 11. A primitive service activity consisting of a simple MEP

Primitive service activities A business task automated by A series of custom-developed services and without the use of a composition extension Can easily be classified a complex activity.

Complex service activities Complex activities can involve many services (and MEPs) That collaborate to complete multiple processing steps over a long period of time These more elaborate types of activities are Generally structured around extension-driven and composition-oriented concepts , Such as choreography and orchestration . Fig 6.12. A complex activity involving four services

Case Study Message path traveled by a RailCo invoice submission is a great example of a complex activity. Recap Initial sender, RailCo's Invoice Submission Service , transmits the invoice message . Message is first received by a passive intermediary , TLS's Load Balancing Service , which routes the message according to environmental conditions . The message subsequently arrives at TLS's Accounts Payable Service . Accounts Payable Service acts as a controller and initiates a service composition to begin processing the message contents . It begins by interacting with the Vendor Profile Service to validate invoice header data and attaches the invoice document to the vendor account . Accounts Payable Service then extracts taxes, shipping fees, and the invoice total . It passes these values to the Ledger Service , which updates various ledger accounts, including the General Ledger. Finally the activity ends, as the Accounts Payable Service completes its processing cycle by sending a response message back to RailCo .

Case Study These processing steps constitute a complex activity involving five services Fig 6.13. A sample complex activity spanning RailCo and TLS boundaries

Service activities and SOA In SOAs, Activities represent any service interaction required to complete business tasks. Scope of a service activity is Primarily concerned with the processing and communication b/w services only. Underlying application logic of each Web service is Generally not mapped as part of a service activity. Complex activities are commonplace in larger service-oriented solutions And can involve numerous participating services.

Coordination -

Coordination A framework is required To provide a means for context information in complex activities To be managed, preserved and/or updated, and distributed to activity participants. Coordination establishes such a framework Fig 6.14. Coordination provides services that introduce controlled structure into activities

Coordinator composition The coordinator composition consists of the following services: Activation service Creates a new context and associates this context to a particular activity . Registration service Allows participating services to use context information (received from the activation service) to register for a supported context protocol . Protocol-specific services Represent the protocols supported by the coordinator's coordination type . Coordinator Controller service of this composition , also known as the coordination service

Coordinator composition WS-Coordination establishes a framework That introduces a generic service based on the coordinator service model (Figure 6.15). This service controls a composition of three other services That each play a specific part in the management of context data . Fig 6.15. The coordinator service composition

Coordination types and protocols Each coordinator is based on a coordination type , Coordination type specifies the nature and underlying logic of an activity For which context information is being managed. Coordination types are specified in separate specifications . WS-Coordination framework is extensible It can be utilized by different coordination types, including custom variations. But the 2 coordination types are commonly associated with WS-Coordination : WS- AtomicTransaction and WS- BusinessActivity .

Coordination types and protocols Coordination type extensions provide a set of coordination protocols The coordination protocols R epresent unique variations of coordination types , and Consist of a collection of specific behaviors and rules . A protocol is best viewed as a set of rules That are imposed on activities A nd which all registered participants must follow

Coordination contexts & coordination participants A context created by activation service is referred as a coordination context . A coordination context contains A collection of information that represents the activity and various supplementary data. Examples of type of data held within a coordination context include: A unique identifier that represents the activity An expiration value Coordination type information

Coordination contexts & coordination participants A service that wants to take part in an activity managed by WS-Coordination Must request the coordination context (from the activation service) . The service then can use this context information To register for one or more coordination protocols . A service that has received a context and has completed registration is considered a participant in the coordinated activity .

The activation and registration process Coordination service composition is instantiated (initiated) When an application service contacts the activation service (Figure 6.16). Via a CreateCoordinationContext request message , It asks the activation service to generate a set of new context data. Fig 6.16 The WS-Coordination registration process

The activation and registration process Once passed back with the ReturnContext message , Application service now can invite other services to participate in the coordination This invitation consists of the context information The application service originally received from the activation service. Any Web service in possession of this context information May issue a registration request to the registration service . This allows the service to enlist in a coordination based on a specific protocol. Upon a successful registration, a service is officially a participant. Registration service passes the location of the coordinator service to participant service, With which all participants are required to interact. At this time, the coordination service is also sent the address of the new participant.

The completion process Application service can request that a coordination be completed By issuing a completion request message to the coordination service. Coordinator , in turn, then issues its own completion request messages to all coordination participants . Each participant service responds with a completion acknowledgement message Fig 6.17. The WS-Coordination completion process .

Coordination and SOA A coordinator-based context management framework (provided by WS-Coordination and its supporting coordination types), introduces a layer of composition control to SOAs (Figure 6.18). It standardizes the Management and interchange of context information within a variety of key business protocols Fig 6.18. Coordination as it relates to other parts of SOA

Coordination and SOA Coordination also alleviate (lightens) the need for services to retain state . Statelessness is a key service-orientation principle Applied to services for use within SOAs . Coordination reinforces this quality By assuming responsibility for the management of context information .

Case Study In the previous case study example, An individual process steps that comprised a complex activity . Once the processing of this activity enters the TLS environment, TLS employs a context management system to coordinate the flow of message through its internal services Fig 6.19. TLS Accounts Payable, Vendor Profile, and Ledger Services being managed by a coordination

Case Study Coordination is applied to the following steps: 3. Accounts Payable Service uses the Vendor Profile Service To validate the invoice header data. If the data is valid, the invoice document is attached to the vendor account . 4. Accounts Payable Service extracts taxes & shipping fees from the invoice document. Tax & shipping fees values, along with the invoice total, are submitted to Ledger Service . Ledger Service is responsible for updating the General Ledger & numerous sub-ledgers, such as the Accounts Payable Ledger. Atomic transaction coordination type is used to coordinate these processing steps

Atomic transactions -

MEPs and WSDL Transactions have been around as long as automated computer solutions have existed. Atomic transactions implement the familiar commit and rollback features To enable cross-service transaction support Figure 6.20. Atomic transactions apply an all-or-nothing requirement to work performed as part of an activity.

ACID Transactions The protocols provided by the WS-AtomicTransaction specification enable cross-service transaction functionality comparable to the ACID-compliant transaction features found in most distributed application platforms Four required characteristics of a traditional transaction Note: Concepts discussed in this section were derived from the WS-AtomicTransaction specification, which defines protocols for use with WS-Coordination

Business activities

Business activities govern long-running, complex service activities. Hours, days, or even weeks can pass before a business activity is able to complete. During this period, the activity can perform numerous tasks that involve many participants. For instance, business activity protocols do not offer rollback capabilities. Given the potential for business activities to be long-running, it would not be realistic to expect ACID-type transaction functionality. Instead, business activities provide an optional compensation process that, much like a "plan B," can be invoked when exception conditions are encountered 

Orchestration -

Introduction Orchestration is a centrally controlled set of workflow logic That facilitates interoperability b/w 2 or more different applications. A common implementation is the hub-and-spoke model It allows multiple external participants to interface with a central orchestration engine An orchestration controls almost every facet of a complex activity

What Orchestration Does? With orchestration, Different processes can be connected without having to redevelop the solutions that originally automated the processes individually Orchestration bridges this gap By introducing new workflow logic By reducing the complexity of solution environments. Workflow logic is more easily maintained than when embedded within individual solution components.

Business protocols and process definition Workflow logic that comprises an orchestration can consist of Numerous business rules, conditions, and events . Collectively, these parts of an orchestration establish a business protocol A business protocol defines How participants can interoperate to achieve the completion of a business task. Details of workflow logic are encapsulated and expressed by an orchestration They are contained within a process definition.

Process services and partner services Process itself is represented as a service , resulting in a process service A process service coordinating and exposing functionality from three partner services Other services allowed to interact with the process service are identified as partner services or partner links.

Invoke of Process Service Depending on the workflow logic, Process service can be invoked by an external partner service , (or) Process service can invoke other partner services The process service, after first being invoked by a partner service, then invokes another partner service

Basic activities and structured activities An activity is a generic term that can be applied to any logical unit of work Completed by a service-oriented solution . Basic activities (receive, invoke, reply, throw, wait) Represent fundamental workflow actions Basic activities can be assembled Using the logic supplied by structured activities (sequence, switch, while, flow, pick). Basic and structured activities can be organized So that the order in which they execute is predefined .

Sequences and Flows A sequence aligns groups of related activities into a list That determines a sequential execution order . Sequences are especially useful When one piece of application logic is dependent on the outcome of another Flows also contain groups of related activities , but they introduce different execution requirements Pieces of application logic can execute concurrently within a flow, There is no requirement for one set of activities to wait before another finishes.

Links Links are used to establish dependencies b/w activities that are part of flows . Before any linked activity can begin , Requirements contained within any incoming links first must be satisfied . Before an activity can complete , I t must ensure that any requirements established in outgoing links first are met . Rules provided by links are also referred to as synchronization dependencies .

Orchestration and SOA Business process logic is at the root of automation solutions , Orchestration provides an automation model where process logic is centralized. Orchestrations establish a common point of integration for other applications These lead to increased organizational agility because: Workflow logic encapsulated by an orchestration can be modified or extended in a central location Positioning an orchestration centrally can ease the merging of business processes By establishing potentially large-scale service-oriented integration architectures , orchestration can support the evolution of a diversely federated enterprise

Orchestration relating to other parts of SOA

Case Study Extended TLS Purchase Order Submission Process managed by an orchestration and involving numerous potential partner organizations Orchestration establishes process logic that includes the business activity and extends it further to govern additional interaction scenarios with multiple vendor services. Ex : When one vendor cannot fulfill an order , the next vendor in line is sent the same purchase order . This cycle is repeated until either one vendor can complete the order in its entirety (within certain price limitations) or until all vendors have been queried. Finally, the system simply assesses the best deal on the table

Choreography -

Introduction Choreographies are intended for public message exchanges Goal is to establish a kind of organized collaboration b/w services representing different service entities No one entity (organization) controls the collaboration logic

A choreography enables collaboration between its participants . WS-CDL is the specification Chosen to represent the concept of choreography

Need for Interoperation Requirement for organizations to interoperate via services is needed. During collaboration, interoperation requirement is more important Here, multiple services from different organizations need to work together to achieve a common goal. Web Services Choreography Description Language (WS-CDL) It is a specification that attempts to organize information exchange b/w multiple organizations (or even multiple applications within organizations), with an emphasis on public collaboration

Components of choreographies Roles and Participants Within a choreography, a web service assumes one of a umber of predefined roles . Relationships and channels Every action within a choreography is broken down into a series of message exchanged b/w two services. Each potential exchange is defined as a relationship . Interactions and work units Actual logic behind a message exchange is encapsulated with an interaction , which is the fundamental building block of choreographies .

Reusability, composability, and modularity Each choreography can be designed in a reusable manner , Allowing it to be applied to different business tasks comprised of same fundamental actions Using an import facility , A choreography can be assembled from independent modules . These modules can represent distinct sub-tasks They can be reused by numerous different parent choreographies

A choreography composed of two smaller choreographies. A choreography composes a set of non-specific services to accomplish a task, Choreographies themselves can be assembled into larger compositions.

Orchestrations and choreographies Orchestration expresses organization-specific workflow . This means that an organization owns and controls the logic behind an orchestration , even if that logic involves interaction with external business partners Choreography is not necessarily owned by a single entity It acts as a community interchange pattern An orchestration can be view as a business-specific set of a choreography

A choreography enabling collaboration b/w 2 different orchestrations

Choreography and SOA Concept of exposing business logic through autonomous services can be applied to any implementation scope . Two services within a single organization , Each exposing a simple function , Can interact via a basic MEP to complete a simple task. Two services belonging to different organizations , Each exposing functionality from entire enterprise business solutions , Can interact via a basic choreography to complete a more complex task. Both scenarios Involve two services, and Support SOA implementations.

Choreography relating to other parts of SOA. Choreography assist in understanding of SOA across organization boundaries.

Choreography and SOA Choreography S upports composability , reusability, and extensibility, Increase organizational agility and discovery. Organizations are able to join into multiple online collaborations, which can dynamically extend or even alter related business processes that integrate with the choreographies. By being able to pass around channel information, Participating services can make third-party organizations aware of other organizations with which they already have had contact.

A choreography enabling collaboration b/w 2 different orchestrations
Tags