PrefaceExcerpted from COM and CORBA® Side by Side: Architectures, Strategies, and Implementations by Jason Pritchard. Copyright © 1999. Reprinted by permission. All rights reserved.
Topics Covered in the Preface
COM and CORBA are all too often viewed as strictly competing technologies. In many areas, the competitive nature of these two technologies cannot be denied; however, each technology has its own strengths that differentiate it from the other. The most significant difference is the support for various operating system platforms. COM is oriented toward the Windows platform, while CORBA is inherently multiplatform. The operating system platform is an important consideration when determining where each technology should be deployed, but many other variables that factor into a decision regarding the use of COM and/or CORBA.
Determining where to use COM, CORBA, or both is a decision that is often based on emotional rather than on logical reasoning. Due to vendor marketing and the fervor of various technology proponents, emotion often ends up being one of the biggest factors in the selection of a distributed object architecture. I have seen several cases where the correct choice for using COM or CORBA was quite obvious, but where a different choice was made for emotional rather than for logical reasons. An objective strategy for choosing where to use COM and CORBA is badly needed.
The influence of emotion on the decision-making process is not too surprising in any part of the software industry. Software developers tend to be artisans and not engineers. Artisans rely on their instincts and rules of thumb when making critical decisions. Engineers rely on well-defined processes and formulae. While all of us should strive to evolve software development into an engineering discipline, we just aren't there yet. The processes and formulae usually do not exist for making definitive decisions with regard to software.
Perhaps the greatest difficulty with understanding software technologies, especially technologies like COM and CORBA, is the ever-expanding functionality provided by such technologies. None of us can hope to understand every nuance of COM or CORBA. We must therefore become specialized and focus on very specific areas that meet our current needs. As we become more specialized, we lose sight of the big picture. This has a negative effect on our ability to make rational decisions. To escape specialization, we must rely on other people to make us aware of the key factors that need to be considered when deciding where complex technologies like COM and CORBA should be used.
Throughout this book, COM and CORBA are compared in a side-by-side manner so that the similarities and differences between COM and CORBA are accentuated. The best way to understand what is meant by the phrase side-by-side is to examine the bookís table of contents and note that the focus constantly shifts between discussions of COM, CORBA, or both. Within individual sections, comparisons are made between COM and CORBA whenever possible.
While writing this book, I have made every effort to avoid any bias toward either COM or CORBA. This book is definitely not about promoting one technology over the other. I have been fortunate enough to work with COM and CORBA on a multitude of projects, and I very much enjoy using both of them. In this book, I have done my best to objectively present useful information that will be helpful when choosing COM and/or CORBA.
This book also allows developers who have a working knowledge of either COM or CORBA to leverage their existing knowledge to better understand both technologies. The side-by-side nature of this book allows developers who are familiar with one approach to easily identify parallels with the other approach. The identification of such parallels provides a powerful mechanism for learning. As a result, a software developer who understands COM can use this book to better understand CORBA; a software developer who understands CORBA can use this book to better understand COM.
Part I, Embracing COM and CORBA. This part of the book provides a brief history leading up to distributed objects and discusses why COM and CORBA currently hold dominant positions in the marketplace. Part I concludes by performing an extensive side-by-side comparison of COM/CORBA technical fundamentals.
Part II, COM and CORBA on the Server. This part of the book discusses the use of COM and CORBA on the server side. It begins by describing an objective strategy for assessing the appropriateness of COM and CORBA for a specific server-side domain. Part II then examines platform issues (including legacy system support), essential services (transactions, security, etc.), and intangibles that must often be considered when choosing between COM and CORBA.
Part III, COM and CORBA on the Client. This part of the book examines client approaches for using COM and CORBA. Because Windows controls the desktop, Part III begins by looking at COM desktop client approaches. It then examines COM/CORBA Internet client approaches and also discusses design issues related to remoting and security. Part III concludes by providing an example that demonstrates a migration path from the desktop to the Internet.
Part IV, Bridging COM and CORBA. This part of the book examines approaches for using COM and CORBA together. It begins by examining custom approaches for bridging COM and CORBA. Part IV then examines commercial bridging approaches based on the OMGís COM/CORBA interworking architecture. Part IV concludes with a discussion of enterprise application servers based on COM, CORBA, and Enterprise JavaBeans.
If you are planning to use COM or CORBA, you have probably already obtained references that focus directly on COM, CORBA, or COM/CORBA bridging. This book provides a comparison of COM and CORBA and also discusses COM/CORBA bridging. It does not, however, attempt to provide a complete reference for any of these areas. Depending on your needs, you may require books that focus exclusively on COM, CORBA, or COM/CORBA bridging to supplement the material contained in this book. Check here for a list of such books that I have found useful.
Send mail to email@example.com with
questions or comments about this web site.