Chapter 3 Programming Web Services by lonyoo

VIEWS: 4 PAGES: 12

									Chapter 3:
Programming Web Services


Service-Oriented Computing: Semantics, Processes, Agents
– Munindar P. Singh and Michael N. Huhns, Wiley, 2004
            Highlights of this Chapter
               Representational State Transfer (REST)
               Developing and Using Web Services
               Web Service Interoperability




Chapter 3        Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   2
            Representational State Transfer
               REST is an architectural style for networked
                systems that constrains the connector
                semantics (not the component semantics)
               The Web is a network of hyperlinked
                resources, which are things identified by a
                URI
               A Web application works as a state machine
               A client selecting a link is a state transition,
                resulting in receiving the next page (next
                state) of the application


Chapter 3         Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   3
            Characteristics of REST
               Client-Server
               Statelessness: requests cannot take advantage of
                stored contexts on a server
                   Great for load balancing
               Caching: responses can be labeled as cacheable
               Uniform interface – URIs, hypermedia
               Layered components
               Focus on resources as opposed to methods:
                   Read, construct, update a resource representation
                   Well-suited to hypermedia applications




Chapter 3            Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   4
            HTTP Verbs
               Popular verbs
                    Get: query (no side effects)
                    Post: update
                    Put
                    Delete
               Idempotent operations
                    Multiple executions = one execution
             Challenge: the specification imposes requirements
              but with no way to judge compliance
            Especially, can use Get and Post instead of much of
              SOAP


Chapter 3           Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   5
            Software for Open Environments
               Tempting to simply lift current database
                and programming techniques for open
                environments
               Popular pitfall encouraged by the tools:
                    Think of objects (get and set methods)
                    Invoke them as before even though they
                     are Web services
                    Poor performance
                    Tight coupling

Chapter 3           Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   6
        Simple B2C Web Service Example
  Suppose you want to sell cameras over the
    Web, debit a credit card, and guarantee
    next-day delivery                    Internet                             SellCamera
                                                                              Web Service
                                                                                                                    User


   Your application must

               update sales database                                                                   Inventory
                                                                    Sales

                debit the credit card
                                                                                                        Database
                                                                   Database           Shipping
                                                                                     Database



               send an order to the shipping department
               receive an OK from the shipping department for
                next-day delivery
               update an inventory database
       Problems: Some steps complete but not all
Chapter 3         Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns              7
        “Traditional” B2C Problems

       What if the order is shipped, but the debit
        fails?
       What if the debit succeeds, but the order was
        never entered or shipped?




Chapter 3    Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   8
        Database Approach

  A traditional database approach works only for a closed
     environment:
   Transaction processing (TP) monitors (such as IBM’s
     CICS, Transarc’s Encina, BEA System’s Tuxedo) can
     ensure that all or none of the steps are completed, and
     that systems eventually reach a consistent state
   But what if the user’s modem is disconnected right after
     he clicks on OK? Did the order succeed? What if the line
     went dead before the acknowledgement arrives? Will the
     user order again?

  The TP monitor cannot get the user into a consistent state!

Chapter 3   Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   9
        Approach for Open Environment

       Server application could send email about credit
        problems, or detect duplicate transactions
       Downloaded applet could synchronize with server
        after broken connection was restored, and recover
        transaction; applet could communicate using http, or
        directly with server objects via CORBA/IIOP or RMI
       If there are too many orders to process
        synchronously, they could be put in a message
        queue, managed by a Message Oriented Middleware
        server (which guarantees message delivery or failure
        notification), and customers would be notified by
        email when the transaction is complete
  The server behaves like an agent!

Chapter 3    Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   10
            Requirements
               Cross-enterprise processes
               Exception handling
               Conversations and long-lived
                transactions
               Contracts among parties involved




Chapter 3        Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   11
            Chapter 3 Summary
               Tools help with low-level details
                    Agreeing on standards is more important than the
                     standards themselves
               Should conceptualize interactions in a manner
                compatible with the Web architecture
                    Can simplify from SOAP in many cases
               The above is a small point anyway
                    Bigger challenges are in ensuring larger-scale
                     interactions, ensuring integrity, handling
                     exceptions, …
                    Sophisticated programming models are emerging


Chapter 3           Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns   12

								
To top