XML: A Managers Guide (2nd Edition) (Addison-Wesley Information Technology Series)

Without question, the Internet is a revolutionary phenomenon . In just a few years , it has completely transformed the landscapes of both personal and enterprise computing. The word processor used to be the most important application on a personal computer. Now it's rivaled by the Web browser. The database used to be the most important piece of software in an enterprise computing architecture. Now it's rivaled by the Web application server. What makes the Internet so compelling?

Connectivity Is the Key

The revolutionary benefit of the Internet is connectivity. From a technical standpoint, the Internet is a networking protocol, TCP/IP , plus a suite of higher-level application protocols, such as FTP , HTTP , and SMTP . These protocols are all standardized. Anyone can access information on the Internet using the standard protocols. It's easy to get a connection, and that connection provides access to a broad range of resources.

This easy connectivity creates a positive feedback loop and has motivated a large number of people and organizations to connect themselves to the Internet. As more people and resources become connected, the value of connecting additional people and resources increases .

If the only resource on the Internet were an online bookstore, a few prolific readers might invest the necessary time and money to get a connection. But the fact that people can buy books, music, and computer hardware ”as well as find information about companies, hobbies, and long-lost friends ”makes hundreds of millions of people willing to connect themselves. The existence of all these users creates a market for even more products and services.

Similarly, if intranets provided enterprises with only the ability to connect their employees to human resource applications, enterprises might invest a few million dollars in the technology. But because intranets can connect all employees to all applications, and connect these resources to customers and suppliers, enterprises are willing to spend tens or hundreds of millions of dollars on intranets.

Some people believe that Internet connectivity will snowball to the point where virtually everything containing a computer chip is connected. For example, sensors in your car's fuel pump could detect a problem and send a message to the car's central computer, which would then inform the computer at the auto repair shop. The repair shop's computer would automatically order new parts from the manufacturer. The car's central computer would then query your electronic datebook for a good time to bring your car to the shop, enter the appointment, and inform you via a screen on the dashboard. And you don't have to worry about forgetting your appointment because your electronic datebook would automatically alert you.

Unfulfilled Requirements

Achieving this vision where information seamlessly moves from device to device and server to server requires that the information transferred over the Internet have a great deal of structure. Without the necessary structure, the opportunities for misunderstandings accumulate to make chains of transfers impossible . Before the emergence of Extensible Markup Language (XML), the Internet did not have a structuring mechanism that was flexible enough to accommodate a wide variety of uses. Even relatively simple information transfers such as the following presented challenges.

  • Interchangeable files. Connecting everyone to the Internet naturally motivates people to try to share the information they've created. You've probably experienced the frustration of attempting such a file transfer only to discover that your audience can't read the file format you used. This problem is particularly frustrating in software development. Developers tend to have different preferences in the particular tools they like to use. Moreover, a given development project will often employ a variety of different types of tools. Getting all these tools to exchange files seamlessly is so difficult that most organizations force developers to use the same tools and restrict the types of tools used in the organization. These measures hurt developer productivity. The situation can be equally frustrating for other types of knowledge workers.

  • Customized page layout. Often you'd like to apply a customized layout to a Web page. Perhaps you're accessing the page from a small device such as a cellular phone and want to format it for the smaller display, or you have poor eyesight and would like a larger point size . Maybe you want to filter the Web page to display only recently updated information. With traditional technology, the Web page author must provide completely different pages to support each mode of access.

  • Downloadable product comparisons. The Web has a wealth of information about the features and prices of various products and services, making comparison shopping services popular. But suppose you use one of these services to construct a comparison matrix and then want to import it into a spreadsheet so that you can add your own information. You'd simply like to download the matrix and open it in your spreadsheet application. However, with early Web technology, you had to cut and paste each cell of the table manually into the spreadsheet.

  • Business integration. Many enterprises want to improve the efficiency of internal business processes by integrating different applications and databases. The Internet makes it possible for enterprises to connect these systems physically. Unfortunately, different applications have their own programming interfaces so they cannot understand each other. Furthermore, these applications access databases with different ways of representing data, so it's difficult to create a coherent view of all information related to a particular topic. Together, the lack of common structures for application interfaces and data representation makes it extremely challenging for enterprises to improve their global business processes continuously.

  • Trading partner coordination. Many enterprises also want to improve the efficiency of external business processes by integrating their systems with those of their trading partners . While the Internet offers an enormous advance in enabling these partners to exchange information electronically , they must still agree on how to interpret this information. In addition to all the problems inherent in business integration, trading partner coordination involves another set of issues regarding agreement on the terms of the trading relationship and the policies to apply during trading. Without mechanisms for establishing these agreements, partners cannot automatically process the information they receive from each other.

Whereas earlier Internet technologies have difficulty accommodating these tasks , XML does not. XML makes it easier for different people and different pieces of software to agree on the structure of information exchanged over the Internet.

Roots of the Connection Problem

Understanding how XML can help you overcome the challenges of universal connectivity begins with analyzing the root cause of this problem. The underlying issue is that each party that accesses a piece of information has a different perspective on what that information means. The more parties involved, the greater the opportunity for confusion.

Consider the case of spoken language. You probably find it easy to communicate with your immediate family and coworkers. Now expand the number of people with whom you communicate. As you expand outside your immediate geographical location, you will find that people use different colloquialisms. As you expand outside your profession, you will encounter unfamiliar jargon. And if you expand the number of people with whom you communicate far enough, you will encounter completely different languages. The more people with whom you speak, the greater the opportunity for miscommunication .

Now let's look at an example of different perspectives on the Internet. Suppose you plan to buy a CD-RW drive online. This is an easy enough task if you plan to visit just one online store, but what if you want to compare prices at several different Web sites selling computer hardware? Each Web site has a top-level page with the different categories of products it offers. The first site you visit has a "CD-RW" category. The second one does not, but it does have a "Storage Devices" category that contains CD-RW drives. The third one also has a "Storage Devices" category, but this category has "Fixed," "Removable," and "Optical" subcategories . It turns out that CD-RW drives are in the "Optical" subcategory . Yet a fourth site has a "Storage Devices" category with no CD-RW drives. This particular site put them in the "Multimedia" category. Once you find a list of CD-RW drives at each site, you face another problem. Some list them by product description and others by manufacturer serial number. How do you compare prices if you're not sure they apply to the same item? The more stores compared, the greater the range of representations for the same information.

Given enough time, you would probably surmount these obstacles to online comparison shopping for CD-RW drives, but what about an automated shopping agent? It should be easy to create a software program that visits each retail site and finds the price for a particular product. Unfortunately, with different organizational and product listing schemes, the shopping agent will probably be unable to gather pricing information from every site, making it difficult to find the lowest price. People compensate for the Web's current shortcomings in representing information by spending more time in their searches. But we are denied much of the Internet's potential for automatically gathering and processing information. Delivering on this potential is difficult with ad hoc information representation.

The problem of automated information processing is particularly acute for enterprises. One of the great promises of Internet computing is connecting enterprises to their suppliers, partners, and customers so that they can achieve manufacturing, inventory, and distribution efficiency. However, each company's information systems define common business concepts such as product, order, and invoice differently. Even within one company, two divisions often have their own definitions of these business concepts. Imagine the gulf that exists between different companies in different industries located in different parts of the world. How could an enterprise make its information systems cooperate with those of a foreign supplier? Solving the problem for one supplier is easy. The company could just build a one-to-one translation program. Unfortunately, most enterprises deal with hundreds of suppliers, requiring the construction and maintenance of hundreds of translators. The resulting business environment is hardly a picture of free- flowing global electronic commerce.

Категории