FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Dobbs M-Dev
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
March 01, 1998
SilverStream 1.0 vs. NetDynamics 4.0

(Page 1 of 2)
Chris Minnick
Product Reviews: March 1998: SD Tech Test: SilverStream 1.0 vs. NetDynamics 4.0

Web application development offerings from SilverStream and NetDynamics can help you develop next-generation web applications that combine the benefits of client/server applications with the advantages of Java and the Internet.

If your company doesn't have a web site, it will soon. If you don't have an intranet and an extranet, you're still in the majority-but not for long. If you're in the process of planning either, and your plans don't include client- and (especially) server-side Java, then you must still be living in 1997.

For those of you who may have fallen behind: Perl is out, ActiveX may never really be in, web programmers are sick of learning new scripting languages for every new application server that comes along, and Java has become the standard for web applications. But going beyond the hype, Java is finally delivering on its promises of increased developer productivity, platform-independent client-side applications, and reliable and scalable multithreaded web site back-ends.

The two newest additions to the plethora of web application platforms, SilverStream 1.0 from SilverStream and NetDynamics 4.0 from NetDynamics, are aimed at helping you develop, administer, and serve the next generation of Java-enabled web applications.

SilverStream 1.0
All three tiers of the SilverStream platform-the database server, the application server, and the client-as well as SilverStream's application development environment-are written in Java. Java works well for servers, but the benefits of a development environment written in Java are still debatable at this point for two reasons. The first reason is that, although Java 1.1 is twice as fast as 1.0, running Java still feels like trudging through thick mud. The second reason is that the Microsoft Java Virtual Machine and the need to perform certain operations such as accessing the local file system, usually render Java applications platform-dependent. The sticker on the box still says, "Windows 95 or Windows NT."

This limitation is evident in SilverStream. You must install a supported database, the Microsoft Java Virtual Machine, and a web browser with Java 1.1 support prior to installation.

On the client side, SilverStream uses the Java 1.1 Enterprise APIs, which make it possible to develop true client/server applications in Java. The Java Enterprise APIs include JDBC, which lets the client send SQL queries to the database, and Remote Method Invocation (RMI), which lets the client invoke methods on the server.

SilverStream ships with an abundance of good documentation, both paper and electronic, as well as a helpful and well-written tutorial that goes far beyond the basics.

SilverStream Designer
The SilverStream Designer is SilverStream's development environment. Designer is an all-in-one environment for designing forms, linking databases, writing Java, coding HTML, and administering the server. The first thing I noticed upon starting it up is that the interface resembles an infant's activity box. The buttons are huge, colorful, labeled, and they light up when your mouse pointer is over them. At first I was disgusted: "I'm a professional; I can't be seen using this!" SilverStream's web page-like interface is a good example of the worst thing about the World Wide Web right now-you have to learn to navigate an entirely new interface for each web site or application.

Most people have never had to search for the Copy command in a native Windows application. The present state of the World Wide Web, on the other hand, requires you to make random guesses until you find the information you're looking for-web designers never include tutorials, and they rarely include more than vague descriptions as to the purpose of buttons. Designers ought to be working on coming up with at least a few interface standards for web applications.

SilverStream also feels somewhat awkward. Buttons don't respond like I'd expect; the scroll bars sometimes seem to have a mind of their own, and the windows refresh very slowly. I also discovered that if I became impatient waiting for a window to appear and clicked the button again, I was likely to wind up with numerous identical windows open at the same time.

That said, SilverStream's interface is actually very good once you learn to navigate it and become used to its quirks. Java and the World Wide Web will eventually do wonders for the world of interface design by forcing developers to keep things simple. You won't find any vital commands hidden under the Options menu here. Just make sure your boss knows you're not playing with Fisher-Price software.

The SilverStream Designer is organized into a number of wizards and windows, including the Table Designer, Form Designer, Relationship Designer, Agent Designer, and the Object Store.

The first step in developing an application in SilverStream is to choose a server and a data source. All of your resources will be stored in this database, much like in the Lotus Domino/Notes platform. Unlike Lotus Notes, though, SilverStream can use a variety of standard databases. SilverStream ships with, and is linked to, Sybase's SQL Anywhere 5.5 by default. Oracle, Sybase, and Microsoft SQL Server have also been tested and certified to work via native JDBC drivers or an ODBC-to-JDBC bridge. SilverStream says additional data sources will be certified on a regular basis.

