Web + DBMS Integration
Table of Contents
2.0 Design Space
The web is connecting together data sources at a fantastic rate. Many data
sources including DBMS systems that were formerly inaccessible and write-only
are or could soon become accessible. There is increased incentive in enterprises
to make more information available not just within the organization but
to customers as well.
The purpose of this section of the Internet Tools
Survey is to identify software architecture approaches for integration
of the Web with DBMS systems. A companion section of the survey covers
Web + Object (middleware) Integration. So far we
have not surveyed Object Middleware + DBMS integration. Background sections
cover the current Web Architecture and OMG-based
The next section provides a design space of
some of the dimensions that affect the varying architectures of Web + DBMS
integration. The final section lists specific systems
and describes their Web + DBMS integration approach.
2.0 Design Space
As will be clear in the section describing various systems
below, there are currently many variants of how to connect the Web to DBMS
systems. The purpose of this section is to understand the range of design
A design space is a category scheme of design choices that covers
a range of variations in approaches. A collection of systems or examples
is reviewed and the design space captures the main design dimensions and
alternative choices within each dimension. The approach can lead to more
general solutions which can emerge from viewing the main design choices.
Then, specific systems can evolve toward more general solutions.
This section begins with a discussion of Web + DBMS integration architectures.
We then discuss the evolution of features
to support information accessibility on the web, and then the kinds
of databases that are now or will likely be available through the web.
As data is stored using different data models, we then discuss concerns
about a common data model, sharing of complex
(and multimedia) data types, and how
multiple data sources can be connected together with DBMS
glueware. This is followed by a discussion of two-
and three-tier architectures we can build with databases, then useful
web-related database functionality, and
finally, proprietary and
Here's a list of the topics in this section:
2.1 Web, OO Middleware,
At a high level, the Web provides client and server interfaces that each
allow connection to any kind of service, including middleware services
(e.g. CORBA services) or database services (e.g. database access). Similarly,
middleware services often connect to DBMS systems. So common architectures
are those shown in the upper part of Figure
1. These may converge to the unifying architecture shown at the bottom
of Figure 1 as database connectivity becomes more important, as required
standards evolve and are adopted by industry, and as middleware services
becomes more prevalent.
Figure 1. Convergence of Architectures To A Unifying Three Tier Architecture
Web systems exist now that provide client-middleware-database architectures
(we review several of these below). However, many of the systems surveyed
provide a tight coupling between the web and the database, and therefore
we categorize these under the web+database architecture in Figure 1. In
the architecture shown in the lower half of Figure 1, objects will
be passed between (usually Java-enabled) web clients and middleware servers,
while middleware servers will communicate with DBMSs as well as other backend
sources via an object bus.
This survey covers Web + DBMS integration, the upper left case in Figure
1. A companion section of the Internet Tools Survey covers Web
+ Object (middleware) Integration, the upper middle case. We have not
written a section on Middleware + DBMS Integration but see
for an initial discussion on that topic.
2.2 Web Generations
Some view the web as rapidly evolving through several generations of increasingly
general functionality. Web + DBMS systems vary in the way they connect
Static HTML. The first generation web only supported browsing
of static HTML pages.
CGI plus Scripting. A second generation used the Web's Common
Gateway Interface (CGI) plus web programmer-designed, proprietary, and
idiosyncratic scripts written in scripting languages like Perl or programming
languages like C to dynamically construct custom and application-specific
Extended CGI and Application Generation. From a DBMS point of
view, a third generation on the server side makes application construction
higher level via recourse to higher level application generation tools
(e.g., object modeling, CASE, DBMS). DBMS vendors (and in general vendors
of client-server software) are providing ways of connecting Web interfaces
(mostly based on CGI and now Java) to existing DBMS data and client-server
functionality. These provide a third generation of integration in that
higher level tools or techniques can be used to limit the amount of custom
code that must be developed. Some specific Web extensions and techniques
to handle sessions (e.g., Netscape's cookies) are a step in the directions
of extending stateless CGI capabilities for applications that depend on
Client-side DBMS Connections. A forth generation (the current
generation), downloaded client-side Java applets, are now providing direct
client-side connections to middleware, DBMS gateways and systems and bypassing
the Web server and its CGI API. With this architecture, applications are
downloaded to "thin Web clients" on a just-in-time basis. This permits
richer transactional and session-based interfaces than pre-Java stateless
forms-based interfaces that could reside on the client side. JavaSoft's
JDBC API provides a Java class library for interfacing
applications to DBMS clients including ODBC.
Other architectural variations are considered below.
2.3 Kinds of DBMS
A principal dimension of categorization is the kind of data source connected
to a Web system. Some of the main choices are listed below. In the last
few years, the Web has quickly become a universal publishing medium for
unstructured and semi-structured information. Now, there is a rush to use
the Web to connect once closed and write-only DBMS systems and databases
to internal and external customers. If successful, this would extend the
reach of the Web to also subsume structured information. Of course, a useful
goal would be to develop middleware technology to provide transparent
access to data regardless of its source.
File systems - File systems contain the bulk of information.
There are billions of application-specific file-formats and thousands of
standardized file formats. File systems are relatively light weight and
provide varying services (storing and naming persistent opaque large objects
(blobs), sometimes security, versioning, and replication). First and later
Web architectures depend on access to HTML usually stored in files.
Information Retrieval Systems - After years of playing a back
seat role to DBMSs, information retrieval in the form of web crawlers has
become a basic ingredient in browsing the Web. These systems (e.g. Lycos,
AltaVista) generate indexes
of the information stored on the internet. We cover these separately in
the internet tools survey on Searching and indexing.
COBOL, Navigational and Hierarchic DBMS - Significant amounts
of data are stored within these and other types of legacy systems. Many
of these systems are still in operation today (e.g. a part of one major
U.S. airline's system is still running on pre-ANSI FORTRAN).
Relational DBMS - Relational DBMS systems are mature in the
market (but only since the late 1980s). Dominant vendors are Oracle, Sybase,
Informix, IBM, and Microsoft but there are many more (not listed).
Object DBMS systems are the perpetual runners up. Object
Database Management Group (ODMG) is a consortium of vendors of many
of the object-oriented DBMS systems. ODMG-93
is their standard specification (latest release 1.2, December 1995). Voting
members of ODMG are GemStone Systems
(formerly Servio), IBEX Computing,
O2 Technology, Object
Design, Objectivity, POET
Software, UniSQL, and Versant
Object Technology. Related information is available here.
Object-Relational - Object-Relational is a term for systems
that support both relational (table-based) SQL queries and object data
types. At this point, most ODBMSs offer a relational query capability and
some RDBMS' provide some ADT capabilities so differences are in the details.
Componentware DBMSs - OMG CORBAServices provide services
for data modeling, persistence, transactions, queries, and several other
DBMS functions and provide an alternative middleware approach to exporting
DBMS function. So far, there are few vendors of CORBAServices and so it
is early to say whether DBMS functionality will appear in componentware
form though some promising experiments demonstrate this approach (e.g.,
the TI Open OODB system) and some interested products are on the horizon
(e.g., Microsoft OLE/DB).
2.4 What Data Model is supported?
Different DBMS systems provide native support for different data models.
See Object Model Interoperation
for a list of problems caused by modeling data in too many different object
To date, the relational DBMS community supports tables. SQL2 is the current
standard ISO/ANSI X3H2 SQL. SQL3 is an upwards compatible specification
that adds objects via abstract data types (ADTs), which are unfortunately
not the same as OMG IDL objects (meaning that unfortunately the world will
have two competing incompatible modeling languages for sharing complex
objects. The SQL community is also specifying standard libraries for GIS,
multimedia types, etc. as is OMG, again incompatibly.
Several ODBMS vendors support C++ and Java, others support Smalltalk, some
support all three. The ODMG standard defines ODL (Object Definition Language),
a superset of OMG's IDL, which also includes a specific class library that
defines collections among other data types. ODMG also defines a not-very-seamless
"binding" to C++. ODMG OQL is an object variant of SQL3 but uses the ODL
object model in place of SQL3 ADTs.
The potential is there for OMG, SQL3, and ODMG to converge on a common
object model but this does not appear to be happening (although there are
efforts within the ODMG and X3H2 to attempt to merge OQL and the query
portion of SQL, but it is difficult at this point to say how successful
these efforts will be).
2.5 Complex and Multimedia Data
DBMS vendors are beginning to provide more or less support for extensibility
of new data types and integration with existing data stores. Sybase provides
separate, unintegrated servers for geospatial data and relational data.
Other DBMS systems (e.g., Oracle, Informix/Illustra, IBM DB2, Object Design)
provide "data blades" or Database Extenders, that is, well supported (class)
libraries for some useful data types like text, audio, images, video, spatial,
time-series, HTML, Java, and other data types. Some of these libraries
are application-developer extensible but they are tied to particular DBMS
products and not portable though it appears that they could be made portable.
ODI's libraries appear to be C++ libraries that are made persistent, versionable,
and event-driven via ODI's C++ processing.
In the short term, media class libraries are much better than each programmer
developing idiosyncratic media types. In the longer term, standard media
libraries and/or porting standards could be developed to make applications
developed using one DBMS system portable to another. In fact, there is
no real reason why these libraries should be only useful to DBMS applications.
They could be useful to any multimedia web application.
2.6 DBMS Glueware
There are some tools, techniques, standards, and glueware for connecting
DBMS systems together with loose or tight coupling.
Federated DBMS architectures create a front-end DBMS that maps queries
to any of several possibly heterogeneous backend DBMSs. In spite of several
years of DBMS research on heterogeneous DBMS systems, many DBMS research
puzzles remain. Research is ongoing - see SIGMOD'96
(SIGMOD) and DARPA
RDA and ODBC provide DBMS gateways so applications connected to ODBC
can be connected to any of several backend DBMSs. JDBC API is a standard
SQL database access interface from JavaSoft that provides a Java class
library for interfacing to DBMSs in a standards way, including a JDBC-ODBC
Vendors like Persistence Software Inc., Object Design Inc. (ObjectStore
DBConnect), Rogue Wave Software Inc. (Dbtools.h++)
and ParcPlace (VisualWave)
provide differing ways to provide OO front-ends (e.g., C++ class libraries)
to relational DBMS systems.
X/Open XA defines protocols for transaction commit coordination protocol
to insure that a parent transaction only commits if all child transactions
in separate DBMS systems commit.
Microsoft OLE-DB is a library of interfaces that componentizes some
useful DBMS query interfaces.
2.7 Two- and Three-tier
Traditional client-server architectures are called two-tier or fat client
since application logic resides in the client and the server provides a
generic service. Since many servers provide overlapping middleware capabilities
and thinner clients are desirable, some newer Web and middleware systems
use so-called three tier architectures with a thin client connected to
a server which connects to other servers as needed. CORBA provides an extensible
way of doing this but many systems have specialized capabilities. For instance,
a federated DBMS might be viewed as a parent DBMS engine that coordinates
and accesses other DBMS engines.
There are many ways in which DBMS systems are currently being hooked to
the Web. At present, most products use CGI, and some are compatible with
NSAPI, ISAPI, and WRBAPI. These typically connect to one of the following:
a DBMS client directly, an analysis or decision support system, a caching
scheme for caching multiple DBMS connections, ODBC so many DBMS systems
can plug in, or CORBA which then connects to a DBMS. Alternatively, some
new systems are downloading Java applets that then interface to a library
like JDBC or a CORBA client which then interfaces directly to a DBMS client
or ODBC or various CORBA services. A nice tutorial on web-based legacy
DBMS access is available here.
2.8 DBMS Functionality
Web systems can connect to DBMS to show off more or less of the DBMS functionality.
Both file and DBMS systems provide local stores of information. DBMS systems
compete with file systems in supporting a richer collection of services
(good performance, fine-grained persistence, sharing, concurrency, transactions,
queries, updates, optimization, referential integrity, sometimes relationships,
distribution, replication, security, interfaces to and federation with
other DBMSs). While DBMS systems are often built on top of file systems,
they do not necessarily support integration with file systems though many
applications might use both DBMS and file storage in an integrated but
Different Web + DBMS systems handle different kinds of functional extensions:
Transactions and Sessions
Web servers are memoryless - they do not store state from one simple web
transactions (page or CGI access) to the next. Therefore it is difficult
to build session-based transactional applications that depend on context
or state. Solution approaches are
pass state back and forth from client to server and back on every web
access - Netscape's cookies is one way to do this.
cache connections in a CGI connection server so that connections can
be continued in other processes without slowing down the Web server.
download applets to Web clients running Java and let these communicate
directly with DBMS or other session-based APIs.
Web applications that access DBMS systems do so mostly via fixed forms
and canned queries. A next generation web-DBMS interface will make dynamic
query interfaces an option. There are many kinds of these (e.g., typein,
forms and menu-driven, graphical, spatial, natural language, speech) and
they are reasonably well understood. Client side scripting languages will
enable a new generation of these over the next few years. An ever present
challenge for these interfaces is the ease with which the end-user can
ask complex queries that bring the DBMS system to its knees since many
DBMS systems are carefully optimized for certain mixes of queries. Better
support for prediction of how long a query will take and other forms of
cooperative response (e.g., providing intermediate answers, related answers,
telling why a complex query fails) will be needed.
Indexing DBMS Content
Internet search engines index actual pages but cannot index pages constructed
on the fly by CGI-based applications including applications materializing
pages from DBMS systems. That leaves DBMS systems, which are often internally
indexed, unreachable by today's search engines because DBMS systems do
not expose their indices. A challenge is to identify new ways to expose
and advertise information locked in DBMS systems to search engines.
A related problem is advertising the existence and content of DBMS systems
that become accessible on line. At present, there are no standard ways
of publishing the existence and meta data content of DBMS systems though
there are standards for relational DBMS catalogs (and CORBA interface repositories)
and also proposals for standards for ODMG meta data catalogs. Some communities
view this as the repository problem and much effort has been expended in
this area (e.g., ANSI X3H4) though not in a web context.
Global Object Base
There is the potential for rethinking how DBMS systems, file systems, the
Web, and object frameworks can provide a better, closer coupled longer-term
infrastructure that supports today's "legacy information systems" and provides
a route to a more universal objectbase in the future. Indeed, one of the
visions of Object-Internet integration views
the Web as a giant decentralized object DBMS. It appears that object technology
like that of OMG and/or Microsoft may provide the right infrastructure
With Java applets and mobile code, applications are statically partitioned
from client to server. With ODBMS client-side caching of objects and middleware
like OMG, there is the potential of moving objects from server to client
and middleware services from server to client, which could result in more
seamless dynamic application partitioning and load balancing.
2.9 What's Proprietary?
In Web + DBMS architectures, it is appropriate to look at different approaches
to connecting the web and DBMSs and ask whether standards are being used
and whether additional standards can be identified. If they can, it could
mean much greater interoperability among data sources. The alternative
is many variant ways to connect data sources. At present, the state of
practice is that there are a handful of approaches to Web + DBMS integration
and that even when the same approach is followed, details differ from vendor
to vendor so that current solutions are vendor proprietary and non-portable
(see Systems below). The potential now exists for
adopting standards in this area to decouple DBMS access from the engine
providing the data. But it may still be a few years premature for these
standards since solution approaches (e.g., client-side applets connected
to DBMSs, better support for transactions and sessions, next generations
of CGI) are still evolving.
Some possible standards are:
JDBC API (JavaSoft) or possibly an isomorphic OMG IDL DBC API to connect
client-side applets written in any OMG compliant language to OMG servers
including a standard mapping to ODBC to easily connect to any ODBC compliant
standard HTML tags for DBMS connections, queries, updates, reporting,
and error codes
OO-based next generation CGI, based on OMG IDL
standards for publishing DBMS catalogs on the web
standards for datablades so these can be shared by ODBMSs and RDBMSs.
middleware standards for DBMS replication servers
There are a growing number of projects and products in the area of Web
+ DBMS integration. There is no attempt at completeness; instead important
and/or representative systems are reviewed. Readers are invited to correct
any descriptions below or provide technical descriptions of additional
systems especially encouraged if the descriptions illustrate an architectural
approach not described below.
Connection for Java
DB2 WWW Connection
Empress Hypermedia Web
HyperStar Web Developer's Kit
iResults DataWeb 2.0
Internet Assistant for Access
Java DataBase Connectivity
JetConnect / JetAssist
JTF/ATD Data Server
ObjectStore ObjectForms and PSE
Web DataBlade Module
WebSystem 1.0 and 2.0 and PowerBrowser
web.works, web.sql, and PowerBuilder
Connection for Java is a Java applet (client side) that connects directly
to the client (also on the client's machine) of Open Horizon's existing
Connection Enterprise Broker server. A Web server is not needed (other
than to download the applet) as long as the client can run Java applets.
Connection for Java is built on Java DataBase Connectivity (see JDBC
below). The Connection Server provides access to:
Bruce Cottman (I-Kinetics) made
on the DARPA TRP ComponentWare Consortium during the OMG Internet SIG held
in San Diego, California, in January 1996. He described a CORBA DB Component.
Today, the Web interface is exported to the Desktop client. The object
executable (process) resides on a remote server. Methods are invoked by
client on server. In his example, to retrieve the value from an array cell,
a remote call is executed. This is unacceptable in today's Internet. Thus
the need for Object migration. The CWDynaset is migrated to the client.
Object method calls and properties are executed locally, while the CWDatabase
object is local to the legacy database it wraps. Bruce described security
and component groups (useful for replication) as two middleware functions
that reside on the object network, not necessarily bundled inside the DBMS.
DBMS servers (DB2, Informix, Oracle, Sybase)
TP monitors (CICS, Encina, Top End, Tuxedo)
server-resident application generators
forthcoming Java development environments from Sybase (Powersoft),
Oracle, Gupta (Centura), and Borland.
He described ObjectPump, an input/output wrapper that captures I/O of production
systems that themselves cannot be perturbed. It is interoperable with OLE/COM.
So a legacy application wrapped with CORBA can now talk to Excel on a PC.
ObjectPump can be used to wrap data sources like DBMS systems.
DB2 WWW Connection is an Internet gateway to IBM's DB2 relational DBMS.
A CGI program macro file format provides "cross-language variable substitution,"
enabling the application developer to use the standard capabilities of
HTML and dynamic SQL for creation of query forms, reports, and updates.
The macro file is general purpose and can also be used to allow an application
to access data on remote servers using Distributed Database Connection
Services (DDCS) or DataJoiner, which can connect to Oracle, Sybase, Microsoft
SQL Server or other relational and non-relational data sources.
Data security is handled via: DB2 login and password; login and password
variables in DB2 WWW Connection that link to the DB2 authentication mechanisms;
the Web server's security mechanisms, when configured to protect DB2 server
directories; and IBM Internet Connection Secure Servers that support S-HTTP
and SSL standards, which encrypt requests and results.
(Dimensional Insight Inc.)
DataRamp provides RSA-secure access to ODBC-compliant databases over the
internet. It provides a codeless development environment with support for
forms definitions for data access and manipulation. Supports Microsoft
Windows user interfaces/applications (e.g. applications built with MS Access,
Visual Basic, Visual C++, PowerBuilder, Delphi, Crystal Reports, etc.)
without alteration. These applications require a DataRamp ODBC client driver,
and can then connect to any ODBC-compliant RDBMS via a DataRamp server.
A DataRamp Java client is also available.
Microsoft dbWeb is a connectivity tool between Microsoft ODBC and Microsoft
Internet Information Server (IIS) to publish ODBC-database data on the
internet. Web clients connect to a Microsoft IIS which communicates with
a dbWeb ISAPI client. The dbWeb client submits the queries to the dbWeb
Service which returns the dynamically-generated HTML results.
DSS Web interposes decision support analytic capabilities between a Web
server and any of several DBMS systems.
HAHTSITE is an integrated development environment that provides tools for
building Web sites and applications. Tools include: an editor and page
authoring environment, a debugger, site management tools, ODBC access to
data sources, and interfaces to version control software.
Internet Assistant for Microsoft Access 95 is a free add-in that allows
users of Microsoft Access to create HTML documents from structured data
stored in Access or any ODBC-compliant data source and share it over the
Internet. It requires an HTML browser that supports Tables.
(Bell Communications Research and University of Georgia)
This research project seeks to provide an extensible way to define meta
data that can provide access to unstructured, semi-structured, or structured
data. The data itself is not relocated, reformatted, or restructured. Instead,
a meta data description language (declarative repository definition language)
is defined and a library of meta data extractors (a repository generator)
are used to populate it. Examples show how InfoHarness can be used to view
the same file of C++ functions from different views. A companion project
InfoQuilt is working on
information correlation in content descriptive domain specific meta data.
Informix recently bought Illustra (see Illustra
below). In addition, Informix provides two
free interface kits to connect databases to the Web from Informix-4GL
applications and ESQL/C applications using CGI. Examples are provided.
Transactional web-based (codeless) applications development environment.
Includes high-level visual editor (eliminates need to know HTML, SQL, CGI,
The JDBC API is a standard SQL database access interface under development
at JavaSoft. JDBC is similar in purpose to Microsoft's ODBC but provides
an object-oriented interface. A number
of companies have endorsed the JDBC database access API. A 114-page
spec (available here
in postscript) is undergoing public review through June 8, 1996.
The API defines Java classes that allow a Java application developer to
create database connections to (possibly multiple) DBMSs, issue SQL statements,
and process results.
The JDBC API is implemented as a driver manager that can support multiple
drivers that are connected to different DBMS systems. JavaSoft and Intersolv
are developing a JDBC-ODBC driver that will run existing ODBC drivers.
JDBC drivers can be written in Java so they can be downloaded as part of
an applet or they can be implemented using native methods to access existing
DBMS access libraries.
JETConnect (JET = Java Enterprise Tools) is a set of class libraries and
drivers that connects Java to any ODBC DBMS. JET eliminates performance
and usage problems of CGI by maintaining persistent connections between
the client and the DBMS. JetAssist is a Java applet (codeless) development
environment which provides the features of JETConnect in a GUI.
JTF/ATD is a major U.S DoD Command and Control architecture that several
defense contractors are working on. The architecture rests on a distributed
object foundation at the bottom, several "servers" (services) for data,
webs (hypergraphs), maps, and situations. Rick Goodwin described
the JTF/ATD Data Server at the OMG ISIG meeting in January 1996. The problem
involves linking together many data sources and getting information to
flow between them. CORBA is the backplane hooking information sources together.
This includes wrappers for SQL-based relational DBMS systems, OSQL-based
ODBMSs (Objectivity sql++ queries and getfirstobject, getnextobject, and
getallobjects), and flat files as well as "mediators" which federate multiple
data sources. They have developed login, data location, and schema services
including a shared Command and Control schema in IDL. Legacy DBMS systems
do not know about objects. The IDL-based schema contains mappings to data
source objects. Queries result in in-memory collections of in-memory fine-grained
C++ objects, which are needed for applications like simulations. Refinements
include: query scheduling, notification, caching, triggers, and comm. bandwidth
JTF is an early adopter of ORB technology - "before ORB technology was
ready." They are working on moving query and collection classes from Orbix
to ObjectBroker to HP Orbplus. Now they want a global yellow pages. Also,
they developed their own object services implementations for naming and
transactions; some of these will be replaced when service providers provide
these. They are working with others in the ARPA community on distributed
query optimization and query relaxation.
Steps for the next year are to focus on unstructured information sources
including images, intelligent distribution and positioning of objects in
video (working with CMU), working on natural language interfaces, information
retrieval, GIS (working with Open GIS), updates. Goodwin introduced Mike
Dean (BBN) who is working on the JTF map server. They need object views
so different C2 roles (e.g., staff, field) see different views of situations.
They are working on CGI queries and have not yet moved to Java.
They are working on a CASE tool to generate IDL and then map to OOPLs.
JRB, Java Relational Binding from O2 Technology, generates a relational
schema from Java classes including read and write access methods to the
relations. The generated schema must correspond to a Sybase or ORACLE RDBMS
schema, and is accessed via Sun Microsystem's JDBC.
LiveWire and LiveWire Pro are tools for website management, on-line application
support for SQL access to Informix, Sybase, and Oracle; and, ODBC support
to connect to most others). LiveWire Pro comes with a developer version
of Informix's OnLine-Workgroup high-performance SQL database, and reporting
MORE (Multimedia Oriented Repository Environment) is a research system
developed at U Houston at Clear Lake. The system is used for asset management
and provides a repository for meta data with a collection of built-in classes.
It replaced an earlier prototype developed using X-Windows with a Web-based
implementation using CGI scripts. The result was more accessible to users,
more scaleable, easier to build, and less monolithic. Much of the design
changed due to assumptions of a stateless server.
NetDynamics is representative of a no-code (codeless) application builder
for web/database application development. In contrast to DBMS-vendor supplied
Web integration, these are open systems solutions that work with any Web
server, Web browser, HTML editor, major DBMS, ODBC-compliant DBMS, UNIX,
and PC. The Web server can use CGI, Netscape's NSAPI, or Microsoft's ISAPI
to communicate with the NetDynamics server. An architectural issue is,
what sorts of functions are supplied by such a tool, which should be supplied
by a DBMS (or other server), and which by a next generation Web.
In client/server applications a session begins when a user logs
on (to a DBMS, for instance) and ends when a user logs off. Web sessions
are defined differently (less intuitively, more scaleably perhaps). NetDynamics
provides session management via secure session ids. NetDynamics must keep
session state both on the server and client page. It automatically maintains
user database login and password (see below) and user page privileges,
generating an encrypted session ID for each page; the key is kept on a
client page that is associated with data stored on the server. Cursor information
can be kept associated with a page so operations to scroll through database
tables can be supported even when a user leaves and returns later to a
page. NetDynamics supports some transaction commit and rollback capabilities.
NetDynamics provides access privileges that interoperate with database
security mechanisms. NetDynamics security bridge works as follows. The
Web server provides user authentication and supplies NetDynamics with a
WebID. NetDynamics provides navigation flow control for navigation through
a NetDynamics application via defined paths; it provides support for defining
user privileges for query, insert, etc., on a page-level basis; and it
maps the WebID to the DBMS login. The DBMS server provides standard DBMS
The NetDynamics application server caches database connections, communicates
through an optimized interface to CGI, ISAPI, or NSAPI, and can be scaled
across multiple platforms and managed to provide automatic load balancing.
A typical request follows the following route: web client - web server
- [CGI NSAPI or ISAPI] - NetDynamics server - request broker to select
one of the following - any free application server (these can run Java
- if a DBMS operation continue) - request broker to select any of the following
- any free data server.
ODI is a client-server ODBMS with seamless support for C++. To support
web applications, ODI has added seven products: six Object Managers
(C++ class libraries designed to run with ObjectStore) that support text,
audio, video, image, HTML data, and Java applets and a tool called ObjectStore
ObjectForms. The image object manager developed by Virage
Inc. supports query-by-content searches on images; the text object
manager uses Verity Inc.'s full-text
retrieval engine. The HTML and Java object managers support persistence,
querying, and versioning of HTML and Java objects respectively. The ODI
ODBMS supports relationships between these and programmer defined media
ObjectForms supports on-the-fly HTML page generation using template files,
which are HTML files that include ODI-extended tags that extend standard
HTML files. ObjectForms reads these tags to determine how to query or update
ObjectStore and then dynamically generates HTML pages to display the results.
Tags support HTML form generation and processing, environment variable
setting, conditional HTML table generation, access to CGI variables, support
for DBMS event trapping, display of query results, etc.
WebConnect, a component of the ObjectForms, works with standard web servers
via CGI. It consists of two parts, a CGI script that connects to ObjectForms
or ObjectStore directly, and a Web Dispatcher that provides load balancing
and high throughput for high volume web sites.
Other ODI products provide complementary capabilities: OpenAccess
adheres to the ODBC standard and provides SQL access to ObjectStore databases.
Inspector is a visual browser, editor, and query tool for ObjectStore databases.
ObjectStore's PSE (Persistent Storage Engine) is a single-user Java-based
object repository for storing Java objects (e.g. applets). It comes in
two versions, PSE, and PSE Pro. The PSE Pro version adds support for transactions.
They can be used, for example, to support data storage for Java applications.
This capability demonstrates the movement of database features to the client,
specifically enabling clients to maintain private partitions of a larger
globally-accessible database (checking Java objects in and out).
O2 is a client-server ODBMS that conforms to the ODMG
specification. O2 supports C++ and O2's 4th generation language
OQL is the ODMG object query language, a variant of SQL. In O2Web, OQL
queries are mapped into HTTP URLs instead of physical file paths using
a format http://host[:port]path?query.
The query is evaluated on an O2 server. The O2 object that results from
the query is sent a system-supplied print-yourself-in-HTML message. Complex
objects and collections are recursively printed and primitive objects and
some predefined classes like Date and Image are printed in a readable format.
O2 programmers can overload print methods to customize the HTML returned
and can include links and forms (using the POST method).
O2Web uses a variant of a 3-tier architecture to connect any web server
via CGI to O2. The query is passed from the standard client to the standard
HTTP server then via standard CGI to the O2 Web gateway which connects
to the O2Web dispatcher (which tells the O2Web Gateway which O2Web server
to connect to) and then connects to the O2Web server, which runs the query
and transforms the result to HTML using O2 system or user supplied methods
and the resulting HTML is sent back to the Web client.
Internet-version of R:Base RDBMS for internet servers. R:Web converts R:Base
forms to HTML, enabling users to view and modify a database.
Visual web application development environment with support for ODBC and
JDBC, as well as OLE, COM and CORBA.
WebDBC 2.5 is a Web/database application development tool. The WebDBC Connection
Manager caches and reuses database connections to allow application control
of the number of ODBC DBMS connections open.
WebDBC 2.5 supports custom user-authentication.
WebDBC 2.5 can be invoked as a DLL, an NT Service, or via Microsoft/Process'
ISAPI, Netscape's NSAPI, Spry's BGI, or CGI and provides the ability to
support more simultaneous users. The former provide faster performance
than traditional CGI (Common Gateway Interface) invocation.
Web-based "Instant Pages" are web-based wizards that allow users to quickly
build and customize web page interfaces to their databases without knowing
HTML or WebDBC commands.
Illustra is an object-relational DBMS. The company Illustra was recently
acquired by Informix. Illustra has a number of interesting features (extensible
support for new data types called data blades, type and table inheritance,
optional archival no-overwrite storage that allows "time-travel" what if
queries on past states of the DBM, rules and event notifications).
An Illustra Web DataBlade enabled application is a collection of HTML pages
stored in the Illustra DBMS and that contain embedded SQL statements. As
such, Illustra application programming is higher level than proprietary
and hard to share CGI script-based applications written in C or Perl (though
one could share CGI libraries
The Illustra Web DataBlade executes queries and processes results as follows:
a standard web browser submits an HTML Query Page (form submission request
or other query) to a standard web server. Using CGI the web server launches
a Webdriver application, which connects to the specified Illustra server
and then selects an Application Page stored as a row in a table. The Application
page is HTML with embedded relational queries. A function called WebExplode
that runs within the Illustra server parses the application page, executes
embedded queries, and formats results. The expanded page is placed in the
database memory and also returned via the Webdriver application and Web
server to the web browser.
Application pages are HTML plus a small set of markup tags for:
The DataBlade module maintains transactional integrity (but only) within
an Application Page, provides error reporting and logging, including providing
click-stream analysis which allows analysis of application usage
based on frequency of user link selections.
WebBuilder is an internet application development environment that is used
to build forms-based HTML applications. It supports concurrent access to
multiple relational databases as well as state / session management on
top of CGI, and a proprietary rules-based development language that can
be used in forms design -- e.g., for triggers (the event-driven rule engine
exists on the server).
The Oracle WebServer is an integration of three components: Oracle Web
Listener, Oracle Web Agents, and Oracle7 Workgroup Server. Hypertext links
in any HTML document can point directly to an Oracle stored procedure,
written in Oracle's proprietary PL/SQL procedural extension to SQL. When
the procedure is executed, a dynamic HTML page is returned. WebServer 2.0
provides Java capabilities on the server. It is built around Oracle Web
Request Broker which bypasses high overhead CGI and provides a native custom
connection to Oracle7. Web Request Broker API (WRB API) competes with Microsoft
ISAPI, NetScape's NSAPI, and other HTTP server programmatic interfaces.
A LiveHTML interpreter allows developers to user server-side-includes,
which extend HTML pages to permit callouts to applications and to back-end
servers. Oracle has a forthcoming TextServer product that summarizes content
and a forthcoming VideoServer product. Currently,
Web clients can access external systems either using WRB API by developing
a Web Server "cartridge" or through the Java Interpreter. The Oracle Java
Interpreter provides a Java class library that models Oracle's proprietary
procedural extension to SQL PL/SQL as Java classes. Oracle is working on
a Java-CORBA language binding to provide Internet access to CORBA from
the WebServer. This involves developing a (DBMS-independent) Java language
mapping for CORBA IDL and a Java-CORBA stub mapping that is ORB-independent-they
see a need for a standard stub interface so all Java applets talk to ORBs
the same way (required for portable applets).
specifying SQL and formatting instructions
managing variables within the Application Page
managing error processing within the Application Page
specifying calls to system services on the DBMS server
specifies conditionals controlling logical blocks of HTML.
Oracle's PowerBrowserª provides:
web.works is an architecture encompassing Sybase's database, middleware,
and tools products. Powerbuilder is a web server product supporting CGI/NSAPI/ISAPI
and connections to databases. web.sql manages (caches) multiple open database
connections. It evaluates HTML page templates with in-line database commands
and Perl scripts to return HTML. Sybase also markets several visual components.
WebViewer is an OLE Custom Control that adds HTML browsing to an application.
Formula One/NET is an Excel-compatible spreadsheet plug-in for Navigator.
standard Web browser
Personal Serverª, a personal Web HTTP 1.0 desktop server that
is easy enough for novices to use and allows clients to publish and share
Personal Publisherª an HTML 2.0 page authoring environment which
allows drag and drop of controls such as buttons and text boxes and also
supports tables, backgrounds, frames, and GIF animations.
a BASIC interpreter for embedding scripts written in Oracle BASIC to
HTML. The scripts can be run in the PowerBrowser to check forms arguments,
for instance, or in the Personal Server to add server-side programming
capabilities without resorting to CGI.
Blaze, a local database
a Database Wizard for accessing ODBC-compliant databases from Web applications
(database-enabled Web applications).
add-ons SQL*Net and Oracle WebServer to access Oracle 7 or corporate
Loadable Objectsª (NLO) (formerly Client-Side Processing (CSP))
are compatible with Netscape 2.0 plug-ins and provide a standard interface
and framework for running third-party-written network-resident applications
on the same machine as the Web browser client. Examples are Java applets,
VRML scripts, and various viewers (video player, sound player). Similar
to CGI on the server, NLOs can be long-term tasks that keep state across
network accesses and can provide direct access to user and client user
provides a way to allow developers to integrate PowerBrowser features
with OS-specific program modules on the Web client.
Software developer kits to provide examples of how to get started using
NLO and CSP.
Secure Sockets Layer (SSL) provides data encryption and authentication
for both the browser and server.
Support for Java applets (announced for May 1996)
This research is sponsored by the Defense Advanced Research
Projects Agency and managed by the U.S. Army Research Laboratory under
contract DAAL01-95-C-0112. The views and conclusions contained in this
document are those of the authors and should not be interpreted as necessarily
representing the official policies, either expressed or implied of the
Defense Advanced Research Projects Agency, U.S. Army Research Laboratory,
or the United States Government.
© Copyright 1996 Object Services and Consulting, Inc.
Permission is granted to copy this document provided this copyright statement
is retained in all copies. Disclaimer: OBJS does not warrant the accuracy
or completeness of the information on this page.
This page was written by Craig Thompson and Paul Pazandak.
Send questions and comments about this page to email@example.com
Last updated: 1/3/97 sjf
Back to Internet Tool Survey --
Back to OBJS