Course notes by Gregor v. Bochmann, University
of Ottawa
Web Services: Protocols and Architectures
(A) Review of networking and protocol layers
-
Protocol layers
-
hierarchy of protocols (Figure 1.11 from
Stallings )
-
headers and user data (Figure 2.11 from
Stallings )
-
message-oriented versus connection-oriented services (discuss that IP service
has low overhead, but is unreliable; TCP is connection-oriented; multiplexing
and ports; UDP protocol)
-
location of functions - e.g. recovery from lost packets, security
-
Internet protocol hiearchy ( Figure 2.12
from Stallings with add-ons)
-
Network architectures (Figures 15.3
, 16.2 , 16.4
from Stallings)
-
Routing (interconnected LANs, optical backbone, wireless access, mobile
IP)
-
The IP layer
-
Packet format (Figure 15.6 from Stallings)
-
Addressing (IPv4 and IPv6, application addressing: ports (part of UDP,
TCP), address spoofing, secure IP) (Figures 15.7
and 15.11 from Stallings)
-
Quality of service (DIFF-SERV, see [Stallings] Section 16.4)
-
Directory Name Servers (DNS) (see [Treese] p. 130 etc.) <<
see http://www.dns.net/dnsrd/ for more details >>
-
Connection-oriented communication
-
TCP characteristics; discuss how TCP obtains reliability; flow control;
congestion control
-
UDP versus TCP, multimedia applications, transactional applications
-
security: SSL (functions provided: authentication, privacy)
(B) Basic Web protocols
-
The Web: Hypertext, HTML and HTTP
-
Identification of applications and other entities
-
well-known ports, e.g. 21 for FTP, 80 for HTTP
-
URL - Uniform Resource Locators as used in the Web, and the URI / URN -
Uniform Resource Identifiers / Names (see [Tresse] p. 133 etc.)
<< the definition of the syntax of these locators is given in an
IETF RFC at http://www.normos.org/ietf/rfc/rfc2396.txt
>>
-
DOI - Digital Object Identifier for electronic documents (permanent identification
and database to find handles) << see http://www.doi.org/
>>
-
HTML
-
SGML: purpose and coding scheme << to see how HTML is defined
as an application of SGML, see book "HTML Unleashed" by Rick Darnell et
al. at http://www.javaworld.com/jw-04-1999/jw-04-xml.html
>>
-
example HTML pages: simple formatted page, page with a form (see [Treese]
Fig. 11-1 and 11-2)
-
freedom and control of document appearence
-
spirit of HTML: adapt to screen size (problem with extreme small screens,
as found on portable phones and PDAs)
-
headings categories
-
fixed dimensions versus proportional
-
evolution of HTML: standardization process, Cascading Style Sheets (CCS),
XML, XHTML, WAP version of HTML (for small wireless devices)
-
HTTP
-
Web browsers
-
"MIME types" (see [Stallings] pages 718 - 726 in Section 19.3)
-
integrated and external helper applications
-
The concept of a virtual terminal (VT100, XWindow, etc. e.g. Web browser)
(C) XML
-
Why XML was developed ? - and - How can XML be used ? (see "XML for
the absolute beginner" at http://www.javaworld.com/jw-04-1999/jw-04-xml.html
) << see also overview of XML and related standardization activities
and tools at http://www.oasis-open.org/cover/xml.html
>>, << here is a historical vision paper on XML and Java: http://www.ibiblio.org/pub/sun-info/standards/xml/why/xmlapps.htm
>>
-
<< For a more systematic explanation see the book "HTML Unleashed"
by Rick Darnell et al. at http://www.webreference.com/dlab/books/html/38-0.html
and following points. >>
- XML allows the construction of complex data structures. It is therefore important to also be able to defined data types and have a method by which one can check that a given instance of a data structure has all the properties defined by a given data type definition. Such a method is implicitely given my the programming environment of any strongly typed programming language, e.g. Java. For XML data structures, the following notations for defining data types have been created:
- DTD: The SGML notation for writing a Document Type Definition (DTD) (for example,
see recipee example in "XML for the absolute beginner" (see first
point above))
- XML Schema: a more elaborate notation (which is written in XML).
- UML Class Diagram: In the context of UML, a meta-model defines the concepts of a language; the meta-model is written in the form of a Class Diagram showing classes (the concepts of the language) and their relationships. An instance of a UML model is often stored (and exchanged) in the form of a XML-encoded file, using the so-called XMI format. Tools exist that are able to create an XML Schema for the XMI format of a language from the meta-model Class Diagram of the language.
(D) SOAP: yet another RPC protocol
-
SOAP - Simple Object Access Protocol, yet another way of defining remote
method invokation (RMI) on objects << see defining document by W3C
at http://www.w3.org/TR/SOAP/
>>
-
This is a Remote Procedure Call (RPC) protocol based on XML. The called
process is identified by an URL and the method call and its parameters
are coded in XML like a struct structure, as discussed in the article
by D. Carlson above (the name of the method is treated like the name of
the struct type, the parameters like the fields of the structure)
. The RPC message format foresees a so-called header component which
is interpreted and possibly modified by intermediate processes. The body
component contains the actual method call information.
- The interface of a Web Service is defined by the XML document, often called WSDL, which is written in WSDL (the Web Service Description Language) which is an extension of the XML Schema notation. This interface definition has the same role as an interface definition in Java: it defines the names and parameter types of method calls that can be made on an instance of a given service object. Optionally, the WSDL of a Web Service also includes the IP address of the server providing the Web Service. (For more information on WSDL, see Learning Guide; you may select a nice overview from SUN or this detailed tutorial)
- Some people define a Web Service (e.g. see here) as a service that is provided through a Web browser or through a Web Services (SOAP) interface.
(E) Style sheets
-
Different aspects of formatting << see introduction to XSL and information
about various related resources at http://www.oasis-open.org/cover/xsl.html
>>
-
A notation for defining transformations from XML into some other language
(XSLT defined by W3C << see at http://www.w3.org/TR/xslt
>>
-
A notation for defining the actual layout of presentation objects, also
called "Formatting Objects" (not covered in this course)
-
A notation for identifying certain parts of XML documents. This is useful
for defining pointers from one document to a particular element in another
document (without that element being marked in that document - the pointer
refers to the element by using the structure information available for
that document) or for defining that certain parts of another document should
be included in the given document. << see W3C document at http://www.w3.org/TR/xpath
>>
-
Please, look at the following examples:
-
very simple PhotoAlbum example (XSL support
by browsers is limited; this example works with MS Explorer version 6,
not with earlier versions)
-
Recipe example in "XML for the absolute beginner" (see Section 5.1)
-
<< For other interesting example of transformation into HTML and
other formalisms (see Section D.2 "Data Example" of the XSLT definition
at http://www.w3.org/TR/xslt )
>>
Created: September, 2002; last update: March 2009