DBMS
 

 


Tackling Toolsets: Navigating the Current Landscape of Client/Server Internet/Intranet Application Development Tools. By Robin Schumacher

Anyone who doesn't like change shouldn't be involved with database application development these days. The flood of products and tools to build applications continues to rage with no end in sight. Corporations are puzzled with what approach to take in regard to future systems. Individual IS professionals are agonizing over what skill sets they need to be building or improving on. Camps are springing up all over with loyal zealots loudly proclaiming their development tool's superiority. What's a developer to do?

First, don't panic. Remember that the ultimate purpose of any application development tool is to produce intelligent systems efficiently that add to the value of a business. Behind all of the fancy demos and endless lists of product features and benefits, the tools you choose to use in the construction of the application framework of your company must be able to make a business impact.

Armed with a sensible foundation (David Linthicum's article on page 36 is a good start), you must examine the tools that you're currently using to build systems to see if they're meeting your needs. If the honest answer is no, then you're going to be faced with looking at the sometimes intimidating list of application development products and beginning the search for a new direction.

Where to Begin

There are two core categories you can use to help narrow your search for development tools. The first category revolves around the platforms for which you will be developing. For the sake of this article, I'll broadly label them:

Desktop: Single-user (or small groups of users) systems that may or may not make use of a back-end database server. An example may be a Microsoft Access system that a single lab assistant uses to keep track of his or her analysis.

Enterprise: Departmental/workgroup or companywide client/server-based applications that nearly always involve connectivity to one or more databases. An example of an application in this realm may be a hospital's registration system that is used by registration clerks as well as numerous other hospital employees to track patients through their stays.

Internet: Either Intranet- or Internet-based Web applications that may be static in nature or involve interaction with a DBMS for queries and/or data input. A static Web application may post corporate advertisements and possibly take a user's request for more information. A dynamic database Web application, on the other hand, may let doctors query patient results that are stored in a hospital database via a Web browser.

The second category brings to the table the type of programming required by the tool itself:

3GL. This category includes the C, C++, and pure Java-based tools that likely require more detailed programming than their rapid application development (RAD) counterparts. Typically, these toolsets take longer to turn out an application than the RAD tools, but the software that is produced also tends to sport superior capabilities and perform faster because of the underlying tool's broader and more complete control over machine resources.

4GL or visual development tools. These tools have caught on like wildfire, invading nearly every corporation's IS infrastructure. With many of them producing compiled machine code and offering easier, even superior, database connectivity over the 3GL tools, these RAD application development products are here to stay. You need only look at the current versions of Borland's Delphi and Powersoft's PowerBuilder to see why many developers are turning to them to create GUI database applications rather than learning C++.

Browser-Oriented Development Tools. Another major change in application development now is the shift from classic .exe-based applications to browser-based applications that use HTML pages, components, and embedded script to provide application functionality. This change in the nature of the application package is as fundamental as the change from hand-coding to the use of GUI development tools. HAHTSite is an example of a tool that creates browser-based applications. This differs from all of the client/server retreads that support browser HTML applications in addition to their older, original .exe application model.

Having defined these application development categories, you can then ask yourself two questions: Where will I be deploying my applications (both now and in the future), and what skill set do I have in house or can hire/train for development?

If you're a small company, you may find the answer to the first question is desktop only. On the other hand, if you're a large, dynamic organization, you may need to develop for all three platforms: desktop, enterprise, and Internet. If this is the case, then you'll need to find a toolset or vendor that produces a product that your development staff can use to build applications for all three platforms. This is preferred to using different products for separate platforms, all of which require a different knowledgebase.

With the platform question out of the way, you then move on to perhaps the more difficult question: What type of skill set do you have compared to what you need? I believe that the learning curve and time to development is shorter for those choosing the 4GL route (with the caveat that this is normally true for those choosing mature toolsets). The last thing you need is to pick a development tool loaded with bugs, causing your staff members to spin their wheels endlessly. If your main target area for development is the Internet, the nod in this area goes to the 3GL based Java tools -- and even many of these are version 1.0s or close.

Let's now take the plunge and start surveying the development tools that construct systems for the platforms you've chosen to develop for, and let's examine the abilities you'll need these tools to exhibit. We'll keep in mind the skill set necessary to use the tools competently, and we'll keep an eye on what the future may hold for some of the tools examined.

Desktop Power

The number of user applications that involve only one or a few users is surprisingly large, considering the number of small- to medium-sized businesses that continue to spring up. A related trend is the increasing use of applications by mobile or remote workers. Lest you think the tools that fall into this category aren't robust, think again. Many products in this category offer complete interactive development environments (IDEs) and have full relational databases bundled in, as well as GUI online, reporting, and Internet development capabilities. Some of the most widely used tools here include Microsoft Access and Borland's Visual dBASE.

In terms of what skills you'll need to use these desktop tools effectively, you can pretty much stay with the 4GL products in this realm, many of which have a Basic-like language and visual development environment. You'll rarely need to do something at the corporate desktop level that requires the precision of a 3GL language such as C or C++. Other skills needed to construct decent desktop systems include the ability to work with SQL and, in some tools, the tool's own flavor of SQL or specific database language. As already mentioned, most of these tools offer a visual, point-and-click environment, but it's best to know the syntax if you require more complex operations.

Over the last few years, Microsoft Access has gained ground as a desktop database development environment while older Xbase tools and Paradox (now owned by Corel Corp.) have seen their earlier dominance wane. The desktop market is also the province of Visual Basic and the Desktop Edition of Powersoft's PowerBuilder. For those purely developing for the desktop, it's hard to beat Microsoft Access. Bundling a good (albeit size-constraining) RDBMS with a tightly integrated GUI and report builder lets both novices and software professionals produce capable, impressive applications.(See Figure 1.)

For people developing desktop database applications and Web systems, Microsoft Access offers a number of features. Access 97 has added a new hyperlink datatype that can be used to link to Internet sites. Developers can build links into the database and let users choose from a variety of Net locations. Once chosen, their default browser is invoked and the Web page displayed. Many other application development tool vendors will probably mimic the ability to hyperlink to Internet/Intranet Web pages from within an application.

The drawback in regard to desktop tools, however, is that they don't scale very well. I can't tell you the number of times I've seen people try to use Microsoft Access to build medium to large departmental or enterprise applications and fail.

Serving the Enterprise

Making the move from desktop to enterprise development generally means adding more complexity and other issues that aren't normally addressed with smaller applications. For example, single-user systems are often built by a single developer, whereas larger, enterprise applications are usually worked on by a team of developers. This means you need a tool that helps with team development (check in and check out of source code and other objects) and version control. Enterprise systems also normally access database servers over a network to get their information, whereas many desktop applications normally operate in the mode of having the interface and database on the same machine. This setup dictates that you have a toolset built with the network in mind, and it offers ways of efficiently controlling the amount of information sent back and forth.

Where To Start?

As you can see from the accompanying product chart on page 70, many different products out there are clamoring for your attention. How do you begin to whittle the list down intelligently? Again, examine your corporate needs, as well as your staff's abilities, and produce a checklist of the important features your tools must contain. Let's work through a few of the most common "must haves" and see how some of the tools stand up.

To begin with, most companies don't run their key business functions with only a single database vendor's product. Therefore, any tool you choose must be able to access a variety of the more popular database engines. Once you have established the fact that a tool can reach the databases you now have (as well as those that you may plan to use in the future), find out how the access occurs. Generally you will find that the access occurs either through native drivers or ODBC. It's been my experience that native drivers tend to perform the best both in terms of speed and reliability. An example of a product that uses native drivers is Centura Software Corp.'s Team Developer, which offers native connectivity to many of the most popular RDBMSs.

I don't mean to imply that ODBC access is bad; in some cases you need specific programming that can only be met through special ODBC functions. It's just that ODBC is another layer your application must drive through to reach its destination. Visual Basic is an example of an ODBC-only tool. Some tools offer both native and ODBC access, examples being Magic from Magic Software Enterprises Inc., PowerBuilder, and Oracle Corp.'s Developer/2000.

Another major consideration for some companies is the tool's ability to produce cross-platform applications. Maybe you have NT users at one site and Macintosh users at another, but they both need to use the same enterprisewide application. Can your tool handle this? The one thing to be careful of when building cross-platform systems is gearing your efforts around the use of special features that aren't supported on every platform, with an example of this being OLE. You must either provide work-arounds for the noncompliant platforms or, better yet, stick with a consistent approach that you know is supported on each intended operating system. Tools that are hearty in this realm include JAM from JYACC (JYACC's latest product/spin-off company is Prolifics, see www.prolifics.com), Magic from Magic Software, Passport IntrPrise from Passport Corp., and Unify from Unify. One word of warning: Cross-platform tools aren't cheap, so be prepared.

Partitioning Support

About a year ago, application partitioning was the big requirement that any good client/server tool had to support. The original impetus for application partitioning was to address problems in classic client/server architectures, but recent attention has shifted to partitioning in the context of Web applications. Web servers and server-side programs are an extra tier in addition to the client browser, the database, and even other servers such as the application servers that do relational OLAP or multidimensional OLAP. Also, now that DCOM is shipping, the use of distributed multitier applications will likely grow once corporations do their pilot projects with DCOM. The Internet has also increased the amount of attention that is paid to CORBA-based distributed architectures.

Regardless, you may like the idea of having thin GUI clients that access a middle- (or third-) tier server that contains much of the application logic. There are definite pluses to this approach: You have one place to maintain the bulk of code that runs your system, and it reduces somewhat the need for heavyweight client machines that are loaded with RAM and disk space. The drawbacks are that n-tier applications have more points of failure and can get bogged down in heavily trafficked networks. Still, if you like this approach, the marketplace offers solid tools for you. Examples include Dynasty, Forté, Allegris (a new entry from Intersolv Inc.), and PowerBuilder 5.0. Instead of using just one product, some companies will use several tools when constructing n-tier applications. They may use Delphi as the initial front end and then write much of their application logic in C++ with Borland International Inc.'s C++ Toolkit. This approach requires that your development staff possesses expertise in multiple tools and languages.

While I'm on the subject of your staff, let's pause and talk about how your staff's abilities impact your enterprise tool buying decisions. You can choose your tools in one of two ways. First, you can pick the tool that you feel will meet your corporate needs without considering your staff at all. This means that either your current staff will have to get up to speed on whatever you choose or, if they can't, you'll be faced with the task or hiring new developers or consultants to build your systems. The second approach is to evaluate the strengths and weaknesses of your current development abilities and choose a tool that's complementary.

Often it boils down to selecting either 3GL or 4GL tools for your staff to use. Most commercial software is written in either C or C++, and you may want to take this route if you already have good C developers or if your staff can pick up the language easily. Popular tool packages for the 3GL at heart include Microsoft's Visual C++, Borland's C++, and Watcom C++ (owned by Sybase Inc./Powersoft). For database access, you can add in dbtools.h++ from Rogue Wave Software Inc., which eases connectivity headaches. New converts to this realm, however, must be prepared to meet the necessary learning curves before any polished applications emerge.

Whether you choose a 3GL or 4GL, the next item on your enterprise tool wish list should include object-oriented (OO) capabilities. It doesn't take a developer long to discover how the OO methodologies of inheritance, polymorphism, and encapsulation can work together to produce cleaner code and at the same time reduce by a sizable degree the time it takes to get to production. The 4GL developer may be using these development methods without really even knowing it, because some of the tools do a fine job of masking the difficult concepts, allowing even a novice to become proficient at OO development. For example, PowerBuilder lets you develop OO objects just by selecting the right options many times within the tool. (See Figure 2.)

You Must Know OO

Don't be fooled, though -- you still need a good grasp on how to properly use OO programming to realize the full benefit of this type of development. It's just a little easier, in my opinion, to use in the 4GL GUI based tools than in the 3GL environments. Other tools that stand tall in this area include Delphi and Centura's Team Developer (formerly SQLWindows).

Enterprise tools can, of course, create single-user desktop systems as well as corporatewide software, but what if you have your eye on Internet/Intranet development also? Not to worry -- almost all tools in this category possess some ability to construct Web applications, and many are providing easier access to databases than before. Oracle's Developer/2000 can produce applications that deliver data via the standard client/server route or over the Web. Powersoft now ships an Internet Developer's Toolkit that works alongside the 5.0 flagship product to provide Internet access. You can either use Windows or DataWindow plug-ins to run a PowerBuilder application in a Web browser, but the plug-ins require loading the PowerBuilder runtime libraries on the browser client -- definitely not the in-vogue "thin" client approach. However, using Web.PB, developers can construct a distributed PowerBuilder application that allows database information to be delivered to any standard browser with no other client software required.

When you make the move to this class of tools, the cash needed to get development underway is considerably more than in the desktop realm. Be prepared to see price tags in the neighborhood of $2,500 to $5,000 for the tools alone. Then, of course, you might also need companion products such as object-oriented class libraries, ODBC driver packs, version control tools, modeling tools, and testing tools.

Visionary or Madman?

If you've determined that your corporation's primary development platform will be the Internet, then congratulations -- you're either very forward-thinking or about to be out of a job soon. The best advice when you take the plunge into Internet development is "Buyer beware." Nearly everything is version 1.0 or close, and it is hard to find applications that have been put through the intense corporate wringer and survived. This doesn't mean you can't accomplish good things with the current crop of Internet development tools -- only that you should start small and go into it with both eyes open.

What tools you'll need will depend on the scope of your efforts. If all you're going to do is put up static Web pages that are changed occasionally, your favorite word processor can handle that for you. One tool I've liked using along with Microsoft Word is Doc-To-Help from Wextech Systems Inc. This offering lets you build help files that can produce nicely printed manuals, Windows-based online help, and, most recently, HTML pages for browser help. Blue Sky Software Corp. also has strong offerings in this area, such as RoboHelp and the WinHelp and WEB office lines. The shift from standard Windows-based help to complete HTML-based help is something else developers have had to contend with; tools such as those offered from Wextech and Blue Sky help ease the transition.

If you need to create some simple forms that connect to a database for some small function or you need more power to manage a complete site, then you should evaluate Microsoft's FrontPage tool. The new version, FrontPage 97, has enhanced database connector wizards that will help you link up an ODBC data source to Microsoft's Internet Information Server. If you still need more development power than this, then it's time to start looking at the Java-based tools.

For hard-core systems that reside on the desktop or enterprise, you have a fairly good choice of mature, visual RAD tools that can build almost whatever you want. For Internet development, however, your search might be more difficult. There is no tool I would deem mature in this category, and even the Java language is in its infancy. It is not uncommon to find Java developers writing Java code using the Windows Notepad or a programmer's text editor.

Plush Java development environments may be hard to find, but the scenery is getting better. Toolkits with names like Café and Latt&ecute; are beginning to spring up. Some do a better job than others at helping novice Java developers create their first application, and a few are beginning to show signs of an almost RAD-type integrated development environment (IDE).

An early front-runner in this category doesn't come from some of the better-known development tool companies but from Symantec Corp., whose Visual Café product has been well received in the Java community. Currently providing what many claim is the best IDE available for Java programming, the tool allows hard-core WYSIWYG development, visual and source-code programming, a superb debugger for those hard-to-find code problems, and a full-blown native-code just-in-time compiler. The new version of Visual Café Pro offers a number of wizards to help you with database connectivity via Symantec's new dbANYWHERE Workgroup Server (Symantec's database connection product).

Not to be outdone, Microsoft is furiously fighting back with its Visual J++ product, which definitely provides competition to Visual Café. With Visual J++, developers can take advantage of ActiveX components that extend their Java code. Microsoft also partnered with a number of ISVs to put enhanced development abilities into the hands of developers. One such company is AimTech Corp., which provides Jamba -- a Java graphic effects program that lets programmers create graphical Java objects.

Another vendor in this market is Infoscape Inc., whose Fresco product suite should be on the market by the time you read this. A Java-based RAD tool, Fresco follows a data model-centric approach to Web-database application development. ViewSoft Inc. follows a more conservative approach with its ViewSoft tool, which offers a C++ development framework for building server-based applications and deploying the interface remotely on the Internet or Intranet using Java or ActiveX. Apptivity Corp. announced Apptivity Developer and Apptivity Server, with which you can create both the client and server components of a distributed database application in Java.

Outside of the Java realm lies the HTML application development approach. VisualWave 2.0 from ParcPlace-Digitalk Inc. can automatically generate the HTML necessary to take advantage of extensions that a browser supports. While allowing a browser's unique features to be used, VisualWave lets you generate one user interface that is compatible with multiple Web browsers. This "smart HTML" lets you create powerful Web interfaces taking advantage of the latest features of such Web browsers as Netscape Communications Corp.'s Navigator or Microsoft's Internet Explorer, while maintaining compatibility with more primitive browsers.

In terms of what you'll pay for this breed of tools, there seems to be no firm ground. As I write this, Symantec's Café averages around $500, while Microsoft offers Visual J++ at an introductory $99. Of course, if you were looking to go bare-bones for a while, you could take the lead of my novice Java friend mentioned earlier and download a Java compiler from Sun Microsystems Inc., fire up Notepad, and start coding away.

Epilogue

Without a doubt, surveying the development tool landscape can be intimidating for those trying to make buying decisions that will affect how corporate information is presented and delivered. However, once you determine your platform(s) and decide what skill sets you'll need for your environment, the choices begin to narrow. This isn't to say that it gets easy, but the scope becomes more focused. You'll still struggle with keeping an eye on the future, but that's what keeps things interesting in this business.


Robin Schumacher is a senior DBA and developer with Louisville Gas and Electric in Louisville, Kentucky. He writes regularly on database administration, advanced development topics, and system performance and tuning. He is coauthor of The PowerBuilder 5.0 Developer's Resource (Prentice Hall, December 1996) and a principal with Advanced Computer Designs, LLC. You can email Robin at robins@ka.net or visit his home page at www.ka.net/robins.




Figure 1.


--Using an Access Wizard to build logic for a form command button.


Figure 2.


--Clicking on the Inherit button lets you fully inherit the properties of another base class window without any special programming.


Subscribe to DBMS and Internet Systems -- It's free for qualified readers in the United States
April 1997 Table of Contents | Other Contents | Article Index | Search | Site Index | Home

DBMS and Internet Systems (http://www.dbmsmag.com)
Copyright © 1997 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.
Please send questions or comments to dbms@mfi.com
Updated Tuesday, March 18, 1997