Web Services
What are web
services?
- web services are functions of a web server object that can be accessed by
a web client
- for example, using http, a client application might access a web service
function which then sends a response back to the client application
What are the various web service protocols?
- there are a variety of ways in which a web client can query a web server
object:
- CGI scripting
- ISAPI/NSAPI dll functions
- active server pages
- unfortunately, in the above there is no standard specification for
accessing the functions and for the data structures that are to be sent or
returned from the server, thus 2 specifications have been developed to
attempt to resolve this:
Web Services Description
Language WSDL:
- WSDL is an XML format for describing
network services as a set of endpoints operating on messages, either
document-oriented or procedure-oriented information.
- the operations and messages are described abstractly, then bound to a
concrete network protocol and message format to define an endpoint.
- whilst it is extensible to allow communication through other network
protocols, it was originally designed to work in conjunction with SOAP
- a WSDL document defines the following:
- Types - a container for data type definitions using some type
system (such as XSD)
- Message - an abstract, typed definition of the data being
communicated
- Operation - an abstract definition of an action supported by
the service
- Port Type - an abstract set of operations supported by one or
more endpoints
- Binding - a concrete protocol and data type specification for a
particular port type
- in addition to the core services definition framework, v1.1
introduces specific binding extensions for:
- SOAP 1.1
- HTTP GET/POST
- MIME
- Port - a single endpoint defined as a combination of a binding
and a network address
- Service - a collection of related endpoints
- thus a web server application residing on a web server exposes its own
interfaces that describe the operations available and their parameters so
that a web client application can run those operations
- Delphi 6's compiler natively embeds
WSDL, SOAP and XML functionality
Simple Object Access
Protocol (SOAP):
- this is Microsoft's version of an XML interprocess communications and
remote procedure call (RPC) mechanism
- it is particularly effective at passing through firewalls (which
usually prevent many RPC and interprocess communications protocols from
reaching their destinations) because it's piggybacked on top of HTTP, which
is available through almost all firewalls. SOAP slips transparently through
any firewall that allows web browser access.
- it is an integral part of Microsoft's XML object broker initiative "Universal
Plug and Play (UPnP)" which was announced in Jan 1999.
- SOAP promises to level the playing field between COM/DCOM and CORBA by
making it easier to translate between the two of them
- SOAP can also use FTP or SMTP as a transport medium
- thus, given a few lines of code, MS IIS or an Apache web server becomes a
SOAP ORB, because SOAP relies on 2 existing protocols - HTTP and XML without
adding new technology, but just codifies the use of XML as an HTTP payload.
- the HTTP payload of a SOAP request is simply an XML document that
contains the values of the [in] and [in,out] parameters of the method.
These values are encoded as child elements of a distinguished call
element that shares the method name and namespace URI of the
SOAPMethodName HTTP header.
- thus the HTTP request is as for usual EXCEPT:
- content type = text/xml
- additional header: SOAPMethodName: URN
- the content must have:
- the SOAP tags <Envelope> and at end
</Envelope>
- the 1st child element under <Body> must match the
SOAPMethodName
-
- it competes with XMLTP
- Microsoft provide a SOAP Toolkit for Visual Studio
- Delphi 6's compiler natively embeds
WSDL, SOAP and XML functionality
Network
appliance languages/protocols:
- this refers to a protocol whereby one or more control processes collect
and retain information about all devices available on a network based on a
series of messages multicast to the network as a whole by each device (ie.
advertising and discovery mechanism)
- it seems that this would only be of practical use within a private LAN
rather than a WAN
- several competing protocols are being developed:
- Microsoft's Universal Plug and Play (UPnP)
- HP's Appliance Plug and Play (APnP) which integrates UPnP with HP's
Chai Java appliance technology
- Sun's JVM or Jini
-