SlideShare a Scribd company logo
1
RAMCO INSTITUTE OF TECHNOLOGY
Department of Computer Science and Engineering
Academic Year: 2019- 2020 (Odd Semester)
Degree, Semester & Branch: VII Semester B.E. Computer Science and Engineering.
Course Code & Title: IT6801 Service Oriented Architecture.
Name of the Faculty member: Dr.M.Kaliappan, Associate Professor/CSE
----------------------------------------------------------------------------------------------------------------
UNIT IV WEB SERVICES
Service descriptions – WSDL – Messaging with SOAP – Service discovery – UDDI – Message
Exchange Patterns – Orchestration – Choreography –WS Transactions
-------------------------------------------------------------------------------------------------------------------
Credit: Thomas Erl, “Service Oriented Architecture: Concepts, Technology, and Design
---------------------------------------------------------------------------------------------------------------
• Outcome
– Describe the web services using WSDL, SOAP and UDDI.(L2).
4.1 Web services framework
It is comprised of all of the parts such as an abstract (vendor-neutral) technology platform, Web
services, service descriptions (WSDL), messages (SOAP), a service description registration and
discovery architecture (UDDI) and a well-defined architecture that supports messaging patterns
and compositions.
The structural relationship between SOA and Web service
Figure 1: relationship between SOA and web service
• Services (as Web services)
– A service is a means of encapsulating various extents of logic.
• Every Web service can be associated with:
– A temporary classification based on the roles during the runtime processing of a
message
– A permanent classification based on the application logic and the roles it assumes
within a solution environment.
• Service roles
– A Web service is capable of assuming different roles depending on the context.
• the initiator, (Service requestor)
2
• relayer, (intermediaries)
• the recipient of a message(service provider)
• Service provider
– The Web service is invoked via an external source such as a service requestor
– The recipient of a request message is classified as a service provider
• The service provider may reply to a request message with a response message.
• The term "service provider" is used to identify the organization (or individual) responsible
for providing the Web service.
• service provider entity (the organization or individual providing the Web service)
• service provider agent (the Web service itself, acting as an agent on behalf of its owner)
• Service requestor
– Any unit of processing logic capable of issuing a request message is classified as a
service requestor.
– The sender of the request message is classified as a service requestor
– A Web service is always a service provider but also can act as a service requestor
– service requestor entity (the organization or individual requesting the Web service)
• Case study
– TLS's Purchase Order Service submits electronic POs that are received by RailCo's Order
Fulfillment Service.
– Upon shipping the order, RailCo's Invoice Submission Service sends an electronic invoice to
TLS's Accounts Payable Service.
3
• Intermediaries or intermediary services
– Web services and service agents’ route and process a message after it is initially
sent and before it arrives at its destination are referred to as intermediaries or
intermediary services. Because an intermediary receives and submits messages, it
always transitions through service provider and service requestor roles.
– Two types of intermediaries.
• passive intermediary
• Active intermediary
• Passive intermediary
– It is responsible for routing messages to a subsequent location.
– It may use information in the SOAP message header to determine the routing path.
• Active intermediaries
– It route messages to a forwarding destination. Prior to transmitting a message,
these services process and alter the message contents.
– Active intermediaries will look for particular SOAP header blocks and perform
actions in response to the information. They always alter data in header blocks and
may insert or even delete header blocks entirely.
4
• Initial sender and ultimate receiver
– Initial senders are simply service requestors that initiate the transmission of a
message. Therefore, the initial sender is always the first Web service in a message
path.
– Service providers that exist as the last Web service along a message's path
• Case study
– The TLS Load Balancing Service acting as an intermediary between the RailCo
initial sender and the TLS ultimate receiver
• Service compositions
– Any service enlists one or more additional services to complete a given task.
Further, any of the enlisted services call other services to complete a given sub-
task. Therefore, each service participates in a composition as service composition
member
5
• Case Study
• When the TLS Accounts Payable Service receives an invoice, it invokes a series of
additional services to fully process the invoice contents:
• It first uses the Vendor Profile Service to validate the invoice header data and link the
invoice document to a vendor account from vendor profile service.
• Next, the Accounts Payable Service extracts taxes and shipping fees and directly logs all
amounts into the appropriate A/P accounts.
• Finally, the Accounts Payable Service passes the invoice total to Ledger Service to update
the General Ledger.
4.1.1 Service models
• Service models refer to permanent classifications that represent the application logic
housed by the service, as well as its business-related role within the solution.
– Business service model
– Utility service model
– Controller service model
4.1.1.1 Business service model
• Within an SOA, It encapsulates a distinct set of business logic within a well-defined
functional boundary.
• It is fully autonomous that are participate in service compositions.
4.1.1.2 Utility service model
• Any Web service or service agent designed for reuse can be classified as a utility service.
6
4.1.1.3 Controller service model
• Service compositions are comprised of independent services that execute the overall
business task. The controller service is acting as the parent service to service composition
members.
Case study
• The Accounts Payable Service acting as a business and controller service, composing two
other business services
4.2 Service description (WSDL) (16 marks)
Or
Write the WSDL document consisting of abstract and concrete parts for Arithmetic
calculator web service (16 marks)
– Web service Description language (WSDL) is an XML format for describing web services
as a set of endpoints operating on messages containing procedure-oriented information.
The operations and messages are described abstractly.
– It establishes a loosely coupled form of communication between services.
• Case study
– Each service requestor is using the WSDL of a service provider to ensure that
messages sent will be understood and accepted
7
4.2.1 WSDL definition or Service endpoints and service descriptions
• A WSDL describes the point of contact for a service provider known as the service
endpoint.
• It provides a formal definition of the endpoint interface and establishes the physical
address of the service.
• Two categories
– abstract description
– concrete description
4.2.1.1 Abstract description
• An abstract description establishes the interface of the Web service without any reference to
the technology or enables a Web service to transmit messages.
• Three main parts of an abstract description.
– portType, operation, and message
8
– The parent portType provides a high-level view of the service interface that includes
groups of functions known as operations.
– Each operation represents a specific logic or action performed by the service. A service
operation is a public method.
– Web services rely on messaging-based communication, parameters are represented as
messages. Therefore, an operation consists of a set of input and output messages.
4.2.1.2 Concrete description
• The abstract Web service interface needs to be connected to a physical transport
protocol(SOAP) for its communication. This connection is defined in the concrete
description portion of the WSDL file.
• Three parts of concrete description :
• binding, port, and service
– A WSDL description's binding establish physical connections between services.
– Simple Object Access Protocol(SOAP) is the common form of binding. A binding
can apply to an entire interface or a specific operation.
– Port represents the physical address at which a service can be accessed with a
specific protocol.
– Within the WSDL language, the service is used to refer to a group of related
endpoints.
Case Study
• Service: TLS Accounts Payable Service receive invoices submitted by numerous vendors.
• abstract description :
– One interface definition contains a single operation called SubmitInvoice.
– SubmitInvoice operation
• One input and one output message.
• The input message is accepting the invoice document from a service
requestor (RailCo Invoice Submission Service).
• The output message is a message of acknowledgement indicating that the
submitted invoice document has been successfully received and that its
contents are valid.
– concrete description
• binds the operation to the SOAP protocol
• provides a location address for the Accounts Payable Service
4.2.1.3 Metadata and service contracts
• WSDL definitions rely on XSD schemas to formalize the structure of incoming and
outgoing messages.
• Policies provide rules and processing details through the WSDL and XSD schema
documents.
• Three separate documents describe an aspect of a service:
– WSDL definition
– XSD schema
– policy
• Service description documents such as WSDL definition, XSD schema, and policy can be
classified as service metadata, as each provides information about the service.
• A service contract comprised of a collection of service descriptions (WSDL) and
additional documents with conditions.
• Service contract refers to agreements not expressed by service descriptions.
– For example, a Service Level Agreement (SLA) agreed upon by the owners of a
service provider and its requestor that can be considered a part of an service
contract.
9
4.2.1.4 Service Contract
• A service contract comprised of a collection of service descriptions(WSDL) and
additional documents(XSD schema, policy, SLA)
4.2.1.5 Semantic descriptions
• A semantic description is a supplementary documentation published along with service
descriptions (WSDL) to provide sufficient semantic information in a structured manner so
that, service requestors can evaluate and choose suitable service providers independently.
• Service policies can be designed to express the semantic descriptions of service behavior.
4.2.1.6 Service description advertisement and discovery
– Advertising and discovering service descriptions may become necessary for
amount of services increases within and outside of organizations.
– Universal Description, Discovery, and Integration (UDDI) provides a registry
model worth describing.
• Private and public registries
– UDDI is a accepted standard for structuring registries that keep track of service
descriptions These registries can be searched manually and accessed
programmatically.
– Public registries accept registrations from any organizations. Once signed up,
organizations acting as service provider can register their web services.
– Private registries can be implemented within organization boundaries to provide a
central repository for descriptions of all services the organization develops, leases,
or purchases.
Ex: Arithmetic web service in .NET
public class WebService : System.Web.Services.WebService {
public WebService () {
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
10
}
[WebMethod]
public int add(int a, int b)
{
return (a+b);
}
[WebMethod]
public int sub(int a, int b)
{
return (a - b);
}
4.2.2 WSDL document for Arithmetic calculator web service (16 marks)
<wsdl:portType name="WebServiceSoap">
<wsdl:operation name="add">
<wsdl:input message="tns:addSoapIn"/>
<wsdl:output message="tns:addSoapOut"/>
</wsdl:operation>
<wsdl:operation name="sub">
<wsdl:input message="tns:subSoapIn"/>
<wsdl:output message="tns:subSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WebServiceSoap" type="tns:WebServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<soap:operation soapAction="http://tempuri.org/add" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
SOAP input message (Service requestor)
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org"
<soap:Body>
<add xmlns="http://tempuri.org/">
11
<a> int </a>
<b> int </b>
</add>
</soap:Body>
</soap:Envelope>
SOAP output message (Service provider)
<?xml version="1.0" encoding="utf-8"?>
</soap:Envelope>
<soap:Body>
<addResponse xmlns="http://tempuri.org/">
<addResult > int </addResult>
</addResponse>
</soap:Body>
</soap:Envelope>
<wsdl:service name="WebService">
<wsdl:port name="WebServiceSoap" binding="tns:WebServiceSoap">
<soap:address location="http://localhost:61433/WebService.asmx"/>
</wsdl:port>
</wsdl:service>
4.3 Message with SOAP
• SOAP
– The Simple Object Access Protocol(SOAP) specification is universally accepted
standard transport protocol for messages processed by Web services
• All communication between services is message-based, the messaging framework provide
standardization for services.
• SOAs emphasis on a message-centric application designs that increasing amount of
business and application logic is embedded into messages.
• The messaging framework can be flexible and highly extensible.
4.3.1 SOAP Messages format (16 marks)
• Envelope
– SOAP message is packaged into a container known as an envelope.
– The envelope is responsible for housing all parts of the message
• Header
– Header is hosting Meta information.
–
12
• Body
– The actual message contents are hosted by the message body, which consists of
XML formatted data.
– The contents of a message body are referred to as the message payload
4.3.1.1 Header block
• Supplementary Meta information stored in the header area.
• Header blocks contain information required for any services with contact to process and route
the message based on the rules, instructions, and properties.
• Features of message with header blocks :
– processing instructions may be executed by service intermediaries or the ultimate
receiver
– routing or workflow information associated with the message
– security measures implemented in the message
– reliability rules related to the delivery of the message
– context and transaction management information
– correlation information (an identifier used to associate a request message with a
response message)
EXample
<env:Header>
<MaxTime value="10000" role="ultimateReceiver"/> </env:Header>
<env:Header>
<MaxRelayTime value="10000“ role=“next” relay=“true"/>
</env:Header>
<maxRelayTime> must be relayed from node to node
role=“next” - intermediate node
4.3.1.2 Message styles
• SOA relies on document-style messages to enable larger payloads, interface operations,
and reduced message transmission volumes between services.
• Case study
– Submit invoices electronically to TLS via the Invoice Submission Service, all three
of these documents needed to be included in the same message.
13
– As a result, a single document-style message used by RailCo is capable of
providing an invoice, an account statement, and volume discount pricing formulas.
4.3.1.3 Attachments
– SOAP attachments are commonly employed to transport binary files, such as
images.
4.3.1.4 Faults
– SOAP messages offer exception handling logic by providing an optional fault
section that can reside within the body area.
– The section is store a simple message that deliver error condition information when
an exception occurs.
Example:
<env:Body>
<env:Fault>
<env: Code>
<env: Value> env:Sender</env:Value>
</env: Code>
<env: Reason> <env:Text>Processing error</env:Text>
</env: Reason>
</env:Fault>
4.3.1.5 Nodes
• The programs that services use to transmit and receive SOAP messages are referred to as
SOAP nodes.
• A SOAP node transmitting a SOAP message received by the service logic
• Node types
– The SOAP specification has a different "role" is refers to SOAP types or labels as
concepts.
– SOAP sendera
• SOAP node that transmits a message
– SOAP receivera
• SOAP node that receives a message
– SOAP intermediarya
• SOAP node that receives and transmits a message, and optionally processes
the message prior to transmission
14
– initial SOAP sender
• the first SOAP node to transmit a message
– ultimate SOAP receiver
• the last SOAP node to receive a message
Case Study
• When the RailCo Invoice Submission Service sends a SOAP message containing an invoice,
the SOAP server software (initial SOAP sender node) executes the transmission of the SOAP
message via HTTP.
• Prior to the TLS Accounts Payable Service receiving the invoice message, the TLS SOAP
server or listener (ultimate SOAP receiver node) receives the message first.
• SOAP intermediaries
– SOAP intermediary nodes transition through service provider and service requestor
roles,
– SOAP intermediary nodes move through SOAP receiver and SOAP sender types when
processing a message.
– Types
• Forwarding intermediary nodes
• Active intermediary nodes.
– Forwarding intermediary nodes
• it is responsible for relaying the contents of a message to a subsequent SOAP
node
• The intermediary will process and alter header block information relating to the
forwarding logic it is executing.
– Active intermediary nodes
• An active intermediary can alter existing header blocks, insert new ones,
and execute a variety of supporting actions
15
4.3.1.6 Message paths
• A message path refers to the route taken by a message from when it is first sent until it
arrives at its ultimate destination. Therefore, a message path consists of at least one initial
sender, one ultimate receiver, and zero or more intermediaries.
• The use of header blocks processed by intermediaries can dynamically determine the path
of a message. This may be routing logic, workflow logic, or environmental conditions.
• A message path
determined at runtime
Write SOAP request message and response message for arithmetic calculator (8 marks)
SOAP input message (Service requestor)
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org"
<soap:Body>
<add xmlns="http://tempuri.org/">
<a> int </a>
<b> int </b>
</add>
</soap:Body>
</soap:Envelope>
SOAP output message (Service provider)
<?xml version="1.0" encoding="utf-8"?>
</soap:Envelope>
<soap:Body>
<addResponse xmlns="http://tempuri.org/">
<addResult > int </addResult>
</addResponse>
</soap:Body>
</soap:Envelope>
4.4 Service discovery (UDDI) – (16 marks)
• UDDI (2 marks)
16
– UDDI stands for Universal Description, Discovery, and Integration.
– UDDI is an XML-based standard for describing, publishing, and finding web
services
• UDDI has two sections
– A registry of all web service's metadata, including a pointer to the WSDL
description of a service.
– A set of WSDL port type definitions for manipulating and searching that registry
4.4.1 Private and public registries (2 marks)
– UDDI is a standard for structuring registries that keep track of service descriptions.
– Public registries accept registrations from any organizations. Once signed up,
organizations acting as service provider can register their web services.
– Private registries can be implemented within organization boundaries to provide a
central repository for descriptions of all services. The organization develops,
leases, or purchases.
4.4.2 Three elements of UDDI.(2 marks)
– White Pages,
– Yellow Pages,
– Green Pages.
• White pages
– Basic information about the company and its business.
– Basic contact information including business name, address, contact phone
number, etc.
– A Unique identifiers for the company tax IDs.
• Yellow Pages
– Yellow pages contain more details about the company.
– Yellow pages include industry codes, product codes, and business identification
codes.
• Green Pages
– Green pages contain technical information about a web service.
• The various interfaces
• The URL locations
4.4.3 The basic structure of a UDDI – (16 marks)
– businessEntity: Detail about company
– businessService: Individual web service
– bindingTemplate- technical descriptions of the web services
– tModel
17
4.4.3.1 businessEntity Data Structure(16 marks)
or
Develop the businessEntity data Structure of UDDI. Assume, IBM is the service
provider that provides arithmetic calculator web service (16 marks)
• The business entity structure represents the services provider.
• This structure contains information about the company including
– contact information
– industry categories
– business identifiers
– list of services provided
<businessEntity businessKey = "uuid”
operator = "www.ibm.com" authorizedName = "John Doe">
<name>Acme Company</name>
<description> We create Arithmetic Web services</description>
<contacts>
<contact useType = "general info">
<personName>John Doe</personName>
<phone>(123) 123-1234</phone>
<email>jdoe@acme.com</email>
</contact>
</contacts>
</businessEntity>
4.4.3.2 businessService Data Structure
• The business service structure represents an individual web service provided by the business
entity.
• Its description includes information on
– binding to the web service,
– type of web services
– Categories it belongs to.
<businessService serviceKey = "uuid" businessKey = "uuid:C">
<name> Calculator Web Service</name>
<description> Arithmetic calculation</description>
</businessService>
4.4.3.3 bindingTemplate Data Structure
– Binding templates are the technical descriptions of the web services represented by
the business service structure.
<bindingTemplate serviceKey = "uuid" bindingKey = "uuid:C00">
<description> Calculator SOAP Binding</description>
<accessPoint URLType = "http"> http://localhost:8080 </accessPoint>
18
</bindingTemplate>
4.4.3.4 tModel Data Structure
• tModel stands for technical model.
• tModel is describing the various business, service, and template structures stored within
the UDDI registry.
<tModel tModelKey = "uuid:xyz987.." operator = "www.ibm.com" authorizedName = "John
Doe">
<name> Calculator Interface Port Type</name>
<overviewDoc>
<overviewURL> http://localhost/ Calculator.wsdl </overviewURL>
</overviewDoc>
</tModel>
4.5 Message Exchange Pattern (MEP) (8 marks)
• A MEP is a interaction pattern to define the message exchange between two services.
• Message exchange patterns (MEPs) represent a set of templates that provide a group of
sequences for the exchange of messages.
• Common example is a request and response pattern.
• Types
– Primitive MEPs
– Complex MEPs
4.5.1 Primitive MEPs(2 marks)(Nov 2016)
• Request-response
• Fire and forget
4.5.1.1 Request-response
• This MEP used in distributed application environments that defines synchronous
communication
• The request-response MEP establishes a simple exchange in which a message is first
transmitted from a source (service requestor) to a destination (service provider).
• Upon receiving the message, the destination (service provider) then responds with a
message back to the source (service requestor).
19
4.5.1.2 Fire-and-forget
• This simple asynchronous pattern is based on the unidirectional transmission of messages
from a source to one or more destinations
• Types of fire-and-forget MEP
– The single-destination pattern, where a source sends a message to one destination
only.
– The multi-cast pattern, where a source sends messages to a predefined set of
destinations.
– The broadcast pattern, where the message is sent out to a broader range of recipient
destinations.
Case study
The TLS Accounts Payable Service contains a rule that when an invoice header fails validation, an
e-mail notification is generated. To execute this step, the Accounts Payable Service sends a
message to the Notification Service. This utility service records the message details in a
notification log database
4.5.2 Complex MEPs
• Primitive MEPs can be assembled in various configurations to create different types of
messaging models called complex MEPs.
• A classic example
 Publish-and-subscribe model(Dish TV provider: Airtel, Sun, Reliance etc..).
Steps:
• Step 1. The subscriber sends a message to notify the publisher that it wants to receive
messages on a particular topic.
• Step 2. Upon the availability of the requested information, the publisher broadcasts messages
on the particular topic to all topic's
subscribers
20
Case study
The utility Notification Service periodically generates and distributes notification
messages for a number of different topics. Messages from outside vendors that fail validation, for
example, are first logged in a dedicated notification repository. At the end of every working day,
the Notification Service queries this repository to retrieve all failed submissions
4.5.3 MEP and SOAP
• The SOAP provides a messaging framework designed to support single-direction message
transfer.
• The SOAP allows messaging characteristics and behaviors to be implemented via SOAP
header blocks.
• The SOAP provides an optional parameter to identify the MEP associated with a message.
4.5.4 MEP and WSDL
• MEPs play a vital role in WSDL as they can coordinate the input and output messages
associated with an operation.
• The association of MEPs to WSDL operations embeds behavior into the interface
definition.
• WSDL operations support different configurations of incoming, outgoing, and fault
messages. These configurations are referred as message exchange patterns.
4.5.5 WSDL 1.1 specification supports four message exchange patterns (8 marks)
• Request-response operation: Service requestor submits a message to service provider,
upon receiving a message, the service provider respond with a message or a fault message.
• Solicit-response operation service provider submit a message to a service requestor, the
service provider expects a standard response message or a fault message.
• One-way operation: The service expects a single message and is not obligated to respond.
• Notification operation: The service sends a message and expects no response.
21
Figure : The four basic patterns supported by WSDL 1.1
4.5.6 WSDL 2.0 specification support to eight patterns corresponds to MEP. (8 marks)
• The in-out pattern is equivalent to the WSDL 1.1 request-response operation.
• The out-in pattern, which is the reverse of the previous pattern where the service provider
initiates the exchange by transmitting the request. (Equivalent to the WSDL 1.1 solicit-
response operation.)
• The in-only pattern, which supports the fire-and-forget MEP.
• The out-only pattern, which is the reverse of the in-only pattern. It is used primarily in support
of event notification. (Equivalent to the WSDL 1.1 notification operation.)
• The robust in-only pattern, a variation of the in-only pattern that provides the option for fault
response message as a result of a transmission or processing error.
• The robust out-only pattern, which, like the out-only pattern, has an outbound message
initiating the transmission. The difference here is that a fault message can be issued in
response to the receipt of this message.
• The in-optional-out pattern, which is similar to the in-out pattern with one exception. In this,
the delivery of a response message is optional. This pattern also supports the generation of a
fault message.
• The out-optional-in pattern is the reverse of the in-optional-out pattern, where the incoming
message is optional. Fault message generation is again supported.
22
4.6 Service Activity (8 marks)
Activity
An activity is representing a task or a unit of work performed by a set of services.
Service Activity (2 marks)
The interaction of a group of services working together to complete a task can be referred
to as a service activity
4.6.1 Primitive and complex service activities
• Primitive activity(2 marks)
– Primitive activity is synchronous communication and consists of two services
exchanging information using a standard request-response MEP
– Primitive activities are almost always short-lived
• Complex activities(2 marks)
– In complex activities, many services can involve that collaborate to complete
multiple processing steps over a long period of time
– Ex: composition-oriented concepts, such as choreography and orchestration.
23
4.6.2 Service activities and SOA
• In SOAs, the interaction of a group of services working together to complete a task .
• The scope of a service activity is primarily concerned with the processing and
communication between services.
• Complex activities are commonplace in service-oriented solutions and can involve
numerous participating services.
Case study
 1. The initial sender, RailCo's Invoice Submission Service, transmits the invoice message.
 2. The 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.
 3. The 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.
 4. The 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.
 5. Finally the activity ends, as the Accounts Payable Service completes its processing
cycle by sending a response message back to RailCo.
4.7 Coordination (8 marks)
• Coordination provides a context management framework using a service composition
headed by a coordinator service.
• Examples of implementations of this framework are WS-Atomic Transaction and WS-
BusinessActivity.
24
4.7.1 Coordinator composition
This coordinator service controls a composition of other services that each plays a specific part in
the management of context data
• The coordinator composition consists of the following services:
– Activation service: Responsible for the creation of a new context for a particular
activity in the context.
– Registration service: Allows participating services to use context information
received from the activation service to register for a supported context protocol.
– Protocol-specific services: These services represent the protocols supported by the
coordinator.
– Coordinator The controller service of this composition, also known as the
coordination service.
4.7.2 Coordination types and coordination protocols
• Each coordinator is based on a coordination type, which specifies the underlying logic of
an activity for which context information is being managed.
• The two coordination types
– WS-Atomic Transaction
– WS-Business Activity.
• Coordination type extensions provide a set of coordination protocols, which represent
unique coordination types and consist of a collection of specific behaviors and rules.
• A protocol is a set of rules that are imposed on activities and all registered participants
must follow.
4.7.3 Coordination contexts and coordination participants
• A context created by the activation service is referred to as a coordination context. It
contains a collection of information that represents the activity and various supplementary
data.
25
• Examples: Type of data held within a coordination context include:
– a unique identifier that represents the activity
– an expiration value
– coordination type information
• A service that wants to take part in an activity managed by WS-Coordination must request
the coordination context from the activation service. It 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.
4.7.3.1 The activation and registration process
• The coordination service composition is instantiated when an application service contacts
the activation service Via a CreateCoordinationContext request message,
• It asks the activation service to generate a set of new context data. Once passed back with
the ReturnContext message, the application service now can invite other services to
participate in the coordination.
• This invitation consists of the context information received from the activation service.
4.7.3.2 Coordination and SOA
• A coordinator-based context management framework, as provided by WS-Coordination
and its supporting coordination types, introduces a layer of composition control to SOAs
26
• It standardizes the management and interchange of context information within a variety of
key business protocols.
4.8 Orchestration (8 marks)
• Organizations employed enterprise application integration (EAI) middleware to integrate
various legacy environments.
• In these systems, a centrally controlled set of workflow logic facilitates interoperability
between different applications. Ex: WS-BPEL
• Orchestration represent business logic and services-based venue
• A common implementation of orchestration is the hub-and-spoke model that allows multiple
external participants to interface with a central orchestration engine.
• With orchestration, different processes can be connected without redevelop the solutions for
automated process.
Advantages:
• Orchestration can significantly reduce the complexity of solution environments.
• Workflow logic is abstracted and more easily maintained
4.8.1 Business protocols and process definition (2 marks)
– The workflow logic comprises an orchestration that consists of numerous business
rules, conditions, and events.
– Collectively, these parts of an orchestration establish a business protocol that
defines how participants (spoke) interoperate to achieve the completion of a
business task.
– The details of the workflow logic encapsulated and expressed by an orchestration
are contained within a process definition
27
4.8.2 Process services and partner services
– The process itself is represented as a process service
– Identified process definitions are allowing the process participants.
– Other services allowed to interact with the process service are identified as partner
services or partner links.
– Depending on the workflow logic, the process service can be invoked by an
external partner service
4.8.3 Basic activities and structured activities
– WS-BPEL breaks down workflow logic into a series of predefined primitive
activities such as receive, invoke, reply, throw, and wait.
– Basic activities represent workflow actions which can be assembled using the logic
supplied by structured activities (sequence, switch, while, flow, pick).
4.8.3.1 Sequences, flows, and links
• Sequence
– A sequence aligns groups of related activities into a list that determines a sequential
execution order. In Sequences, one piece of application logic is dependent on the
outcome of another.
• Flows
– Flows also contain groups of related activities, but they introduce different execution
requirements. Pieces of application logic can execute concurrently within a flow,
meaning that there is not necessarily a requirement for one set of activities to wait
before another finishes.
• Links
– Links are used to establish formal dependencies between activities that are part of
flows. Before an activity fully can complete, it must ensure that any requirements
established in outgoing links first are met. Similarly, before any linked activity can
begin, requirements contained within any incoming links first must be satisfied. Rules
provided by links are also referred to as synchronization dependencies
4.8.4 Orchestrations and activities
• An activity can be applied to any logical unit of work completed by a service-oriented
solution.
• The scope of a orchestration can be classified as a complex and long-running activity
4.8.5 Orchestration and coordination
• Orchestration is represented by WS-BPEL, can fully utilize the Coordination context
management framework by incorporating the coordination type.
28
• The coordination protocols designed to support complex, and long-running activities
4.8.6 Orchestration and SOA
• Orchestration provides an automation model where business process logic is centralized
yet still extensible and composable .
• Through the use of orchestrations, service-oriented solution environments become
extensible and adaptive.
• Orchestrations themselves typically establish a common point of integration for other
applications, which makes an implemented orchestration a key integration enabler
Case study
29
4.9 Choreography (8 marks)
• The goal is to establish a collaboration pattern between services representing different
organization.
• Choreographies consist of multiple participants that can different roles with different
relationships.
• Choreographies are reusable, composable, and can be modularized.
• The concept of choreography extends the SOA vision to standardize cross-organization
collaboration.
4.9.1 WS-CDL (Web Services Choreography Description Language) (2 marks)
The WS-CDL is the specifications that organize information exchange between multiple
organizations (or even multiple applications within organizations), with an emphasis on public
collaboration
Ex: Retailer – distributor
4.9.2 Collaboration
– The goal is to establish a collaboration pattern between services representing
different organization.
– Choreographies establish universal interoperability patterns for inter-organization
business tasks.
– It can be applied to enable collaboration between applications belonging to a single
organization. It use orchestration techniques.
30
4.9.3 Roles and participants
– Within choreography, a Web service assumes predefined roles. This establishes
what the service can do within the context of a particular business task.
– Related roles are grouped accordingly, categorized as participants (services).
4.9.4 Relationships and channels
– Every action within choreography can be broken down into a series of message
exchanges between two services. Each exchange between two roles in
choreography is defined as a relationship. Every relationship consequently consists
of exactly two roles.
– Channels define the characteristics of the message exchange between two specific
roles. it fosters dynamic discovery and increases the number of participants within
large-scale collaborative tasks.
4.9.5 Interactions and work units
o Finally, the actual logic behind a message exchange is encapsulated within an
interaction.
o An interaction represents actual progress within choreography.
o Related to interactions are work units. These impose rules and constraints that must be
adhered for an interaction to successfully complete
4.9.6 Reusability, composability, and modularity
• Each choreography can be designed in a reusable manner, allowing it to be applied to
different business tasks comprised of the same fundamental actions.
• Choreography can be assembled from independent modules. These modules can represent
distinct sub-tasks and can be reused by different parent choreographies.
31
4.9.7 Orchestrations Vs choreographies (Comparison) (2 marks)
• Orchestrations
– An orchestration expresses organization-specific business workflow. An
organization owns and controls the logic, even if that logic involves interaction
with external business partners.
– Service orchestration represents a single centralized executable business process
(the orchestrator) that coordinates the interaction among different services
• choreographies
– The goal is to establish a collaboration pattern between services representing
different organization.
– The decision logic is distributed, with no centralized point
4.9.8 Choreography and SOA
• Choreography can assist in the realization of SOA across organization boundaries.
• Choreography supports composability, reusability, and extensibility, also 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.
32
4.10 WS-Atomic Transaction (8 marks)
• WS- AtomicTransaction is a coordination type that supplies three coordination protocols
that can be used to achieve two-phase commit transactions across multiple service
participants.
• The atomic transaction coordinator makes the ultimate decision to commit or rollback a
transaction. This decision is based on votes collected from participants.
• Atomic transactions apply an all-or- nothing requirement to work performed as part of an
activity
• Contemporary SOAs can incorporate cross-service, ACID-type transaction features by
using WS-AtomicTransaction.
4.10.1 ACID transactions
The WS- AtomicTransaction protocols enable cross-service transaction functionality in
distributed application platforms.
– Atomic
• Either all of the changes within the scope of the transaction succeed, or
none of them succeed. This characteristic introduces the need for the
rollback feature that is responsible for restoring any changes completed as
part of a failed transaction to their original state.
– Consistent
• None of the data changes made as a result of the transaction can violate the
validity of any associated data models. Any violations result in a rollback of
the transaction.
– Isolated
• If multiple transactions occur concurrently, they may not interfere with
each other. Each transaction must be guaranteed an isolated execution
environment.
– Durable
• Upon the completion of a successful transaction, changes made as a result
of the transaction can survive subsequent failures.
4.10.2 Atomic transaction protocols (2 marks)
• WS-Atomic Transaction is an extension of WS-Coordination context management
framework.
• To participate in an atomic transaction, a service first receives a coordination context from
the activation service. It can subsequently register for available atomic transaction
protocols.
33
• Transaction protocols :
– A Completion protocol is used to initiate the commit or abort states of the
transaction.
– The Durable 2PC protocol for which services representing permanent data
repositories should register.
– The Volatile 2PC protocol to be used by services managing temporary data.
• Most often these protocols are used to enable a two-phase commit (2PC) that manages
an atomic transaction across multiple service participants.
4.10.3 The atomic transaction coordinator
– When WS-Atomic Transaction protocols are used, the coordinator controller
service can be referred to as an atomic transaction coordinator.
– The atomic transaction coordinator plays a key role in managing the participants
of the transaction process and in deciding the transaction's ultimate outcome.
4.10.4 The atomic transaction process
– The atomic transaction coordinator is responsibility of deciding the outcome of a
transaction. The decision is based on receives feedback from all of the transaction
participants.
– The collection of feedback is separated into two phases.
• Prepare phase, all participants are notified by the coordinator, and each is
asked to prepare and then issue a vote. Each participant's vote consists of
either a "commit" or "abort" request
• Commit phase. It now reviews all votes and decides whether to commit or
rollback the transaction.
34
4.10.5 Atomic Transaction and SOA
– More services emerge within an organization and as service compositions become more
commonplace, the need to move transaction boundaries into cross-service interaction
scenarios increases. Being able to guarantee an outcome of an activity is a key part of
enterprise-level computing, and atomic transactions therefore play an important role in
ensuring quality of service.
– Not only do atomic transactional capabilities lead to a robust execution environment for
SOA activities, they promote interoperability when extended into integrated environments.
This allows the scope of an activity to span different solutions built with different vendor
platforms, while still being assured a guaranteed all-or-nothing outcome.

More Related Content

What's hot

SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented Architecture
Vinay Rajadhyaksha
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service Bus
Mahmoud Ezzat
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
WSO2
 
Service oriented architecture
Service oriented  architectureService oriented  architecture
Service oriented architecture
Pratik Patil
 
Scalability and fault tolerance
Scalability and fault toleranceScalability and fault tolerance
Scalability and fault tolerance
gaurav jain
 
Cloud Computing & Distributed Computing
Cloud Computing & Distributed ComputingCloud Computing & Distributed Computing
Object modeling
Object modelingObject modeling
Object modeling
Preeti Mishra
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Paulo Gandra de Sousa
 
Eucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebulaEucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebula
Amar Myana
 
Chapter1
Chapter1Chapter1
Chapter1
Dang Tuan
 
Architecture of Object Oriented Software Engineering
Architecture of Object Oriented Software EngineeringArchitecture of Object Oriented Software Engineering
Architecture of Object Oriented Software Engineering
Sandesh Jonchhe
 
SOA Unit I
SOA Unit ISOA Unit I
SOA Unit I
Dileep Kumar G
 
Distributed Coordination-Based Systems
Distributed Coordination-Based SystemsDistributed Coordination-Based Systems
Distributed Coordination-Based Systems
Ahmed Magdy Ezzeldin, MSc.
 
Message and Stream Oriented Communication
Message and Stream Oriented CommunicationMessage and Stream Oriented Communication
Message and Stream Oriented Communication
Dilum Bandara
 
Microservices
MicroservicesMicroservices
Microservices
SmartBear
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud Computing
David Chou
 
Transactional workflow
Transactional workflowTransactional workflow
Transactional workflow
District Administration
 
CS8791 Unit 2 Cloud Enabling Technologies
CS8791 Unit 2 Cloud Enabling TechnologiesCS8791 Unit 2 Cloud Enabling Technologies
CS8791 Unit 2 Cloud Enabling Technologies
karthikajegadeesan
 
Service oriented architecture characteristics of soa
Service oriented architecture characteristics  of soaService oriented architecture characteristics  of soa
Service oriented architecture characteristics of soa
smithaps4
 
OIT552 Cloud Computing - Question Bank
OIT552 Cloud Computing - Question BankOIT552 Cloud Computing - Question Bank
OIT552 Cloud Computing - Question Bank
pkaviya
 

What's hot (20)

SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented Architecture
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service Bus
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
 
Service oriented architecture
Service oriented  architectureService oriented  architecture
Service oriented architecture
 
Scalability and fault tolerance
Scalability and fault toleranceScalability and fault tolerance
Scalability and fault tolerance
 
Cloud Computing & Distributed Computing
Cloud Computing & Distributed ComputingCloud Computing & Distributed Computing
Cloud Computing & Distributed Computing
 
Object modeling
Object modelingObject modeling
Object modeling
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Eucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebulaEucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebula
 
Chapter1
Chapter1Chapter1
Chapter1
 
Architecture of Object Oriented Software Engineering
Architecture of Object Oriented Software EngineeringArchitecture of Object Oriented Software Engineering
Architecture of Object Oriented Software Engineering
 
SOA Unit I
SOA Unit ISOA Unit I
SOA Unit I
 
Distributed Coordination-Based Systems
Distributed Coordination-Based SystemsDistributed Coordination-Based Systems
Distributed Coordination-Based Systems
 
Message and Stream Oriented Communication
Message and Stream Oriented CommunicationMessage and Stream Oriented Communication
Message and Stream Oriented Communication
 
Microservices
MicroservicesMicroservices
Microservices
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud Computing
 
Transactional workflow
Transactional workflowTransactional workflow
Transactional workflow
 
CS8791 Unit 2 Cloud Enabling Technologies
CS8791 Unit 2 Cloud Enabling TechnologiesCS8791 Unit 2 Cloud Enabling Technologies
CS8791 Unit 2 Cloud Enabling Technologies
 
Service oriented architecture characteristics of soa
Service oriented architecture characteristics  of soaService oriented architecture characteristics  of soa
Service oriented architecture characteristics of soa
 
OIT552 Cloud Computing - Question Bank
OIT552 Cloud Computing - Question BankOIT552 Cloud Computing - Question Bank
OIT552 Cloud Computing - Question Bank
 

Similar to Web services-Notes

SOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdf
SOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdf
SOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdf
NKannanCSE
 
Unit iii soa
Unit iii soaUnit iii soa
Unit iii soa
smitha273566
 
Soa 8 soa technologies for web services
Soa 8 soa technologies for web servicesSoa 8 soa technologies for web services
Soa 8 soa technologies for web services
Vaibhav Khanna
 
SOA and Monolith Architecture - Micro Services.pptx
SOA and Monolith Architecture - Micro Services.pptxSOA and Monolith Architecture - Micro Services.pptx
SOA and Monolith Architecture - Micro Services.pptx
Kongu Engineering College, Perundurai, Erode
 
Unit-I-Introduction.pptx
Unit-I-Introduction.pptxUnit-I-Introduction.pptx
Unit-I-Introduction.pptx
keerthanamp4
 
Web services provide an organization without human supervision
Web services provide an organization without human  supervisionWeb services provide an organization without human  supervision
Web services provide an organization without human supervision
nandepovanhu
 
Soa chapter 5
Soa chapter 5Soa chapter 5
Soa chapter 5
Amar Nath Dsilva
 
Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...
Abdul Khan
 
Applying xml
Applying xmlApplying xml
Applying xml
Kumar
 
Web services
Web servicesWeb services
Web services
Divya Tiwari
 
web services-May 25.ppt
web services-May 25.pptweb services-May 25.ppt
web services-May 25.ppt
ShivaangiKrish
 
IEEE_CCNC_Presentation_Peyman
IEEE_CCNC_Presentation_PeymanIEEE_CCNC_Presentation_Peyman
IEEE_CCNC_Presentation_Peyman
Peyman TalebiFard
 
CHP-4.pptx
CHP-4.pptxCHP-4.pptx
CHP-4.pptx
FamiDan
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
gulimran
 
web programming
web programmingweb programming
web programming
sakthibalabalamuruga
 
CS-802 Act-1.ppt
CS-802 Act-1.pptCS-802 Act-1.ppt
CS-802 Act-1.ppt
AnushkaChauhan68
 
web service technologies
web service technologiesweb service technologies
web service technologies
Yash Darak
 
Web service architecture
Web service architectureWeb service architecture
Web service architecture
Muhammad Shahroz Anwar
 
Wcf routing kt
Wcf routing ktWcf routing kt
Wcf routing kt
Krunal Trivedi
 
SOA unit-3-notes-Introduction to Service Oriented Architecture
SOA unit-3-notes-Introduction to Service Oriented ArchitectureSOA unit-3-notes-Introduction to Service Oriented Architecture
SOA unit-3-notes-Introduction to Service Oriented Architecture
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 

Similar to Web services-Notes (20)

SOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdf
SOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdf
SOA UNIT-IV.pdfSOA UNIT-IV.pdfSOA UNIT-IV.pdf
 
Unit iii soa
Unit iii soaUnit iii soa
Unit iii soa
 
Soa 8 soa technologies for web services
Soa 8 soa technologies for web servicesSoa 8 soa technologies for web services
Soa 8 soa technologies for web services
 
SOA and Monolith Architecture - Micro Services.pptx
SOA and Monolith Architecture - Micro Services.pptxSOA and Monolith Architecture - Micro Services.pptx
SOA and Monolith Architecture - Micro Services.pptx
 
Unit-I-Introduction.pptx
Unit-I-Introduction.pptxUnit-I-Introduction.pptx
Unit-I-Introduction.pptx
 
Web services provide an organization without human supervision
Web services provide an organization without human  supervisionWeb services provide an organization without human  supervision
Web services provide an organization without human supervision
 
Soa chapter 5
Soa chapter 5Soa chapter 5
Soa chapter 5
 
Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...
 
Applying xml
Applying xmlApplying xml
Applying xml
 
Web services
Web servicesWeb services
Web services
 
web services-May 25.ppt
web services-May 25.pptweb services-May 25.ppt
web services-May 25.ppt
 
IEEE_CCNC_Presentation_Peyman
IEEE_CCNC_Presentation_PeymanIEEE_CCNC_Presentation_Peyman
IEEE_CCNC_Presentation_Peyman
 
CHP-4.pptx
CHP-4.pptxCHP-4.pptx
CHP-4.pptx
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
web programming
web programmingweb programming
web programming
 
CS-802 Act-1.ppt
CS-802 Act-1.pptCS-802 Act-1.ppt
CS-802 Act-1.ppt
 
web service technologies
web service technologiesweb service technologies
web service technologies
 
Web service architecture
Web service architectureWeb service architecture
Web service architecture
 
Wcf routing kt
Wcf routing ktWcf routing kt
Wcf routing kt
 
SOA unit-3-notes-Introduction to Service Oriented Architecture
SOA unit-3-notes-Introduction to Service Oriented ArchitectureSOA unit-3-notes-Introduction to Service Oriented Architecture
SOA unit-3-notes-Introduction to Service Oriented Architecture
 

More from Ramco Institute of Technology, Rajapalayam, Tamilnadu, India

AD3251-Data Structures Design-Notes-Tree.pdf
AD3251-Data Structures  Design-Notes-Tree.pdfAD3251-Data Structures  Design-Notes-Tree.pdf
AD3251-Data Structures Design-Notes-Tree.pdf
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
AD3251-Data Structures Design-Notes-Searching-Hashing.pdf
AD3251-Data Structures  Design-Notes-Searching-Hashing.pdfAD3251-Data Structures  Design-Notes-Searching-Hashing.pdf
AD3251-Data Structures Design-Notes-Searching-Hashing.pdf
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
ASP.NET-stored procedure-manual
ASP.NET-stored procedure-manualASP.NET-stored procedure-manual
Neural networks using tensor flow in amazon deep learning server
Neural networks using tensor flow in amazon deep learning serverNeural networks using tensor flow in amazon deep learning server
Neural networks using tensor flow in amazon deep learning server
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Mobile Computing-Unit-V-Mobile Platforms and Applications
Mobile Computing-Unit-V-Mobile Platforms and ApplicationsMobile Computing-Unit-V-Mobile Platforms and Applications
Mobile Computing-Unit-V-Mobile Platforms and Applications
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
CS8601 mobile computing Two marks Questions and Answer
CS8601 mobile computing Two marks Questions and AnswerCS8601 mobile computing Two marks Questions and Answer
CS8601 mobile computing Two marks Questions and Answer
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Mobile computing Unit III MANET Notes
Mobile computing Unit III MANET NotesMobile computing Unit III MANET Notes
Unit II -Mobile telecommunication systems
Unit II -Mobile telecommunication systemsUnit II -Mobile telecommunication systems
Unit II -Mobile telecommunication systems
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Mobile computing unit-I-notes 07.01.2020
Mobile computing unit-I-notes 07.01.2020Mobile computing unit-I-notes 07.01.2020
Mobile computing unit-I-notes 07.01.2020
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Virtual lab - Routing in Mobile Adhoc Networks
Virtual lab - Routing in Mobile Adhoc NetworksVirtual lab - Routing in Mobile Adhoc Networks
Virtual lab - Routing in Mobile Adhoc Networks
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Flipped class collaborative learning-kaliappan-rit
Flipped class collaborative learning-kaliappan-ritFlipped class collaborative learning-kaliappan-rit
Flipped class collaborative learning-kaliappan-rit
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Building Service Oriented Architecture based applications
Building Service Oriented Architecture based applicationsBuilding Service Oriented Architecture based applications
Building Service Oriented Architecture based applications
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Innovative Practice-ZigSaw
Innovative Practice-ZigSaw Innovative Practice-ZigSaw
Innovative practice -Three step interview-Dr.M.Kaliappan
Innovative practice -Three step interview-Dr.M.KaliappanInnovative practice -Three step interview-Dr.M.Kaliappan
Innovative practice -Three step interview-Dr.M.Kaliappan
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Service Oriented Architecture-Unit-1-XML Schema
Service Oriented Architecture-Unit-1-XML SchemaService Oriented Architecture-Unit-1-XML Schema
Service Oriented Architecture-Unit-1-XML Schema
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
IT6801-Service Oriented Architecture-Unit-2-notes
IT6801-Service Oriented Architecture-Unit-2-notesIT6801-Service Oriented Architecture-Unit-2-notes
IT6801-Service Oriented Architecture-Unit-2-notes
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Innovative Practice-Think-pair-share-Topic: DTD for TV schedule
Innovative Practice-Think-pair-share-Topic: DTD for TV scheduleInnovative Practice-Think-pair-share-Topic: DTD for TV schedule
Innovative Practice-Think-pair-share-Topic: DTD for TV schedule
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
IT6801-Service Oriented Architecture- UNIT-I notes
IT6801-Service Oriented Architecture- UNIT-I notesIT6801-Service Oriented Architecture- UNIT-I notes
IT6801-Service Oriented Architecture- UNIT-I notes
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Soa unit-1-well formed and valid document08.07.2019
Soa unit-1-well formed and valid document08.07.2019Soa unit-1-well formed and valid document08.07.2019
Soa unit-1-well formed and valid document08.07.2019
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Soa unit-1-xml namespaces 09.07.2019
Soa unit-1-xml namespaces 09.07.2019Soa unit-1-xml namespaces 09.07.2019

More from Ramco Institute of Technology, Rajapalayam, Tamilnadu, India (20)

AD3251-Data Structures Design-Notes-Tree.pdf
AD3251-Data Structures  Design-Notes-Tree.pdfAD3251-Data Structures  Design-Notes-Tree.pdf
AD3251-Data Structures Design-Notes-Tree.pdf
 
AD3251-Data Structures Design-Notes-Searching-Hashing.pdf
AD3251-Data Structures  Design-Notes-Searching-Hashing.pdfAD3251-Data Structures  Design-Notes-Searching-Hashing.pdf
AD3251-Data Structures Design-Notes-Searching-Hashing.pdf
 
ASP.NET-stored procedure-manual
ASP.NET-stored procedure-manualASP.NET-stored procedure-manual
ASP.NET-stored procedure-manual
 
Neural networks using tensor flow in amazon deep learning server
Neural networks using tensor flow in amazon deep learning serverNeural networks using tensor flow in amazon deep learning server
Neural networks using tensor flow in amazon deep learning server
 
Mobile Computing-Unit-V-Mobile Platforms and Applications
Mobile Computing-Unit-V-Mobile Platforms and ApplicationsMobile Computing-Unit-V-Mobile Platforms and Applications
Mobile Computing-Unit-V-Mobile Platforms and Applications
 
CS8601 mobile computing Two marks Questions and Answer
CS8601 mobile computing Two marks Questions and AnswerCS8601 mobile computing Two marks Questions and Answer
CS8601 mobile computing Two marks Questions and Answer
 
Mobile computing Unit III MANET Notes
Mobile computing Unit III MANET NotesMobile computing Unit III MANET Notes
Mobile computing Unit III MANET Notes
 
Unit II -Mobile telecommunication systems
Unit II -Mobile telecommunication systemsUnit II -Mobile telecommunication systems
Unit II -Mobile telecommunication systems
 
Mobile computing unit-I-notes 07.01.2020
Mobile computing unit-I-notes 07.01.2020Mobile computing unit-I-notes 07.01.2020
Mobile computing unit-I-notes 07.01.2020
 
Virtual lab - Routing in Mobile Adhoc Networks
Virtual lab - Routing in Mobile Adhoc NetworksVirtual lab - Routing in Mobile Adhoc Networks
Virtual lab - Routing in Mobile Adhoc Networks
 
Flipped class collaborative learning-kaliappan-rit
Flipped class collaborative learning-kaliappan-ritFlipped class collaborative learning-kaliappan-rit
Flipped class collaborative learning-kaliappan-rit
 
Building Service Oriented Architecture based applications
Building Service Oriented Architecture based applicationsBuilding Service Oriented Architecture based applications
Building Service Oriented Architecture based applications
 
Innovative Practice-ZigSaw
Innovative Practice-ZigSaw Innovative Practice-ZigSaw
Innovative Practice-ZigSaw
 
Innovative practice -Three step interview-Dr.M.Kaliappan
Innovative practice -Three step interview-Dr.M.KaliappanInnovative practice -Three step interview-Dr.M.Kaliappan
Innovative practice -Three step interview-Dr.M.Kaliappan
 
Service Oriented Architecture-Unit-1-XML Schema
Service Oriented Architecture-Unit-1-XML SchemaService Oriented Architecture-Unit-1-XML Schema
Service Oriented Architecture-Unit-1-XML Schema
 
IT6801-Service Oriented Architecture-Unit-2-notes
IT6801-Service Oriented Architecture-Unit-2-notesIT6801-Service Oriented Architecture-Unit-2-notes
IT6801-Service Oriented Architecture-Unit-2-notes
 
Innovative Practice-Think-pair-share-Topic: DTD for TV schedule
Innovative Practice-Think-pair-share-Topic: DTD for TV scheduleInnovative Practice-Think-pair-share-Topic: DTD for TV schedule
Innovative Practice-Think-pair-share-Topic: DTD for TV schedule
 
IT6801-Service Oriented Architecture- UNIT-I notes
IT6801-Service Oriented Architecture- UNIT-I notesIT6801-Service Oriented Architecture- UNIT-I notes
IT6801-Service Oriented Architecture- UNIT-I notes
 
Soa unit-1-well formed and valid document08.07.2019
Soa unit-1-well formed and valid document08.07.2019Soa unit-1-well formed and valid document08.07.2019
Soa unit-1-well formed and valid document08.07.2019
 
Soa unit-1-xml namespaces 09.07.2019
Soa unit-1-xml namespaces 09.07.2019Soa unit-1-xml namespaces 09.07.2019
Soa unit-1-xml namespaces 09.07.2019
 

Recently uploaded

Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
KrishnaveniKrishnara1
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
enizeyimana36
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
HODECEDSIET
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
Madan Karki
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 

Recently uploaded (20)

Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 

Web services-Notes

