HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

JDJ: Congratulations on the new company. You took Powersoft to the top of the client/server software development platform. Do you see yourself doing the same thing at SilverStream for the Java development environments?
DL: It is probably a good place to start by talking about what is happening in the marketplace because I think market shifts are what this industry is all about. What happened with client/server was a major marketplace shift. The IT community, the developer community, if you will, decided over the course of maybe one or two years that the right way to build applications was no longer to use central computing with dumb terminals, but to build applications in a client/server mode. What we are looking at right now is another major shift where the world is deciding to build applications as Web applications. Having said that, not all major shifts are the same. Client/server was driven largely by the end user community. That is, the end user community was saying, we want the look and feel of IT applications to be as good as the look and feel of software we can buy at the store. Furthermore, we want them integrated with our desktop productivity applications. This drove IT to build applications a different way.

What is happening here is significantly more dramatic because the Web phenomenon is being driven by top business management. Corporations are all looking at the impact of the Web not only to make applications better, but to fundamentally change their businesses. Perhaps even more dramatically, they are viewing the failure to adapt as a potential danger to their existence.

A really good example is that you have book publishers and distributors, about as traditional a business as you can imagine, suddenly confronting this thing called amazon.com, which is redefining the rules. I think you can look at industry after industry, and they are all saying, "In what way can the Internet be a huge opportunity for me, or in what way can my failing to take advantage of it be the death of my business?" Suddenly you have this huge push from senior management to the IT community to move things to the Internet for absolutely top-of-the-line, strategic business reasons. So, if you want to draw a similarity, this shift is, if anything, more dramatic. Another way to think of it is that client/server applications, certainly in the early years, were strategic to IT but not necessarily strategic to the business. Internet applications are strategic to the business from day 1. We are looking at something pretty dramatic.

JDJ: So you see an even greater opportunity at SilverStream than you had at Powersoft?
DL: If we want to phrase it in those terms, I think that's true. One reason is that the push to the Internet is coming from higher up in the organization and is more pervasive. A second reason is that it is instantly global - the first technology phenomenon that we have had as an industry that doesn't have a one to three year time lapse to travel geographically around the world. Another important thing about Web applications is that they are inherently more complex to build than client/server. In client/server, we took people who were used to programming COBOL on [dumb] terminals where they didn't have to worry about complex user interfaces; they didn't have to worry about relational databases, they didn't have to worry about event-driven programming. They came from a programming model where the programmer was in control of the flow of the application. We turned that around with client/server and put the end user in the driver's seat of an application and the programmer had to respond. That forced event-driven programming; it forced object-orientation.

Those same things are true in Web applications, but there are a number of additional things that come into play. One is that while three-tier came along during client/server, I think it is safe to say that well over 95 percent of client/server applications were two-tier. The Internet is inherently three-tier. You cannot build a two-tier Internet application. So first of all, you have something that is significantly more sophisticated. Plus, on the Internet we have a very complicated set of information today. We deal not just with structured relational data. We deal with images. We deal with rich content. In client/server, there was the forms-oriented, relational database world, but there was also the groupware world. It just happened to exist in a separate but parallel universe. The whole world of document processing was client/server but existed separately as well. All of that stuff comes together on the Web. The expectation of Web applications is that you do all these things together.

We have a document standard, HTML, in this environment, and I think most client/server programmers did not have to deal with document standards at all. We have multiple languages on the Internet. We have a lot of competing standards. We have the requirement to be thin client, to architect applications in a way that can have logic on the client and the server, but can move very little across the network. You have to have that portion of the application that moves across the line be extremely thin. All of these things come into play to raise the bar in terms of requirements for a product that can bring Web application deployment to the mass of developers.

If we did not have a PowerBuilder or Visual Basic and all we had was the Windows SDK and C, a much smaller number of people would have moved to Windows development and a much smaller number of applications would have been developed. Now the bar is even higher in terms of the complexity of Web applications. Since there is always more and more work to do, people look to the software vendor community to allow them to build ever more sophisticated applications, while keeping them at least as simple to build as before. That's the SilverStream opportunity right there, I think.

