Web + DBMS Integration
원본출처 : http://www.objs.com/survey/webDB.htm
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 object frameworks.
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 choices.
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 standards concerns.
Here's a list of the topics in this section:
Web, OO Middleware, and DBMSs
Kinds of DBMSs
What Data Model is supported?
Complex and Multimedia Data Types
Two and Three tier architectures
Transactions and Sessions
Indexing DBMS Content
Global Object Base
What's Proprietary? What's standard?
2.1 Web, OO Middleware, and DBMSs
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
"CORBA and Databases: Do you really need both?," Sean Baker, Object Expert, May 1996.
"Integrating WWW and Middleware," Beitz, et al.
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 together.
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 HTML on-the-fly.
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 stateful sessions.
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 models.
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 Types
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 I3.
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 mapping.
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 architectures
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 customized way.
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 glue.
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? What's standard?
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 DBMS.
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 HTML Toolkit
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 (Open Horizon Inc.)
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:
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.
Bruce Cottman (I-Kinetics) made a presentation 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.
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 (IBM)
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.
DataFountain (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 (MicroStrategy Inc.)
DSS Web interposes decision support analytic capabilities between a Web server and any of several DBMS systems.
Empress Hypermedia Web HTML Toolkit (Empress Software Inc.)
HAHTSITE (HAHT Software Inc.)
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.
HyperStar Web Developer's Kit (Vmark Software Inc.)
Results DataWeb 2.0(Integral Results Inc.)
Internet Assistant for Access (Microsoft)
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.
InfoHarness (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.
Java DataBase Connectivity (JavaSoft)
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 / JetAssist (XDB Systems Inc.)
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 Data Server (SAIC) (password protected) and more
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 adaptivity.
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.
MORE System and more
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 (NetDynamics, Inc.)
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 security.
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.
ObjectStore ObjectForms and PSE (Object Design)
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 types.
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 O2C.
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.
R:Web (Microrim Inc.)
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.
Saphire/Web (Bluestone Inc.)
Visual web application development environment with support for ODBC and JDBC, as well as OLE, COM and CORBA.
WebDBC (Nomad Development Corp.)
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.
Web DataBlade Module (Illustra)
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:
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.
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 (VPE, Inc.)
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).
WebSystem 1.0 and 2.0 and PowerBrowser (Oracle)
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).
Oracle's PowerBrowserª provides:
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 web pages.
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 DBMSs.
Network 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 interfaces.
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)
web.works, web.sql, and PowerBuilder (Sybase)
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.
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.