Network Databases: Past, Present, and Future
Revised on May 28, 2000

Bob Jensen at Trinity University

hline.jpg (568 bytes)

There are so many choices.  You Earthlings don't make it any easier with all your competing middleware --- DCOM/ActiveX, RMI, CORBA. Caffine, Sockets, and HTTP/CGI.  Why don't you just build applications instead of fighting middleware wars?

Captain Zog the Martian
As quoted in the Foreward of Client/Server Programming with Java and CORBA
by Robert Orfali and Dan Harkey
(New York:  John Wiley & Sons, 1997)

Abstract

The purpose of this paper is to review the past, present, and future in terms of three "generations" of network databases. Particular stress is placed upon the Internet and the booming explosion of restricted-access subsets of the Internet known as intranets. The internet is a collection of millions upon millions of local, regional, national, and global networks. It commenced in 1969 with four supercomputers across the U.S. networked to the Pentagon.

Very few people used the Internet for the first 20 years. Explosive growth took place after 1992 when the Netscape Navigator web browser incorporated HTML protocols to read HTML codes invented by particle physicists in Switzerland in 1990. This was the beginning of the "first generation" of network computing on what became known as the world wide web (WWW) or simply the "web." The first generation was mainly one way flows of information from web server computers to client user computers on the web. At this same time, the first generation of database interactive computing was confined to local and wide area networks (LANs and WANs). Although data files could be transmitted across the Internet using FTP and other protocols, databases could not interact on the WWW or the Internet as a whole. Most web applications are still in the first HTML generation.

The second generation of networking and databases followed quickly when web servers commenced to interact in a more formal way with remote clients on the Internet. With special types of middleware software, database servers could process data transmitted back from remote Internet client computers. For example, customer orders and market surveys could be processed and server-side databases could be updated without human intervention. Middleware CGI scripting and later ActiveX and Java software enabled web servers, database servers, and remote clients on the Internet to become more interactive. The second generation is relatively new and growing in popularity at this time. Middleware packages for Distributed Transaction Processing (DTP) monotoring has become a big business.

I cannot give a higher recommendation for reading about innovative technology than the article by John Mann entitled "Message Engine Drives Delta Data:   A Case Study,"  Application Development Tools, March 1999, 41-46.  In my viewpoint this should be a "must" for inclusion in virtually every information systems and/or accounting information systems course.  The online version is available in the March 1999 links at http://www.adtmag.com/

The third generation is only just emerging and is hard to put into words. It is best described as distributed network computing. In the second generation, middleware links to"front ends" of database servers on the server side when clients transmit signals. In the third generation, databases can be distributed globally and can communicate with each other with "back-end" distributed network computing. There is virtually no difference between having all databases on one computer with one operator versus having databases on 100 computers with 100 operators residing anywhere in the world.

Update on August 27, 1999:

If you are interested in the future of networked databases, I highly recommend the article entitled ""The i Gets Bigger at Oracle," by Michael Bucken in Application Development Trends, August 1999, pp. 20-33.  This article serves two purposes.  The first purpose is to inform us about the major transitions of database networking into Internet networking of databases.  The second purpose is to provide strategy professors and consultants with an excellent case study on how high-tech companies must "constantly re-invent themselves."  The online version of this article is at http://www.adtmag.com/Pub/aug99/fe0803a.htm 

For metadata and XML watchers, there is an excellent article in that same issue entitled ""Meta is the Word" by Rich Seeley and Jack Vaughn, Application and Development Trends, August 1999. pp. 43-48.  The online version is at http://www.adtmag.com/Pub/aug99/fe0801.htm.  Also see my XML and RDF updates at www.trinity.edu/rjensen/xmlrdf.htm .

Also see "Oracle's Long and Winding Repository Road," at http://www.adtmag.com/Pub/aug99/fe0802.htm.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents



Network Databases: Past, Present, and Future

Table of Contents

ABSTRACT

INTRODUCTION

FIRST GENERATION: Static HTML vs. Dynamic Clients

Introduction

Advantages of HTML

Disadvantages of HTML

Dynamic Clients With Plug-in Apps

Dynamic Clients With JavaScript and Java

SECOND GENERATION: Interactive Servers & Clients

Introduction to Online Transactions Processing (OLTP)

Illustrations of CGI Dynamics

CGIs With Both a HTTP Web Server and a Database Server

Advantages of CGI Scripting

Creation of CGI Scripts

Beyond CGI with Customized HTML Signal Tags

Beyond CGI with Fat Client OLTP Computing

A Comparison of Eight OLTP Networking Systems

Push Technology Using Middleware at Delta Airlines

Summary of the OLTP Database Networking Issues

Security and Warfare Risks Increase With Networking

THIRD GENERATION: Distributed Network Computing

Introduction to Client and Server Back-end Interactions

Distributed Network Computing Illustrations

Java versus ActiveX (ADO and RDS)

Open Database Connectivity (ODBC)

Emerging Distributed Network Computing Standards: IIOP, RMI, and DCOM

RDF and XML --- The Next Big Things on the WWW!

GLOSSARY (Opens in a new browser window)

Appendix 1:  A CORBA DECOM PRIMER

Appendix 2:  Lack of Standardization Holds Back App Server Market

Netscape Bet the Farm on Visual JavaScript and its Enterprise Server

See http://www15.netscape.com/comprod/products/tools/vjs.html

Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents

INTRODUCTION

Some analysts argue that the Internet and related intranets will be the dominant computing platform of corporations and other organizations by the start of the 21st Century. E-commerce is moving in strong on the Internet as well as subsets of the Internet known as intranets and extranets.   All are bundles of public or private networks.

Most users think of the Internet in terms of its world wide web HTTP protocol that defined the World Wide Web and reads HTML embedded scripts in the text of a web document.  In the 21st Century, HTML will be remain with us.  However, various types of database networking become increasingly important in making the Internet more effective and efficient around the world.  A long passage about the emerging RDF and XML standards is quoted below:

The World Wide Web was originally built for human consumption, and although everything on it is machine-readable, this data is not machine-understandable. It is very hard to automate anything on the Web, and because of the volume of information the Web contains, it is not possible to manage it manually. The solution proposed here is to use metadata to describe the data contained on the Web. Metadata is "data about data" (for example, a library catalog is metadata, since it describes publications) or specifically in the context of this specification "data describing Web resources". The distinction between "data" and "metadata" is not an absolute one; it is a distinction created primarily by a particular application, and many times the same resource will be interpreted in both ways simultaneously.

Resource Description Framework (RDF) is a foundation for processing metadata; it provides interoperability between applications that exchange machine-understandable information on the Web. RDF emphasizes facilities to enable automated processing of Web resources. RDF can be used in a variety of application areas; for example: in resource discovery to provide better search engine capabilities, in cataloging for describing the content and content relationships available at a particular Web site, page, or digital library, by intelligent software agents to facilitate knowledge sharing and exchange, in content rating, in describing collections of pages that represent a single logical "document", for describing intellectual property rights of Web pages, and for expressing the privacy preferences of a user as well as the privacy policies of a Web site. RDF with digital signatures will be key to building the "Web of Trust" for electronic commerce, collaboration, and other applications.

