Learning Center
Plans & pricing Sign in
Sign Out



      Lecture 1
Distributed Architectures
     SOA Concepts
programming models
  Distributed programming models:
          Classic Web-based
Easy to deploy but slow, not great user experience
                       Lacks full support
                       of apps server -- no
                       transactions, rpc, etc.

     html       http                  Web
   browser                           Server           Many programming models
                              Dynamically             •Servlets
                               Generated              •PHP
                                 html                 •CGI (python, perl, C)
        plus optionally                               •Cold Fusion
        JavaScript to
        jazz up html
  Distributed programming models
         Typical Web-based
Better user experience. Heavier, less portable, requires
  socket programming to stream to server.

                  http               Web        database
     applet              socket     Server

              html + applet
          Direct Connections
Direct socket and rpc-style
 Application                                    App2

                    Remote Procedures
  Examples: Java’s rmi, CORBA, DCOM
Application Servers
RPC-style Web service

              QuickTime™ and a
     TIFF (Uncompressed) decompre ssor
       are neede d to see this picture.
                General role of XML
   Most modern languages have method of
   representing structured data.
   Typical flow of events in application

    Read data           Marshal          Manipulate in            Unmarshal
(file, db, socket)      objects           program              (file, db, socket)

  •Many language-specific technologies to reduce these steps: RMI, object
    serialization in any language, CORBA (actually somewhat language neutral),
    MPI, etc.

  •XML provides a very appealing alternative that hits the sweet spot for
   many applications
Simple XML-based architecture

   web     http       Web             File system “hand-rolled”
 browser             Server                          XML
                         python CGI


Motivating Example1
   Mortgage Calculator
Example: mortgage calculator
Start very simple to motivate role of XML

All we need is a web server that supports
a server-side programming model

We will build up this example to include
first web service and then SOA concepts
(as we gain experience)
     Functional requirements
Design a simple application which does the
   Accepts user input
      Loan amount
      Loan term
      Interest rate
      Extras (assessments + taxes)
   Returns per-month table of
      total payment
      some other fun stuff
          Design requirements
Must be
   Clean simple interface (easy)
   Remotely accessible with security
   Portable to different machine architectures
   Not require heavyweight or sophisticated
    installation on the part of the user
   Sufficiently fast not to be embarrassing given
    10 hits/minute maximum usage
 Some possible architectures
Things I tried
   what are (dis) advantages of each?

Web server
   Server-side scripting with pure (dynamic) html
   Server-side scripting with html+javascript
   Server-side scripting with html+applet

Direct connection
   Raw sockets
   Distributed objects
                        Initial choice
Front-end: html form

Back end: python cgi
   Python generates web page dynamically after making
   No use of higher-level web generation libraries at this point

What are advantages/disadvantages of this architecture?

Run application:
Two obvious disadvantages are:
   Formatted web content in print statements low-level,
    ugly error prone
   Data is not decoupled from formatting. What if we
    want to switch to an application client? What if we
    want to allow further processing by the client?

Several strategies can help with both of these
(higher-level htmlgen libraries, server-side
scripting model, beans, etc.) and XML

We will look at how XML fits in
              Key Questions
What does browser do with XML?
   Can it display?
   Does it even understand XML?
      If not, what good is this?

Do we have to hand roll our programming
language objects from XML?
              Some answers
Regarding first point, try this with your web
   Note that XML is displayed/formatted nicely, but not
    nearly to the same level of utility as the html table
   To transform to html, we must associate a separate
    .xsl file (e.g.) with the XML file. We will study XSL

Regarding XML-language conversion, we will
study language binding for various high-level
ways of doing this. For now, we will hand-roll
Lottery application
   Functional requirements
Given a list of student members of a
dormitory, perform an ordered randomized
sort of the students to determine a room
draft order.
Functional requirements, cont.
 Students are defined by
    Last name
    First name
    Seniority
       Quarters in the House
       Quarters in the College

 The sort keys are
1.   Quarters in House
2.   Quarters in College
3.   Random
       Software requirements
Secure login
   House name
   Password

Remotely accessible to single small company
   Several hits per hour maximum

All Windows Users

What I tried
   Excel embedded in IE6
   Web-based with java servlets, XML, XSLT
Sketch of XML/Servlet solution


                         login       Login
Web      XML     Web
Client   XSLT   Server               XML
                         lottery    Student
Exercise 1
                     An exercise1 solution
                                                                 Travel Service

