
The mechanics of current internet/intranet servers are setting the tone of your future development efforts.
Life used to be much simpler when Java and ActiveX were little more than marketing promises, when your only way of connecting a Web server to a database server was through a simple ODBC connection via CGI, and you weren't really expected to do anything advanced when it came to databases and the Internet.
Today, the database developer is awash in a sea of tools. Many of these tools seem to change every few hours; if you're not on the Internet to download the latest iteration, you could miss the emergence of some new tool or capability that may meet your database-connectivity needs. Still, when you look at all these tools, one clear trend emerges: There's a profound battle within the computer industry for the hearts and minds of those who design and implement database-driven Internet/Intranet servers -- a battle that could set the tone for database development until the coming millennium.
Sound overly dramatic? Not really. The battle pits Java-based database tools (as pushed by Sun Microsystems Inc. and Netscape Communications Corp.) against a more traditional client/server approach based on CGI and server-based APIs (as pushed by Microsoft Corp., Oracle Corp., and many others). If you've been on the sidelines, thinking that you'll start paying attention to the Internet/Intranet battles when the technology matures to the point where it's viable for your database ventures, guess what -- the time is now. And although many of the leading vendors have announced support for their competitors' tools (Netscape is supporting many ActiveX controls, Microsoft is supporting Java in a variety of tools, and Oracle will support both), reality dictates that at some point you'll have to choose between ActiveX and Java, if only because the time and financial commitment to maintain expertise in both areas won't be worth the effort.
Put simply, these represent totally different design philosophies. With traditional CGI tools, the Web server programs are expected to do the majority of the work, calling the database server with a query and then formatting the results in a Web page, which is then shot back to a user. With Java-based database tools, the Web page summons a Java applet, which is then shot to the user; the user then uses this applet to talk directly with the database server (although some Java tools still rely on the Web server to query the database server).
Anyone designing a database system will have to grapple with some decisions that have real ramifications. Where the processing is actually done means a great deal when designing a robust Internet/ Intranet system for database applications: A Web server with a lot of overhead will naturally affect the choice of operating system and hardware, but a Web server that merely shoots out Java applets will require a little less processing firepower. Although there are many variations on this scenario -- many of the more interesting Java applications are CGI-based, and Microsoft has a rather substantial commitment to Java in its flagship products -- by and large this model holds true for the entire industry.
Don't look to Web server vendors for any clear solutions, either. Market leader Netscape, in a late 1996 announcement regarding its strategic directions, basically said that although Java was the supported technology, Netscape servers would support Microsoft BackOffice and most ActiveX controls. Microsoft's new Internet Information Server (IIS) 3.0 includes (on paper, anyway) many new and exciting features of particular interest to database developers: Java, Microsoft's Internet Server API (ISAPI), Visual Basic, Perl, and Python (a scripting language similar to Perl and TCL that's become more popular among Internet languages).
With the server situation unresolved, many middleware developers are agnostic. If you want Java, many vendors now offer Java, but if you want to stick to traditional Microsoft server development tools, they'll support them too. Add to that new versions of the ODBC Development Kit and Internet Studio from Microsoft and the JDBC API from JavaSoft (a division of Sun Microsystems), and you have the makings of a server-side development environment that isn't lacking in potential tools -- whether you stick with traditional CGI tools or make the move to Java.
Netscape's browsers and servers currently support JavaScript, which supports embedded SQL commands within server-generated Web pages. This support comes in the form of LiveConnect, an API that ties together Java, JavaScript, and plug-ins. (You can find more information about LiveConnect at home.netscape.com/eng/mozilla/3.0/handbook/plugins/ index.shtml.)
If JavaScript isn't to your liking, you can always wait for the Internet Inter-ORB Protocol (IIOP), scheduled for the next generation of Netscape servers, due out in the first quarter of 1997. [See David Linthicum's article, "Distributed Objects Get New Plumbing," on page 4. -Ed.] This protocol is an outgrowth of the Common Object Request Broker Architecture (CORBA) specification, which enables an application over the network to connect with remote applications, even if those remote applications are running on different operating systems using other development languages. The data that's stored in the CORBA/IIOP-compliant application is then made available to the requesting application. Although CORBA isn't a database technology per se, it does have ramifications for database developers: Applications (such as Java applets) can be written to connect directly to CORBA-compliant applications over the Internet, eliminating the need for intermediaries such as Web server and Internet-based database servers. We'll see the largest impact in communications with enterprise legacy systems.
Netscape is also building IIOP into LiveConnect, its high-end application SDK that ships separately and with the line of Netscape Web servers. With LiveConnect, Java, JavaScript, and C/C++ code can be used in conjunction with IIOP.
As I write this, details are still somewhat sketchy regarding Microsoft's new version of IIS, 3.0 (a beta became available just before press time). Most of the enhancements to IIS have to do with data-base connectivity, beginning with a new version of the ODBC, Microsoft's core connectivity tool.
The basis -- at least where database developers are concerned -- for these new database-development efforts is ODBC 3.0. [See "Understanding ODBC 3.0 Standards and OLE DB" on page S15 in the April 1996 issue of DBMS.-Ed.] An incremental upgrade of the popular Internet database connectivity tool, ODBC 3.0 conforms to X/Open and ISO Call-Level Interface (CLI) standards. It has the following new features:
Microsoft's server-side efforts are all part of Active Platform, which encompasses language-independent scripting, Dynamic HTML, and a new server-side component programming tool, Internet Studio.
Internet Studio is designed as the ultimate development tool, no matter what your needs. With many features -- such as Active Server pages and ODBC 3.0 support -- geared specifically for database developers, Internet Studio uses server-side processing to create HTML pages to connect to databases.
A scripting tool that can be used in this process is Active Server Pages (known formerly as "Denali"), a feature of Internet Information Server 3.0. Basically, Active Server Pages is scripting taken to a higher level; you combine scripts from any number of sources (including Visual Basic, JScript, Perl, Rexx, and Python) with ActiveX controls and HTML calls, and the result is a speedier implementation of a standard CGI call. Although this procedure hasn't yet adopted all of the advantages of the Java programming language (for example, low server overhead by pushing processing off to clients), it accomplishes Microsoft's goal of speeding processing time for CGI- and server-based processing.
A key feature in Internet Studio is Dynamic HTML, which essentially allows objects to be made part of HTML pages. The previous HTML model had been static: An HTML page is sent from the server to the browser, the user makes changes to the HTML page using form controls, and the new HTML page is then sent back to the server. This process requires two separate transactions between the server and the browser. With Dynamic HTML, a Web page is more akin to a small application (or Java applet, for that matter) that can interact with the user without having to summon the server for every little transaction. Dynamic HTML will make its debut in Internet Explorer 4.0.
Internet Studio has built-in support for ODBC 3.0, with specific support for Microsoft SQL Server, Access, and Visual FoxPro; Oracle; Sybase; Informix; IBM's DB2; Borland's dBASE; and other database servers. According to Microsoft press materials, a new feature called Active Data Object (ADO) provides Web-optimized database access. Developers can use Visual Basic Script or JavaScript to develop database Web applications, which can connect to multiple databases over the Internet or an Intranet. You can find more information about these tools at the Microsoft Site Builder Network site located at 198.68.191.189/sbn_magazine/news.htm.
To a great extent, Java is already a major player in the Internet community. Figures from JavaSoft and various research organizations peg the number of Java developers at around 200,000 -- a fairly impressive figure that should grow to a million by the millennium. In short, the Java Express has left the station and is gaining momentum.
What's driving Java as a server-side development tool? It's not the actual Java language, which is still pretty much a watered-down C/C++. Although there's some whispering in the development community that the exodus of the original Java design team has hampered current development of Java programming tools, a wealth of small vendors have superseded JavaSoft as a source of robust database tools -- and these middleware producers are really driving the market.
JavaSoft came up with JDBC, the Java alternative to ODBC. JDBC is an API for using Java-based applications for either connecting directly to databases maintained on popular platforms (from Oracle, Sybase, Microsoft, Informix, and the like) or to ODBC-compliant databases. JavaSoft was actually ahead of the game by releasing version 1.10 of JDBC before the release of the newest version of the Java Development Kit (1.1), in order to give database developers a head start. (You can get more details from splash.javasoft.com/jdbc/.)
Because of the market situations surrounding Java, many smaller firms that weren't interested in supporting it are now including JavaScript support in their server-based products. Witness HAHTSite, a server-based database development tool from HAHT Software Inc. (www.haht.com), a product first reviewed in the January 1997 issue of DBMS. The newest version, 2.0, includes support for JavaScript in its integrated development environment (IDE), which then can be run on its own Application Server or on other Web servers that support Java. In addition, the HAHTSite Application Server conforms to both the Netscape Server API (NSAPI) and Microsoft's ISAPI (used for IIS); it also supports CGI-based scripts. (This support doesn't come cheap, however; HAHTSite 2.0, which should be shipping by the time you read this, is $995 for the IDE, $695 for the SDK, and $2,495 for the Application Server.)
Database professionals will want to look past the enabling technology --JDBC -- to how the technology has been implemented by a wide range of middleware developers. A look at the vendors and tools supporting JDBC is lengthy and impressive, with the following firms serving as excellent examples of what's happening in the field:
Your problem in following server-side technology shouldn't be one of not following -- it should be in riding along with the huge flood of products hitting the market.
A Sample of Web Server Development Tools | |
|---|---|
| Company | Web Development Technology |
| Borland International Inc. www.borland.com | IntraBuilder |
| BulletProof Corp. bulletproof.com | JDesignerPro JAGG Server |
| Cyber SQL Corp. www.cybersql.com | ActiveWeb |
| Dharma Systems Inc. www.dharmas.com | ODBC SDK |
| HAHT Software Inc. www.haht.com | HAHTSite Application Server |
| Javasoft (a division of Sun Microsystems Inc.) splash.javasoft.com/jdbc | JDBC |
| Microsoft Corp. 198.68.191.189/sbn_magazine/news.htm www.microsoft.com/odbc | Active Platform ODBC 3.0 |
| Netscape Communications Corp. home.netscape.com/eng/mozilla/3.0/handbook/plugins/index.shtml | LiveConnect |