  • 1. 1 RAMCO INSTITUTE OF TECHNOLOGY Department of Computer Science and Engineering Academic Year: 2019- 2020 (Odd Semester) Degree, Semester & Branch: VII Semester B.E. Computer Science and Engineering. Course Code & Title: IT6801 Service Oriented Architecture. Name of the Faculty member: Dr.M.Kaliappan, Associate Professor/CSE ---------------------------------------------------------------------------------------------------------------- UNIT IV WEB SERVICES Service descriptions – WSDL – Messaging with SOAP – Service discovery – UDDI – Message Exchange Patterns – Orchestration – Choreography –WS Transactions ------------------------------------------------------------------------------------------------------------------- Credit: Thomas Erl, “Service Oriented Architecture: Concepts, Technology, and Design --------------------------------------------------------------------------------------------------------------- • Outcome – Describe the web services using WSDL, SOAP and UDDI.(L2). 4.1 Web services framework It is comprised of all of the parts such as an abstract (vendor-neutral) technology platform, Web services, service descriptions (WSDL), messages (SOAP), a service description registration and discovery architecture (UDDI) and a well-defined architecture that supports messaging patterns and compositions. The structural relationship between SOA and Web service Figure 1: relationship between SOA and web service • Services (as Web services) – A service is a means of encapsulating various extents of logic. • Every Web service can be associated with: – A temporary classification based on the roles during the runtime processing of a message – A permanent classification based on the application logic and the roles it assumes within a solution environment. • Service roles – A Web service is capable of assuming different roles depending on the context. • the initiator, (Service requestor)
  • 2. 2 • relayer, (intermediaries) • the recipient of a message(service provider) • Service provider – The Web service is invoked via an external source such as a service requestor – The recipient of a request message is classified as a service provider • The service provider may reply to a request message with a response message. • The term "service provider" is used to identify the organization (or individual) responsible for providing the Web service. • service provider entity (the organization or individual providing the Web service) • service provider agent (the Web service itself, acting as an agent on behalf of its owner) • Service requestor – Any unit of processing logic capable of issuing a request message is classified as a service requestor. – The sender of the request message is classified as a service requestor – A Web service is always a service provider but also can act as a service requestor – service requestor entity (the organization or individual requesting the Web service) • Case study – TLS's Purchase Order Service submits electronic POs that are received by RailCo's Order Fulfillment Service. – Upon shipping the order, RailCo's Invoice Submission Service sends an electronic invoice to TLS's Accounts Payable Service.
  • 3. 3 • Intermediaries or intermediary services – Web services and service agents’ route and process a message after it is initially sent and before it arrives at its destination are referred to as intermediaries or intermediary services. Because an intermediary receives and submits messages, it always transitions through service provider and service requestor roles. – Two types of intermediaries. • passive intermediary • Active intermediary • Passive intermediary – It is responsible for routing messages to a subsequent location. – It may use information in the SOAP message header to determine the routing path. • Active intermediaries – It route messages to a forwarding destination. Prior to transmitting a message, these services process and alter the message contents. – Active intermediaries will look for particular SOAP header blocks and perform actions in response to the information. They always alter data in header blocks and may insert or even delete header blocks entirely.
  • 4. 4 • Initial sender and ultimate receiver – Initial senders are simply service requestors that initiate the transmission of a message. Therefore, the initial sender is always the first Web service in a message path. – Service providers that exist as the last Web service along a message's path • Case study – The TLS Load Balancing Service acting as an intermediary between the RailCo initial sender and the TLS ultimate receiver • Service compositions – Any service enlists one or more additional services to complete a given task. Further, any of the enlisted services call other services to complete a given sub- task. Therefore, each service participates in a composition as service composition member
  • 5. 5 • Case Study • When the TLS Accounts Payable Service receives an invoice, it invokes a series of additional services to fully process the invoice contents: • It first uses the Vendor Profile Service to validate the invoice header data and link the invoice document to a vendor account from vendor profile service. • Next, the Accounts Payable Service extracts taxes and shipping fees and directly logs all amounts into the appropriate A/P accounts. • Finally, the Accounts Payable Service passes the invoice total to Ledger Service to update the General Ledger. 4.1.1 Service models • Service models refer to permanent classifications that represent the application logic housed by the service, as well as its business-related role within the solution. – Business service model – Utility service model – Controller service model 4.1.1.1 Business service model • Within an SOA, It encapsulates a distinct set of business logic within a well-defined functional boundary. • It is fully autonomous that are participate in service compositions. 4.1.1.2 Utility service model • Any Web service or service agent designed for reuse can be classified as a utility service.
  • 6. 6 4.1.1.3 Controller service model • Service compositions are comprised of independent services that execute the overall business task. The controller service is acting as the parent service to service composition members. Case study • The Accounts Payable Service acting as a business and controller service, composing two other business services 4.2 Service description (WSDL) (16 marks) Or Write the WSDL document consisting of abstract and concrete parts for Arithmetic calculator web service (16 marks) – Web service Description language (WSDL) is an XML format for describing web services as a set of endpoints operating on messages containing procedure-oriented information. The operations and messages are described abstractly. – It establishes a loosely coupled form of communication between services. • Case study – Each service requestor is using the WSDL of a service provider to ensure that messages sent will be understood and accepted
  • 7. 7 4.2.1 WSDL definition or Service endpoints and service descriptions • A WSDL describes the point of contact for a service provider known as the service endpoint. • It provides a formal definition of the endpoint interface and establishes the physical address of the service. • Two categories – abstract description – concrete description 4.2.1.1 Abstract description • An abstract description establishes the interface of the Web service without any reference to the technology or enables a Web service to transmit messages. • Three main parts of an abstract description. – portType, operation, and message
  • 8. 8 – The parent portType provides a high-level view of the service interface that includes groups of functions known as operations. – Each operation represents a specific logic or action performed by the service. A service operation is a public method. – Web services rely on messaging-based communication, parameters are represented as messages. Therefore, an operation consists of a set of input and output messages. 4.2.1.2 Concrete description • The abstract Web service interface needs to be connected to a physical transport protocol(SOAP) for its communication. This connection is defined in the concrete description portion of the WSDL file. • Three parts of concrete description : • binding, port, and service – A WSDL description's binding establish physical connections between services. – Simple Object Access Protocol(SOAP) is the common form of binding. A binding can apply to an entire interface or a specific operation. – Port represents the physical address at which a service can be accessed with a specific protocol. – Within the WSDL language, the service is used to refer to a group of related endpoints. Case Study • Service: TLS Accounts Payable Service receive invoices submitted by numerous vendors. • abstract description : – One interface definition contains a single operation called SubmitInvoice. – SubmitInvoice operation • One input and one output message. • The input message is accepting the invoice document from a service requestor (RailCo Invoice Submission Service). • The output message is a message of acknowledgement indicating that the submitted invoice document has been successfully received and that its contents are valid. – concrete description • binds the operation to the SOAP protocol • provides a location address for the Accounts Payable Service 4.2.1.3 Metadata and service contracts • WSDL definitions rely on XSD schemas to formalize the structure of incoming and outgoing messages. • Policies provide rules and processing details through the WSDL and XSD schema documents. • Three separate documents describe an aspect of a service: – WSDL definition – XSD schema – policy • Service description documents such as WSDL definition, XSD schema, and policy can be classified as service metadata, as each provides information about the service. • A service contract comprised of a collection of service descriptions (WSDL) and additional documents with conditions. • Service contract refers to agreements not expressed by service descriptions. – For example, a Service Level Agreement (SLA) agreed upon by the owners of a service provider and its requestor that can be considered a part of an service contract.
  • 9. 9 4.2.1.4 Service Contract • A service contract comprised of a collection of service descriptions(WSDL) and additional documents(XSD schema, policy, SLA) 4.2.1.5 Semantic descriptions • A semantic description is a supplementary documentation published along with service descriptions (WSDL) to provide sufficient semantic information in a structured manner so that, service requestors can evaluate and choose suitable service providers independently. • Service policies can be designed to express the semantic descriptions of service behavior. 4.2.1.6 Service description advertisement and discovery – Advertising and discovering service descriptions may become necessary for amount of services increases within and outside of organizations. – Universal Description, Discovery, and Integration (UDDI) provides a registry model worth describing. • Private and public registries – UDDI is a accepted standard for structuring registries that keep track of service descriptions These registries can be searched manually and accessed programmatically. – Public registries accept registrations from any organizations. Once signed up, organizations acting as service provider can register their web services. – Private registries can be implemented within organization boundaries to provide a central repository for descriptions of all services the organization develops, leases, or purchases. Ex: Arithmetic web service in .NET public class WebService : System.Web.Services.WebService { public WebService () { //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World";
  • 10. 10 } [WebMethod] public int add(int a, int b) { return (a+b); } [WebMethod] public int sub(int a, int b) { return (a - b); } 4.2.2 WSDL document for Arithmetic calculator web service (16 marks) <wsdl:portType name="WebServiceSoap"> <wsdl:operation name="add"> <wsdl:input message="tns:addSoapIn"/> <wsdl:output message="tns:addSoapOut"/> </wsdl:operation> <wsdl:operation name="sub"> <wsdl:input message="tns:subSoapIn"/> <wsdl:output message="tns:subSoapOut"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="WebServiceSoap" type="tns:WebServiceSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="add"> <soap:operation soapAction="http://tempuri.org/add" style="document"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> SOAP input message (Service requestor) <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org" <soap:Body> <add xmlns="http://tempuri.org/">
  • 11. 11 <a> int </a> <b> int </b> </add> </soap:Body> </soap:Envelope> SOAP output message (Service provider) <?xml version="1.0" encoding="utf-8"?> </soap:Envelope> <soap:Body> <addResponse xmlns="http://tempuri.org/"> <addResult > int </addResult> </addResponse> </soap:Body> </soap:Envelope> <wsdl:service name="WebService"> <wsdl:port name="WebServiceSoap" binding="tns:WebServiceSoap"> <soap:address location="http://localhost:61433/WebService.asmx"/> </wsdl:port> </wsdl:service> 4.3 Message with SOAP • SOAP – The Simple Object Access Protocol(SOAP) specification is universally accepted standard transport protocol for messages processed by Web services • All communication between services is message-based, the messaging framework provide standardization for services. • SOAs emphasis on a message-centric application designs that increasing amount of business and application logic is embedded into messages. • The messaging framework can be flexible and highly extensible. 4.3.1 SOAP Messages format (16 marks) • Envelope – SOAP message is packaged into a container known as an envelope. – The envelope is responsible for housing all parts of the message • Header – Header is hosting Meta information. –
  • 12. 12 • Body – The actual message contents are hosted by the message body, which consists of XML formatted data. – The contents of a message body are referred to as the message payload 4.3.1.1 Header block • Supplementary Meta information stored in the header area. • Header blocks contain information required for any services with contact to process and route the message based on the rules, instructions, and properties. • Features of message with header blocks : – processing instructions may be executed by service intermediaries or the ultimate receiver – routing or workflow information associated with the message – security measures implemented in the message – reliability rules related to the delivery of the message – context and transaction management information – correlation information (an identifier used to associate a request message with a response message) EXample <env:Header> <MaxTime value="10000" role="ultimateReceiver"/> </env:Header> <env:Header> <MaxRelayTime value="10000“ role=“next” relay=“true"/> </env:Header> <maxRelayTime> must be relayed from node to node role=“next” - intermediate node 4.3.1.2 Message styles • SOA relies on document-style messages to enable larger payloads, interface operations, and reduced message transmission volumes between services. • Case study – Submit invoices electronically to TLS via the Invoice Submission Service, all three of these documents needed to be included in the same message.
  • 13. 13 – As a result, a single document-style message used by RailCo is capable of providing an invoice, an account statement, and volume discount pricing formulas. 4.3.1.3 Attachments – SOAP attachments are commonly employed to transport binary files, such as images. 4.3.1.4 Faults – SOAP messages offer exception handling logic by providing an optional fault section that can reside within the body area. – The section is store a simple message that deliver error condition information when an exception occurs. Example: <env:Body> <env:Fault> <env: Code> <env: Value> env:Sender</env:Value> </env: Code> <env: Reason> <env:Text>Processing error</env:Text> </env: Reason> </env:Fault> 4.3.1.5 Nodes • The programs that services use to transmit and receive SOAP messages are referred to as SOAP nodes. • A SOAP node transmitting a SOAP message received by the service logic • Node types – The SOAP specification has a different "role" is refers to SOAP types or labels as concepts. – SOAP sendera • SOAP node that transmits a message – SOAP receivera • SOAP node that receives a message – SOAP intermediarya • SOAP node that receives and transmits a message, and optionally processes the message prior to transmission
  • 14. 14 – initial SOAP sender • the first SOAP node to transmit a message – ultimate SOAP receiver • the last SOAP node to receive a message Case Study • When the RailCo Invoice Submission Service sends a SOAP message containing an invoice, the SOAP server software (initial SOAP sender node) executes the transmission of the SOAP message via HTTP. • Prior to the TLS Accounts Payable Service receiving the invoice message, the TLS SOAP server or listener (ultimate SOAP receiver node) receives the message first. • SOAP intermediaries – SOAP intermediary nodes transition through service provider and service requestor roles, – SOAP intermediary nodes move through SOAP receiver and SOAP sender types when processing a message. – Types • Forwarding intermediary nodes • Active intermediary nodes. – Forwarding intermediary nodes • it is responsible for relaying the contents of a message to a subsequent SOAP node • The intermediary will process and alter header block information relating to the forwarding logic it is executing. – Active intermediary nodes • An active intermediary can alter existing header blocks, insert new ones, and execute a variety of supporting actions
  • 15. 15 4.3.1.6 Message paths • A message path refers to the route taken by a message from when it is first sent until it arrives at its ultimate destination. Therefore, a message path consists of at least one initial sender, one ultimate receiver, and zero or more intermediaries. • The use of header blocks processed by intermediaries can dynamically determine the path of a message. This may be routing logic, workflow logic, or environmental conditions. • A message path determined at runtime Write SOAP request message and response message for arithmetic calculator (8 marks) SOAP input message (Service requestor) <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org" <soap:Body> <add xmlns="http://tempuri.org/"> <a> int </a> <b> int </b> </add> </soap:Body> </soap:Envelope> SOAP output message (Service provider) <?xml version="1.0" encoding="utf-8"?> </soap:Envelope> <soap:Body> <addResponse xmlns="http://tempuri.org/"> <addResult > int </addResult> </addResponse> </soap:Body> </soap:Envelope> 4.4 Service discovery (UDDI) – (16 marks) • UDDI (2 marks)
  • 16. 16 – UDDI stands for Universal Description, Discovery, and Integration. – UDDI is an XML-based standard for describing, publishing, and finding web services • UDDI has two sections – A registry of all web service's metadata, including a pointer to the WSDL description of a service. – A set of WSDL port type definitions for manipulating and searching that registry 4.4.1 Private and public registries (2 marks) – UDDI is a standard for structuring registries that keep track of service descriptions. – Public registries accept registrations from any organizations. Once signed up, organizations acting as service provider can register their web services. – Private registries can be implemented within organization boundaries to provide a central repository for descriptions of all services. The organization develops, leases, or purchases. 4.4.2 Three elements of UDDI.(2 marks) – White Pages, – Yellow Pages, – Green Pages. • White pages – Basic information about the company and its business. – Basic contact information including business name, address, contact phone number, etc. – A Unique identifiers for the company tax IDs. • Yellow Pages – Yellow pages contain more details about the company. – Yellow pages include industry codes, product codes, and business identification codes. • Green Pages – Green pages contain technical information about a web service. • The various interfaces • The URL locations 4.4.3 The basic structure of a UDDI – (16 marks) – businessEntity: Detail about company – businessService: Individual web service – bindingTemplate- technical descriptions of the web services – tModel
  • 17. 17 4.4.3.1 businessEntity Data Structure(16 marks) or Develop the businessEntity data Structure of UDDI. Assume, IBM is the service provider that provides arithmetic calculator web service (16 marks) • The business entity structure represents the services provider. • This structure contains information about the company including – contact information – industry categories – business identifiers – list of services provided <businessEntity businessKey = "uuid” operator = "www.ibm.com" authorizedName = "John Doe"> <name>Acme Company</name> <description> We create Arithmetic Web services</description> <contacts> <contact useType = "general info"> <personName>John Doe</personName> <phone>(123) 123-1234</phone> <email>jdoe@acme.com</email> </contact> </contacts> </businessEntity> 4.4.3.2 businessService Data Structure • The business service structure represents an individual web service provided by the business entity. • Its description includes information on – binding to the web service, – type of web services – Categories it belongs to. <businessService serviceKey = "uuid" businessKey = "uuid:C"> <name> Calculator Web Service</name> <description> Arithmetic calculation</description> </businessService> 4.4.3.3 bindingTemplate Data Structure – Binding templates are the technical descriptions of the web services represented by the business service structure. <bindingTemplate serviceKey = "uuid" bindingKey = "uuid:C00"> <description> Calculator SOAP Binding</description> <accessPoint URLType = "http"> http://localhost:8080 </accessPoint>
  • 18. 18 </bindingTemplate> 4.4.3.4 tModel Data Structure • tModel stands for technical model. • tModel is describing the various business, service, and template structures stored within the UDDI registry. <tModel tModelKey = "uuid:xyz987.." operator = "www.ibm.com" authorizedName = "John Doe"> <name> Calculator Interface Port Type</name> <overviewDoc> <overviewURL> http://localhost/ Calculator.wsdl </overviewURL> </overviewDoc> </tModel> 4.5 Message Exchange Pattern (MEP) (8 marks) • A MEP is a interaction pattern to define the message exchange between two services. • Message exchange patterns (MEPs) represent a set of templates that provide a group of sequences for the exchange of messages. • Common example is a request and response pattern. • Types – Primitive MEPs – Complex MEPs 4.5.1 Primitive MEPs(2 marks)(Nov 2016) • Request-response • Fire and forget 4.5.1.1 Request-response • This MEP used in distributed application environments that defines synchronous communication • The request-response MEP establishes a simple exchange in which a message is first transmitted from a source (service requestor) to a destination (service provider). • Upon receiving the message, the destination (service provider) then responds with a message back to the source (service requestor).
  • 19. 19 4.5.1.2 Fire-and-forget • This simple asynchronous pattern is based on the unidirectional transmission of messages from a source to one or more destinations • Types of fire-and-forget MEP – The single-destination pattern, where a source sends a message to one destination only. – The multi-cast pattern, where a source sends messages to a predefined set of destinations. – The broadcast pattern, where the message is sent out to a broader range of recipient destinations. Case study The TLS Accounts Payable Service contains a rule that when an invoice header fails validation, an e-mail notification is generated. To execute this step, the Accounts Payable Service sends a message to the Notification Service. This utility service records the message details in a notification log database 4.5.2 Complex MEPs • Primitive MEPs can be assembled in various configurations to create different types of messaging models called complex MEPs. • A classic example  Publish-and-subscribe model(Dish TV provider: Airtel, Sun, Reliance etc..). Steps: • Step 1. The subscriber sends a message to notify the publisher that it wants to receive messages on a particular topic. • Step 2. Upon the availability of the requested information, the publisher broadcasts messages on the particular topic to all topic's subscribers
  • 20. 20 Case study The utility Notification Service periodically generates and distributes notification messages for a number of different topics. Messages from outside vendors that fail validation, for example, are first logged in a dedicated notification repository. At the end of every working day, the Notification Service queries this repository to retrieve all failed submissions 4.5.3 MEP and SOAP • The SOAP provides a messaging framework designed to support single-direction message transfer. • The SOAP allows messaging characteristics and behaviors to be implemented via SOAP header blocks. • The SOAP provides an optional parameter to identify the MEP associated with a message. 4.5.4 MEP and WSDL • MEPs play a vital role in WSDL as they can coordinate the input and output messages associated with an operation. • The association of MEPs to WSDL operations embeds behavior into the interface definition. • WSDL operations support different configurations of incoming, outgoing, and fault messages. These configurations are referred as message exchange patterns. 4.5.5 WSDL 1.1 specification supports four message exchange patterns (8 marks) • Request-response operation: Service requestor submits a message to service provider, upon receiving a message, the service provider respond with a message or a fault message. • Solicit-response operation service provider submit a message to a service requestor, the service provider expects a standard response message or a fault message. • One-way operation: The service expects a single message and is not obligated to respond. • Notification operation: The service sends a message and expects no response.
  • 21. 21 Figure : The four basic patterns supported by WSDL 1.1 4.5.6 WSDL 2.0 specification support to eight patterns corresponds to MEP. (8 marks) • The in-out pattern is equivalent to the WSDL 1.1 request-response operation. • The out-in pattern, which is the reverse of the previous pattern where the service provider initiates the exchange by transmitting the request. (Equivalent to the WSDL 1.1 solicit- response operation.) • The in-only pattern, which supports the fire-and-forget MEP. • The out-only pattern, which is the reverse of the in-only pattern. It is used primarily in support of event notification. (Equivalent to the WSDL 1.1 notification operation.) • The robust in-only pattern, a variation of the in-only pattern that provides the option for fault response message as a result of a transmission or processing error. • The robust out-only pattern, which, like the out-only pattern, has an outbound message initiating the transmission. The difference here is that a fault message can be issued in response to the receipt of this message. • The in-optional-out pattern, which is similar to the in-out pattern with one exception. In this, the delivery of a response message is optional. This pattern also supports the generation of a fault message. • The out-optional-in pattern is the reverse of the in-optional-out pattern, where the incoming message is optional. Fault message generation is again supported.
  • 22. 22 4.6 Service Activity (8 marks) Activity An activity is representing a task or a unit of work performed by a set of services. Service Activity (2 marks) The interaction of a group of services working together to complete a task can be referred to as a service activity 4.6.1 Primitive and complex service activities • Primitive activity(2 marks) – Primitive activity is synchronous communication and consists of two services exchanging information using a standard request-response MEP – Primitive activities are almost always short-lived • Complex activities(2 marks) – In complex activities, many services can involve that collaborate to complete multiple processing steps over a long period of time – Ex: composition-oriented concepts, such as choreography and orchestration.
  • 23. 23 4.6.2 Service activities and SOA • In SOAs, the interaction of a group of services working together to complete a task . • The scope of a service activity is primarily concerned with the processing and communication between services. • Complex activities are commonplace in service-oriented solutions and can involve numerous participating services. Case study  1. The initial sender, RailCo's Invoice Submission Service, transmits the invoice message.  2. The 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.  3. The 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.  4. The 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.  5. Finally the activity ends, as the Accounts Payable Service completes its processing cycle by sending a response message back to RailCo. 4.7 Coordination (8 marks) • Coordination provides a context management framework using a service composition headed by a coordinator service. • Examples of implementations of this framework are WS-Atomic Transaction and WS- BusinessActivity.
  • 24. 24 4.7.1 Coordinator composition This coordinator service controls a composition of other services that each plays a specific part in the management of context data • The coordinator composition consists of the following services: – Activation service: Responsible for the creation of a new context for a particular activity in the context. – Registration service: Allows participating services to use context information received from the activation service to register for a supported context protocol. – Protocol-specific services: These services represent the protocols supported by the coordinator. – Coordinator The controller service of this composition, also known as the coordination service. 4.7.2 Coordination types and coordination protocols • Each coordinator is based on a coordination type, which specifies the underlying logic of an activity for which context information is being managed. • The two coordination types – WS-Atomic Transaction – WS-Business Activity. • Coordination type extensions provide a set of coordination protocols, which represent unique coordination types and consist of a collection of specific behaviors and rules. • A protocol is a set of rules that are imposed on activities and all registered participants must follow. 4.7.3 Coordination contexts and coordination participants • A context created by the activation service is referred to as a coordination context. It contains a collection of information that represents the activity and various supplementary data.
  • 25. 25 • Examples: Type of data held within a coordination context include: – a unique identifier that represents the activity – an expiration value – coordination type information • A service that wants to take part in an activity managed by WS-Coordination must request the coordination context from the activation service. It 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. 4.7.3.1 The activation and registration process • The coordination service composition is instantiated when an application service contacts the activation service Via a CreateCoordinationContext request message, • It asks the activation service to generate a set of new context data. Once passed back with the ReturnContext message, the application service now can invite other services to participate in the coordination. • This invitation consists of the context information received from the activation service. 4.7.3.2 Coordination and SOA • A coordinator-based context management framework, as provided by WS-Coordination and its supporting coordination types, introduces a layer of composition control to SOAs
  • 26. 26 • It standardizes the management and interchange of context information within a variety of key business protocols. 4.8 Orchestration (8 marks) • Organizations employed enterprise application integration (EAI) middleware to integrate various legacy environments. • In these systems, a centrally controlled set of workflow logic facilitates interoperability between different applications. Ex: WS-BPEL • Orchestration represent business logic and services-based venue • A common implementation of orchestration is the hub-and-spoke model that allows multiple external participants to interface with a central orchestration engine. • With orchestration, different processes can be connected without redevelop the solutions for automated process. Advantages: • Orchestration can significantly reduce the complexity of solution environments. • Workflow logic is abstracted and more easily maintained 4.8.1 Business protocols and process definition (2 marks) – The workflow logic comprises an orchestration that consists of numerous business rules, conditions, and events. – Collectively, these parts of an orchestration establish a business protocol that defines how participants (spoke) interoperate to achieve the completion of a business task. – The details of the workflow logic encapsulated and expressed by an orchestration are contained within a process definition
  • 27. 27 4.8.2 Process services and partner services – The process itself is represented as a process service – Identified process definitions are allowing the process participants. – Other services allowed to interact with the process service are identified as partner services or partner links. – Depending on the workflow logic, the process service can be invoked by an external partner service 4.8.3 Basic activities and structured activities – WS-BPEL breaks down workflow logic into a series of predefined primitive activities such as receive, invoke, reply, throw, and wait. – Basic activities represent workflow actions which can be assembled using the logic supplied by structured activities (sequence, switch, while, flow, pick). 4.8.3.1 Sequences, flows, and links • Sequence – A sequence aligns groups of related activities into a list that determines a sequential execution order. In Sequences, one piece of application logic is dependent on the outcome of another. • Flows – Flows also contain groups of related activities, but they introduce different execution requirements. Pieces of application logic can execute concurrently within a flow, meaning that there is not necessarily a requirement for one set of activities to wait before another finishes. • Links – Links are used to establish formal dependencies between activities that are part of flows. Before an activity fully can complete, it must ensure that any requirements established in outgoing links first are met. Similarly, before any linked activity can begin, requirements contained within any incoming links first must be satisfied. Rules provided by links are also referred to as synchronization dependencies 4.8.4 Orchestrations and activities • An activity can be applied to any logical unit of work completed by a service-oriented solution. • The scope of a orchestration can be classified as a complex and long-running activity 4.8.5 Orchestration and coordination • Orchestration is represented by WS-BPEL, can fully utilize the Coordination context management framework by incorporating the coordination type.
  • 28. 28 • The coordination protocols designed to support complex, and long-running activities 4.8.6 Orchestration and SOA • Orchestration provides an automation model where business process logic is centralized yet still extensible and composable . • Through the use of orchestrations, service-oriented solution environments become extensible and adaptive. • Orchestrations themselves typically establish a common point of integration for other applications, which makes an implemented orchestration a key integration enabler Case study
  • 29. 29 4.9 Choreography (8 marks) • The goal is to establish a collaboration pattern between services representing different organization. • Choreographies consist of multiple participants that can different roles with different relationships. • Choreographies are reusable, composable, and can be modularized. • The concept of choreography extends the SOA vision to standardize cross-organization collaboration. 4.9.1 WS-CDL (Web Services Choreography Description Language) (2 marks) The WS-CDL is the specifications that organize information exchange between multiple organizations (or even multiple applications within organizations), with an emphasis on public collaboration Ex: Retailer – distributor 4.9.2 Collaboration – The goal is to establish a collaboration pattern between services representing different organization. – Choreographies establish universal interoperability patterns for inter-organization business tasks. – It can be applied to enable collaboration between applications belonging to a single organization. It use orchestration techniques.
  • 30. 30 4.9.3 Roles and participants – Within choreography, a Web service assumes predefined roles. This establishes what the service can do within the context of a particular business task. – Related roles are grouped accordingly, categorized as participants (services). 4.9.4 Relationships and channels – Every action within choreography can be broken down into a series of message exchanges between two services. Each exchange between two roles in choreography is defined as a relationship. Every relationship consequently consists of exactly two roles. – Channels define the characteristics of the message exchange between two specific roles. it fosters dynamic discovery and increases the number of participants within large-scale collaborative tasks. 4.9.5 Interactions and work units o Finally, the actual logic behind a message exchange is encapsulated within an interaction. o An interaction represents actual progress within choreography. o Related to interactions are work units. These impose rules and constraints that must be adhered for an interaction to successfully complete 4.9.6 Reusability, composability, and modularity • Each choreography can be designed in a reusable manner, allowing it to be applied to different business tasks comprised of the same fundamental actions. • Choreography can be assembled from independent modules. These modules can represent distinct sub-tasks and can be reused by different parent choreographies.
  • 31. 31 4.9.7 Orchestrations Vs choreographies (Comparison) (2 marks) • Orchestrations – An orchestration expresses organization-specific business workflow. An organization owns and controls the logic, even if that logic involves interaction with external business partners. – Service orchestration represents a single centralized executable business process (the orchestrator) that coordinates the interaction among different services • choreographies – The goal is to establish a collaboration pattern between services representing different organization. – The decision logic is distributed, with no centralized point 4.9.8 Choreography and SOA • Choreography can assist in the realization of SOA across organization boundaries. • Choreography supports composability, reusability, and extensibility, also 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.
  • 32. 32 4.10 WS-Atomic Transaction (8 marks) • WS- AtomicTransaction is a coordination type that supplies three coordination protocols that can be used to achieve two-phase commit transactions across multiple service participants. • The atomic transaction coordinator makes the ultimate decision to commit or rollback a transaction. This decision is based on votes collected from participants. • Atomic transactions apply an all-or- nothing requirement to work performed as part of an activity • Contemporary SOAs can incorporate cross-service, ACID-type transaction features by using WS-AtomicTransaction. 4.10.1 ACID transactions The WS- AtomicTransaction protocols enable cross-service transaction functionality in distributed application platforms. – Atomic • Either all of the changes within the scope of the transaction succeed, or none of them succeed. This characteristic introduces the need for the rollback feature that is responsible for restoring any changes completed as part of a failed transaction to their original state. – Consistent • None of the data changes made as a result of the transaction can violate the validity of any associated data models. Any violations result in a rollback of the transaction. – Isolated • If multiple transactions occur concurrently, they may not interfere with each other. Each transaction must be guaranteed an isolated execution environment. – Durable • Upon the completion of a successful transaction, changes made as a result of the transaction can survive subsequent failures. 4.10.2 Atomic transaction protocols (2 marks) • WS-Atomic Transaction is an extension of WS-Coordination context management framework. • To participate in an atomic transaction, a service first receives a coordination context from the activation service. It can subsequently register for available atomic transaction protocols.
  • 33. 33 • Transaction protocols : – A Completion protocol is used to initiate the commit or abort states of the transaction. – The Durable 2PC protocol for which services representing permanent data repositories should register. – The Volatile 2PC protocol to be used by services managing temporary data. • Most often these protocols are used to enable a two-phase commit (2PC) that manages an atomic transaction across multiple service participants. 4.10.3 The atomic transaction coordinator – When WS-Atomic Transaction protocols are used, the coordinator controller service can be referred to as an atomic transaction coordinator. – The atomic transaction coordinator plays a key role in managing the participants of the transaction process and in deciding the transaction's ultimate outcome. 4.10.4 The atomic transaction process – The atomic transaction coordinator is responsibility of deciding the outcome of a transaction. The decision is based on receives feedback from all of the transaction participants. – The collection of feedback is separated into two phases. • Prepare phase, all participants are notified by the coordinator, and each is asked to prepare and then issue a vote. Each participant's vote consists of either a "commit" or "abort" request • Commit phase. It now reviews all votes and decides whether to commit or rollback the transaction.
  • 34. 34 4.10.5 Atomic Transaction and SOA – More services emerge within an organization and as service compositions become more commonplace, the need to move transaction boundaries into cross-service interaction scenarios increases. Being able to guarantee an outcome of an activity is a key part of enterprise-level computing, and atomic transactions therefore play an important role in ensuring quality of service. – Not only do atomic transactional capabilities lead to a robust execution environment for SOA activities, they promote interoperability when extended into integrated environments. This allows the scope of an activity to span different solutions built with different vendor platforms, while still being assured a guaranteed all-or-nothing outcome.