. . .  The syntax presented here uses the Extensible Markup Language [XML]: one of the goals of RDF is to make it possible to specify semantics for data based on XML in a standardized, interoperable manner. RDF and XML are complementary: RDF is a model of metadata and only addresses by reference many of the encoding issues that transportation and file storage require (such as internationalization, character sets, etc.). For these issues, RDF relies on the support of XML. It is also important to understand that this XML syntax is only one possible syntax for RDF and that alternate ways to represent the same RDF data model may emerge.

Source:  Ora Lassila < ora.lassila@research.nokia.com  >
Ralph R. Swick < swick@w3.org >
http://web1.w3.org/TR/REC-rdf-syntax/

The popular HTML and the emerging HTML are subsets of the GML text scripting conceived in1969 IBM researchers depicting Generalized Markup Languages (and not-so-coincidentally the lead researchers were named Goldfarb, Mosher, and Lorie).   Between 1978 and 1987, Dr. Charles F. Goldfarb led the team that developed the SGML Standard GML that is became International Standard ISO 8879.  In 1990, Tim Berners-Lee led a team of particle physicists that invented the World Wide Web (refining a very small part of SGML) that became the widely known as Hypertext Markup Language (HTML).   SGML is tremendously powerful but inefficient and complex.  HTML is marvelously simple but not very powerful.  In 1996, Jon Bosak of Sun Microsystems to spearheaded the development of the XML standard to lend power, efficiency, cross-platform standards, and simplicity to the networking of databases on the Internet.  At the time of this writing, the world is converging upon an important standard known as RDF (Resource Description Framework) rooted in XML that will be the biggest thing to hit the Internet since HTML hit the Internet in 1991.  Both XML and RDF.  Both are extremely important and will soon dominate networking of information.  These are discussed later on in my XML and RDF Watch document.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


FIRST GENERATION: Static HTML vs. Dynamic Clients

Introduction

Very few people used the Internet for the first 20 years. Explosive growth took place after 1992 when the Netscape Navigator web browser incorporated HTML protocols to read HTML codes invented by particle physicists in Switzerland in 1990. This was the beginning of the "first generation" of network computing on what became known as the world wide web (WWW) or simply the "web." The first generation was mainly one way flows of information from web server computers to client user computers on the web. At this same time, the first generation of database interactive computing was confined to local and wide area networks (LANs and WANs). Although data files could be transmitted across the Internet using FTP and other protocols, databases could not interact on the WWW or the Internet as a whole. Most web applications are still in the first HTML generation.

Between 1989 and 1990, the early developers of Version 1 of HTML embedded codes were mostly concerned with viewing text and linking to different text documents around the world. HTML code was embedded with HTML tags for certain actions. For example, the <HREF tag was followed by the "link" to another document on the same or another web server. When a reader clicked on that link, a web browser with the HTTP protocol would bring up the linked document. The text files themselves had HTM file extensions and were called HTM or HTML files. The client-server or host-server computer that houses these HTM files is often called the HTTP server. In this document, the term "server" will be assumed to be a "HTTP web server" storing files that remote "client" computers access on the network using the HTTP protocol. If the server refers to another type of server, such as a database server, the description will be more explicit in order to distinguish it from a HTTP server.

Between 1990 and 1995, new versions of HTML arose that allowed for newer files and features such as graphics files (usually with GIF or JPEG compression), audio, video, and animation. In those early days of the WWW, most computing took place on the client computer after the files (e.g., htm, gif or jpg, wav, mov, and avi) were placed in the web server computer. Audio and video files were downloaded into the client computer and users, until recently, had to wait until files were fully downloaded before being run on client computers.

In the first generation, HTML files were "static" documents on both the server and the client computers. Computing took place on both ends of a network link, but the network computing was limited to linking and downloading of files. Users could not do distributed network computing under HTTP networking.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Advantages of HTML


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Disadvantages of HTML

HTML isn't extensible An extensible markup language would allow application developers to define custom tags for application-specific situations. Unless you're a 600-pound gorilla (and maybe not even then) you can't require all browser manufacturers to implement all the markup tags necessary for your application. So, you're stuck with what the big browser makers, or the W3C (World Wide Web Consortium) will let you have. What we need is a language that allows us to make up our own markup tags without having to call the browser manufacturer.

HTML is very display-centric HTML is a fine language for display purposes, unless you require a lot of precise formatting or transformation control (in which case it stinks). HTML represents a mixture of document logical structure (titles, paragraphs, and such) with presentation tags (bold, image alignment, and so on). Since almost all of the HTML tags have to do with how to display information in a browser, HTML is useless for other common network applications -- like data replication or application services. We need a way to unify these common functions with display, so the same server used to browse data can also, for example, perform enterprise business functions and interoperate with legacy systems.

HTML isn't usually directly reusable Creating documents in word-processors and then exporting them as HTML is somewhat automated but still requires, at the very least, some tweaking of the output in order to achieve acceptable results. If the data from which the document was produced change, the entire HTML translation needs to be redone. Web sites that show the current weather around the globe, around the clock, usually handle this automatic reformatting very well. The content and the presentation style of the document are separated, because the system designers understand that their content (the temperatures, forecasts, and so on) changes constantly. What we need is a way to specify data presentation in terms of structure, so that when data are updated, the formatting can be "reapplied" consistently and easily.

HTML only provides one 'view' of data It's difficult to write HTML that displays the same data in different ways based on user requests. Dynamic HTML is a start, but it requires an enormous amount of scripting and isn't a general solution to this problem. (Dynamic HTML is discussed in more detail below.) What we need is a way to get all the information we may want to browse at once, and look at it in various ways on the client.

HTML has little or no semantic structure Most Web applications would benefit from an ability to represent data by meaning rather than by layout. For example, it can be very difficult to find what you're looking for on the Internet, because there's no indication of the meaning of the data in HTML files (aside from META tags, which are usually misleading). Type red into a search engine, and you'll get links to Red Skeleton, red herring, red snapper, the red scare, Red Letter Day, and probably a page or two of "Books I've Red." HTML has no way to specify what a particular page item means. A more useful markup language would represent information in terms of its meaning. What we need is a language that tells us not how to display information, but rather, what a given block of information is so we know what to do with it.

Mark Johnson
"XML for the Absolute Beginner"
http://www.javaworld.com/javaworld/jw-04-1999/jw-04-xml.html

Efforts are underway to create standards for a new Dynamic HTML (DHTML) in a Document Object Model (DOM). However, progress is slow and will take years according to "A Tangled Web of Standards," in Internet Week, September 27, 1997, p. 1. For more on the World Wide Web Consortium (W3C) dealing with such issues.  A problem with DHTML is that it is inefficient and requires too many scripts to perform simple tasks.  Moving beyond DHTML  is Extensible Markup Language (XML) for putting tags on web pages to facilitate more efficient web searches. XML is discussed later on in this paper.

