Internet Systems

Tool Time

By David S. Linthicum
Internet Systems, October 1996

Taking stock of the available development tools and what may work for you.


Just a few years ago, Web application development tools drew little more than confused stares. Today the Web is the application deployment platform of choice. Moving applications to the Web is a popular pastime, and Web application development continues to move from the world of 3GLs and early adopters to the more conventional world of 4GLs and rapid application development. The world of Web development keeps changing rapidly.

The problem today is not tool availability for Web development in both the Internet and Intranet incarnations - it's the fact that there are too many tools and not enough information. What confuses the issue is the hype surrounding the Web and the feeling that developers who adapt to the Web as a platform are jumping on a fast-moving train. Moreover, there is a migration away from rock-solid Web standards such as HTTP, HTML, and CGI to the newer Java, JDBC, ActiveX, and plug-ins, as well as proprietary Web server APIs such as Netscape's NSAPI and Microsoft's ISAPI. Today, many tools follow many standards, which only adds to the commotion. Let's see if we can make some sense of the current state of the art in Web application development technology. I'll look at enabling technology as well as particular Web development tools that may be right for your next - or your first - Web application development project. There are too many tools to mention in just one article, so be sure to check out the product chart.

Intranet-Driven

What drives the current movement to the Web is not developers who want to build Web applications for strangers on the Internet; it's developers who want to build applications for known users on an Intranet. Intranets, simply put, are Web servers and Web users that exist behind corporate network firewalls. Rather than serve Web clients on the Internet, Intranet Web servers and applications serve only Web clients in a single organization.

Intranets are popular because of their low cost, consistency, and flexibility. Web technology (such as browsers and Web servers) is relatively inexpensive compared to traditional client/server technology. In addition, Web interfaces are generally consistent from platform to platform, and there is no need to integrate specialized middleware layers or redeploy the Web application as a native program on a particular platform. Finally, the Web is flexible. Developers can use the Web for information-dissemination applications, electronic commerce, transaction processing, and data warehousing (analysis and reporting).

The significance behind the rise of the Intranet in corporate America is the shift from the traditional multimedia capabilities of the Web to a true application development platform. Web-enabled applications that use enabling technology such as Java, ActiveX, and plug-ins now provide dynamic application behavior. Migration to Intranets will continue, and development tools will follow the market, including the development tools mentioned in the next section.

Pick Your Team

Before you select the Web development tool that's right for your project, you need to pick teams. You need to join the Java team, the ActiveX team, or the plug-in team, or choose the traditional method of using the common gateway interface (CGI) and HTML. The upside to selecting any of these enabling technologies is that each allows for the deployment of dynamic applications that run within Web browsers. This means that Web users who exist on Intranets or the Internet can invoke an application simply by entering its universal resource locator (URL) or selecting it from a bookmark list.

Dynamic Web applications let users enter information; the applications then process the information and return results to the end user. However, they do so in very different ways. Java, at its core, brings dynamic behavior to Web applications using a 3GL similar to C++. Java is now evolving from simple animation applications that make Web content interesting to all-out interactive applications. Java applets can receive input from Web users, process the information, and interact with database servers using native APIs or the JDBC (Java Database Connectivity) API. What's more, a number of rapid application development (RAD) tools currently hitting the market make Java development much easier than using traditional Java development environments (such as Sun's Java Development Kit [JDK]). However, Java requires the use of a Java-enabled Web browser such as Netscape Navigator 2.0.

ActiveX, Microsoft's response to Java, provides many of the same capabilities as Java. Thus far, Microsoft Explorer is the only browser that has native support for ActiveX components. ActiveX is basically a new architecture for OLE Custom Controls (OCX), modified to provide security services and other features required when using the Web. Microsoft tools, such as Visual C++ and Visual Basic, enable developers to create ActiveX components. ODBC is the preferred method for connecting ActiveX components to any number of database servers.

