90 likes | 273 Views
Web Services: Distributed Objects or Not. Reference: Werner Vogels, IEEE Internet Computing, Nov-Dec, 2003. Minimalist Web Services Model . Service: Software that can process an XML document and implement some application logic
E N D
Web Services: Distributed Objects or Not Reference: Werner Vogels, IEEE Internet Computing, Nov-Dec, 2003
Minimalist Web Services Model • Service: Software that can process an XML document and implement some application logic • XML document: Contains all specific information that a client (customer) sends to the service for processing. WSDL describes the service and the protocols to be followed • Address: Port reference combined with a network address for client to access the service • Protocol used: SOAP message (or envelop) is used. It consists of: (i) SOAP header to hold all system information (ii) SOAP body containing the XML document
Document-centric principle of web services: Supports technology for getting documents to the right place in the right manner. XML and SOAP are used for this purpose. • Primarily supports document-exchange contract
Common Misconceptions • Web services are just like distributed objects: • What is the object life cycle in a distributed object technology? • Object instantiation ( on request), client performs operations on the instance, and finally release the instance. • Objects frequently contain references to other objects and hence reference handling is part of distributed object technology • Stateful distributed computing: So a client can repeatedly access an object and the same state. • Object’s state is accessed through an IDL
Common Misconceptions (Contd.) (b) Web services share none of these characteristics? (i) No notion of objects, object references, factories, or life cycles (ii) No interfaces with methods, data-structure serialization, or reference garbage collection Exception: J2EE’s stateless JavaBean may be treated as a singleton object; No support of stateful distributed computing facilities (as of 2003); But today there is a talk of it and J2EE has a stateful service (iii) There is no notion of an object supporting an interface; basically XML documents are passed around
(iii) Web services (basic ones) do not define relationships between service invocations at the same or related services (i.e., context preservation) In summary: Distributed object technology is emnat for intranet applications and Web services for internet applications
Common Misconceptions (Cont.) 2. Web Services are RPC for the Internet (i) What does RPC provide? Network abstraction for remote invocations including extensive mechanisms for handling errors Web services provides a networking abstraction for transferring XML documents; internet-wide RPC just does not work.
Common Misconceptions (3) Web services need HTTP: Not true. Any protocol could be used to transport the XML document. In fact, it is designed to be “transport agnostic.” (4) Web services need web servers: They have nothing to do with web. In fact, a few toolkits exist without web servers.
Common Misconceptions (Cont.) (5) Web services are reliable because they use TCP: TCP does not necessarily guarantee delivery to the application, especially under node/network/component failure --- i.e.. No end-to-end reliability guarantee by TCP (6) Debugging web services is impossible