After selecting your data source, you can use the Table Designer to make changes to the structure of your database (such as adding columns to existing tables or creating new tables), add relationships between tables (one-to-one or one-to-many), and set tables for version control. Version control is a feature that more web application environments should include. If you want to keep a record of the changes that have been made to a certain table-a cost table, for example-you only need to click the versioning box in the table properties box. SilverStream will then create a mirror of that table with additional columns in which version information (version number, date modified, and the name of the user who made the modification) is stored.

The forms you create in SilverStream can be served as either HTML documents or Java applets. For your public web site, you would probably want to use HTML forms. When bandwidth isn't an issue, such as with an intranet, some of the benefits that Java applets can provide over HTML forms are expandable lists, client-side logic (such as data validation), and the ability to see changes made to the database instantly, without reloading the screen. Some client-side logic has been possible in static web pages for a while now using JavaScript, but SilverStream's use of Java applets on the client side lets the client take over much more of the processing that is usually done on the server.

You can view SilverStream's Java forms in a Java-capable browser or with SilverStream's thin client. Users only need to download the client once, but it's a fairly large download (900K), which most people using the World Wide Web won't sit through. You'd be wise to stick with HTML forms unless you have a captive audience.

Most of the dirty work involved in creating a form is done by the form wizard. The form wizard guides you through the process of selecting a database table and fields. After selecting one of the predefined style templates, you have a form complete with a title, background, and navigation buttons. Most development environments that create data-bound forms such as these leave the cosmetic work totally up to you. If you need a web interface for a database up quickly, using SilverStream's templates will at least create pleasant-looking, although generic, forms that you can modify using Form Designer. Some of the more important modifications you make are: tab order; changing text fields to radio buttons, check boxes, text boxes, or pull-down menus; and changing default buttons to custom images. You can also drag and drop components such as images and Java Beans from the Object Store into your form. SilverStream designer writes the Java code in the background and compiles it when you preview the form or when you save.

The real power of SilverStream Designer is in the Programming Editor and the Agent Designer. Using the Programming Editor, you can create Java actions to handle form events such as button clicks, record changes, and so forth. You can write form actions using either pure Java or SilverStream's Simple Actions. Simple Actions is a simplified programming language that provides a list of predefined actions with plain English descriptions, which you can assemble in the editor to create your action. You can create an entire action using Simple Actions or you can start the action in Simple Actions and convert it to Java at any time. You can also define new Simple Actions. Some of the actions provided through Simple Actions include Enter Find Mode, Save Data, Refresh Data, and Show a Message. You can also program expressions, loops, branches, and method calls using Simple Actions. An easy-to-read diagram of your action is shown in the editor window.

With the Agent Designer, you can create agents that reside on the SilverStream server and perform business logic. The agents can perform the logic at scheduled times or in response to events such as when changes in a database occur or when mail is received. Unlike form actions, you can only write agents in Java. With agents, you can program a sort of push technology that will e-mail certain people when rows in the database are changed, or send them a confirmation message after an order is placed in, for example, an online shopping application. Another agent could periodically check to ensure disk space isn't running low. Anything you can do with data and Java you can also do with agents. SilverStream provides a detailed programmer's guide that covers all of the details of creating SilverStream agents.

As with any web application you want to deploy, SilverStream's forms and applets must be housed inside static web pages. You can create web pages in SilverStream's WYSIWYG editor or you can import raw HTML from another editor. SilverStream's HTML editor, Page Designer, is rather basic, but it includes the standard HTML tags as well as a frames editor and an image map editor. Page Designer does not make viewing and directly editing your code easy, and seasoned HTML authors would probably be best off creating pages in another application and importing them into SilverStream. If your forte is database administration or Java, or if you need a tool for your intranet's content developers, the Page Designer is just fine and is well integrated with the rest of the SilverStream environment.

A Java HTML editor is included for collaboration and content creation. You can drop this HTML edit control into any SilverStream application and it will work much like a word processor, except that it generates web pages. You could set up an application that would immediately post pages created with the HTML edit control, or you could set up an approval process for documents to go through before they're published.

One of the benefits of storing all of the components of a web application in a database is security. Because forms are generated dynamically by the server, you can control access down to the field level.

You can obtain a list of users from the Windows NT security system or from a SilverStream user registry. SilverStream also provides more sophisticated access control than simple user or group authentication. Access can be set to read only, write only, or can be based on a Java expression. For example, to deny everyone in the group "Employees" access to the Salary field in a form, you would use something like the following expression:

if (userInGroup("Employees"))

