WebServices

Document Sample
WebServices Powered By Docstoc
					 Web Services

XML and eBusiness
   Technology
                  Introduction
• 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
              Provider



    Service               Service
    Broker               Requestor
                Find
    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
  – HTTP, HTTPr, HTTPs, SMTP
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
  – XSLT, SOAP, WSDL
• 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
• WSIL, WSFL, WSHT
    – Application services and service flow
•   UDDI – Service discovery
•   UDDI – Service publication
•   WSDL – Service description
•   WSIL / SOAP – XML messaging
•   HTTP, HTTPR, SMTP, MQ, IIOP
    – Network layer for messaging
  Web Services Stack from
     WebServices.org
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
                               Standards
                    SOAP
•   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:Envelope>
  <soap:Body>
    <Add>
        <arg1>24</arg1>
      <arg2>53.2</arg2>
    </Add>
  </soap:Body>
</soap:Envelope>
     SOAP Response Code
200 OK
Content-Type: text/xml
Content-Length: nnnn

<soap:Envelope>
  <soap:Body>
    <Response>
        <sum>77.2</sum>
    </Response>
  </soap:Body>
</soap:Envelope>
                         UDDI
• 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.org
            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
                    WSDL
• 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
                 WSFL
• 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
•   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)
                Security
• 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
       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
  – JAXM, JAX, RPC
• 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
           Languages
•   BPML
•   IBM WSFL
•   MS XLANG
•   BPML / ebPML
•   BPEL, BPEL4WS
•   UML
                     BPML
• 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
    machine.
BPMI.org Activities
Internal View of Loan Process
BPEL – Complete Loan Process
Tangled BPM Initiatives
                       ebPML
• 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
                    Summary
•   “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!
               Resources
• http://www.webservices.org/
• http://xml.apache.org/
• http://www.uddi.org/
• http://www-
  106.ibm.com/developerworks/webservices/
• 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 -
          http://whatis.com/
•   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>
 <ul>
 <li>Producer: Jacques Morali
 <li>Publisher: PolyGram Records
 <li>Length: 6:20
 <li>Written: 1978
 <li>Artist: Village People
 </ul>
 A Song Description in XML
<song>
 <title>Hot Cop</title>
 <composer>Jacques Morali</composer>
 <composer >Henri Belolo</composer>
 <composer >Victor Willis</composer>
 <producer>Jacques Morali</producer>
 <publisher>PolyGram Records</publisher>
 <length>6:20</length>
 <year>1978</year>
 <artist>Village People</artist>
</song>

				
DOCUMENT INFO