WebServices by wulinqing


									 Web Services

XML and eBusiness
• Web services - the next big thing?
• HTTP has become the network standard
• XML defines business transactions
• Business applications execute over the Web
• Distributed computing in a heterogeneous
  environment – how do you make this happen?
• Web services, SOAP, Java, and networks
    – Computing in the early 21st century
Four Paradigms of Computing
• Mainframe
  – The era of “big iron”
• Client – Server (C/S)
  – Networks and cheap desktop computing
• Internet Computing (n-tier architecture)
  – Web moves to a computing platform
• Web services
  – Web moves to a business platform
                 Web Services
• XML, Java, SOAP, and networks
• Critical for B2Bi
  – Used in “light EAI”
• Creates a “network application platform”
  –   Sun ONE (Open Network Environment)
  –   Facilitates “any to any” and “many to many” computing
  –   Lets applications and process talk to each other
  –   Creates a peer-to-peer computing environment
  –   UDDI - directory of services for “client discovery”
Service Oriented Architecture
• Service provider
  – Creates services and publishes to registry
• Service broker
  – Holds information on how to find and “bind”
    to a (web) service
• Service requester
  – Searches the registry, finds services, and
    “invokes” them after “binding”
Service Oriented Architecture


    Service               Service
    Broker               Requestor
    Web Services Paradigm
• Web services are the building block of a
  Service Oriented Architecture (SOA)
• Publish application services
• Find published services
• Bind to the service found
• Invoke the bound service
  – Passing required parameters for proper
    execution of the selected service
     Web Services - Protocols
•   WSDL - description
•   UDDI - discovery
•   SOAP - messaging
•   BPEL – execution
•   ebXML - orchestration
•   HTTP – transport
•   XML – the lingua franca for data
Web Services Protocol Stack
   WS - Process Architecture
• Services directory
  – WSDL and UDDI
• Business transaction
  – SOAP request / response
• SOAP envelope
  – Message and protocol
• Transaction details
  – ebXML, BPEL
• Network layer
WS - Process Architecture
Web Services Architecture Overview
 • Service creation and assembly
   – A visual design environment, possibly UML
 • Service delivery and service integration
   – Messaging interfaces to Internet and network APIs
 • Applications and Web services
   – Web services containers
   – Other legacy applications
 • Application platform
   – Identity and Policy
   – Security and Workflow
   – Collaboration services
Web Services – Architecture
 Standards Services Architecture
• Standards Services Architecture:
• Leverages key XML technologies
• Smart process
  – ebXML, BPML
  – UDDI
• Smart Policy
  – LDAP
• Smart management
  – SNMP and XML routing technologies
Web Services – Standards Architecture
               Network Layer
• Lowest level in the Web services architecture is
  the conduit for transmission of XML messages
• HTTP is most common protocol in use
• HTTPR (R stands for reliable)
• HTTP carries traffic through firewalls
  – So it is the best “business conduit”
• HTTPR provides “VAN like” services (re: EDI)
  – “exactly once” delivery of messages, notification, etc.
Network Layer – Logical Stack
    – Application services and service flow
•   UDDI – Service discovery
•   UDDI – Service publication
•   WSDL – Service description
•   WSIL / SOAP – XML messaging
    – Network layer for messaging
  Web Services Stack from
Layer                          Example

Service Negotiation            Trading Partner Agreement

Workflow, Discovery,           UDDI, ebXML registries, IBM
Registries                     WSFL, MS XLANG, BPEL4WS

Service Description Language   WSDL/WSCL

Messaging                      SOAP/XML Protocol

Transport Protocols            HTTP, HTTPS, FTP, SMTP

Business Issues                Management, Quality of
                               Service, Security, Open
•   Simple Object Access Protocol (SOAP)
•   Internet protocol for requesting a service
•   Lets loosely coupled entities cooperate
•   Relies on HTTP/HTTPS for transport
•   Picks up where IIOP and CORBA left off
    – Conduit for Remote Method Invocation (RMI)
   SOAP Message – 3 Parts
• The message, envelope, and “channel”
• SOAP envelope
  – The SOAP packet structure
• XML body of the message
  – The XML grammar of SOAP request
• Specification of transport binding
  – The “SOAP” messaging protocol
Anatomy of a SOAP Transaction

• Client SOAP
  – Request packet (marshal and unmarshal)
• Transport
  – SOAP running over HTTP (HTTPr / HTTPs)
• Supplier SOAP
  – Response packet (marshal and unmarshal)
SOAP Transaction
       SOAP Request Code
POST /path/foo.pl HTTP/1.1
Content-Type: text/xml
SOAPActor: interfaceURI#Add
Content-Length: nnnn

     SOAP Response Code
200 OK
Content-Type: text/xml
Content-Length: nnnn

• Universal Description, Discovery, and Integration
  (UDDI) http://www.uddi.org/