In the meantime, some vendors are coming out with limited dynamic HTML. Macromedia's Dreamweaver uses cascaded style sheets (CSS) supported by latest versions of HTML browsers. Dreamweaver builds timed animations and also has built in JavaScript snippets for popular applications such as form validation of user responses.

More promising is the emergence of XML and RDF.  Both are extremely important and will soon dominate networking of information.  These are discussed later on in this document.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Dynamic Clients With Plug-in Apps

Browsers such as the Netscape Navigator automatically download certain types of files into a temporary folder on the client's computer. The directory is referred to as the browser's cache directory or folder. The internet connection stays open only long enough to download the files. Typical files such as htm (HTML), gif (GIF compressed image), jpg (JPEG compressed image), wav (Audio), mov (QuickTime video), avi (Microsoft video), and fli (Autodesk animation) files are initially downloaded to cache. Users must save them to other folders if they want to keep them for longer periods of time.

The htm, gif, and jpg files are processed directly by the web browser such that no special software need be added to view the HTML text and images. However, browsers will not run wav, mov, avi, and fli multimedia files. Nor will they run other types of files such as ToolBook, Director, Authorware, or others that might be encountered at a web site. Users must download or otherwise install browser "plug-ins" or other application "App" software that the browser can launch. Different users may use different applications software.

Various types of files can be downloaded and run if the web server is properly configured to transmit the files and the client computer has the app software (often called "reader" software) for certain types of applications. Instead the dynamic computing is done by installed software (often called a helper application or helper "app") on the client computer. The browser only serves to launch the helper application software that must be previously installed and configured for each client machine. In order to launch the app, the browser uses Multipurpose Internet Mail Extension (MIME) to files that tell computers what kind of program to use to view or run a file. Mimes are typically plug-ins to browsers that help launch helper apps.

Helper app file extensions can become browser plug-ins by adding the helper app's file extension to the browser's directory of plug-ins. The browser will then match the app's file extension (e.g., pdf, wav, avi, mov, fli, tbk, etc.) with the MIME type. This "plug-in" requires installation of "app" software to execute certain types of files that can be downloaded from the web while using a web browser. The browser can be made to automatically launch the other software as a plug-in declaration in the browser. For example, Adobe Acrobat PDF (Portable Document Format) files are common on the web (these are not HTML files). Adobe offers a free reader (app) program that can be downloaded permanently into a client's computer. The browser can be set up so that whenever the user clicks on a PDF file at a remote site, the Acrobat Reader automatically reads the downloaded PDF file.

Although PDF files are static documents (users cannot even edit text in PDF documents), other types of files that can be similarly downloaded are not static. For example, Macromedia Director and Authorware files can be read from a plug-in called Shockwave. Asymetrix ToolBook files can be read from a plug-in called Neuron. Multimedia files (audio wav, video mov, video avi, animation fli, etc.) may be downloaded into and installed on the client computer. Many are free.

Note that although the computing for most plug-ins takes place on the client's computer, the webmaster of the server computer must properly configure the server so that clients at remote sites can read the server files downloaded into the client's version of Shockwave, Neuron, and other readers of dynamic files. Not all files may be downloaded and executed in the first generation sense. Some files such as spreadsheet files must use third generation software such as ActiveX to be downloaded and run efficiently in client machines. This will be taken up later on in the third generation section.

Illustrations of Shockwave and Neuron in education are listed at
http://www.trinity.edu/rjensen/links/prelim.htm

One of the more interesting Shockwave web sites is the "shockwaved alternative" web site of the accounting firm of Arthur Andersen. It is not possible to use the "shockwaved alternative" unless the Shockwave app is downloaded from a Macromedia web server and installed in the client computer.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Dynamic Clients With JavaScript and Java

