This section will provide background on XML and introduce other technologies that are emerging as significant in computing.
An important consideration underlying Web development will be the penetration of high capacity, so-called broadband communication, replacing dial-up or no access at all. At the present time, you cannot predict the bandwidth and the reliability of the communications link used by the visitors to your site. Costs and local availability can prevent people and organizations getting high performance connections. Early predictions that everyone would move immediately to high-speed access were premature. It is safe to assume that access and reliability of connections will improve. However, the variability of connections continues to make the design of sites a challenge.
XML is a format for presenting information for use between computer applications that also can be created and read by people. XML resembles HTML. Both are variants of Standard Generalized Markup Language (SGML). An XML document has one element, called the root or document element, which contains other elements. Elements can contain attributes, child elements, and text. An example of XML is the following:
<?xml version="1.0"?> <country name="USA"> <state capital="Juneau">Alaska</state> <state capital="Cheyenne">Wyoming</state> </country>
This example starts with the XML declaration. The document element for this example is the country element. It contains an attribute by the name of “name,” with value “USA.” The document element contains two child elements, each of type state. Each state element contains an attribute named “capital.” The content of each state element is a text string: Alaska in one case, and Wyoming in another. An XML document can be viewed as a tree of nodes. Each node can potentially have any number of child nodes as well as attribute values. Another way to view XML is as a form of HTML in which you specify the tags. An XML document cannot be as loosely defined as an HTML document. It must be what is called well formatted. The nesting must be proper: no closing of an outer tag before closing all contained tags. All attribute values must be enclosed in quotation marks (single or double). Singleton tags must contain an internal closing slash:
<image src="/books/2/886/1/html/2/bird.gif" />
The DBMS products are adding features for generating and interpreting XML. For example, SQL Server has a new form of the select statement:
SELECT * FROM [tablename] FOR XML AUTO
You now can consider the relationship of XML and databases. Does the advent of XML mean that we will no longer use databases? The answer to that question is “no.” Some information is well suited to databases as they currently exist with tables and relationships between tables, and some information is well suited to the tree structure of XML. An XML document is, underneath, linear text. The various DBMS products handle large amounts of data much more efficiently than any of the tools handle text. However, for small(er) amounts of data, especially information for which the tree structure fits, XML will be the way to go. It is likely that you will build an application that incorporates use of a database and XML. An emerging technology is so-called Native XML Databases that will hold the XML data in a format for efficient processing.
The XML format has been adopted as a model for handling data for many areas, including several of the technologies described next.
The term Web Services, with uppercase “W” and capital “S,” refers to systematic ways to integrate services or what is also called functionality in your application. For example, a vendor could offer as a service the function of verifying or billing credit card companies. You would create the rest of your application, using PHP or ASP as described here. Your code would incorporate the features of your particular organization. When it came to constructing the code to invoke the vendor’s service, you would use Web Services to make the product work for you. The integration of your application and the vendor’s product might require you to pay attention to multiple layers of communication and multiple, and sometimes competing families of standards. The Simple Object Access Protocol (SOAP) defines one of these levels. The open-source world, IBM, Sun, Microsoft, and other companies are all presenting possibilities. At the moment, IBM, Sun, and others are pushing open-source standards, with Linux and Java J2EE as critical components. The Microsoft Corporation is pushing .net. Some of the families of solutions specify XML as the format for conveying content.
The area of Web Services appears to be even more acronym intensive than is the general rule in technologies. Be on guard against conflicting definitions. The acronym ASP might stand for active server pages or application service providers. The acronym WML might stand for wireless markup language or Website meta language.
Wireless devices, including cell phones and personal digital assistants, are emerging as an important class of access to the Web. These devices might not replace the desktop computer, but might be the class of choice for current and new types of applications. These applications might require server-side programming accessing databases and files.
Advances in speech recognition and speech synthesis have created opportunities for an ordinary telephone to serve as an interface for computer applications. A standard called VoiceXML can be used to prompt callers and detect responses as long as the responses can be characterized as fitting a grammar or menu of choices. One action of the code could be to invoke a program, written in PHP or ASP, which accesses a database.