{

salary.setVisible (false);

}

Using security expressions, you can set access requirements such as time of day (between 9:00 a.m. and 5:00 p.m., for example), day of the week, or any other factor. A customer support application on an extranet could deny update download access to a customer whose support contract has expired. A simple expression to accomplish this would be:

if (userInGroup("Customer"))

{

if (supportStatus("Expired"))

{

download.setVisible (false);

}

}

You can also modify this expression to display a message explaining why the customer cannot download the update. Encrypted transactions using SSL are also supported.

When you're ready to go live with your application, you can use SilverStream's Publish feature to copy all of its elements (tables, forms, views, web pages, and so forth) to a live server. The publish feature can publish to a different type of database than what you're using on the development computer (from Sybase to Oracle, for example), and it updates the new database without deleting any existing information.

NetDynamics 4.0
NetDynamics is one of the veterans in web applications. Since 1995, its namesake product has grown from a database connection tool to one of the most widely used enterprise web application platforms.

Whereas SilverStream's main focus is on the client and development sides, NetDynamics's strong point is its application server. NetDynamics's CORBA-based Application Server has native connectivity to Oracle, Informix, Sybase, DB2, and MS-SQL Server, as well as connectivity to other databases using ODBC. NetDynamics does not yet support JDBC, and although most of the server is written in Java, the database connection parts are C++.

One of the impressive things about the NetDynamics server is its scalability. Because of its distributed architecture and load balancing capabilities, it has no single point of failure. You can distribute pieces of the server across machines and NetDynamics will distribute the load across these machines, multiple component processes, and multiple threads within these processes. Using its failure detection and restart capabilities, components will monitor threads and restart them if they fail. Due to its scalability and load balancing, NetDynamics is currently deployed on some of the busiest web sites.

A big concern, and frankly a big headache, in developing web applications is connecting them to legacy systems. NetDynamics's Platform Adapter Components let NetDynamics connect with legacy systems and third-party applications. NetDynamics currently sells Platform Adapter Components (PACs) for PeopleSoft and SAP, and you can develop additional PACs by using NetDynamics's framework and tools.

NetDynamics maintains session and state information on the server. This lets the developer control the order in which a client is allowed to view the pages. For example, an application download page may be preceded by a user license agreement page. You don't want people to find the download page on a search engine and go directly to the download page without passing through the license agreement. To avoid this, you can tell the server not to let anyone view the download page unless they have been through the license agreement. Usually, state and session management are done through the use of cookies that are stored on the client machine. This solution doesn't always work because many users are suspicious of a remote server placing information on their computer and routinely do not accept cookies.

You can also use page flow control for application-level security by requiring a user to go through the login screen before entering the application. NetDynamics also features user-level security and platform-level security. User-level security controls which forms and functions a user or group of users has access to. Platform-level security controls access at the Platform Adaptor Component level, allowing and denying access to integrated data sources and platforms.

The NetDynamics Command Center is a Java applet that is used to administer the platform. You can use the Command Center to move server components, duplicate components, and view server statistics. Because it is deployed as a Java applet, it can be invoked remotely using a web browser.

NetDynamics Studio
NetDynamics Studio is NetDynamics's development environment. The interface is divided into the standard windowpanes: project window, editor, properties, and status. Wizards are provided for most tasks, such as creating a new page or applet, or connecting to a new data source.

NetDynamics organizes a web application's resources using your server's file structure, not a database. Because of this and because NetDynamics doesn't support JDBC, NetDynamics Studio is more limited in its database functionality than SilverStream Designer. You cannot change the structure of a database, create new database tables, create relationships between databases, or preview applications inside of the development environment.

You can create NetDynamics applications in either Java or HTML, but you are not limited to choosing one over the other for an entire application. For example, you can create a Java query form with client-side data validation, expandable lists, and so forth. After the query is submitted to the server, the results can be displayed as a plain HTML table. NetDynamics calls this ability to create a hybrid HTML and Java client the Optimal-Weight Client. In instances where download speed matters, which is any time you might not be serving applications to the perfect machine on the perfect network, it is certainly beneficial to be able to use only as many Java applets as are necessary. One way NetDynamics makes this possible is through the use of HTML frames. For example, you can do the site navigation buttons in HTML in one frame, while another frame can contain just a Java data entry form.