Client        html       Internal                          xml
              http                      xml     Security
              http       Engine

 Complexity of marshaling/unmarshaling XML
 How to represent state

 Ease of integration -- no proprietary issues
 Ability to use Schema for validation
SOA Concepts
A Very Brief Introduction
  Standards Organizations
                 W3C (1994) OASIS (1998) WS-I (2002)

membership       400               600                200

                 To further the    To promote         To foster
                 evolution of      online trade and   standardized
Overall SOA-     web via           commerce via       interoperability
specific goals   standards that    specialized Web    using Web
                 improve info      services           services
                 sharing           standards          standards
                 XML, XML
                 Schema, Xquery,
                 XML Encryption,   UDDI, ebXML,
Prominent                                             Basic Profile,
                 XML Signature,    SAML, XACML,
SOA-specific     Xpath, XSLT,
                                                      Basic Security
                                   WS-BPEL, WS-
deliverables     WSDL, SOAP, WS-                      Profile
                 CDL, WS-
 This is all a work in progress
Reading too much gives the impression that these are
turnkey solutions.

In fact, remember that MANY of these standards are
very immature and are at various stages of
implementation by different vendors.

They also tend to change quickly in the early years. Be
very careful when applying to real problems!

Question: are open standards worthwhile? If so, who do
they benefit and how?
             SOA Definitions
What is a SOA?
   OASIS: “paradigm for organizing and utilizing
    distributed capabilities that may be under the control
    of different ownership domains. It provides a uniform
    means to offer, discover, interact with and use
    capabilities to produce desired effects consistent with
    measurable preconditions and expectations .”
         SOA definitions, cont.
   Erl: “Contemporary SOA represents an open, agile, extensible,
    federated, composable architecture comprised of autonomous,
    QoS-capable, vendor diverse, interoperable, discoverable, and
    potentially reusable services, implemented as Web services.
   SOA can establish an abstraction of business logic and
    technology, resulting in a loose coupling between these
   SOA is an evolution of past platforms, preserving successful
    characteristics of traditional architectures, and bringing with it
    distinct principles that foster service-orientation in support of a
    service-oriented enterprise.
   SOA is ideally standardized throughout an enterprise, but
    chieving this state requires a planned transition and the support
    of a still evolving technology set.”
        SOA Definitions, cont.
OMG : “Service Oriented Architecture is an
architectural style for a community of providers and
consumers of services to achieve mutual value, that:
   Allows participants in the communities to work together with
    minimal co-dependence or technology dependence
   Specifies the contracts to which organizations, people and
    technologies must adhere in order to participate in the
   Provides for business value and business processes to be
    realized by the community
   Allows for a variety of technologies to be used to facilitate
    interactions within the community ”
                SOA definitions, cont.
W3C: “A form of distributed systems architecture that is typically characterized by the
   following properties:
        Logical view: The service is an abstracted, logical view of actual programs, databases,
         business processes, etc., defined in terms of what it does, typically carrying out a business -
         level operation.
        Message orientation: The service is formally defined in terms of the messages exchanged
         between provider agents and requester agents, and not the properties of the agents
         themselves. The internal structure of an agent, including features such as its implementation
         language, process structure and even database structure, are deliberately abstracted away
         in the SOA: using the SOA discipline one does not and should not need to know how an
         agent implementing a service is constructed. A key benefit of this concerns so-called legacy
         systems. By avoiding any knowledge of the internal structure of an agent, one can
         incorporate any software component or application that can be "wrapped" in message
         handling code that allows it to adhere to the formal service definition.
        Description orientation: A service is described by machine-processable meta data. The
         description supports the public nature of the SOA: only those details that are exposed to the
         public and important for the use of the service should be included in the description. The
         semantics of a service should be documented, either directly or indirectly, by its description.
        Granularity: Services tend to use a small number of operations with relatively large and
         complex messages. Network orientation: Services tend to be oriented toward use over a
         network, though this is not an absolute requirement. Platform neutral: Messages are sent in a
         platform-neutral, standardized format delivered through the interfaces. XML is the most
         obvious format that meets this constraint. “
                   SOA definition, cont.
Open Group: “An architectural style that supports service orientation …
Service orientation
    A way of a way of thinking in terms of services and service based development and the outcomes
    that services bring Service
    A logical representation of a repeatable business activity that has a specified outcome (e.g., check
    customer credit; provide weather data, consolidate drilling reports), is self-contained and maybe
    composed of other Services. It is a black box to consumers of the Service Architectural Style
    The combination of distinctive features in which Enterprise Architecture is done, or expressed The
    SOA Architectural styleユs distinctive features: Based on the design of the services comprising an
    enterprise’s (or inter-enterprise) business processes. Services mirror real-world business activity

