Untangling the Web
SilverStream 3.0 does more to earn its "Application Server" designation, and helps simplify complex Web application development
PRODUCT SPEC SHEET
SilverStream Application Server 3.0
SilverStream Software
Two Federal Street
Billerica, MA, 01821
888-823-9700 or 978-262-3000
www.silverstream.com
Minimum Requirements: OS -- Windows NT, Windows 2000, HP-UX, IBM AIX, or Sun Solaris; Memory -- application server and development environment each require 128MB RAM and 130MB hard disk (note: 256MB RAM is required to run the app server and dev environment together).
Pricing: Developer Edition -- $500 per seat; Enterprise Edition -- $15,000 per server.
|
|
Nelson King
Silverstream in its early days emphasized its development environment, despite the fact that "Application Server" was part of the product's name. However, with each revision, the application server component became more important and prominent. Now, with the release of version 3.0, SilverStream Application Server is a full-featured enterprise-level application server supported by a development environment.
In this direction of growth, SilverStream has reflected an important trend in enterprise software development these past two or three years: The Web is taking over as the place for applications, and applications on the Web virtually require an application server.
SilverStream is a big package, as are all application server packages, but like competitors such as Sybase Enterprise Application Server, SilverStream is also a development environment. There are many components, some of which require a good deal of study and effort to master. Nevertheless, the idea behind a unified environment like SilverStream is to make Web applications tractable by simplifying their development. By its almost seamless integration of HTML and Java2 Enterprise Edition plus the integrated application server, SilverStream goes a long way toward making complex, multitier Web applications less difficult to develop.
The Application Server and Its Friends
There are two versions of SilverStream. The one I used for testing was the Developer Edition, which contains the complete software set (application server and development environment) except tools for deployment. This basic package contains SilverStream Application Server 3, Java2 Java Runtime Environment, the JBroker ORB, Fulcrum SearchServer 3.7, Sybase Adaptive Server Anywhere 6, Microsoft NT Service Pack 5, and a Java compiler for Windows. Deployment tools are part of the Enterprise Edition, which is licensed on a per-server basis.
SilverStream is at home on both Windows and Unix platforms, meaning it has a comfortable administrative interface and supports platform-specific features -- something that cannot be said for many similar packages. I used a Windows NT and Windows 2000 intranet testbed (one server, two workstations) for this review, and found the documentation not yet updated to cover Windows 2000. In general, the printed manuals and online help for SilverStream are copious and well done.
Installation and setup for SilverStream is mostly automated and reliable. It's important to note that the SilverStream application server contains a Web server and does not interact with other Web servers. This inflexibility could lead to complications in locations that rely on servers such as Apache or Microsoft IIS for heavy HTML lifting. One of the things I noticed about the beefed-up server package is that SilverStream now requires 256MB of RAM if you're going to run both the application server and the development environment on the same computer.
The big news for the application server is that it's now fully up to snuff with Java2 Enterprise Edition. This adherence starts with full support for Enterprise JavaBeans (EJB) 1.1 (both entity and session beans), and includes Java Server Pages, EJB Servlets, Java Transaction APIs, and of course the new Java Foundation Classes. As Java is becoming increasingly identified with server-side programming, this wholehearted embrace of Java2 makes sense.
In the distributed component department, SilverStream uses its own JBroker ORB, one of the best of breed. The JBroker ORB is CORBA 3.2 compliant. While obviously in the Java/CORBA camp, SilverStream has gone to some pains to also support Microsoft COM components -- accessed through Java classes. Security features in the server include Java Naming and Directory Interface, which can connect the server to multiple security services including Lightweight Directory Access Protocol, Sun NIIS+, Windows NT Domains, SilverStream Security Directory (in the SilverStream repository), and client-based x.509.
Covering the scalability and performance of the Application Server are features such as multithreading, connection pooling, fetch-ahead, object caching, query buffering, and scalability across multiple processors. A load-balancing module is included, as is server-based transaction management. This is a complete package that has proven itself in the field (and in benchmark tests).
The Application Server continues to improve, sometimes subtly. This version can now handle lost connections (from the database or the session). It detects the dropped connection and throws an exception back to the EJB or application object, which can, if the opportunity arises, re-establish the connection and connection pooling. Management of the server in the SilverStream Management Console is pretty slick. You have ample control over security and engine tuning, including server clusters. The monitoring features, including graphical realtime views, are well done and easy to interpret. (See Figure 1.)
FIGURE 1 The application server's Management Console for administration of security, users, databases, and server monitoring
The Development Environment
One of the outstanding characteristics of SilverStream since its inception was the unified development environment for both Java and HTML. Where many other packages have struggled with dissimilar HTML and Java tools, SilverStream makes them both lie down and behave like familiar object-oriented programming. SilverStream is one of the few products with the guts to say Java applications work best on intranets and that dynamic HTML applications are better for the Web. I'm assuming they mean this is true in most cases, not all.
Most of the application development work happens in the Designer, actually a collection of task-specific windows: Main Designer, Form Designer, Table Designer, View Designer, JAR Designer, and Business Object Designer. (See Figure 2.) The SilverStream Designer windows have a unique look, kind of milky and fuzzy. This is trivial, I know, but it instantly signals to developers that SilverStream does things differently. Basically, however, this is a drag-and-drop environment for Java or HTML objects. (See Figure 3.) You need a high-powered workstation to make it fly, but the programming style it engenders is fluid and comfortable for both experts and beginners. The thing I liked most about SilverStream's environment is the ease with which you can shift from server-side programming, to Web page design, and on to EJBs (and more). Few programs can do this with such aplomb.
FIGURE 2 The Main Designer lists all the objects and programming
elements in a project.
FIGURE 3 The SilverStream development environment is fully visual and drag-and-drop oriented. It also supports direct coding of HTML and Java.
The Business Object Designer is the most Java-oriented of the tools provided. Through its various wizards it supports construction of Java classes, Java packages, Java interfaces, triggered objects, servlets, data source objects, and CORBA Interface Definition Language. I've seen better support for some of the specific components, for example in WebGain's Visual Café and IBM VisualAge for Java, but SilverStream covers all the bases (like a good utility infielder).
A major improvement for programming in this version is its full support for distributed and remote debugging. This too flows from the Java2 API, which means that developers can use the debugging software on any supported platform to debug client or server code while in process. The marriage of SilverStream and Java2 isn't without weaknesses, however, such as underdeveloped support for Java Server Pages, probably because currently SilverStream seems to favor running dynamic Web pages as servlets.
Having no database management system of its own to push (unlike virtually all of its major competitors), SilverStream is fervently inclusive in its support for data sources. Out of the box, it provides a nimble if limited database manager, Sybase Adaptive Server Anywhere, to handle the housekeeping chores as object repository and for application server management. You don't have to use Adaptive Server; SilverStream supports most JDBC sources plus offers a number of direct drivers for DB2, Oracle, Sybase, Microsoft, and Informix. Additional data options are provided by Enterprise Data Connectors that ship with the Developer and Enterprise Editions, including ones for Lotus Notes, SAP R/3, and PeopleSoft.
Within the Designer module SilverStream has implemented a sophisticated grid object and supports a wide range of data-aware objects (both Java2 and Java 1.1). Although these Java components aren't quite as deep as, for example, the Sybase DataWindow or as simple to implement as data objects in Borland JBuilder, SilverStream can hold its own in data-driven applications. It's also supportive of team development by including hooks for Merant (formerly Intersolv) PVCS and Microsoft SourceSafe.
If you want to use other products (for server or development), SilverStream now includes a program called SilverCommand to register the programs with the SilverStream system. This is a command line program that I found tricky to use, but it's a welcome addition and indicates a willingness to recognize that developers want to make some of their own choices in tools.
SilverStream Who?
SilverStream is moving its system toward wholehearted support for Sun Microsystems and Java2, and also toward more open-ended support for other products, rather than stick with its previous, more proprietary approach. These transitions aren't complete and there are places where support for one piece of the technology or another is weak. What's important, however, is that SilverStream is one of the most advanced Java development environments, fully supports HTML programming, and offers a top-of-the-line application server -- all integrated in a way that makes Web application development easier.
SilverStream was and is a challenger, an upstart, moving against the largest competitors in the software industry (such as IBM, Oracle, and Microsoft). It has an advantage being one of the early providers of an application server and of jumping onto the Java2 bandwagon, but the name may still elicit a response like "SilverStream, funny name," or "SilverStream who?" SilverStream 3.0 shows that type of question to be perilously uninformed.
Nelson King (nelsonking@earthlink.net) has written nine books on database application programming and spends much of his time in the trenches of enterprise software development.