Web Services

From 118wiki

Jump to: navigation, search

Web Services

The term Web service is a generalization of previous approaches to standardizing program-to-program client-server communication in networks. An early development in this area is RPC (remote procedure call); the main issues in RPC research and development were:

  • how to deal with representation problems (because of programs running on different architectures)
  • how to deal with parameters (which motivates marshalling and demarshalling)
  • how to reduce overhead (using UDP instead of TCP; using cross-memory services when both client and server are on the same host)
  • how to address reliability problems (and, especially, to avoid re-invocation of already completed operations); terminology from mathematics, such as idempotence, plays a part here
  • what kind of compiler, language, and system support can make RPC easier for programmers. An example of this is an Interface description language (IDL), which can be compiled to create stubs used by client and server to marshall and demarshall parameters; also an IDL can describe attributes of RPC methods, such as idempotence.
  • how to make RPC for critical services secure
  • how to abstract from things such as IP addresses and port numbers, and instead use DNS-style "lookup" so that clients find servers dynamically

The early RPC implementations influenced and evolved into complicated software such as CORBA and DCOM. None of these earlier developments integrated Web protocols (HTTP), browser processing, and so on. Web services use many of the ideas of these earlier systems and add support of HTTP, XML, and so on.

Some key components of current Web services are:

  • SOAP is the "RPC" component, using HTTP for communication and XML for representation.
  • WSDL is the language to describe and "advertise" what service interfaces are available; from WSDL, there can be tools that partially and automatically build some skeleton code for both client and server implementation.
  • UDDI is the protocol to advertise that a web service is available

Outside of these components and others, there is a choice of possibly also supporting the services using specific (perhaps Enterprise-oriented) frameworks, like Service-oriented architecture (SOA), which resemble the earlier systems CORBA and DCOM.

Web 2.0 Services

In contrast to the formal meaning of "Web Service", we have seen recently that a number of large software companies make available some services to application programs anywhere, calling this a Web Service.

  • developer.yahoo.com has pointers to Yahoo's services and support
  • [1] Google's services offer many APIs
  • [2] Amazon is promoting new web services
  • [3] Salesforce.com was a pioneer in network APIs (mostly .NET orientation)

The companies above need not conform to what textbooks say about Web Services, but standards are important so that they can work together. Other examples, not listed above are frequently part of a Mashup (web application hybrid).

Personal tools