The HTML frame wizard is one of the better ones I've seen. It shows a small box, representing your page, in which you can lay out your frame set. It then guides you through the process of setting all of the various properties of each frame. Frames, as you may know, are often done incorrectly, which has earned them a terrible reputation in the world of web development. NetDynamics's sturdy wizards might help restore the frame's good name.

NetDynamics includes a Java Object Framework with more than 400 subclassable Java classes for developing applets. You can also link your favorite Java editor to NetDynamics and set it as your default editor. A JavaBean editor that runs as a separate application is also included with the NetDynamics Studio. The JavaBean Editor is a rather basic Bean box that lets you import Java Beans and assemble them into applets that you can drop into your applications.

Another new and important feature of NetDynamics 4.0 is debugging. NetDynamics uses the JDK Java Debugger (jdb). The Java Debugger displays thread, call-stack, and variable information for any virtual machine running in the NetDynamics platform.

The Tale of the Tape
NetDynamics's ability to link to a variety of data sources and legacy systems using Platform Adaptor Components, and its proven ability to perform under high loads, puts it near the top among enterprise web application platforms.

SilverStream 1.0 does not currently have the server muscle required to move into the space of NetDynamics. However, with its intuitive, even fun, development environment and all-Java client, SilverStream is definitely worth a look for your intranet.

Of course, by now it is widely recognized that using any web application platform is more productive than the old method of developing web applications by stringing together various products and languages. Although all-in-one environments for developing, managing, and serving the vast number of resources involved in web development have been around for at least a year and a half, they are only beginning to catch on below the level of the largest web sites. Part of the reason is that, until recently, web application development environments haven't provided any functionality that can't be achieved fairly easily using a number of less expensive or free tools.

As Java applets begin to take a bigger role than just spinning logos and scrolling text, products like SilverStream 1.0 and NetDynamics 4.0 will enable the development of the next generation of mature web applications that combine the benefits of client/server applications with the advantages of Java and the Internet.

SilverStream 1.0
SilverStream Software Inc.
One Burlington Woods
Burlington, Mass. 01803
Tel:
(888) 823-9700
Online:www.silverstream.com

Price:
Single-User: $495; 10-user: $5,995; Single CPU application server (unlimited users): $6,995; Dual-CPU application server: $12,995; Four-CPU application server: $24,995

Software Requirements:
Windows 95 or Windows NT 4.0

Hardware Requirements:
32MB RAM, 40MB disk space

Technical Support:
30-day telephone support

Money-Back Policy:
30-day guarantee

RATING: *** The Rate Sheet
Pros:
1. It includes Sybase's SQL Anywhere as well as support for other standard enterprise databases.

2. You can use it to write serious enterprise applications in 100% Java. With SilverStream, you
only need to know Java-no scripting languages. The Java client can run on any virtual machine or web browser with a virtual machine, with no installation or maintenance.

3. SilverServer provides flexible and easy-to-implement security.

Cons:
1. SilverStream's interface is quirky and takes some getting used to.

2. It is only about half as fast as competing products. The development environment and server are still platform-dependent.

3. SilverStream's server currently isn't available for UNIX.

NetDynamics 4.0
NetDynamics
185 Constitution Dr.
Menlo Park, Calif. 94025
Tel:
(650) 462-7600
Fax: (650) 617-5920
Online:www.netdynamics.com

Price:
Application Server starts at $7,500 for 25 active concurrent users; starter package that includes a 25-user Application Server and five developer seats is $14,000; Platform Adaptor Components
for PeopleSoft or SAP start at $5,000, supporting 25 concurrent user sessions

Software Requirements:
Windows NT, Windows 95,
Sun Solaris, SGI Irix, HP-UX, or IBM AIX

Hardware Requirements:
48MB to 64MB RAM, 20MB disk space

Technical Support:
Free telephone and online support. Various paid packages available.

Money-Back Policy:
Fully functional evaluation copies are available prior to purchase.

RATING: ***1/2 The Rate Sheet
Pros:
1. Its robust, CORBA-based server scales well and greatly reduces stalls currently associated with application servers.

2. It can connect to a wide variety of data sources, legacy systems, and client/server applications. It also lets you retain your existing infrastructure while moving it to the World Wide Web.

3. The Optimal-Weight Client makes tuning applications to various networks easy.

Cons:
1. It doesn't support JDBC.

2. It has a steep learning curve.

3. Version 4.0 has many obvious, although not crippling, bugs. Expect a 4.01 release shortly.

1 | 2 Next Page
RELATED ARTICLES
No Related Articles
TOP 5 ARTICLES
No Top Articles.




MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK