The Web started as a flexible hypertext infrastructure based on SGML concepts. Its technological simplicity and unifying view over other existing technologies such as Gopher, FTP, Telnet and Usenet (NNTP) contributed to its widespread adoption. A rapid technology evolution transformed the former hypertext document infrastructure into a remote software interface. The blend of document and task introduced new issues in the user interface such as its organization, user interaction, and navigation factors that must be addressed in order to build successful applications. The growing number of devices capable of web browsing, for which different adaptation and transcoding strategies have been created, has also affected the user interface.
Business applications benefit from the loose coupling of the Web. This capability triggered the vision of applications as interacting Web services that can be available for both customers and enterprises. This vision is supported by a number of technologies that standardized information exchange (SOAP), service description (WSDL), service discovery (UDDI) and how services can be coordinated or rather, orchestrated (BPEL, WSCI/WSCL).
Along with the technological development and increase in the amount of information available, the concern about loosening the original hypertext capabilities to relate information semantically emerged. The Semantic Web (described in Chapter 14) is an ongoing effort to address this issue. Together with other emerging technologies such as context awareness support, new foundations are being laid out to enable the Web to become a more proactive source of knowledge.
111
6
Technologies for Web Applications
Martin Nussbaumer, Martin Gaedke
The choice of appropriate technologies is an important success factor in the development of Web applications. We need to know the characteristics of technologies to be able to use them meaningfully. In addition to knowing the relevant technologies, the implementation of Web applications often requires knowledge of how different technologies interact in an existing architecture. This chapter gives an overview of various technologies and their interplay and usage in a few selected architecture examples, based mainly on the World Wide Web Consortium’s (W3C) recommendations.
6.1
Introduction
Conventional software-system development is the process of designing a correct HOW for a well-defined WHAT. Patridge (1992)
Once we have defined the requirements of a Web application, chosen an architecture, and developed a design, etc., in short, once we have clarified the “what”, we are ready to start the implementation phase, i.e., the “how”. In this context, reusability plays an increasingly important role in the development process. The resulting requirements to the implementation of Web applications begin with the choice of appropriate technologies. The requirements for the key principle described in Chapter 5, i.e., separation of content and presentation, is a central requirement to appropriately use technologies. In addition, we have to consider requirements for the distribution and integration of other systems according to a selected or existing architecture. The specifics of implementation technologies for Web applications versus “conventional” soft- ware systems stem from the use of Web standards. This concerns in particular the implementation within the three views: request (client), response (server), and the rules for the communication between these two (protocol). This chapter is organized along the lines of these “views”, i.e., client and server technologies.
Due to the rapid evolution of Web-based technologies it is impossible to fully describe all tech- nologies. For this reason, this chapter will be limited to introducing a few specific technologies as a fundamental choice. First, we will introduce a few protocols commonly used on the Web, empha- sizing the most important protocol for the World Wide Web – the Hypertext Transfer Protocol
(HTTP). We will then introduce selected client technologies. The section on document standards represents a “gray zone” between client and server. The reason is that most current popular Web browsers can process XML technologies, e.g., XSLT. Consequently, allocating this technology to either the client group or the server group is essentially pre-determined by system-inherent prerequisites, e.g., whether or not a browser supports XSLT, or whether the transformation is done on the server side. Finally, we will introduce selected server technologies and architectures.
6.2
Fundamentals
Generally, all programming paradigms, distribution aspects, authoring technologies, etc., can be used as a basis for the implementation of a Web application. This represents one of the problems that have led to the chaotic development of Web applications. Such developments mostly result from ad-hoc approaches or a rapid change in technology. For this reason, this section focuses on the roots, i.e., markup and hypertext. After all, markup, in the specific incarnation of SGML, forms the basis for HTML and XML, while hypertext describes the basic concept of the World Wide Web.
6.2.1 Markup
The concept of markup originates from the publishing industry and generally means typographic instructions for document formatting. These instructions are specified inside a document in the form of additional characters. For example, we could write*Hello*to output Hello or/Hello/ to output Hello. Semantic markup lets us write comments within text without showing them in the document. ISO defines the following markup classes:
1. Markup: This is text inserted in a document to add information as to how characters and contents should be represented in the document.
2. Descriptive markup: This is markup that describes the structure and other attributes of a document, regardless of how this document is processed for representation (e.g., comments).
3. Processing instructions: This is markup consisting of system-specific data; it controls the way a document is processed.
SGML stands for Standard Generalized Markup Language; its development has essentially been promoted by US publishing companies. When using SGML the authors use tags (<tag>) to mark specific text parts, which have previously been defined using SGML (in a so-called Document Type Definition, DTD). Consequently, SGML also serves as a starting point for a number of specialized markups, particularly HTML and XML (see also section 6.5.4).
6.2.2 Hypertext and Hypermedia
Based on the use of markup to mark single elements, hypertext is understood as the organization of the interconnection of single information units. Relationships between these units can be
6.3 Client/Server Communication on the Web 113