JDJ: In terms of competition, isn't the competition much greater now in the Internet Java development environment than it was in the old client/server environments?
DL: People have short memories; I have had this question a number of times. What happens in the software industry is that when a new category is first introduced, you get a lot of things lumped into that category because the category is not well understood. Then, as the category becomes better understood you get several well defined players and it becomes extremely competitive. When the category is fully established, it typically reduces down to one or two brand name players. A few years into that, everybody says, "Gee, there wasn't a lot of competition." That was certainly the case with PowerBuilder. The same phenomenon, from what I can see, is going on today.

The category of a Web Application Platform is not well understood today. No one has a fixed feature list that says if you do this, this and that, then you are a Web Application Platform. We are seeing a lot of different things lumped together under that term. I think that as the category is better understood, we will find some products that are obviously complementary to the category, not competitive at all. I think a good example of this is the so-called Java development environment category, The Symantec Cafés and Visual J ++'s and Power J's are a totally complementary category to the Web application platform.

I think that as the category is established you will find that there are actually a very small number of players doing real Web Application Platforms. There is certainly competition, but I think the number of players is not that great right now. There were a lot more players in the early days of client/server than people remember.

JDJ: Because you say there aren't that many players in your particular space right now, where is the competition? Is it the Suns and the Microsofts or is it the third party people in the smaller groups like Symantec?
DL: To answer that question, we really need to define the category. One of the important concepts here is that because of the nature of the Internet, you can't simply have standalone development tools, but you need a complete platform. Why is that? I made a comment earlier that one of the key criteria for a Web application is that the application needs to be extraordinarily constrained in what can move across the wire. In other words, we need little bits of logic moving across the wire, but we want to have applications that are at least as sophisticated as we built before. One approach, of course, is to have some pretty sophisticated server-side software that lets you read databases and other sources of information and generate HTML pages. Now, that is something people understand. There is a category of companies out there that do that. The problem that I think has frustrated a lot of people is if, on the client, all you have is HTML. from the perspective of the user, it is far more limited than what people were accustomed to on client/server. They are not going to have as rich a user interface. They are not going to have the same degree of interactivity that they had in client/server, and end users are very reluctant to take steps backwards in their hard won ease of use.

So now you need software running on the client that makes the user interface at least competitive with a client/server interface, but it is going to have to be very small and very simple. To accomplish that goal, I need to have lots of intelligence on the server. People are more willing to put application logic on a server. There is more capacity on the server. It is a more controlled environment. Then, the small amount of application logic that moves back and forth across the wire becomes almost like metadata that is being processed by existing environments in the client and the server. A very specific example is that it is inappropriate in a Web application to talk from a client directly to a database. So SilverStream does bound data controls, much like Visual Basic, in terms of the way that you look at them. But in terms of the way they work, they are very different. A bound data control in something like Visual Basic or Delphi actually is doing the database access from the client. In SilverStream, bound data controls actually communicate via a background thread to a Java class on the server, and what's communicated is completely metadata. There is no knowledge of the database from the client whatsoever. And then the server effectively takes a metadata request and does all the actual physical work with the database.

Why do you do this? Who is the user on the client today? Much of the time, we can't even answer that question. The person on the client could be somebody we'll never meet. We don't want them holding locks in our database; we don't want them establishing connections. We don't want them coming in through database security. So there is a whole list of reasons why the architecture is totally different.

I think the notion of an integrated platform is very important because of the three-tier architecture on the Web. So now let's try to divide up categories. Let me start by saying that I would not use the term "Web application" for static Web pages. That's more electronic publishing. To be a Web application, information has to be dynamic. Now, if you accept the thesis that information needs to be dynamic in a Web application and that the user has to have a rich user experience that is at least competitive with client/server, then there are only two ways to do that. The first way is one where you have an application server in the middle tier that accumulates information and produces HTML. And increasingly, there is a path in the marketplace that is saying let's make HTML smarter. We have two flavors of dynamic HTML standards being proposed today by Netscape and Microsoft. Since HTML is not a procedural language, even when we make it smarter, let's actually make it interactive by applying a script to it. We have two flavors of script standards being proposed in the marketplace: JavaScript and Jscript. And since even then we can't have a really rich, GUI interface, we have to add components to it. We have multiple standards being proposed for components. We have JavaBeans and we have Active X's on the client and you use your script to interface to your Active X or your Javabean. All of that still doesn't get you to the database.

