This past August, Miller Freeman held its Software Development conference in Washington D.C. There I attended several interesting sessions on distributed computing.
The first was a panel discussion on server-side Java. The panel consisted of a couple authors, a security expert, and a handful of representatives from companies like Sun and Oracle. All panel members were people who had a big stake in Java's success.
The overall news was good, and the consensus of the panel was that Java "servlets" are already a practical alternative for at least some server applications, if you keep the number of connections down to a reasonable number. The size of that number is anyone's guess; the panel placed it between 50 and 500. This number is expected to improve as JVMs get better and processors get faster.
But the panel admitted that writing cross-platform servlets was still surprisingly difficult. Incompatibilities continue to plague JVM implementations, even the ones that really try to get it right. Microsoft, of course, was mentioned as a company that wasn't trying all that hard to get it right, at least not by Sun's standards. And since no one from Redmond was present to defend their company, the panel dragged Microsoft's name through a little bioactive mud. It was Washington D.C., after all.
The next session was a roundtable on COM development, where the climate was a lot more hospitable to Redmondites. Again there were positive reports from the field, including one from a developer whose company actually contracted with another to build the COM components they needed. The client company then just plugged the components into their application. This approach clearly isn't for the faint of heart. It requires trustworthy suppliers and excellent spec writers. And most programmers the ones most qualified to write those specifications would just as soon be roasted over a slow fire. Still, this example shows another way to partition software development based on components.
The last session I attended was a preview of COM+, Microsoft's name for COM/DCOM + MTS (Microsoft Transaction Server). With COM+, COM components can participate in MTS-style transactions, reaping the benefits of queueing, load balancing, guaranteed delivery, and a whole lot more. And with all this, Microsoft promises that COM+ development will be easier than COM is now. Right. We all know what that means: more wizards and explorers. There is of course another way to make development easier, and that's to start with a cohesive design in the first place. COM just may be the most cohesive thing Microsoft has ever produced. That COM+ will hang together as well is far from certain.
Both the COM and COM+ presenters made joking reference to the Windows Registry as a "slowly decaying database." Anyone who has used Windows for long knows what this means. The Registry stores two kinds of information: configuration data, and everything else that got left there by mistake. Because of the latter, the Registry decays in terms of capacity, integrity, and useability. At this session I learned that most information related to COM+ components won't be stored in the Registry, but in yet another database, unofficially dubbed the Class Store. A third, Events database will store events information. I asked the COM+ presenter why we should expect this new Class Store database to be less prone to decay than the Registry. He said it had a more robust interface and was less susceptible to user meddling. Maybe, but when I hear the word "robust" I instinctively reach for the hip waders. What really disturbs me is that this makes three databases in the new Windows OS. Somehow I don't think "the more the merrier" applies here. When Microsoft came out with the unfriendly Registry I didn't gripe too much because I thought it was supposed to unify everything. Boy was I naive. All I can say is, COM+ looks like barrels of fun for the folks in IT and product support!
The Sun and Microsoft camps seemed highly polarized at this show, but they shared one common thorn in the flesh: security. Java and COM are both full of tantalizing holes. There were some intriguing parallels. Both Sun and Microsoft looked wistfully to that next big release to make things better. For Sun this will be the JDK 1.2; for Microsoft, Windows NT 5.0. Both systems will enhance security by adding a concept of "roles," among other things. Even so, it looks like many more moons of fitful sleep while our machines are plugged into the Internet. Neither Sun nor Microsoft appear to have any silver bullets in their possession. Come to think of it, I didn't see any silver bullets at this show. If anyone tries to sell you one, you better ask to see some specifications.
Marc Briand
Editor-in-Chief