Instead of totally separate app programs, Netscape Corporation developed a way to perform dynamic operations (calculations, Boolean logic, etc.) by embedding dynamic codes among the HTML codes. Netscape Corporation developed JavaScipt codes (not to be confused with Sun Corporation's full-blown Java software) that can be embedded in HTML documents much like HTML tags are embedded in text documents. The Netscape Navigator executes JavaScript on the client's computer without having to send data back for calculations on the web server. For example, JavaScript can be used to perform calculations, perform Boolean logic, perform security checks, conduct searches, send messages, and perform other dynamic tasks.

Two of the main executable content power user alternatives in browsers are Java and ActiveX. Both will be discussed later on as third generation options. Both can, however, be used for client side computing. Java applets can be embedded in HTML much like JavaScript is embedded in HTML documents. Sun Microsystem's Java commenced as an easier way to write C++ code, but Java has since evolved to be much more than that in the third generation of real time distributed computing across networks. Java is portable, downloadable embedded "applet" code that can be easily integrated into browsers. Both the Netscape Navigator and Microsoft Internet Explorer browsers integrated Java into their latest upgrades. Any Java class or applet that is sent down to the browser can be executed interactively. Illustrations of applets can be found at http://www.sun.com/javastation/demos/.

JavaScript and Java can be used in a first generation context of client-side computing, second generation network computing, or in the context of third generation distributed network computing. Java is destined to become the platform-independent "write-once, read everywhere code." At the time of this writing, Microsoft Corporation is a stumbling block because of its refusal, in a bid to make its version of Java more proprietary, to include Java Remote Method Invocation (RMI) and Java Native Interface (JNI) interfaces in the Microsoft version of Java and the Microsoft Internet Explorer browser. At the time of this writing, Sun Microsystems has sued Microsoft to either force Microsoft to include these interfaces or to not write Java development software. Irrespective of how the lawsuit is resolved, major players like Sun Microsystems, IBM, Borland International, Symantec Corporation, and others will probably make Java the development tool of choice for dynamic networking applications.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


SECOND GENERATION: Interactive Servers & Clients

Introduction to Online Transactions Processing

Second generation network computing extends data transfers from the client computers back to the web server and/or database server computers. Software for doing this is commonly termed "middleware." Middleware is software that mediates between an application program on a server and a network of client machines. Middleware manages the interaction between applications across the heterogeneous computing platforms of client computers. Java will likely replace CGI in the second generation because of its ability to be used on multiple platform servers as well as client computers.

The best known, but fading, Second Generation UNIX-based dynamic computing utility on HTTP web server computers is called Common Gateway Interface (CGI). CGI allows the server-side computer to react to actions of users on client-side computers. CGI is a UNIX-based set of programs/devices that supply interfaces between browsers and servers on the Internet. It is a popular older standard for running external programs from a World Wide Web HTTP server. CGI specifies how to pass dynamic components to the executing program as part of the HTTP request. For example, it will allow answers typed into an HTML form on the client computer to be tabulated and stored in a database on the server-side computer. Commonly, the server-side CGI program will generate some HTML which will be passed back to the client's browser. For example, it might report to the client user that the form is not filled out properly or report the invoice total of an order. The CGI program can, for example, access information in a database, format the results as HTML, and transmit a message to client machines. CGI is not a programming language. There are various "CGI" scripting programs. PERL is a common choice for writing CGI scripts in UNIX code. Some HTTP servers require CGI programs to reside in a special directory, often "/cgi-bin" but better servers provide ways to distinguish CGI programs so they can be kept in the same directories as the HTML files to which they are related. In order to improve performance, Netscape devised NSAPI and Microsoft developed the ISAPI standard which allow CGI-like tasks to run as part of the host server process, thus avoiding the overhead of creating a new process to handle each CGI invocation.

In spite of its widespread use, CGI is giving way to Java and ActiveX discussed previously in this paper. Java applications are easily ported both across multiple-platform clients and multiple-platform servers. This means that it no longer matters whether any networked computers are using Windows, Macintosh, UNIX, or some other type of operating system. However, Java and ActiveX are much more suited to distributed network computing of the third generation. The third generation of distributed network computing is discussed later on in this document.

Electronic data interchange (also called Electronic Data Invoicing) is more concisely referred to as EDI. EDI evolved as a dedicated telecommunications line between a vendor and a supplier, dealer, or customer. EDI brokerage is very expensive and usually is limited to "large" organizations that deal extensively in invoicing. EDI replaces paper flows with electronic ordering and invoicing.

Intranets are subsets of networks on the Internet that have restricted access controls such as passwords. Extranets are subsets of the Internet that are replacing EDI. They operate much like intranets. However, extranets are restricted Internet connections between vendors and suppliers, dealers, or customers. For example, in October 1997, Toshiba America commenced using an extranet where over 350 dealers could order products, parts, and supplies from a secure web server. Extranets utilize web technologies. Details are reported in Information Week, October 20, 1997, p. 36.

At this point I might note some trends in CPA use of database and some other types of software.

The November 1997 issue of the Journal of Accountancy beginning of p. 52 reports the results of an interesting survey called "A Journal Survey of The Software CPAs Use". In particular, "Total" Database Applications reported on Page 57 are as follows:

56% MS Access
7% dBase
4% FoxPro
9% Paradox
1% R-base
16% Other
7% Two or more of the above

The article provides further breakdowns of applications by various types of CPA firms. Since MS Access is the market leader, I wish it would become more web friendly. Big and small improvements are needed ranging from better security to use of jpg image files. Improvements are also needed for viewing under varing screen resolutions and speed.

In spreadsheet applications, Excel has risen to 45% and Lotus 1-2-3 is still hanging in with 30%. However, among the "Big 6" firms, Excel has 70% of the applications.

There are various other types of software market trends reported in the article. Accounting and bookkeeping software market shares are highly fragmented with most packages generating less than 5% of the CPA market.

The most favorite tax software packages are

23% ProSystem fx
21% Lacerte
17% Turbo Tax Pro


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Illustrations of Second Generation Network Computing

By way of illustration, click on http://www.dell.com/store/index.htm and note how any person in the world can choose different combinations of attributes for a computer and signal Dell Corporation to give you a price quotation. After choosing a given combination of hardware and software features of a particular computer, a user may click on the "Update Price" button. The signal goes to the Dell server-side computer that re-computes the price and then transmits that price back to the client machine. In addition users may fill a shopping cart with hardware and software, compute an updated price of the entire invoice, and place the order from a client machine.

Federal Express, UPS, and various other package delivery services have put up web sites that allow customers to access parts of their internal database system. These companies have invested a great deal of money and time over the past several years to make their database systems valuable tools to track packages. Previously, customers would have to call the company on the phone or make an office visit to track a package. A customer service representative would have to log into the database and do tracking on the package. Customer direct access reduces the need to have customer service agents and other employees servicing customers.

Another example is the virtual Ernie web consultant of Ernst and Young. Ernie resides on a server-side computer and dynamically interacts with paying customers to give advice on financial reporting, taxes, financial planning, real estate, information systems, computers, and other areas.

Yet another example is provided by the MapQuest web site best known for responding (at no charge) to requests for locations of a village, town, city, or country road. Maps are returned with alternate levels of zoom options. There are also other services provided by the CGI bin at MapQuest, including the following:


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


CGI Scripting With Both a HTTP Web Server and a Database Server

An illustration of queryimg in second generation software is provided by the name, address, and phone number database of Switchboard. The web server recognizes that a user on a client server has submitted a search request. For example, what is the phone number and address of Robert Jensen in San Antonio, Texas? Switchboard's server-side computer has to call a certain CGI program. It calls that CGI program and the program then makes the connection to the database, sends the request as a Structured Query Language (SQL) argument directed at a database server. The database server locates the requested information, and the results are transmitted back to the HTTP web server from the database server. At that point in time, the CGI program can then format that, perhaps into an HTML table, and play it back to the browser on the client-side computer. At the time of this writing, Switchboard returned database entries for four people named Robert Jensen in San Antonio.

In summary, a user on a client computer initiates an action such as clicking the submit button. That message gets sent over the Internet or the intranet to the HTTP web server, which is typically a dedicated machine for serving up Internet files. In that web server are typically stored HTML documents along with a CGI program. A certain CGI program is started up and executed. It makes a connection to the back-end database server. Results are fed back to the web server and then a new page is played out to the web browser. The user on a client machine is actually seeing just an HTML page. Most users do not necessarily know that this page is generated dynamically from the database (although sometimes there are clues if the URL address makes reference to a CGI bin).


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Advantages of CGI Scripting


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Creation of CGI Scripts

There are several different tools and approaches that are available to people today: CGI scripting, hand coding in traditional languages like C or C++, and extending HTML with certain tag elements. For CGI scripting, the dominant approach is a UNIX scripting language called PERL. Several database vendors and several universities adapted PERL and made some extensions to it that allowed it to call databases. There are versions of PERL called ORAPERL and SYPERL that allow you to access ORACLE and SYBASE databases. Typically, the way these work is that the actual script code is part of the HTML page, so when that page is sent back, that script is then run within the server.

There are some performance issues with CGI options. CGI scripts might not be as fast as a compiled executable program. Second, an individual CGI process must start up each time the web browser clicks the web server. So if any user makes a new or renewed request to the web server, the web server actually has to start up a whole new process and initiate an entirely new connection to the database. CGI scripts are not efficient with large numbers of users, and many users may get turned away due to those inefficiencies.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Beyond CGI with Customized HTML Server Tags

Another approach several software developers have taken is to extend HTML with their own customized (proprietary) tags. These tags lie dormant until requests from the client machine are sent back to the web server computer. Within those tag markers, server systems can utilize 4GL (fourth generation database languages). This has been done by vendors such as Informix, Sybase, and Cold Fusion. Essentially what happens is that the HTML document itself contains a 4GL combined with SQL statements. When those HTML tags are sent back to the web server, the web server shifts into a specific application on a web and/or database server.

When a server runs into its own proprietary tag, it will execute the command (such as make a query from a database server). The database server returns the information to the web server. Again, typically within the proprietary tag environment, vendors have laid out how they want to present the information into the HTML document itself. This is a nice, simple approach that’s very obvious and easy for people who have both HTML knowledge and fourth generation language knowledge. However, it does have some limitations in that you’re actually putting the code into your HTML document. You’re not separating the graphical user interface from the actual application and database access.

This can end up being a high overhead cost issue. If you wind up with hundreds of pages that have SQL code in each page, and as your data structure changes, you’ll have to go back into the appropriate pages and make that change. The other issue with it is that it tends to lock users into a specific 4GL fourth generation database language. This is a good approach for users that are reliant upon a certain 4GL and have made major investments in them.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Beyond CGI with Fat Client OLTP Computing

Another set of approaches that application development tool vendors are taking is trying to adapt existing tools to the web. Appropriate "fat client" software must be installed on the client computer (which excludes users not having this software at hand). An example is Power Builder, which provides a mechanism whereby developers can regulate HTML pages that make a call to the web server; the web server, in turn, fires off a local Power Builder application on the client PC. That client PC is really using that Power Builder application within the browser window -- you see an actual Power Builder window, but the client is now having direct communication to the database. This has certain advantages in that database owners are able to reuse existing applications fairly quickly and easily.

The downside, as mentioned above, is that only fat clients with PowerBuilder installed can use the system. You actually have to have the PowerBuilder application reside on each of the client PCs. There are, of course, network mechanisms to help facilitate downloading of the fattening software, but it does introduce some complexities and some maintenance on the client side. The software is more complex and less user friendly than most common helper apps such as Shockwave. Lang and Chow describe benefits of Power Builder as follows:

This approach has several benefits. The obvious benefit is that a Web database application can include full-strength OLTP database interactions. Another important benefit to this approach is version control: it is well known that maintaining correct versions of client applications across a population of users can be difficult and can lead to errors. Distributing client applications as plug-ins will greatly simplify the process. Each time a user launches an application from a link on a Web page, only the latest copy of the client application will be downloaded and executed. Also, users will only need to learn one program (the Web browser) and use it to access many client applications. By doing this, you can reduce the cost and time of training. And finally, users won't have to download and install a new plug-in for every client application that they want to use. That's because once the PowerBuilder plug-in program is installed on the Web browser, it will be able to run any client application that has been created for it.

PowerBuilder 5.0 plug-in applications use a session protocol rather than HTTP. This makes it easier to program transactions but it also reduces the total number of clients that can connect to a database server during a given time. So, PowerBuilder 5.0 includes code that makes a database connection when a transaction is being submitted and disconnects when a transaction has been completed. This works automatically behind the scenes, which simplifies programming.

Plug-in applications built with PowerBuilder 5.0 will work over the Internet or on Intranets by using the session-oriented protocols provided by DBMS vendors or by third parties (for example, DataRamp for ODBC data sources . . . or SQL*Net for Oracle).

by Curt Lang & Jeff Chow
Excerpt from "Database Publishing on the Web & Intranets" © 1996 Coriolis Press
As quoted at http://nt.powerbuilder.com/vol3num2/web1/powerbui.htm


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


A Comparison of Eight Relational OLTP Networking Systems

Relational database management systems (RDMSs) can now be managed via intranets or the Internet. The newer software options are built specifically for building web to database applications. They typically are visual developed environments, very much like the client server tools that people are familiar with, such as PowerBuilder. And, typically, they’re based on a scripting language or some sort of code generation, and they have an application engine of some type that interprets and executes the application. They fit into the web three-tier development model by trying to separate the HTML from the application itself, which allows you to have reusability and maintainability. An excellent example of one of these types of tools is Sapphire/Web from Bluestone. Another example that is giving Sapphire a run for its money is Apple's NeXt WebObjects. For a nice review of WebObjects, see Nathan Roach's paper at http://131.194.250.50/users/nroach/proj2.htm. Nathan was one of my students in Computers in Business.

Network Computing compares eight RDMS systems in an article by Barry Nance. Nance concludes the following:

Assigning an expert database programmer to a Web site creation-and-maintenance project is akin to having a house painter show up everyday to touch up nicks and scrapes on your walls. Given the variety of paint and painting methods, and the fact that learning how to wield a paintbrush is easy, bringing in a professional to handle such tasks would be a waste of his skills and your money. The same goes for hiring a programmer to create and maintain your Web site.

More flavors of database tools exist than there are shades of white house paint. This is fortunate, because you need to assemble a range of tools for relational database management systems (RDBMSs)--query tools, schema design tools, replication tools, monitoring tools, optimization tools, security tools. A relatively new and popular category of database tools is Web-oriented. The latest versions of RDBMS products from IBM Corp., Microsoft Corp. and Oracle Corp. include software aids for incorporating database content into Web pages; many third-party software vendors also offer similar tools for your database toolbox.

We evaluated these Web-database integration tools on an intranet consisting of Pentium Pro-based NT Server 4.0 machines, an Ethernet LAN running TCP/IP and a variety of clients (Windows NT, Windows 95, OS/2 Warp and Macintosh System 7). In each case, we connected via Open Database Connectivity (ODBC) or native interface to Oracle7.3, SQL Server 6.5 and DB2 Universal Database 5.0.

Tools for accessing a database in a Web environment differ in three key aspects: database interface, Web server interface and visual design environment. In our evaluation of the current crop of database and Web integration tools, we examined carefully the extent and quality of code generation, we looked closely at how the product's user interface helped build Web pages containing database content, and we tested the variety of presentation options for database material. To get top marks, a product needed to exhibit several characteristics: native connectivity to the major databases and ODBC connectivity to all other databases; NSAPI, ISAPI, WRBAPI and CGI connectivity to Web servers; production of robust, uncrashable JavaScript, VBScript and Java code; no-programming-required, drag-and-drop construction of database-oriented Web pages and associated software; and the ability to display database content in table, list and single-entry formats.

The following eight toolsets were reviewed: Bluestone Software's Sapphire/Web 4.0; Borland International's IntraBuilder; EveryWare Development Corp.'s Tango Enterprise; IBM's Net.Data; Microsoft's Active Server Pages technology, Web Assistant and Visual Interdev; Oracle's Developer/2000; Prolifics' Prolifics 2.0; and Sybase's NetImpact Dynamo. In addition, we reviewed two mainframe-oriented tools to help you Web-enable legacy applications--Host Publishing System from Attachmate Corp. and InfoSession from PLATINUM technology (see "Mainframe Tools for Web Database Access," on page 60).

Of the tools we evaluated, Bluestone's Sapphire/Web stood out for its clean, intuitive interface and excellent code generation, and it earns our Editor's Choice award. Not to be easily outdone, Borland's low-cost IntraBuilder exhibited a rich, yet right-to-the-point interface and comprehensive database support; we give it our Best Value commendation. However, all of the tools reviewed had strong points that merit your consideration.

Bluestone Software Sapphire/Web 4.0 connected to more databases and Web servers, generated more robust code in more languages, and offered easier-to-use drag-and-drop creation of Web pages containing database material than any other product we reviewed. It's a winner.

A full-featured development environment for Web-based programming, Sapphire/Web made short work of creating a complex, robust, database-oriented Web application in our testing. Particularly impressive in our lab-based workout were Sapphire/Web's code-generation wizards. Depending on whether we selected Java Framework or ActiveX Framework, these programming robots emitted Java, ActiveX components, JavaScript and VBScript for us. The generated code was the most robust of all the code produced. Additionally, Bluestone says it's continually producing new wizards and improving existing ones.

"DBMS Tools for Web Intergration: Pour It On!"
by Barry Nance in Network Computing Online, September 8, 1997
http://techweb.cmp.com/nc/817/817f1.html
Network Computing Online is at http://techweb.cmp.com/nc/docs/

Push Technology Using Middleware at Delta Airlines

I cannot give a higher recommendation for reading about innovative technology than the article by John Mann entitled "Message Engine Drives Delta Data:   A Case Study,"  Application Development Tools, March 1999, 41-46.  In my viewpoint this should be a "must" for inclusion in virtually every information systems and/or accounting information systems course.  The online version is available in the March 1999 (Current Issue) links at
http://www.adtmag.com/

FPES collects data from all over the airline. For the most part, the information comes out of the airline's TPF-based Operational Support System (OSS); however, gate information may come from some airports through other systems. Passenger information is collected by the reservation system. Most of the planes generate and transmit their own landing time, which gets to FPES via OSS. Delta wrote its own middleware in order to move data out of TPF, while MQSeries is used in various other applications. The FPES server runs on a set of Hewlett-Packard servers running HP-UX and Oracle, with systems duplicated for purposes of high availability.

Consistent, scrubbed information of record is broadcast to consumers through the system's "event-push" capability. Data is kept in memory for quick access, although there is supporting information in databases from which the current in-memory state can be reconstructed.

"The server keeps in memory the exact state of flights and the whole airline from an operational point of view. For example, there is an application that uses the information provided by the server to tell how well Delta is doing in terms of operational reliability," said SCG Partners' Rick Lawhorne, who designed the system. "The software provides what we call a 'service' that maintains all the data needed to support immediate calculation of operational status. It takes only milliseconds to calculate the information that we maintain in real memory."

An email message of interest:
Hi Bob,
http://ashok.pair.com/ is a great site about PowerBuilder, Java, SQL, RDBMS, and OOP. It might come in handy oneday.
Thanks,
Christina B. Kulick
V/T Systems Analyst
USAA Newco Document Services
(210) 913-6050 cell  (210) 753-6050 pager
christina.kulick@usaa.com


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Summary of the OLTP Database Networking Issues

The first generation of global networking was document centered with static HTML codes embedded in text documents. The second generation commenced with helper app browser plug-ins and CGI applications with dynamic linkings of clients, web servers, and database servers.

One of the issues is scalability. This refers to how well a system performs as it grows. For example, a central server of some kind with ten clients may perform efficiently. It has a scalability problem if it fails with an increasing number of clients. If the average response time probably scales linearly with the number of clients, it has a complexity of O(N) ("order N"). There are also problems with other complexities.With CGI there’s the issue that each time a user hits a CGI application, that process has to start up again and then, typically, that process has to make a new connection to the database—sometimes an expensive operation.The October 1997 issue of Application Development Trends (ISSN 1073-9564) on Page 13 describes the IBM DB2 "Web-enabled database which potentially lets customers scale from desktop or laptop systems to massively parallel processors."

The first solution that came out for that was APIs (Application Programming Interfaces). Netscape Corporation and Microsoft both provide APIs called NSAPI and ISAPI that essentially extend their web servers, and it provides developers a way to put application code actually within the web server. This means that you don’t have to start up a separate process each time one of these applications is called. And, since that application is always running, it can maintain connections to the database.

There are some downsides to these new APIs. Errors in application code can wind up crashing that entire web server. Another issue is that there are complexities and overhead in developing to these APIs. Finally, another downside is that the APIs are specific to Netscape or specific to Microsoft browsers.

Another example goes back to the 4GL (fourth generation language) vendors that have a proprietary application server which continues to run in the background and accepts requests from the web server, then runs and executes the program logic, and returns the resulting HTML pages back to the web server.

Another issue of scalability is the connection to the database server. What you want is to wind up with a connection to the database that is both persistent as well as multiplex. This means that you don’t have to open new connections each time you’re accessing the database, and that improves performance. Multiplex means that if I have a generic application where I don’t really care who my users are—they can all have access to my database—then I can log them in under a generic log-in name. This allows you to keep only a couple of connections open to the database which winds up being far more efficient for the application as well as for the database.

Oracle provides a network computing architecture underlying foundation that applications can then plug into. These applications are called cartridges. These are not application servers; they’re "cartridges". Cartridges can communicate to back-end Oracle databases; they can also communicate to web servers. This middleware can also, with the web server, provide a new mechanism to have persistent connections from the web browser to the web server and the database. This will be very powerful technology and enable users to move to the next step in developing and deploying web based applications.

Security is another issue when you’re dealing with web based applications. Two basic issues revolve around Internet security. The first issue is the connection between the browser and the web server. Encryption technologies have evolved into the standard encryption mechanism that’s used in browsers and servers today which allows you to encrypt a message as it’s moving between the browser and server. Encryption is cryptographic conversion of data into cyphertext in order to prevent any but the intended recipient from reading that data. There are many types of data encryption, and they are the basis of network security. Common types include Data Encryption Standard and public-key encryption. The browser and server understand the key to unlock the encryption algorithm.

The best known security device is called SSL (Secure Socket Layer). The SSL provides a mechanism for authentication. For example, in banking transactions, a SSL guards against unauthorized clients logging in and conducting banking transactions on somebody else’s account.

The second type of security to worry about is preventing unauthorized users from entering a database. Firewalls have emerged as a standard way of separating the external world from the internal world. Typically, companies implement their Internet with external web servers separated from the internal side with firewalls. What has emerged in technology is a way to have application servers running inside the firewall communicating to the web server outside the firewall. This means that users or potential hackers cannot come in and access your actual application server. They cannot access the actual database library or your database itself. This provides security of the actual application and of the business logic and of the data from potential hackers in the outside world.

A disconnected state is another common issue to resolve in networking. A client's browser connects to a web server only when receiving a file. And a web server connects to that browser only when it’s sending a file. When the file is loaded in the browser, the network connection is broken. And the web server doesn't necessarily know how to reconnect to the client or what state the client is in processing the file. So when you’re developing a web server application, you can’t necessarily count on the user being in any sort of state to understand where clients are in an application. You might be wanting clients to go down and do a sequence of operations, but you have no control over whether they’ll make it through all of those operations nor do you have control of knowing exactly where they are in the process.

There are several approaches to this issue. The first is to use cookies. Cookies were invented by Netscape, and the basic idea is that the web server can embed a cookie within an HTML document that gets sent back to the browser. The browser doesn’t display the cookie and the cookie is actually encrypted. It can be up to 2Kb long so you can store a fair amount of information but not an unlimited amount of information in the cookie that is sent back to the browser. A cookie is sent back loaded with information when the client connects to the web server.For example, the identity of the client user can be stored in the web server. Cookies are actually applets that enable a web site to collect information about each user for later reference (as in finding cookies in the cookie jar). For example, a cookie allows client customers to fill their orders (shopping carts) and then be billed based upon the cookie payment

A second approach similar to cookies is to store the information into the hidden field of frames. Again, it’s not displayed. It doesn’t have the automatic encryption capabilities that cookies give, but it does give the same basic approach. This is useful if you have a user base that has browsers that do not support cookies, although both Internet Explorer and Netscape Explorer have cookie jars.

It may be very useful to transmit information about the state of progress of a client user (e.g., the number and types of orders placed in a shopping cart at a certain point in time). For example, you might store the fact that my customer ordered a shirt as the first item and then ordered a pair of deerskin mittens as the second item. A somewhat better approach than that is to use a generic state server. The nice thing about a generic state server is I could still store transaction information but the state server has the capability to erase that buffered information after a specified period of time. Because what may happen is that my shopper may pick those two items, but may never complete the actual transaction.

Server-side processing in the second generation is becoming increasingly powerful. However, the second generation may place excessive strains and overhead costs upon web servers and database servers. That’s where the third generation, the network computing generation of web applications, comes into play.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Security and Information Warfare Risks Increase With Networking

There are ever increasing risks of networked databases being inflicted with fraud, theft, computer viruses, worms, trojan horses, logic bombs, trap doors, electronic jamming, HERF Guns, and all the bad things that crackers can do to a system in criminal and warfare acts. There are also risks of unintended crashes due to equipment failures, poor internal controls, and other risk factors. Some of the main problems with security are that:

  1. Many (some estimates run higher than 90%) computer crimes are never detected. This is largely due to sophisticated ways that high-tech criminals can network among a rat's maze of networked computers and leave global trails that are virtually impossible to follow. Valuable products and services can be lost while being accounted for as legitimate transactions using well-designed criminal software or poorly designed legitimate software. Intentional sabotage might be erroneously written off as acts of nature.
  2. Computer crimes that are detected are difficult to prosecute (estimates are less than a 1% rate of convictions for detected crimes). This is partly due to tendencies of courts toward white collar crime leniency. It is also do to a traditional judiciary preference for direct evidence (eye witness, smoking gun types of evidence) commonly lacking in computer crime.
  3. An employee or outside cracker (a hacker with evil intent) may plant a type of "time bomb" in a system that unknowingly "sleeps" for months or years before exploding or otherwise be used for criminal acts. This complicates detection of a crime and ultimate prosecuation. Furthermore, sophisticated software trap doors may be planted for criminals to enter a system at will without being detected.
  4. Legitimate hardware and software vendors may be unaware of security risks and while customers assume that, because of the grand reputations of the vendors, such risks are not present. For example, neither Microsoft Corporation nor the many Microsoft Windows NT users were apparently aware that passwords were easy to "crack" when computers using Windows NT were networked to computers having other operating systems.
  5. Database systems that become more centralized for networking efficiencies and effectiveness become more vulnerable to monumental system crashes that can impact an entire organization, even a global organization. Crashes for whatever reason may become disasters on a grand scale (e.g., shut down of an entire airline reservation system or securities market).
  6. Ways of conducting information warfare are being invented that may bring down giant organizations or even entire nations. In the paper cited below, Dr. Haeni contends that means of information warfare are now being developed by high-tech societies and armies. These may be more destructive on a global scale that nuclear, biological, and poison gas weapons.

In this paper, I will not delve into the particulars of network database security issues. For openers, I recommend an online paper called "Information Warfare: An Introduction," byu Reto E. Haeni, Cyberspace Policy Institute, The George Washington University, January, 1997. Both HTML and PDF versions can be found at

http://www.seas.gwu.edu/student/reto/infowar/info-war.html

A nice summary of terminology and network security issues can be found at

http://www.bus.orst.edu/faculty/brownc/lectures/virus/virus.htm

A helpful set of links on web safety is provided by PBS's Life on the Internet at

http://www.pbs.org/internet/relatedsites/bs/index.html

Also see

http://www.infowar.com

Incidents of security breaches should be registered at

http://www.cert.org/

The CERT® Coordination Center is part of the Networked Systems Survivability in the Software Engineering Institute. The Software Engineering Institute is operated by Carnegie Mellon University for the United States Department of Defense. CERT® maintains a database of all registered security violations (whether criminal or pranks) and descriptions of when and how the systems were breached. Since the incident in this case is not registered with CERT®, it is not possible to look up the solution to the case at CERT®. However, students are encouraged to visit the above CERT® web site. Among other things, this organization issues alerts the world regarding security risks. There is also an emergency response team that will investigate incidents deemed serious to the security and economy of the of the United States. CERT® is interested in most any type of new and interesting scheme to invade computer and networking systems.



Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


THIRD GENERATION: Distributed Network Computing

Introduction to Client and Server Back-end Interactions

You will find the following definition at http://www.whatis.com/ 

Front-end and back-end are terms used to characterize program interfaces and services relative to the initial user of these interfaces and services. (The "user" may be a human being or a program.) A "front-end" application is one that application users interact with directly. A "back-end" application or program serves indirectly in support of the front-end services, usually by being closer to the required resource or having the capability to communicate with the required resource. The back-end application may interact directly with the front-end or, perhaps more typically, is a program called from an intermediate program that mediates front-end and back-end activities.

For example, the Telephony Application Program Interface (TAPI) is sometimes referred to as a front-end interface for telephone services. A program's TAPI requests are mapped by Microsoft's TAPI Dynamic Link Library programs (an intermediate set of programs) to a "back-end" program or driver that makes the more detailed series of requests to the telephone hardware in the computer.

As another example, a front-end application might interface directly with users and forward requests to a remotely-located back-end program in another computer to get requested data or perform a requested service. Relative to the client/server computing model, a front-end is likely to be a client and a back-end to be a server.

Although "static" HTML documents and "dynamic" plug-in "apps" served many needs, there were severe limitations in becoming data-centered as opposed to document-centered on the web. One of the major limitations was that dynamic plug-ins required that client computers install special app software and configure their computers to run downloaded programs. This was not seamless and automatic network computing. Also, server computers had to be specially configured for each type of app needed for files placed in the server. The main limitation of the first generation, however, is that the web server and client computers did not dynamically interact.

The third generation of distributed network computing will be a foundation for the powerful trends in " virtual community" interactive computing. An excellent book by John Hagel and Arthur Armstrong called Net Gain : Expanding Markets Through Virtual Communities provides a great analysis of this trend.

In the second generation of network computing, CGI scripting, Java applets, and other middleware allow for client inputs to be analyzed on web servers and database servers. Middleware allows servers to receive client form responses, product orders, etc. across the web. Beyond middleware, however, a third generation of distributed network computing is emerging using what is termed back-end computing. Back-end computing allows clients to have much more interaction with servers, especially database servers.

Back-end computing is the final stage in a process or a task not apparent to the user. A prpgram's compiler's back-end generates machine language and performs optimizations specific to the machine's architecture. The term can also be used in the context of Open System Interconnect (OSI) network applications. A standard for layering of protocols (protocol stack) to implement it was developed in 1978 as a framework for international standards in heterogeneous computer network architecture. The architecture is split between seven layers (lowest to highest):

1. physical layer
2. data link layer
3. network layer
4. transport layer
5. session layer
6. presentation layer
7. application layer

Generally each layer uses the layer immediately below it and provides a service to the layer above in a "back ended" way.

In the third generation of network computing, web servers perform back-end database computing with "real time" client views of database changes. Also, third generation computing takes advantage of the new interactive server/client interactive technology like Sun's Java, Microsoft's ActiveX/CORBA, Microsoft's Visual Basic VBScript, Netscape's JavaScript, and VRML. Users on the client side want to interact in various ways such as perform sensitivity (what-if) type of analyses. Both Netscape and Microsoft have upgraded their browsers for running Java. Other options are not as general. Only Microsoft's Internet Explorer can execute VBScript and ActiveX applications. Most browsers other than Netscape Navigator cannot execute the popular JavaScript.


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Distributed Network Computing Illustrations

One of the best illustrations of the third generation distributed network computing is NC computing. The new network (NC) computers rely upon servers for operating systems and software that in other computers are normally kept on resident hard drives. This is third generation interaction in its purest sense between servers housing the "guts" of software and data networked long distances to remote "gutless" client machines.

CBS News had a third generation JavaScript distributed network application during the 1996 elections in the United States. CBS used a combination of client-side interactive processing with back-end access to real time election results. A geographic map of the 50 states appeared on the web page. If the user clicked on a given state such as Texas, election results for Texas appeared in a frame on the top of the screen. On the back-end what was happening was that the web server computer extracted election data, in real time, from all the Texas precincts. Clients could follow both the national and state election results in real time, including results of referendum proposals.

Other examples of third generation distributed network interactions can be found at VRML sites. VRML is an Internet standard for 3-D animations called Virtual Reality Modelling Language (VRML). By going to most any WWW search engine, it is possible to use a combination of search terms for web sites on this topic. For example, using http://www.altavista.digital.com/ with the search term "VRML" resulted in 80,073 hits on December 22, 1996 and 359,660 hits on September 19, 1997. VRML is designed to be a dynamic extension of the HyperText Markup Language (HTML) standard that became the main component in the invention of the WWW in 1990 by particle physicists. In other words, VRML is intended for the WWW. Secondly, VRML is intended to be somewhat like VR in the ability to immerse participants into simulated 3-D worlds for education and entertainment. Thirdly, VRML can bring animation, audio, and 3-D reality to a MUD-type creation of imagined worlds and avatars in those worlds. However, VRML can also be used in a more mundane commercialization of the technology such as entering a simulation about being inside and operating a product such as a new model of automobile or a kitchen in an apartment complex that is still under construction.

My favorite VRML repository is at the San Diego Super Computing Center at

http://www.sdsc.edu/vrml/

At the above web site you can find links and applications of third generation network interactions in various disciplines. Another very helpful site is at http://hiwaay.net/~crispen/vrml/.


Hi Don,

Well, for one thing, it does not provide system wide access, only application access.

From http://www.networkcomputing.com/1107/1107ws2full.html 

The flip side of this is that you cannot use the VI Architecture for general networking traffic. The efficiency of the VI Architecture relies on the removal of the TCP/IP Layers (Layers 3 and 4),which gives user-level applications direct access to the hardware (Layer 2). Thus, the VI Architecture is for intracluster or intraenterprise communication to connect servers, but not for client/server connections via the Internet.

Thank you for keeping me informed.

Bob (Robert E.) Jensen 
Jesse H. Jones Distinguished Professor of Business 
Trinity University, San Antonio, TX 78212 
Voice: (210) 999-7347 Fax: (210) 999-8134 Email: rjensen@trinity.edu  
http://www.trinity.edu/rjensen 

-----Original Message----- 
From: Don Wassem [mailto:dwassem@giganet.com
Sent: Monday, May 01, 2000 11:27 AM 
To: rjensen@trinity.edu  
Subject: Seeking your opinion of the "Virtual Interface Architecture (for server-server software communications)"

Professor Jensen:

I was doing some research on distributed computing techniques this weekend, and discovered your

"Network Databases: Past, Present, and Future" paper.

I'd like to learn your opinion of the "VI" architecture; for a recent brief review of it, please see Prof. Steve Chapin's workshop in Network Computing (17 April), at:

http://www.networkcomputing.com/1107/1107ws2full.html 

Don Wassem (202) 494-8845
Director, Market Development e-Commerce Server-Area-Networks
Giganet, Inc. http://www.giganet.com 
Server scalability low-CPU-overhead low-latency high-throughput


Introduction

First Generation

Second Generation

Third Generation

Bob Jensen's Home Page

Glossary

ACCT 5342

Table of Contents


Java versus ActiveX

Netscape's JavaScript and other alternatives like VRML have specialized and limited distributed network computing power. Two of the main executable content power user alternatives in browsers are Java and ActiveX. Sun Microsystem's Java commenced as an easier way to write C++ code, but Java has since evolved to be much more than that in the third generation of real time distributed computing across networks. Java is portable, downloadable embedded "applet" code that can be easily integrated into browsers. Both the Netscape Navigator and Microsoft Internet Explorer browsers integrated Java into their latest upgrades. Any Java class or applet that is sent down to the browser can be executed interactively. Java is also the basis of new network (NC) computers that rely upon servers for operating systems and software that in other computers are normally kept on resident hard drives. In 1997, IBM Corporation became the world leader in Java development focused heavily within its Taligent subsidiary.

Microsoft Corporation's ActiveX, on a somewhat different tack, competes head to head with Java. Microsoft takes the wealth of OLE objects that are in the market and uses ActiveX to provide those via the web. For example, it is possible to transmit spreadsheets across the web using ActiveX. ActiveX is based upon a form of registration that lends it more security than can be obtained with Java applications in the third generation. Before clients download an OLE control, they can identify where that control is actually coming from. One drawback to consider is that only the Internet Explorer browser is enabled to execute ActiveX controls. For more on ActiveX see http://www.microsoft.com/activex/.

If you really want to see something neat using ActiveX, open your Internet Explorer and choose menu options (Control Basics) at the Surround Video site at

http://www.bdiamond.com/products/surround/howtouse.htm

You will be asked to download a viewer that will download and install with one click of a button. Then drag the mouse inside the image and watch the image move in the neatest way.