So now we have to write something on the server. It could be CGI, it could be ISAPI, it could be NSAPI; but somehow I need to connect to an HTTP server and cause it to run my application program which in turn connects to the database and sends information back. What's that thing written in? That thing could use Java or C++. Some of it might be Perl. Of course, that logic is talking to the database which has proprietary stored procedure languages. By the time you put it all together, you are probably using three to five languages and seven to ten tools. This is, however, one path that is being proposed in the marketplace.

Now let's go through that same scenario in terms of Java. Your user interface is Java on the client. HTML becomes your document standard, which is fine. Document standards should not be procedural languages or object languages. Java is the full-blown, object-oriented language on the client presenting the user interface. It is the language in the server and increasingly it is the language in stored procedures. In fact, you may have noted that Sybase just announced Java-based stored procedures in Adaptive Server. So I think that the competition is really based on an HTML centric solution versus an end-to-end Java solution. SilverStream has strong support for dynamic HTML, but is certainly architected towards the end-to-end Java solution.

JDJ: You were the leader of the pack at Powersoft and then you moved over to SilverStream. What opportunities at SilverStream prompted you to make the move from Powersoft? Just new challenges or...?
DL: Well, I think a combination of things. First, I want to make it clear that there were a number of personal reasons, one of which was very extensive travel, that caused my move. I was commuting to the West Coast two weeks a month. That is not an easy lifestyle. That was certainly a large portion of my motivation, to be associated again with a company that was in my home area and cut way back on my travel, which I have. It's delightful. Having said that, within the opportunities available in the Boston area and for that matter anywhere, SilverStream is a fantastic opportunity because it is coming in at the ground floor of the whole Web application phenomenon. If you accept everything I said previously, there is an extraordinary strategic drive by businesses to go to the Internet, almost a frantic drive, almost a fear of losing their position in the marketplace if they don't move their technologies to the Internet. There is a huge market shift occurring and market shifts are always great places to be.

The second thing is that SilverStream had put together an architecture, starting with a blank sheet of paper, that elegantly deals with what I have described as a complex architecture, dictated by the nature of the Internet. And the third thing I would mention is that it is just a great team to work with. I think it is the best team I have ever been associated with.

JDJ: You brought along a lot of the old team with you. David Dewan, Kim Sheffield, Ed Clarke. What were you able to tell them or did they come for the same reasons you did?
DL: Actually, all those folks were at SilverStream well before me. You could probably flip it around and say part of the reason I came to SilverStream is that some of those people were here. Kim Sheffield in particular had been in at the very beginning of the product development, almost a year before I arrived. I certainly have great respect for these people and their being here was one of the nice things. But there were also a number of really sharp people who are not from the Powersoft environment. In fact, one of the things that SilverStream stresses is the belief in the convergence of technologies that the Internet dictates. We view the Web as the grand convergence of groupware and rich content as well as traditional forms-oriented relational data, which is my background. So the convergence here of people from companies like Powersoft and Progress, who were strong in the 4GL relational data world, and people from places like Lotus, who were strong in the groupware arena, and people from places like Watermark, who were strong in the document imaging world, taking that set of experiences and putting it all together was a very exciting prospect. What startup companies frequently do is they take people's experience and extend them to the next generation of technology.

