Deva Hazarika
Vice President, Product Development
Moai Technologies, Inc.
March 1996
In light of the explosive growth of the Internet and the World Wide Web, corporations have started to recognize and accept the Internet as a viable and promising vehicle with which to conduct business. Because of its hypertext capabilities, the Web is an effective communications tool to use to advertise a company or its products. Getting this information out on the Internet is a relatively straightforward process, and many companies already have a presence on the Web.
More recently, much attention has been focused on the interactive capability of the World Wide Web. Forms on a browser combined with Common Gateway Interface (CGI) programs on a Web server can provide basic interactive functionality. Combined with flexible access to local and remote databases, the potential of the Web far exceeds that of an information distribution channel. Uses can range from general commerce with electronic storefronts to internal corporate "intranets" that manage and access information. The structure involving the Web server and the client browsers that can access these types of Web sites is in every sense a distributed application.
Web application technology has already evolved beyond the maintenance-intensive paradigm of individual CGI programs that manage each interactive form on the Web site. Intelligent engines on the server can handle all form and database interaction; functional components of the application can actually be sent for execution in the browser; and Web servers have been extended to include high-performance native application programming interfaces.
The technology exists today to develop complex distributed client/server systems for deployment on the Internet. Some of the key issues that an information systems professional must address when building such a system are its flexibility, scalability, and extensibility. The ideal solution for Internet applications is one that not only is easy to build and deploy but also possesses the scalability of traditional client/server systems and allows for easy integration with the newest emerging technologies.
Traditionally, interactive Web sites have consisted of forms that allow users to enter data via their browsers. Custom applications or scripts written for each individual form process the information entered and generate the appropriate response. This method requires a significant development effort and creates a large maintenance burden. Interacting with databases or performing complex processing compounds these problems enormously.
As the interest in deploying complex database applications on the Web has increased, productivity tools to address these issues have begun to appear. Many of these tools can be broadly categorized as World Wide Web (WWW) structured query interface (SQL) gateways. Instead of creating many different executable files or scripts to process information, these tools provide a single point through which data is processed and where appropriate SQL statements are executed against the database. Some tools allow the forms to embed SQL statements in their requests. Others use template files with database information in them and convert them to HTML when a browser requests them from the server. Most of these products require the developer to edit existing HTML documents and insert special directives and macros. A select few allow the user to map the SQL to specific elements on the HTML form without editing the documents by hand. Regardless of the implementation or specific features, these tools provide a straightforward means of accessing data in relational databases via the Web; however, they provide neither the power required for true application development nor the ease of use required for rapid application development.
Very powerful application development environments for the Web are also beginning to emerge. The initial products are simply subsets of existing client/server development environments with an additional layer to create HTML output that can be viewed on the Web and that process form data instead of traditional user input. Instead of the typical executable file created in the client/server versions, these tools create the proper program and template files or set of executable files necessary for Web deployment. Such tools allow for the creation of powerful applications on the Web; however, they require a full-scale development team of highly skilled programmers. Due to the nature of the Web, the testing and maintenance of such an application is significantly more complex and resource-intensive than would be required by a traditional client/server application.
One of the most publicized strategies for the creation of interactive Web applications is the concept of downloading applications or specific functional components from the Web that will run within the browser. This strategy is being pursued in different ways by many companies. While allowing for complex processing to occur on the client side, this strategy requires a full-scale development effort to create the pieces of the application that will be downloaded. Two major issues remain with such strategies: guaranteeing the security in such distributed systems, and the communications bandwidth necessary to effectively access such applications over the Internet. These and other issues will be addressed as the technologies mature. Frameworks and libraries will also emerge that include server engines running in conjunction with the Web server, allowing ease of the development burden.
The prospect of building and deploying a Web-based application may seem daunting with such a broad spectrum of tools available and with new ones emerging in the marketplace at a frenetic pace. However, Web-based applications have many advantages, and the features in today's Web servers and Web application development tools make it easier than ever to build powerful, robust applications. The following sections outline the advantages of these applications and introduce some of the most important new technologies, including the latest developments in Web server application programming interfaces (APIs) and visual development tools for the Web. With this information, information systems professionals can make an informed choice regarding the appropriate tool set for the task, whether they are prototyping a simple data-entry screen or deploying a mission-critical system on the Web.
Perhaps the most significant and dramatic benefit of deploying applications on the World Wide Web is the ability to create cross-platform applications without the cost of creating and distributing multiple versions of the software. Applications that use the Web server as an interface between the end user's Web browser and the application on the server generate HTML output that can be viewed by users on any platform. As client-side executable and scripting capabilities become more commonplace in Web browsers, technologies such as OLE, Sun Microsystems® Java™, and Microsoft® Visual Basic® Scripting Edition will provide even more power and flexibility for these cross-platform applications.
The centralized maintenance of Web-based applications is another important benefit. The cost involved in coordinating the maintenance of distributed applications and distribution costs for maintenance upgrades can often dwarf the initial development cost of the application. Changes made to Web-based applications on the server take effect immediately for all users, eliminating issues of incompatibility due to version differences. Web applications that take advantage of client-side processing with downloadable components such as Java and OLE Controls allow the Web browser to instantly download changed components, making an "instant upgrade" possible when changes are made.
Some of the most challenging issues in developing distributed applications involve data synchronization and concurrency. Web-based applications access centralized data on a server platform and utilize technologies such as SQL to efficiently manipulate the appropriate data. This eliminates a multitude of problems involved with synchronizing redundant data that resides in multiple client-side databases. Developers can create custom code or take advantage of development tool features that address the issues of multiple users concurrently modifying the same data. Users can thus be provided with instant feedback regarding database conflicts instead of submitting their changes and waiting for the results of data synchronization processes.
In addition to all of these important benefits, there are other advantages shared by both stand-alone Internet-enabled applications and Web-based applications that run in conjunction with a Web server. As is necessary in all well-designed client/server systems, these applications are completely scalable. Server-side applications can be deployed across multiple machines and access the full spectrum of database servers. Another significant advantage is the ease of accessibility and relatively low access cost for these applications. End users are not required to have access to a costly wide area network (WAN), and the application servers are not required to have costly telephone banks that must be accessed via modem. End users merely need to have access to the Internet, which continues to drop in cost and has become a standard component in new computer operating systems. This combination of factors makes possible the dramatic cost benefits in development, maintenance, and access for Internet applications.
Information systems professionals using Microsoft platforms and tools have a wide range of options to choose from when developing interactive applications on the Internet. This range of solutions includes stand-alone Internet application development using the Internet software development kit (SDK), Internet Server application programming interface (ISAPI) dynamic-link library (DLL) development using Microsoft Visual C++® or other programming languages, site development tools such as Microsoft FrontPage and Internet Studio, and database-enabled Web application development with visual tools such as Business Object Architecture (BOA). The full spectrum of solutions are divided into two distinct families, development solutions for programmers and authoring/development tools that provide visual development frameworks. Other technologies such as client-side executable components, client-side scripting, and database connectivity are also discussed.
Microsoft's Internet Information Server (IIS) contains support for CGI, the basis of most previous interactive Web applications. Developers can use languages such as Visual Basic, Perl, or Visual C++ to develop CGI applications. Interaction with other Microsoft Windows®-based applications is easier using a specialized CGI implementation, Windows CGI. Windows CGI is supported in Internet Information Server using the IS2WCGI.DLL, part of the Internet Information Server SDK samples. The primary advantage for CGI- and Windows CGI-based solutions is the large base of pre-existing code available. By supporting CGI, IIS provides an easy transition as developers migrate existing CGI applications to technologies such as ISAPI. Various tutorials, code samples, and applications based on CGI are readily available on the Internet, and they allow developers to quickly leverage their development experience to create Internet applications.
Developers familiar with DLL development will be able to quickly develop ISAPI DLLs that extend the functionality of IIS. Using tools such as Visual C++, developers can create high performance DLLs that work in conjunction with IIS. Specifications for the creation of ISAPI DLLs are outlined in the document "A Specification for Writing Internet Server Applications," which is available on the Microsoft Web site.
Web applications developed using CGI or ISAPI follow the same basic set of steps. They first interpret information entered by the user via a Web browser. Based on this input, the CGI program or ISAPI DLL performs the appropriate functions. The final step in the process involves sending the output back to the user's Web browser in HTML format. These solutions are ideal when complex processing must be performed based on the user's input. ISAPI also provides the ability to create filters that are called every time a user accesses the Web server, allowing developers to add custom logging, auditing, and security capabilities to IIS. Details regarding this feature can be found in the Internet SDK document "Writing an ISAPI Filter."
Developers who are experienced in writing HTML pages and need to add simple database queries to their pages can take advantage of the Internet Database Connector (IDC) component of IIS. IDC allows developers to include SQL query information in their Web pages without writing separate programs. A large portion of database access via Web pages involves simple retrieval and update capabilities, which are now possible without extensive programming.
A final option for experienced developers is the Internet SDK. The Internet SDK is a set of client APIs that allows developers to add Internet functionality to Windows-based applications. New client applications using the Internet as their transport network can be easily created, and existing applications using technologies such as OLE can be extended to function on the Internet. An overview of Sweeper, many technical documents, and sample applications are all included in the Internet SDK, available for download from the Microsoft Developer Network (MSDN) Web site http://www.microsoft.com/msdn/.
The development and maintenance of a large Web site is a complicated and costly endeavor. Microsoft has a family of tools to ease this burden. These tools include Internet Assistant for Word, FrontPage, and Internet Studio. Internet Assistant for Word is a simple HTML authoring aid. Internet Studio is the other side of the spectrum, allowing professional content developers to include the full spectrum of multimedia capabilities in their Web site.
FrontPage goes a step beyond standard Web site authoring tools with powerful administrative utilities and a set of simple interactive components. These "WebBots" allow simple interactive components to be added to Web pages without any programming. Web sites that need basic functionality usually provided with CGI scripts can use FrontPage WebBots to add functionality such as search screens and basic form processing. The functionality provided by WebBots, combined with the user-friendly administration and maintenance capabilities of FrontPage make the deployment and management of sophisticated, interactive Web sites a relatively simple task.
Information systems projects that require scalable, database-enabled applications on the Web can take advantage of products such as the Business Object Architecture (BOA) from Moai Technologies, Inc. BOA provides a codeless visual development environment that allows developers to leverage the advantages of Web-based solutions using IIS without knowledge of HTML, SQL, or programming languages. The BOA server runs in conjunction with the Web server to maintain state information for each user of the application and perform all form processing and database interaction. Developers define reusable data objects, screen layout, and application logic in a visual development environment, BOA Studio. The BOA Server processes user input, dynamically creates the required SQL to obtain the results, and generates the output in HTML format. All BOA database objects used by BOA are completely data-driven with definitions stored in the database, allowing BOA developers the ability to create Web interfaces for pre-existing applications as well as custom applications driven by BOA data definitions. BOA currently runs in conjunction with IIS using IS2WCGI.DLL. A higher performance ISAPI version is in development, as is a version that includes VBScript capabilities.
Application components that can be downloaded from Web servers on a dynamic basis are one of the most discussed Internet technologies. Most IS developers are familiar with the concept of Java. Small "applets" can be contained within HTML pages and executed by the Web browser. While this technology is still maturing, it holds a lot of promise and Microsoft has announced its intentions to support Java. Another option that already exists for Windows platforms is the creation of OLE Controls that can be distributed via the Web. Developers with experience developing OLE applications already possess the knowledge to develop executable content for dynamic distribution on the Web. OLE is currently available on the Microsoft Windows and Apple® Macintosh® operating systems; UNIX versions are being developed, making OLE Controls another option for cross-platform executable content.
In addition to executable files that can be downloaded from the Web servers and executed on the client, client-side functionality beyond HTML can be added to Web pages with scripting languages that the Web browser can interpret. Microsoft has introduced VBScript, based on its Visual Basic language. The latest information regarding VBScript can be found on the Microsoft Web site at http://www.microsoft.com/vbscript/.
No discussion of interactive applications on the Internet would be complete without discussing database connectivity. The Internet Database Connector component of IIS allows developers to include SQL queries in their Web pages using open database connectivity (ODBC), instantly bringing basic database connectivity to Web pages. Database connectivity can also be obtained via custom ISAPI or CGI applications and rapid application development environments like BOA. All of these solutions provide access to the full range of Microsoft databases, from Microsoft Access to Microsoft SQL Server™.
The ability of Web-based applications to access databases is the key to corporate application development on the Web. Completely new applications can be developed with all of the advantages of traditional client/server applications plus the Web advantages discussed above. Existing corporate databases can be accessed via the Web, providing unparalleled information to access. Finally, pre-existing applications that have more traditional components for information input and updating can be augmented with a Web-based front end. These types of solutions allow corporations to take advantage of the Web while still leveraging their previous development investments.
Scalability of any application server, Web server, and database server can be taken advantage of with any of the above solutions. This allows someone to develop a simple Web application solution using Microsoft Access and IIS on a single machine and later deploy the same application over a Microsoft Windows NT® network of multi-processor machines using SQL Server for a large-scale production system. Choosing the correct set of technologies for an information systems project will lead to an effective solution developed in a cost-effective manner, which can take advantage of the client/server scalability and integrate new technologies as they emerge.
The advent of the World Wide Web has made the Internet an accessible and practical network upon which to deploy distributed applications. Both ISAPI and CGI provide an interface between applications and IIS, allowing developers to create sophisticated, database-enabled applications on the Web. A full spectrum of development options exist, from low-level DLL programming with Visual C++ to rapid application development tools like BOA. A corresponding wide range of deployment options exist, ranging from IIS and Microsoft Access on a single machine to a network of Web servers accessing SQL Servers. Analysis of the issues documented in this paper will enable IS professionals to choose the correct solution for their needs, leading to productive development and efficient deployment of Internet applications on the World Wide Web.
Deva Hazarika (deva@moai.com) is Vice President of Product Development for Moai Technologies, a software company specializing in Internet application development tools.
Further information regarding BOA and Moai Technologies can be obtained by calling Moai Technologies at (415) 495-8901 or at their Web site, http://www.moai.com/.