March 01, 1998
SilverStream 1.0 vs. NetDynamics 4.0Chris Minnick
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 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 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 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 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 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.
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|