• SOAP creates a request for a service
  – But how do you know that the service exists?
  – UDDI is a distributed registry (like DNS system)
  – Service providers post in the UDDI registry
• UDDI defines a set of SOAP messages that provide
  the client API for accessing a UDDI registry
UDDI Registry Record
            UDDI Services
Publisher API
•   save_business
                        Inquiry API
                        •   find_business
•   save_service
                        •   find_service
•   save_binding
                        •   find_binding
•   save_tModel
                        •   find_tModel
•   delete_business
                        •   get_businessDetail
•   delete_service
                        •   get_serviceDetail
•   delete_binding
                        •   get_bindingDetail
•   delete_tModel
                        •   get_tModelDetail
•   get_authToken
•   discard_authToken
• Web Service Description Language (WSDL)
• WSDL is XML based language that
  describes the attributes of a Web service
  – Register the service in the UDDI directory
  – Interface is the format of the SOAP request
• Request / response to execute and receive
  results of Web service on SOAP envelope
WSDL Document Structure
          WSDL Grammar
•   Message
•   Operation
•   portType
•   Binding
•   Port
•   Service
• Web Services Flow Language (WSFL)
• XML based language for defining the
  composition of web services
• A flow composition defines how a
  sequenced execution of web services
  perform a higher level business process
• Defines the interaction between a set of
  business partners executing Web services
       Preparing a Web Service
•   Develop the functionality you want in a service
•   Create the WSDL to describe the service
•   Generate server-side SOAP deployment
•   Publish deployment descriptor in UDDI registry
•   IBM WebSphere Studio Application Developer:
    – WSDL for entry in UDDI registry
    – XML-Java mapping for complex Java objects
    – Deployment descriptor for installing (WS) on a server
IBM Web Services Zone
          Using A Web Service
•   Create a Java client to find and call the service
•   Search the UDDI registry for the desired service
•   From WSDL description create SOAP message
•   SOAP message will contain input parameters
•   Send SOAP request message and wait for reply
•   Receive SOAP response with service execution
•   Extract the results of service from the message
    and process them through a (Java etc.) client
Web Services Process
•   Java is ideal development environment
•   Object oriented with APIs for XML:
•   Java API for XML Messaging (JAXM)
•   Java API for XML Processing (JAXP)
•   Java API for XML Registries (JAXR)
•   Java API for XML - based RPC (JAX-RPC)
• There are several key areas to security:
  – Identification
  – Authentication
  – Authorization
  – Integrity
  – Privacy
  – Auditing
  – Non-repudiation
B2Bi, Web services, and ebXML
•   What is B2Bi?
•   Web services for B2Bi
•   What is ebXML?
•   ebXML initiative
•   ebXML architecture
    – ebXML implementation
    – ebXML partner discovery
    – ebXML transaction messaging
       The Challenge of B2Bi
•   100,000 companies
•   Middleware doesn’t do it
•   99,999 factorial connections
•   eMarketplaces didn’t fulfill it
•   Integrating network business process
What is B2B Integration (B2Bi)?
Web Services for B2Bi
            ebXML Initiative
•   ebXML – XML, UDDI, and B2Bi
•   Integrate discovery, binding, and flow
•   UDDI – for discovery and binding
•   ebXML - the eBusiness lexicon of B2Bi
•   Creates a “pattern” for Web service flow
ebXML Architecture
ebXML Implementation
ebXML Partner Discovery
ebXML Transaction Message
   Advantages to Web Services
• Flexibility for loose-coupling / late-binding
• Flexibility in scope: Internet / intranet
  – Limit to enterprise or extend to trading partner
• Based on HTTP, XML, and SOAP standards
• Self-describing in WSDL / UDDI registries
• Aggregate Web services for complex and
  threaded business process / B2Bi etc.
       Microsoft .Net Initiative
•   Microsoft .Net initiative based on SOAP
•   Uses Java tools / visual process design
•   Designed for compatible clients on ends
•   Similar use of XML and SOAP message
•   More similar to COM objects than EJB
               Sun ONE
•   Open Network Environment
•   Web services stack
•   Blend servers and services
•   “Smart Web Services”
•   Networked business process
Smart Web Services Architecture
• Smart delivery
  – Aggregation, presentation and delivery
  – Personalization, content, and contextual sensitivity
• Smart process
  – Automated workflow management
• Smart policy
  – Identity, content and roles
• Smart management
  – Privacy and Security
  – Rights and Administration
  – User management
Smart Web Services Architecture
  Smart Processing Overview
• Smart management
  – Service registration, service management
  – Listing in UDDI repositories, updating records
• Smart delivery
  – Protocol awareness and messaging options
  – Flexible integration with network applications
• Smart processing
  – Management, collaboration, and services delivery
  – Created a distributed network application platform