Both Java and ActiveX provide "download once, run many times" (DORMAT) capabilities. This means that Web users download the Java or ActiveX applets when they initially connect to a Web server. The applet executes locally inside the Web browser and performs any of its preprogrammed functions, such as receiving input and updating a database server. A new applet is downloaded only when the applet on the Web server changes, which could be a matter of weeks or months. What makes the DORMAT model significant is the ability of Java or ActiveX components to function without maintaining the connection to the remote Web server, as is the case with CGI, NSAPI, and ISAPI.

CGI was the first attempt to provide dynamic application development to the Web. CGI is a protocol, not a programming language or a tool. CGI executes as an external process to the Web server and provides dynamic application behavior as well as a means of connecting to an external database through a database API. Perl, C++, and Unix shell scripts are popular enabling languages for CGI. However, a few tools on the market today use CGI as their Web application deployment mechanism of choice and automatically generate the CGI code for you. Plug-ins give you the ability to control the Web browsers and thus allow the Web browser to act as an interface to a Web application. Plug-in applications interface with the Web browser via a common interface. Netscape is the premier browser that provides such capabilities.

The Client/Server Connection

In case you haven't noticed, client/server and Web development tools are becoming one and the same. Big client/server tool vendors such as Microsoft, Borland, Symantec, and Powersoft saw the potential of the Web early on, and they began to Web-enable their existing toolsets as well as create new tools for Web-only development.

Borland International Inc. Borland's new Borland C++ 5.0, for example, not only provides a sophisticated C++ development environment but can perform Java applet development as well. Borland gives you visual development capabilities that augment the cryptic world of low-level Java. Borland C++, like other Java development environments, provides a just-in-time compiler that lets applet processing bypass the overhead of the byte-code interpreter and go directly to the processor. This benefits applet runtime performance.

We've yet to see the best from Borland. Now in the works from Borland is Latte, which is basically a Java-enabled version of Delphi that provides the same RAD development capabilities and database connectivity. If Latte lives up to the capabilities of Delphi, it's going to be a sure-fire hit. Latte is due out later this year. Borland also recently announced its IntraBuilder product. IntraBuilder combines Borland's database tools with JavaScript, enabling developers to create Web-based data-entry forms or dynamic reports without knowing JavaScript or HTML.

Symantec Corp. Unlike Borland, Symantec is not Web-enabling its existing C++ compiler. Instead, the company provides a completely new Java-enabled development tool called Café. Café was one of the first Web tools to mix RAD with the 3GL world of Java. Like Borland C++ 5.0, Café provides a just-in-time compiler and the ability to test applications and applets using browser simulators. However, there is a bear in the woods. Microsoft's new J++ Java development environment is coming on strong as a Java tool of choice. J++ is destined to become part of Microsoft's operating systems, and it could upset a rapidly growing market.

Powersoft Corp. PowerBuilder and Optima++, both from Powersoft, plan to provide Web-enabled development environments as well. PowerBuilder provides plug-in capabilities today for Web development, but it plans to move to pure ActiveX development capability in the near future. PowerBuilder's plug-in capability lets you create plug-in applications that take over the functionality of Web browsers supporting plug-ins such as Netscape Navigator. This feature lets you create Web-enabled applications using the familiar PowerScript scripting language and DataWindows. PowerBuilder supports most Windows controls when creating Web plug-in applications. Powersoft's Optima++, a client/server development environment based on C++, plans to support Web application development using Java. When the Optima++ Developer Edition becomes available later this year, Optima++ will let you build Java applets using Optima++'s visual development environment.

Compuware Corp. Compuware is Web-enabling its Uniface multiplatform client/server development environment using Uniface WebEnabler. WebEnabler lets existing and future Uniface applications deploy to the Web. Compuware provides this feature without requiring you to alter or add code. WebEnabler maintains all of the existing business rules and database connections found in the original Uniface application. WebEnabler translates the Uniface application interface into HTML, which can be read by any Web browser. In a sense, Uniface simply added another platform to the long list of platforms it supports - this time, the Web. WebEnabler also supports multiple interfaces to Web servers, including CGI, NSAPI, and ISAPI; a future enhancement will let developers integrate Java applets into Uniface applications.

Unify Corp. Unify's Vision, another multiplatform tool for client/server development, is also being Web-enabled. Unify Vision/Web can generate Java code even when the Unify Vision/Web developer doesn't understand Java. Vision/Web treats the client browser as another client platform, and it lets you create a single application that serves several platforms, including the Web.

Jyacc Inc. JAM from Jyacc is another multiplatform client/server development tool that can deploy to the Web. JAM/WEB (Web Enterprise Builder) is a development tool that creates Web applications. JAM/WEB developers use visual form editors to create the look and feel of the application as they would in standard JAM. However, JAM/WEB converts the form directly into HTML for deployment on the Web. In addition, JAM/WEB can process transactions back from the browser using standard application logic, and it can interact with any number of database servers. JAM/WEB can return information back to the Web user through standard HTML.

Parc-Place Digitalk Inc. ParcPlace-Digitalk's VisualWave is a Web-enabled version of the company's Smalltalk-based client/server tool. Using VisualWave, Smalltalk developers can deploy Smalltalk applications on the Web within a graphical development environment. VisualWave can automatically generate the HTML and CGI code required to deploy your application on a Web server. In addition, VisualWave provides session management capabilities that let you track states within the CGI applications. Developers also have access to all that constitutes the pure object-oriented development environment, including object browsers, inspectors, symbolic debuggers, and resource finders.

Centura Software Corp. Centura, the creator of SQL Windows, plans to Web-enable its existing client/server products by providing a Centura Application Server and Web Data Publisher. The Application Server is a repository for Centura client/server applications and Java applets. Centura plans to enable Team Developer to generate applets, which will let you deploy applications as native Windows applications or Web-enabled Java applets. Web Data Publisher lets organizations publish data from multiple databases on the Web, as well as maintain a repository of metadata about various databases. Web Data Publisher can securely deliver information to Web clients who are authorized to view the data.

NeXT Software Inc. WebObjects from NeXT Software Inc. is a Web-enabled version of the company's Enterprise Object Framework (EOF) client/server development environment. WebObjects lets you lay out the look of a Web application visually and add behavior. Once the application is complete, WebObjects generates the HTML and CGI code required to support the application and link to the appropriate databases.

SourceCraft Inc. NetCraft from SourceCraft offers a visual Java development environment. (See Figure 1.) NetCraft provides browsers, a menu editor, a methods editor, a form builder, and a Java code generator. NetCraft is based on SourceCraft's ObjectCraft client/server development tool that generates standard C++ source code and offers ODBC connections to popular databases.

Other Tools Several other Web application development tools don't have a history with client/server but still provide a solid path to the Web. JFactory from Rogue Wave Software Inc. provides a full-blown Java development environment. JFactory furnishes several subsystems to help you build applets, including a Project Manager, Window and Dialog Designer, and Menu Design tool. Like Café and Borland C++ 5.0, JFactory offers a visual development environment that lets you create interfaces by simply selecting GUI controls from a palette. Sun's JDK, the foundation for most Java development tools, is also a viable Java development tool in its own right. JDK provides an object-oriented development environment, including a Java Applet Viewer for testing applets, a Java Language runtime interpreter, and Java-enabled debuggers.

OpenScape from OneWave Inc. (previously Business@Web Inc.) provides a component-based development environment for integration as plug-ins. OpenScape employs a distributed component architecture and ships with a Visual Component Builder for painting and adding behavior to visual components. A Component Workbench can store, name, and find components, and a Component Engine can process the communications between the interface and application. Sapphire/Web from Bluestone Inc. is a simple Web-enabled visual application development environment. Sapphire lets you generate applications as HTML, and it interfaces with popular database servers such as Oracle, Informix, and Sybase.

