For a company founded in June 1996, Burlington, Massachusetts-based SilverStream Software is already unusually noteworthy. It has so far accrued $28m in venture funding and shipped the first cut of its eponymous product worldwide, claiming a thousand beta sites. It’s clearly a company that knows how to debut in style. Another factor that has already made the company notorious is its recruitment policy. In May, it became apparent that SilverStream founder and chairman David Skok was in the process of ransacking the upper echelons of Sybase Inc to stock his own management team. It was hard not to take notice when he snared David Litwack, Sybase’s effective number two behind chief executive Mitchell Kertzman, to act as president and CEO. Litwack, who was executive vice president for products at Sybase, is also noteworthy as the original chief architect of PowerBuilder. He was also reportedly a driving force behind Sybase’s ‘ImpactNow’ Adaptive Component Architecture. Skok claims that the recruitment policy has already paid off, and that as a result a huge amount of product development has been done in a short time. Of course time is relative – a short time doubly so. In common with just about every other 1.0 product ever built, SilverStream’s shipping deadline has been a flexible thing. The delays, however, are understandable – especially in the light of what SilverStream is supposed to achieve.
By Lem Bingley
What we’re trying to tackle is corporate applications, Skok explains. The sort that were written for mainframes, then for client/server, and that more recently everybody’s decided to move to the web. Skok broadly defines such applications as being three tier, and database-centric, but adds a significant caveat. If you go to the web it gets more complicated, because you’re also getting involved with the worlds of content publishing, communication, and collaboration. Skok claims that the idea for SilverStream came about because he found himself descending into exactly this kind of pit of complexity. We were using seven different tools, each of which didn’t integrate very well with the others. Each had its own programming environment, and own visual design environment. And fundamentally the nightmare of trying to make these things work together was just too hard. Skok’s solution was admirably elegant in its simplicity – to build all of the necessary pieces from scratch so that they’d work together properly, and then to supply them all in one box. The only thing that we don’t include is the relational database – we assume you already have one, he smiles. Of course the simplest ideas are often the hardest to make flesh. This was basically a huge task, Skok admits. When I went to venture capitalists to found the company, I warned them that the biggest risk was that we would simply not be able to finish developing the product – that we’d be sitting there with egg on our faces after a year, having spent all the money. Fortunately for Skok, his clutch of ‘superstars’ managed to focus on their share options with enough intensity to get the first release built before the funds dried up. Although SilverStream doesn’t bundle the database, its architecture does put the data store at the focus. In addition to storing basic information in standard relational tables, it also uses the database as the repository for web pages, multimedia content, scripts, agents, and meta-data. Not only does this mean that there are no loose files to manage, but it also takes advantage of all the facilities that already make relational databases robust – things like replication, and back-up and restore. The problem with databases is that they don’t cope with content very well – so we’ve added things like a full-text retrieval engine, Skok says. And we do things like version control for keeping track of content. The space between the relational database and the client-side browser is filled with the NT-hosted SilverStream Server. The key element of this is the application server. This manages a pool of connections to the database, meaning that each user doesn’t have to log on and log off at the database. Skok claims this makes connections more efficient, but perhaps more importantly it adds a layer of indirection between the data and the untrustworthy outside world. The application server manages transactions asynchronously, so that the client merely asks for a transaction to be undertaken – the server then interacts with the database to ensure the completion of it. It maintains state and session information about each user, and connects to things like email and the text search engine. And it also generates web pages dynamically, based on templates stored in the database. Skok says a mix of HTML and Java is the most likely combination of elements to be piped to the user – the Java being necessary to do things like field validation. The one drawback with our Java today is that we require Java 1.1, Skok comments. Java 1.1 sounds like a small increase over Java 1.0, but there are literally four times as many API calls as there were in the first release. That was really when Java became real. Unfortunately neither of the top two browsers actually fully support Java 1.1 at the time of writing. One way to deal with the problem is just to give users an HTML interface, Skok observes. You can do what we call an ‘appropriate wave’ client for different users. We can provide applications that run inside the browser using either Java or HTML. Interestingly, all of SilverStream’s software has been developed using Java. At 650,000 lines of code it is, we believe, the world’s largest commercial Java application, Skok says proudly. It’s apparently ‘pure’ Java too, despite the fact that release 1.0 uses the Microsoft Java Virtual Machine to host its various components: the Designer development tool; the Silver Client; and the Server.
A few rough edges
We use nothing that explicitly requires the Microsoft JVM, the company insists. For deployment within browsers, we are committed to working with any environment supported by the major browsers. Such is the slickness of the package that Skok has created (both in technical terms and in the presentation of the company) it’s easy to forget that SilverStream is still only a 1.0 product. Chicago, Illinois-based product analyst Doculabs found a few rough edges when it examined the suite. Chief among the list of deficiencies were the lack of a proper debugging tool, the lack of fault-tolerant failover handling, it’s rather basic facilities for accessing multiple databases, the lack of reporting tools, the missing ActiveX support, and the lack of access to directory services other than NT. But the slickness of Skok’s operation isn’t just a surface sheen. It runs deep enough that the company knows it must tackle these and other areas if it wants to be taken seriously as a one-stop shop for intranet and web development.
A longer version of this article first appeared in Software Futures.