Developing and Deploying Interactive Applications on the Internet
Deva Hazarika
Vice President, Product Development
Moai Technologies, Inc.
Overview
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 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 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.
Background
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 executables 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 process form data instead of traditional user input. Instead of the typical executable
created in the client/server versions, these tools create the proper program and template
files or set of executables 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; this will allow to ease
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
todays 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.
Benefits of Web-based Applications
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 users
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, 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 scaleable. 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 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.
Microsoft Internet Solutions
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
Visual C++® or other programming languages, site development tools such as 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.
Solutions for Programmers
Microsofts 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 Windows® 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 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," 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 users Web browser in HTML format.
These solutions are ideal when complex processing must be performed based on the
users 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
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's For Developers Only Web site.
Visual Authoring and Development Tools
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 Microsoft Word, FrontPage, and Internet Studio.
Internet Assistant 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.
Microsoft 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 scaleable, 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.
Client-Side Executables and Scripting
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 for Windows and Macintosh platforms;
UNIX versions are being developed, making OLE Controls another option for cross-platform
executable content.
In addition to executables 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.
Databases on the Web
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 Access to 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 Access and IIS on a single machine and later deploy the same
application over a Windows NT network of multi-processor machines using Microsoft
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, that can take advantage of the client/server scalability and
integrate new technologies as they emerge.
Conclusion
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 the Internet Information Server,
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 Access on a single machine to a network of Web servers
accessing Microsoft 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
.