What we have done here at SilverStream is, we have taken the world of rich content, the world of groupware and the world of structured data and we haven't just had those people extend on what they have done in the past with no innovation, but we have also converged those into a product that I think matches the way the Web works. There are some people in the marketplace who are bringing structured data forms to a browser and we can certainly do that at SilverStream, but we don't think that's all the Internet is about. In fact, if all you did was structure data on a Web page, most Web users would consider that no more appropriate to the Web than people consider the early client/server applications appropriate that had nothing but labels and text boxes.

JDJ: It sounds like you've got a great team. On the platform itself, though, SilverStream consists of the SilverStream Application Server and the SilverStream Designer. Could you go into a little detail as to what makes your product so good?
DL: First of all, the product we sell is the SilverStream Web Application Server. The development environment comes with it. In fact, it is freely available to anybody. Understand, the development environment is not a standalone development environment. I think that, particularly for people coming from the client/server world, there is that confusion. What I was saying previously about the tight integration required to build a true Web application means that the heart of a Web application is in the middle tier. That is where the action is, if you will, and that dictates an awful lot of things. And that is where we put a lot of our focus. Our Web application server is more than half of our code and a lot of the sophistication. Certainly what attracts people when they see a demo is the design environment because servers are not much to look at. There is not a user interface to a server. But when you look at our design environment and this wonderful user interface that we have developed, you have to keep in mind the plumbing that is going on to make it all possible. It is very tightly coupled to the application server. You may click a button or enter data on the client. What is really going on from the client point of view is intensive communication of metadata to the application server with the heavy lifting being done at the application server.

Figure 1
Figure 1: SilverStream demo screen

Let's go back to this definition of a Web application; not static pages, because that is not really an application, and not just dynamic generation of HTML, which is too limiting. If all people do is generate HTML, that's going to restrict the class of applications they can build. So to build what we think of as the ultimate Web application you need the following things: First, you need client-side and server-side Java tightly integrated into a three-tier architecture. That means that the developer can build Java classes that can be downloaded in a thin client mode and run on the application client, provide a rich user experience and be very thin because they are relying heavily on intelligence that's on the server. It is not sufficient to say I have Java on the client and Java on the server. It has to be an extremely intimate relationship between those.

A good example of one of the simple things that drives people crazy on the Web, is when you get a bunch of data with the proverbial "next 10" link at the bottom of a table. You get 10 rows and you have to click the next 10 and then it goes back and reconstructs the page and gets you the next 10. Don't even think about having scroll bars that can actually get you through a result set. What we do is actually three-tier caching of data with a middle-tier server doing the JDBC connection to the database and caching a certain amount of rows and then a background thread on the client communicating to the server. The server basically provides just enough cache to make the user think they are actually scrolling through a result set. Now, when you run that, it looks like a two-tier client/server application going against the database, but in fact it is a pure three-tier model and the two-tier architecture would not be appropriate on the Internet.

JDJ: You are really talking about my next question which is SilverStream's two-way interaction and collaboration as opposed to the older one-way publishing.
DL: There are three levels. There is static publishing. There is one-way dynamic publishing and then there is true interactive Java to Java three-tier architecture.

I think two or three years from now when people look back at Web applications they are going to say you are not a modern Web application if you don't have the following things: one is client-side and server-side Java in a three-tier architecture. The second thing is the integration of structured information and rich content. So again, to build a Web application that takes a client/server form and puts it on a Web page is probably inappropriate. I'm sure you remember the early client/server applications that mimicked dumb terminals with labels and text boxes and a bunch of function keys buttons on the bottom.

Lots and lots of people did that as their first application, but as we all learned more about client/server applications, we became more sophisticated and we understood that client/server applications were inherently different. Web apps are even more inherently different. And one of the ways they are different is that you have a combination of rich content, meaning text documents, graphics, multimedia, all integrated nicely with structured information. That is something SilverStream does very well through things like our ability to have our HTML Edit Control as an embeddable Java class that can render HTML or optionally allow you to edit HTML with a word style tool bar. That HTML is stored in the database and can be versioned and full text searched. Another example of this is our ability to store file attachments in the database and again version them or have them full text searched. And that gives you things like the ability to version a table that has in it file attachments, HTML and structured data. It gives you the ability to secure any piece of that. This brings unstructured data and rich content into the integrated category of information. In fact, I would contend that that's the way human beings see information. The way human perception works, we don't segregate out factual tabular numeric types of information from the more unstructured information in our lives. We assimilate it all. I think Web applications are, therefore, a step in making computer applications behave more like human beings want them to behave.

