To Provide Business Value To The Solutions We Build: Prof. Syed Mustafa (PH.D)
To Provide Business Value To The Solutions We Build: Prof. Syed Mustafa (PH.D)
Primitive SOA
After a message is sent from one Web service to another it travels via
a set of protocols that is globally standardized and accepted.
The use of SOAP, WSDL, XML, and XML Schema allow for messages
to be fully self-contained and support the underlying agreement that
to communicate.
Prof. Syed Mustafa(Ph.D) 25
Contemporary SOA is based on open standards :
Fostering this characteristic can significantly alleviate the cost and effort of
fulfilling future cross-application integration requirements
Partitioning business logic into services that can then be composed has
significant implications as to how business processes can be modeled
BPM models, entity models, and other forms of business intelligence can be
accurately represented through the coordinated composition of business-
centric services
The only remaining concern is the functionality offered via the service
interfaces.
Each end only requires an awareness of the other, therefore allowing each
domain to evolve more independently.
Through the implementation of service layers that abstract business and application
logic, the loose coupling paradigm can be applied to the enterprise as a whole
Prof. Syed Mustafa(Ph.D) 46
Contemporary SOA promotes organizational agility:
The more dependencies that exist between these two parts of an enterprise, the
greater the extent to which change imposes disruption and expense.
An SOA consists of services within services within services, to the point that a
solution based on SOA itself is one of many services within an SOE.
Broadened definition:
SOA can establish an abstraction of business logic and technology that may
introduce changes to business process modeling and technical architecture,
resulting in a loose coupling between these models. These changes foster
service-orientation in support of a service-oriented enterprise.
Prof. Syed Mustafa(Ph.D) 49
Contemporary SOA is an evolution:
When SOA platforms and tools reach an adequate level of maturity, the
utilization of Web services can be extended to support the creation of
enterprise SOA solutions, making the ideal of a service-oriented enterprise
attainable.
• SOA can establish an abstraction of business logic and technology that may
introduce changes to business process modeling and technical architecture,
resulting in a loose coupling between these models.
Designing services to support reuse from the get-go opens the door to
increased opportunities for leveraging existing automation logic.
Adoption of SOA leads to the opportunity to fully leverage the XML data
representation platform.
How building blocks such as these can be realized and maintained within existing financial
and cultural constraints ultimately determines the agility of the organization as a whole.
When accommodating change becomes the norm in distributed solution design, qualities
such as reuse and interoperability become commonplace. The predictability of these
qualities within the enterprise leads to a reliable level of organizational agility.
Building automation solutions and supporting infrastructure with the anticipation of change
seems to make a great deal of sense. A standardized technical environment comprised of
loosely coupled, composable, and interoperable and potentially reusable services
establishes a more adaptive automation environment that empowers IT departments to
more easily adjust to change.
HTML, the Extensible Markup Language (XML) was a W3C creation derived
from the popular Standard Generalized Markup Language (SGML) that has
existed since the late 60s.
XML gained popularity during the eBusiness movement of the late 90s,
where server-side scripting languages made conducting business via the
Internet viable
The XML Schema Definition Language (XSD) and the XSL Transformation
Language (XSLT) were both authored using XML
The XML data representation architecture represents the foundation layer of
SOA.
XSD schemas preserve the integrity and validity of message data, and XSLT
is employed to enable communication between disparate data
representations through schema mapping
In 2000, the W3C received a submission for the Simple Object Access
Protocol (SOAP) specification. This specification was originally designed to
unify (and in some cases replace) proprietary RPC communication
The idea was for parameter data transmitted between components to be
serialized into XML, transported, and then deserialized back into its native
format.
the idea of creating a pure, Web-based, distributed technology one that
could leverage the concept of a standardized communications framework to
bridge the enormous disparity that existed between and within
organizations. This concept was called Web services.
Although alternatives, such as XML-RPC, were considered, SOAP won out as
the industry favorite and remains the foremost messaging standard for use
with Web services.
Completing the first generation of the Web services standards family was
the UDDI specification. Originally developed by UDDI.org, it was submitted
to OASIS, which continued its development in collaboration with UDDI.org.
Prof. Syed Mustafa(Ph.D) 65
SOA : a brief history:
initial set of Web services standards, defined SOA as an architecture
modeled around three basic components: t
1. the service requestor
2. the service provider
3. the service registry
1. SOA requires that data representation and service modeling standards now be
kept in alignment.
3. SOA standardizes the use of a document-style messaging. The shift from RPC-
style to document-style messages imposes change on the design of service
descriptions. Specifically, interface characteristics need to be expressed in more
generic terms, and the overall operation granularity increases.
Specification:
A proposed or accepted standard, described in a specification. XML
standards, first-generation Web services standards, and WS-* extensions all
exist within specifications.
Extension:
An extension typically represents a WS-* specification or a feature provided
by a WS-* specification.
Prof. Syed Mustafa(Ph.D) 69
Standards organizations that contribute to SOA :
The World Wide Web Consortium (W3C)
Originally founded by Tim Berners-Lee in 1994, the W3C has been hugely
responsible for furthering the World Wide Web as a global, semantic medium for
information sharing.
It began with the release of HTML, one of the most popular technical languages
the IT industry has ever produced.
When the use of the Internet broadened to include eBusiness initiatives, the W3C
responded by producing key foundation standards based on XML, such as XML
Schema and XSLT.
SOAP and WSDL standards, which have now become the signature specifications
associated with Web services.
W3C has produced the Web Services Choreography Description Language (WS-
CDL), a specification that governs standardized inter-service exchange patterns.
The W3C is known for its formal and rigorous approach to standards
development.
Its process requires that specifications be subjected to numerous review and
revision stages, with each new version being published to their public Web site. T
he thoroughness of its process comes at the cost of time.
Standards can take two to three years to be completed.
Originally established in 1993 as the SGML Open, OASIS changed its name five
years later to represent a shift in focus from SGML to XML-related standards
Security Assertion Markup Language (SAML) and the Extensible Access Control
Markup Language (XACML) provide important features in the areas of single sign-
on and authorization
Established in 2002, The primary objective of the WS-I is not to create new
standards, but to ensure that the ultimate goal of open interoperability is
realized.
The WS-I is best known for releasing the Basic Profile, a recommendation-based
document that establishes which of the available standards should be collectively
used to form the most desirable interoperability architecture.
By formally positioning specific versions of WSDL, SOAP, UDDI, XML, and XML
Schema, the Basic Profile has become an important document within the IT
community. Those organizations wanting to ensure that the SOAs they develop
are fully interoperable with others can guarantee a high-level of acceptance with
compliance to the Basic Profile.
More recently, the WS-I developed the Basic Security Profile. Essentially the same
concept as the Basic Profile, this document establishes the most important
collection of Web services and XML security technologies.
the benefits of SOA can only be realized as long as it continues to receive the
global acceptance it does now.
Some keep it high-level, providing abstract physical and logical representations of the
technical blueprint. Others include more detail, such as common data models,
communication flow diagrams, application-wide security requirements, and aspects
of infrastructure.
an organization that houses both .NET and J2EE solutions would very likely have
separate application architecture specifications for each.
new approach introduced the concept of delegating logic and processing duties onto
individual workstations, resulting in the birth of the fat client.
The common configuration of this architecture consisted of multiple fat clients, each
with its own connection to a database on a central server. Client-side software
performed the bulk of the processing, including all presentation-related and most
data access logic
the clients are assigned the majority of processing responsibilities, they too often
demand significant resources.
Client-side executables are fully stateful and consume a steady chunk of PC memory.
User workstations are required to run client programs exclusively so that all available
resources can be offered to the application.
Enterprise solutions consist of multiple servers, each hosting sets of Web services and
supporting middleware.
Prof. Syed Mustafa(Ph.D) 85
Application processing
This promotes the stateless and autonomous nature of services and further
alleviates processing by reducing the need for runtime caching of state
information.
costs and limitations associated with the two-tier client server architecture, the
concept of building component-based applications hit the mainstream
benefits came at the cost of increased complexity and ended up shifting expense and
effort from deployment issues to development and administration processes.
Building components capable of processing multiple, concurrent requests was more
difficult and problem-ridden than developing a straight-forward executable intended
for a single user.
replacing client-server database connections was the client-server remote procedure
call (RPC) connection.
RPC technologies such as CORBA and DCOM allowed for remote communication
between components residing on client workstations and servers.
Issues similar to the client-server architecture problems involving resources and
persistent connections emerged.
increased maintenance effort resulting from the introduction of the middleware layer.
For example, application servers and transaction monitors required significant
attention in larger environments.
Upon the arrival of the World Wide Web as a viable medium for computing technology
in the mid-to-late 90s, the multi-tiered client-server environments began
incorporating Internet technology.
the replacement of the custom software client component with the browser. Not only
did this change radically alter (and limit) user-interface design, it practically shifted
100% of application logic to the server
Application logic
distributed Internet applications place all of their application logic on the server side.
Even client-side scripts intended to execute in response to events on a Web page are
downloaded from the Web server upon the initial HTTP request.
With none of the logic existing on the client workstation, the entire solution is centralized.
They also are used to enable communication with other (more service-
oriented) solutions and to take advantage of some of the features
offered by third-party utility Web services.
It also reveals the fact that Web services are not necessarily
inherently service-oriented.
A Web service takes on the service requestor role under the following
circumstances:
Web services and service agents that route and process a message after it is
initially sent and before it arrives at its ultimate destination are referred to as
intermediaries or intermediary services.
The intermediary service transitions through service provider and service requestor roles
while processing a message
Prof. Syed Mustafa(Ph.D) 113
Intermediaries:
Types of intermediaries.
1. passive intermediary
2. active intermediaries
1. passive intermediary
It may use information in the SOAP message header to determine the
routing path, or it may employ native routing logic to achieve some level of
load balancing.
2. Active intermediary
Typically, active intermediaries will look for particular SOAP header blocks
and perform some action in response to the information they find there.
They almost always alter data in header blocks and may insert or even
delete header blocks entirely.
the initial sender is always the first Web service in a message path.
This label identifies service providers that exist as the last Web
service along a message's path
The term does not apply to a single Web service, but to a composite
relationship between a collection of services.
They are generic states that a service can enter within a generic
context.
The manner in which services are being utilized in the real world,
though, has led to a classification based on the nature of the
application logic they provide, as well as their business-related roles
within the overall solution. These classifications are known as service
models.
For a Web service to be able to execute any of its logic, it needs for its
abstract interface definition to be connected to some real,
implemented technology.
SOAP is the most common form of binding, but others also are
supported. A binding can apply to an entire interface or just a specific
operation.
Example:
purchase orders are not allowed to be issued in the standard
electronic format, as the signature is required to be an ever-present
part of the document.
It can alter existing header blocks, insert new ones, and execute a
variety of supporting actions.
Step 1:
Step 2:
WS-BaseNotification
WS-BrokeredNotification
WS-Topics
WS-Eventing
The task of washing a car, on the other hand, can be a bit more omplicated.
It could exist of a series of steps, including:
1.Locate bucket.
2. Locate sponge.
3. Locate hose.
4. Fill bucket with warm water.
5. Add soap to water.
6. Soak sponge in water.
7.Rub sponge on car....and so on.
Prof. Syed Mustafa(Ph.D) 182
The steps that comprise this more complex task could be summarized into a
series of simple (or primitive) tasks, as follows:
At this time, the coordination service is also sent the address of the new
participant.
Isolated:
If multiple transactions occur concurrently, they may not interfere with each
other.
Durable:
if all votes are received and if all participants voted to commit, the
coordinator declares the transaction successful, and the changes are
committed.
Through the use of extensions that allow for business process logic to be
expressed via services, orchestration can represent and express business
logic in a standardized, services-based venue.
When building service-oriented solutions, this provides an extremely
attractive means of housing and controlling the logic representing the
process being automated.
Orchestration further leverages the intrinsic interoperability sought by
service designs by providing potential integration endpoints into
processes.
Building upon orchestration logic standardizes process representation
across an organization, while addressing the goal of enterprise
federation and promoting service-orientation.
Now it is defined who can talk with each other and requires establishing
the nature of the conversation.
This allows one service to send another the information required for it to
be communicated with by other services.
MEPs have predictable characteristics that can ease the manner in which
Web services are designed but also can limit the service interaction
scenarios within which they participate.
In service-oriented solutions, services often require the flexibility to
break a fixed pattern.
For example, they may want to dynamically determine the nature of a
message exchange.
The extensions provided by WS-Addressing were broadened to include
new SOAP headers that establish message exchange-related
characteristics within the messages themselves.
This collection of standardized headers is known as the message
information (or MI) headers
relationship
Most commonly used in request-response scenarios, this header contains the
message id of the related message to which a message is replying (this
header also is required within the reply message).
action
A URI value that indicates the message's overall purpose (the equivalent of the
standard SOAP HTTP action value).
The net result is standardized support for the use of unpredictable and
highly flexible message exchanges, dynamically creatable and therefore
adaptive and responsive to runtime conditions.
Sequences
A sequence establishes the order in which messages should be delivered.
Each message that is part of a sequence is labeled with a message number
that identifies the position of the message within the sequence.
The final message in a sequence is further tagged with a last message
identifier
Acknowledgements
A core part of the reliable messaging framework is a notification system
used to communicate conditions from the RM destination to the RM
source.
Upon receipt of the message containing the last message identifier, the
RM destination issues a sequence acknowledgement .
The acknowledgement message indicates to the RM source which
messages were received.
It is up to the RM source to determine if the messages received are equal
to the original messages transmitted.
The RM source may retransmit any of the missing messages, depending
on the delivery assurance used
The AtMostOnce delivery assurance promises the delivery of one or zero messages.
If more than one of the same message is delivered, an error condition occurs
Prof. Syed Mustafa(Ph.D) 274
The AtLeastOnce delivery assurance
The AtLeastOnce delivery assurance allows a message to be delivered once or several times.
The delivery of zero messages creates an error condition
The ExactlyOnce delivery assurance guarantees that a message only will be delivered once.
An error is raised if zero or duplicate messages are delivered
The InOrder delivery assurance is used to ensure that messages are delivered in a specific
sequence . The delivery of messages out of sequence triggers an error
Prof. Syed Mustafa(Ph.D) 277
Reliable messaging
Reliable messaging and SOA
Correlation addresses this issue by requiring that related messages contain some
common value that services can identify to establish their relationship with each
other or with the overall task they are participating in .
This card associates the current visit with all of the previous visits.
Without it we would have a very hard time remembering which customers had
visited us before.
Because they are generic and non-business-specific in nature, MEPs and activities
have no predefined notion of correlation.
They are simple, conceptual building blocks incorporated and assembled by either
custom-developed solutions that employ custom correlation identifiers and
related processing logic or by specifications that impose proprietary forms of
correlation
Correlation in addressing
WS-Addressing's message id and relationship MI headers provide inherent correlation
abilities, which can be leveraged by many composition and messaging extensions.