A Vision of Java, Microsoft COM and DCOM

Distributed application development with COM and Java, complete with transaction processing, and much more.


ORIGINAL DRAFT

Sometimes things are not what they appear to be. While Java was nowhere in the title, it was clear from leafing through "COM and DCOM" that the book was heavily focussed on Java solutions. I’ve never really been satisfied with the limited COM (Microsoft’s Common Object Model) coverage presented in the many Visual J++ books, but this coverage is worthy of notice. It turns out the author is convinced that Java is the best available tool for developing business logic in the Microsoft distributed model and he makes a strong case in favor of using these technologies together.

Roger Sessions was one of the lead architects for the OMG (Object Manager Group) Object Persistence Services for CORBA (Common Object Request Broker Architecture). His background at IBM makes his insights especially intriguing and his convictions seem like serious business. This book is focussed on what it will take to make e-commerce successful, one of the most fertile and lucrative areas of Internet development today. Sessions suggest that Microsoft’s combination of COM, transaction services, security solutions, database architecture, NT clusters, and multi-tiered solutions lay a foundation that will shake the computer world if they are successful. This group of technologies will mature and represents an emerging alternative to mainframe computing.

Chapter 1, "Architectural Overview", introduces the acronym MDCA (Microsoft Distributed Component Architecture) to represent this collection of technologies. The author goes on to explain that CORBA’s design by committee approach cannot ultimately compete with the single company architecture delivered by Microsoft. The key components of this architecture are the Transaction Server, NT clustering technology (code-named Wolfpack), COM and Java development. Sessions thinks that even Microsoft doesn’t yet see the big picture and Java’s ultimate role in this architecture, but feels it’s inevitable that they’ll move it all forward in the obvious direction. Of course, we have to take this with a grain of salt, but the arguments are compelling.

Chapter 2, "COM/DCOM Issues", digs deeper into what the COM model is all about. Chapter 3 covers "The Java Layer" pointing out its strengths and perfect match for the COM technology/model. Chapter 4 talks about "Components" and how they facilitate distributed computing to come to life. Chapter 5, "Persistence", introduces a few classes that implement the COM persistence model in Java. Chapter 6, "Sharing and Scalability", takes a closer look at object pooling and using the Microsoft Transaction Server with Java components. Chapter 7 covers "Transactions and Databases", and the MS-DTC (Microsoft Distributed Transaction Coordinator) and the SQLServer. Chapters 8 and 9 cover "Multi-Tier Architecture" and the Microsoft "Security" model, respectively.

Microsoft is betting much of their future on the NT platform and one of their key objectives is to make it truly scalable. Chapter 10, "Clustering", looks at their Wolfpack clustering technology, which will give Microsoft a viable position in the server market if they are successful. It’s still too early to tell if they’ll be able to take this where they need to go, but even if it takes them several years, it’s a problem that can, inevitably, be solved. This chapter looks at the underlying mathematics and basic premise of clustering, along with the benefits to be gained. Chapter 11, "Message Queuing", looks at the MSMQ (Microsoft Message Queue Server), before Chapter 12 provides a "Wrap-Up" to a high-impact set of ideas.

This book presents some interesting ideas, in a light that may unveil a strategy that might not be readily apparent to distributed object developers. Whether the technologies discussed are ready for prime-time or not seems incidental. It’s clear that a great deal of money and effort is being directed at these solutions and that they are worth keeping an eye on. In any case, using Java with COM and DCOM is already a practical approach. If you are responsible for, or a contributor to, your company’s strategic direction, you may want to take a look at this book. If you’re interested in how Java fits into the COM model, this is a good investment. If you don’t believe you need to take Microsoft too seriously, this book may change your mind.