Course notes by Gregor v. Bochmann, University
of Ottawa
Web Protocols and Web-Services
(A) Review of Internet 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)
- 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
<< 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/ >>
(B) Basic Web protocols
- Protocol layers:
- IP
- TCP
- possibly Transport Layer Security (or SSL) (see for instance http://en.wikipedia.org/wiki/Transport_Layer_Security )
- HTTP : client-server protocol for accessing the web server << W3C Web page at http://www.w3.org/Protocols/ >>
- "MIME types" (see [Stallings] pages 718 - 726 in Section 19.3)
- corresponding applications integrated into browser or as external helper applications
- HTML : standard for encoding information retrieved from web server for display in the brower
-
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.webreference.com/dlab/books/html/38-0.html >>
-
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 - integration into XML context: XHTML - WAP version of HTML (for small wireless devices)
- Formating standards: Cascading Style Sheets (CCS), XSLT (see for instance http://en.wikipedia.org/wiki/Xslt )
(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 typescan be used:
- 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).
- Note: The concept that these notations provide are very similar to the concepts supported by UML Class Diagram. Therefore it is feasible to generate an XML scheme from a given UML class diagram (as mentioned above).
(D) Web Services and the SOAP protocol: an RPC based on XML
-
SOAP is a RPC protocol based on XML. It is used in the context so-called XML-Web-Services, a version of Web-Services which is a concept related to Service Oriented Architecture - SOA - see Wikipedia. Other types of Web Services use other conventions for exchanging data between different servers, e.g. JSON etc.
- The interface of a Web Service is defined by an XML document, often simply called WSDL, which is written in the Web Service Description Language - see overview in Wikipedia. WSDL is an extension of the XML Schema notation. Such an 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 that provides the Web Service. (For more information on WSDL: you may read a historical perspective from 2000 and this detailed tutorial).
(E) Some notes on XML 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
-
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; revised 2009, 2012