Database-Enable Your Web Although application development is a key feature for developers, a few tools specialize in serving enterprise data through the Web. These tools become Web application development tools in their own right, because they integrate with standard HTML editors and Java-enabled development environments. Following are just a few examples of such products.

Net Dynamics from NetDynamics Inc. (formerly Spider Technologies Inc.) provides Web application database connectivity and lets developers visually link remote HTML form fields or Java fields to database fields. Cold Fusion from Allaire Corp. provides a development platform to build applications that can access information that resides in relational databases. Using Cold Fusion, you can combine high-level database commands stored in templates with standard HTML.

Other Web/database tools include web.sql from Sybase Inc. and WebDBC from Nomad Development Corp. The web.sql product links Sybase System 10 and System 11 databases and HTML, letting you embed SQL directly into HTML documents. WebDBC provides Web developers with an easy link to their favorite database through ISAPI or NSAPI.

LiveWire from Netscape Communications Corp. is a Web application development and database connectivity tool that incorporates the Rogue Wave database libraries with the Netscape scripting language. Using LiveWire, developers can link to popular databases such as Sybase, Informix, and Oracle.

Finally, JetConnect from XDB Systems Inc. provides database access directly from Java applications. JetConnect is a set of Java class libraries and related drivers that link any Java applet with any database that has ODBC support. JetConnect may have some competition with the JDBC from JavaSoft. (For more information on JDBC, see my article in this issue.)

Which Direction Now?

I'm willing to make a few predictions about where things are going in the world of Web application development. First, the use of CGI and tools that employ CGI will drop in favor of better-performing native APIs such as NSAPI and ISAPI. Developers who don't need server-side APIs will favor Java or ActiveX as better alternatives for running Web clients disconnected from the Web server. Java and ActiveX will place the processing back on the client end.

Second, the use of plug-ins will subside in favor of non-proprietary standards such as Java and ActiveX. Java, for instance, can better support a large number of browsers, and it does so using a wide array of tools. A simple check of the number of Java-enabled tools listed in the product chart proves this prediction. Those numbers are likely to increase sharply by the end of the year. Finally, the competition between Java and ActiveX will increase. Unlike the competition between OLE and CORBA, Java has a large jump on ActiveX and development tool and browser support. However, with the advent of a Web-enabled Windows 95, you will find that migration to ActiveX is an easier journey for Windows shops (which includes almost everyone). My money is on ActiveX in the long run.

Final Thoughts

This is an extremely tough subject to approach from any angle. The hype and rapid change in the Web application development market make any research effort a daunting task. Just the process of putting this article together was a frustrating experience, considering the shift in market forces and the constant bombardment of new tools and technologies.

The key to finding the right Web application development tool for your development project is first to define and understand your requirements completely. Next, independent of the hype that surrounds Web development, select a few tools that initially look as if they will meet your needs. Then, using the requirements as a guideline, assign weights (such as 1-10) that measure the tools' ability to live up to a particular requirement. Make sure to include a live evaluation, testing, and a prototype when you make your selection. It will take time for this relatively new industry to settle down. For now, learn as much as you can and proceed with caution. Reading this article gives you a good start.


David S. Linthicum is a widely published author, speaker, computer science professor, and technical manager with AT&T Solutions in Vienna, Virginia. You can email David at 70742.3165@compuserve.com, or visit his home page at http://ourworld.compuserve.com:80/homepages/D_Linthicum/.


FIGURE 1


--NetCraft from SourceCraft Inc. offers a visual Java development environment. The Class Hierarchy Inspector displays the inheritance relationships among Java classes and their derived extensions in the project, the methods per class, and the properties of the class.
Table of Contents - October 1996 | Home Page
Copyright © 1996 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.
Please send questions or comments to mfrank@mfi.com
Updated Friday, September 27, 1996