Since it burst on the scene in the early 1990s, the World Wide Web has transformed from a way (to quote Homer Simpson) to “let us know some nerd’s opinion on Star Trek” to a whole new way of doing business. Hardly an area in the information technology industry has been unaffected. Developers who only yesterday were using COBOL to write accounts payable systems are now being asked to create a broad range of new Internet-based applications, including electronic commerce (e-commerce) web sites, internal data warehouses, and enterprise resource planning (ERP) systems.
Unfortunately, the filesystem architecture of most web systems is beginning to show its age. The new breed of web application, which is quickly becoming critical to companies’ survival, demands a platform that provides production-quality tools for content management, application development, and application integration.
The new release of the Oracle database, Oracle8i, attempts to meet these and other objectives by building web technology on top of a relational database system, rather than on a filesystem. This type of development enables companies to apply well-understood, reliable, production-quality database methodologies to web content management. Oracle8i also supports a wide variety of application development platforms and tools that are tightly integrated to the core database. Finally, Oracle8i supports technologies that help you tie your web-based systems to legacy applications.
In this chapter, I’ll examine these issues in more detail. I’ll start with a look at the new web applications and why current web technology isn’t an ideal platform for building them. Next, I’ll look at how Oracle8i and its related products attempt to address the failings of previous web technologies. Finally, I’ll lay out a roadmap you can use to get started with Oracle8i web development, so you can take full advantage of the Web.
Flush with both the successes of the World Wide Web and its potential to generate new revenues, companies are scrambling madly to exploit Internet technologies. Internet technology is now commonly required for at least four different types of projects: internal application projects, like data warehousing; mobile application projects, like sales-force automation; electronic commerce, like Internet storefronts; and enterprise resource planning (ERP) systems for automating business operations.
Internal applications are critical resources for a variety of users within a company. For example, developers must build web interfaces for data warehouses that often contain several terabytes of data. In addition to responding quickly, these systems must often meld several different kinds of data—table data, images, and even videos—into an attractive page.
Once these systems are in place and successful, developers are asked to create new systems called mobile applications that can extract subsets of the data warehouse for use on portable devices like laptops, PalmPilots, or other Personal Data Assistants (PDAs). These systems, often used by salesman or technical support personnel, allow users to work even when not connected to a network. The data these users enter is synchronized with production systems when the users reconnect to the main network.
Internet storefronts and other e-commerce applications let customers buy things over the Web. Increasingly, these applications are expected to integrate with existing order entry systems, provide continuous availability, and protect both the customer and the business from attacks by malicious hackers.
The most ambitious companies use Internet technologies to reduce costs through business-to-business enterprise resource planning systems, which let systems in one company communicate directly with systems in another company over the Internet. For example, an ERP system might let the purchasing system in company A place an order directly with the order entry system in company B. The goal is to automate everything from paying invoices to ordering paperclips. These hybrid sites must integrate many different application systems, from accounts receivable, to accounts payable, to order entry, into a single, cohesive unit that performs a complex series of transactions quickly, accurately, and securely.
Despite the diversity of these application systems, they share several characteristics:
Each system may deal with a variety of data: traditional relational data, multimedia data such as video or audio clips, structured files like spreadsheets, unstructured documents like emails or text, and web documents like HTML and, increasingly, XML.
The information in each system must be available to many types of clients: a workstation connected through a LAN or WAN, a web browser connected through the Internet or an intranet, a PalmPilot connected through a modem, or even an email client connected through a POP server.
Most application systems are built by developers who are overworked and overstressed from keeping production systems running, maintaining legacy systems, and fighting the daily fires caused by hardware, software, and user problems.
It’s tempting to keep trying to extend current web technologies to meet the additional demands of the new generation of Internet web sites and applications. Unfortunately, this effort is probably doomed to failure. While today’s web servers comply with the requisite protocols, they are simply not designed to manage complex information, because they are, at heart, little more than networked extensions of traditional filesystems.