Web Services – Processing Overview
 Micro Service Developer Model
• XML document
  – HTTP
  – SOAP
• Web server
  – JSP
  – Java servlets
• Application server
  –   JDBC
  –   JMS
  –   J2EE
  –   JAXM JAX / RPC
 Micro Web Services Developer Model
• From a developer's perspective a micro Web service
  consists of:
   – Web service interface and one or more service components.
   – The Web service interface manages and manipulates XML
     messages; it can also be a front end to a legacy application.
• “Service components” contain the business logic that
  implements the requested service.
   – Business components frequently interact with external resources
     and services through a variety of integration services
• A Web service communicates by passing XML
  documents over standard Web protocols
   – Using HTTP to pass SOAP, XHTML, and other XML messages
Micro Service Developer Model
Web Services Portal Model
Web Service Process Modeling
   Distinguishing Business Process
     Modeling and Management
• Enterprise business processes
  – ebPML: e-business Process Modeling Language
• Executable business processes
  – BPEL: Business Process Execution Language
• ebXML business processes
  – (a.k.a. collaborations)
• Business process activities
  – BPMI and BPML (and ebPML)
• Workflows and management
  – BPMS: Business Process Management Systems
     PML – Process Modeling
•   BPML
•   BPML / ebPML
•   UML
• Business Process Modeling Language
• A method to bind “UML” and Web services
  – The Business Process Modeling Language
    (BPML) is a meta-language for the modeling of
    business processes, just as XML is a meta-
    language for the modeling of business data.
  – BPML provides an abstracted execution model for
    collaborative & transactional business processes
    based on the concept of a transactional finite-state
BPMI.org Activities
Internal View of Loan Process
BPEL – Complete Loan Process
Tangled BPM Initiatives
• Electronic Business Process Modeling Language
   – http://www.ebpml.org/
• "Business is complicated. Any solution that doesn't
  reflect that complexity is not a real solution. ebXML is
  no more complicated than it has to be in order to
  implement real-world business collaborations.
  Conversely, Web services as they are currently
  defined seem simple precisely because they're not
  trying to deal with the complexities of real business
  relationships involving independent enterprises."
   – A grain of wisdom from John Bosak -
ebPML Vision
BPMS Diagram
    Key Technologies for BPMS
•   XML
•   B2B middleware
•   Enterprise Application Integration
•   Web Services
•   (Legacy Systems behind Web services)
    – Business Process Management Systems
BPMS Architecture
               UML 2.0
• Unified Modeling Language
• Looks at the entire picture of a process
  from the view of actors and use cases
• State, activity, and collaboration
  diagrams show interactions of actors
• UML diagrams can now be saved in
  XML formats, aiding their use with WS
Web Service Operations
BPMS Activity
Web Service Class Diagram
•   “Distributed computing” on a network platform
•   Computing for the early 21st Century
•   Uses XML, SOAP, WSDL, UDDI standards
•   Services are self-describing for discovery
•   SOAP interface to messaging interface
•   Java clients for request / response formatting
    – Web services are applications with an IP address
    – Think of it as “hyper-linking” network applications!
• http://www.webservices.org/
• http://xml.apache.org/
• http://www.uddi.org/
• http://www-
• http://java.sun.com/webservices/
• http://www.xmethods.net/
• http://www.microsoft.com/net/
                  Self Quiz
•   What are Web services?
•   Why Web services?
•   What is the “protocol stack” ?
•   Write out the WS process flow
•   What things do Web services do well?
•   Where are Web services lacking?
•   What are WS process initiatives about?
        Vocabulary Checklist -
•   Architecture      •   Protocol
•   BPEL              •   Protocol stack
•   BPMI              •   SOA
•   BPML              •   SOAP
•   ebXML             •   Sun ONE
•   Java              •   Transport layer
•   J2EE              •   UDDI
•   HTTP              •   WSDL
•   HTTPr and HTTPs   •   WSFL
•   .Net              •   XML
      So what is all this XML?
•   Just another markup language?
•   No – the “mother of all markups”
•   Technically, XML + HTML = SGML
•   HTML is about presentation
•   XML is about representation
    – Write your own markup languages
    – DTDs and schema define the rules
A Song Description in HTML
 <dt>Hot Cop</dt>
 <dd> by Jacques Morali, Henri Belolo,
    and Victor Willis</dd>
 <li>Producer: Jacques Morali
 <li>Publisher: PolyGram Records
 <li>Length: 6:20
 <li>Written: 1978
 <li>Artist: Village People
 A Song Description in XML
 <title>Hot Cop</title>
 <composer>Jacques Morali</composer>
 <composer >Henri Belolo</composer>
 <composer >Victor Willis</composer>
 <producer>Jacques Morali</producer>
 <publisher>PolyGram Records</publisher>
 <artist>Village People</artist>

To top