The third key piece is push technology. Because all Web applications are three-tier, the heart of a Web application is the middle-tier application server. This is software that can see everything that is going on; it can see the receipt and sending of HTML pages. It can see the update, insertion or deletion of rows in databases. It can see the receipt or sending of e-mail. It can monitor clock and calendar. It can monitor servers coming up and coming down. SilverStream has implemented application server-side Java in what we call Agents that can be triggered by any of the things that I mentioned. They can be invoked as a method much like traditional three-tier object-to-object communication, but they have the ability to be invoked when a mail message has been received or when an HTTP get or put or post is done for a Web page or when an insert, update or delete is done to the database. This has amazing consequences because now you can have server-side Java that can actually get events when the state of the information universe changes and then can proactively push information out to people. So, if it is 5 o'clock on Thursday or if a row has been deleted or if an e-mail message has been received, you can have server-side Java that wakes up and notifies an appropriate set of people of the appropriate information.

If I were restricted to what is strictly radically different about Web applications that SilverStream does well, one is client/server-side Java in a -three tier architecture. Number two is the integration of rich content with structured data and the third thing is push technology via agents that can be triggered by any change in state in the server environment.

JDJ: How is SilverStream approaching the developer community with its new products?
DL: First of all, the product is in what we call Headstart III, which is our last beta. We will most likely ship the product in November.

Our entry level application server is what we call the group starter pack. The group starter pack is a complete environment. The designers are licensed free for download by anybody, but of course the designer is dependent on the application server. So what you get with a group starter pack is a 10-connected-user SilverStream application server. It comes with a full text search engine from Fulcrum, RSA encryption and a multi-user Sybase SQL Anywhere in the box. You have a complete environment that is up and running right away. That would typically be something for a small deployment or for a development group.

Then we sell application servers for deployment and those scale up in price based on the number of processors. Now the one other thing that is of interest to developers is that we want to provide a way for the independent consultant or the single developer to be able to learn to use this product. We are providing a single user product in what we call our single starter pack. That includes the SilverStream Application Server, SQL Anywhere and the SilverStream Designer. Since it is deployable to only a single person, it is not for production deployment; it is for individuals who want to learn SilverStream. We have priced it so it is accessible to the individual developer. That is a $495 product.

JDJ: How have you seen the industry receive the introduction of the betas?
DL: It has been fantastic so far. In the early days of client/server, we were doing missionary work. We are not doing missionary work here because there is almost universal acceptance that the Web is the way of the future. What you have is a huge demand to build Web applications. You also have a very broad acceptance that the right way to do that is with Java. You have a great deal of nervousness about the difficulty of building Java applications and Web applications and some nervousness about the maturity of Java.

Along comes SilverStream. We take this whole set of problems and provide a single integrated solution that makes it pretty easy to build Web applications and build them the right way. That creates an environment where a lot of people look at SilverStream and say, of course you built it this way. This is the obvious way to build it and I have been waiting for a product like this to come along. We have even drawn architecture diagrams for people and have them say that they had an architectural design session a month before where they drew exactly the same diagram. So what we are finding is instant, immediate understanding of the need for Web applications, and an understanding that what we have meets that need in a very precise way.

JDJ: In a nutshell, what would you tell a developer as to why he should come to SilverStream and buy your server?
DL: If you are interested in building Web applications and believe that the right way to build Web applications is in the way I have described, then we have the single, integrated, easy-to-use environment to allow you to do so. And it is an environment that has an onion-skin type of approach, which means you can do very substantial things very easily without any programming and then you gradually go into increasing levels of sophistication as you progress through your learning curve. If you want to develop and deploy a true, next generation, Web application easily, you should look at SilverStream.


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.