Service representation utilizes business descriptions. Service representation requires providing its
    context (including business process, goal, rule, policy, service interface and service component)
    and service orchestration to implement service Has unique requirements on infrastructure.
    Implementations are recommended to use open standards, realize interoperability and location
    transparency. Implementations are environment specific, they are constrained or enabled by
    context and must be described within their context. Requires strong governance of service
    representation and implementation Requires a Litmus Test, which determined a good services”
SOA: the basics
    What it is.
   What it is not.
             Real SOA
Changed mindset: service-oriented
context for business logic.
Changed automation logic: service-
oriented applications.
Changed infrastructure: service-oriented
A top-down organization transformation
requiring real commitment.
      SOA Characteristics
Loosely coupled: minimizes dependencies
between services.
Contractual: adhere to agreement on
service descriptions.
Autonomous: control the business logic
they encapsulate.
Abstract: hide the business logic from the
service consumers.
      SOA Characteristics
Reusable: divide business logic into
reusable services.
Composable: facilitate the assembly of
composite services.
Stateless: minimize retained information
specific to an activity.
Discoverable: self-described so that they
can be found and assessed.
         Potential Benefits
Based on open standards.
Supports vendor diversity.
Fosters intrinsic interoperability.
Promotes discovery.
Promotes federation.
Fosters inherent reusability.
Emphasizes extensibility.
        Potential Benefits
Promotes organizational agility.
Supports incremental implementation.

Technical architecture that adheres to and
supports the principles of service
Focus on the Business– Process
         and Services

               Application   Application   Application

                   a              b             c

                                                         Source: Service-Oriented Architecture, Thomas Erl
Focus on the Business– Process
         and Services
    process layer

 interface layer



                    .NET   J2EE   Legacy
                                           Source: Service-Oriented Architecture, Thomas Erl
Focus on the Business– Process
         and Services
    process layer

                                                    orchestration service
 interface layer


                                                   business service layer

                                                   application service layer

                    .NET   J2EE   Legacy
                                           Source: Service-Oriented Architecture, Thomas Erl
                   SOA hype
Beware that SOA is used in many different ways within
the IT community (“most despised buzzword according
to several surveys”)

Erl-1 does a good job of sorting through a lot of this --
should read ch. 1-3 carefully.

Still, many attributes ascribed to SOA are carryovers
from the “old days” -- encapsulation of business logic,
language interoperability, network transparency, loose
coupling, etc. etc. What is new?
BPEL is a key part of the Web Services activities
   BPEL 2.0 called WS-BPEL

   BPEL is a programming language specialized for
    creating/executing a workflow of assembled web
    services (think driver language).

   BPEL is built on top of a number of XML-related
      XML is used as the syntax for BPEL
      WSDL is used as the interface description of Web Services
      XML Schema is used to describe the types used by BPEL
      XPath is used to extract parts of data in a BPEL process
     SOA vs. Web services
SOA design concepts exist independently of
web services -- web services are one (and
currently the only) standard upon which SOA
designs can be built and deployed. This is a
pretty uniformly accepted view.

By the same token, using web services does not
necessarily imply SOA design

That said, in real world modern SOA the two
technologies are tightly linked and go hand in
           BPEL and BPMN
There is no standardized graphical
notation for BPEL
   XML is used as the standardized syntax
   the BPEL syntax is defined by an XML Schema
   most BPEL tools provide graphical notations
   different products use different notations
   Business Process Modeling Notation (BPMN) has
    been proposed as a graphical notation standard
           Some perspective
Think about and try to articulate the relationship
between SOA and other common programming
   Structured
   OO
   Component-based
   Distributed
   Client-server programming

Confluence of many existing ideas, but SOA is
definitely a shift in perspective (if not a radically
new paradigm).
Exercise 2
          Organization of Book
Web Services and “Primitive SOA”
   Services (as web services)
   Service descriptions (WSDL)
   Messaging (SOAP)

Web Services and “Contemporary SOA”
   Part I: MEPs, service activity, atomicity, business activities,
    orchestration, choreography
   Part II: Advanced messaging, metadata, and security

We will roughly follow this ordering but precede it with a
deep understanding of XML, Schema …

This will be topic of next lecture

To top