|
Table of ContentsExcerpted from COM and CORBAź Side by Side: Architectures, Strategies, and Implementations by Jason Pritchard. Copyright © 1999. Reprinted by permission. All rights reserved.
Part I: Embracing COM and CORBA 1Chapter 1: The Arrival of Distributed Objects 3Client/Server Beginnings 42-Tier, 3-Tier, and N-Tier Architectures 5 Communicating Between Tiers 8 The Power of Distributed Objects 10 From Objects to Components 10 Managing Distributed Systems 13 The State of Distributed Objects 15 Chapter 2: The Dominance of COM and CORBA 17The Distributed Object Landscape 18Microsoft's COM/DCOM 18 IBM's SOM/DSOM 18 CORBA 19 Java RMI 20 ObjectSpace's Voyager 20 Summary 21 COM: The Dominant Component Architecture 21 CORBA: The Dominant Remoting Architecture 23 Evolutionary Trends 26 A Test of Wills 26 Vendor Perspective 27 User Perspective 28 Who Is the Winner? 29 Chapter 3: Distributed Object Fundamentals 31An Overview of the Fundamentals 32A Distributed Object Example 33 COM Object and Clients 35 CORBA Object and Clients 35 Reviewing the Requirements 38 Demonstrating the Fundamentals 38 Selecting Data Types 40 Defining the Interfaces 41 COM IDL and Type Libraries 41 CORBA IDL 47 Proxies, Stubs, and Skeletons 50 COM Proxies and Stubs 52 COM Type Library Marshaling 53 CORBA Stubs and Skeletons 54 Implementing the Servers 56 Implementing the Clients 57 Using IDL in the COM C++ Client 58 Using a Type Library in the COM Visual Basic Client 60 Using IDL in the Orbix CORBA C++ Client 62 Using IDL in the VisiBroker CORBA Java Client 63 Client Implementation Summary 64 Object Handles 64 COM Interface Pointers in C++ 65 COM Interface Pointers in Visual Basic 69 CORBA Object References in C++ 70 CORBA Object References in Java 74 Creating Objects 75 COM Factories 75 COM Object Creation in C++ 77 COM Object Creation in Visual Basic 80 CORBA Factories 82 CORBA Object Creation in C++ and Java 85 Invoking Object Methods 87 COM HRESULTs 88 COM Error Handling in the C++ Client 90 COM Error Handling in the Visual Basic Client 91 CORBA Exceptions 92 CORBA Exception Handling in the C++ and Java Clients 93 Destroying Objects 95 Destroying COM Objects 96 Destroying CORBA Objects 97 Summary 100 Part II: COM and CORBA on the Server 103Chapter 4: Assessing the Server Side 105What Constitutes the Server Side? 106Partitioning the Enterprise 107 Strategic Directions of COM and CORBA 109 COM: A Vertical Strategy 110 CORBA: A Horizontal Strategy 111 The Need for an Assessment Strategy 113 Assessment Criteria 114 Platform Criteria 114 Essential Services 115 Intangibles 116 An Assessment Strategy 116 Prerequisites 117 Recording the Assessment History 117 Rating the Criteria 118 Assessment Steps 118 An Assessment Example 119 COM and CORBA in Your Enterprise Solution 119 Chapter 5: The Server Platform 121Review of the Platform Criteria 122Legacy System Support 122 General Approaches for Supporting Legacy Systems 123 Identifying Significant Legacy Systems 123 Selecting Platforms for New Development 124 Wrapper Approach 125 Gateway Approach 126 Legacy Support When Using COM 128 COM and the Wrapper Approach 129 COM and the Gateway Approach 129 Using COM to Access Legacy Data 130 COM Integration with CICS and IMS 131 COM Integration with IBM's MQSeries 132 Summary of COM-Related Legacy Support 132 Legacy Support When Using CORBA 133 CORBA and the Wrapper Approach 133 CORBA and the Gateway Approach 134 Summary of CORBA-Related Legacy Support 135 The Development Platform 135 COM Development Platforms 136 COM/Windows/C++ Development Platform 136 COM/Windows/Java Development Platform 137 COM/Windows/Visual Basic Development Platform 138 Non-Windows COM Development Platforms 138 CORBA Development Platforms 139 Availability of Development Tools 140 COM Development Tools 140 CORBA Development Tools 141 Summary 141 Chapter 6: Essential Services 143Review of the Service Criteria 144Distributed Transaction Support 145 A Scenario for a Distributed Object Transaction 145 COM, MTS, and the Distributed Transaction Coordinator 148 CORBA and the Object Transaction Service 156 Distributed Security 162 DCOM Security 163 MTS Security 170 CORBA and the Secure Sockets Layer 174 The CORBA Security Service 175 Messaging Support 179 COM and Microsoft Message Queue Server 181 CORBA and Messaging Support 187 Distributed Object Management 190 The Need for Stateless Objects 191 COM Object Management Under Microsoft's MTS 194 CORBA Object Management Under BEA Systems' M3 198 Summary 202 Chapter 7: Server-Side Intangibles 205Vendor Perception 206Vendor Commitment and Viability 207 Vendor Lock-in 208 Availability of Product 209 Availability of Development Staff 209 Product Cost 211 Server-Side Summary 211 Part III: COM and CORBA on the Client 213Chapter 8: The Desktop Client 215Impact of Distributed Objects 216Dominance of COM on the Desktop 217 COM Client Approaches 218 Custom Interfaces 219 Automation Interfaces 227 Dual Interfaces 229 Installing Remote COM Clients 235 COM Development Environments 238 The Visual Basic COM Client 239 The Visual J++ COM Client 242 The Visual C++ COM Client 247 Summary 253 Chapter 9: The Internet Client 255Distributed Object Internet Strategies 256COM Internet Strategies 257 CORBA Internet Strategies 259 Using COM with Active Server Pages 261 Using CORBA in a Java Applet 267 The Push Technology Alternative 272 Summary 274 Chapter 10: Client Design Considerations 277Remoting Requirements and Design Issues 278Client Needs Versus Remoting Requirements 280 Security Issues for Internet Clients 282 Security Issues When Using Active Server Pages 283 Security Issues When Using Java Applets 285 Migrating from the Desktop to the Internet 288 Implementing the COM and CORBA Customer Servers 289 The COM Customer Server and Proxy 289 The COM Customer Wrapper 294 The CORBA Customer Server and Proxy 297 Implementing the COM/CORBA Customer Bridge 300 The COM-to-CORBA Customer Bridge 300 The CORBA-to-COM Customer Bridge 301 Implementing the COM and CORBA Customer Clients 303 The Visual Basic Customer Client 304 The Active Server Pages Customer Client 308 The CORBA/Java Customer Client 310 Migration Summary 313 Client-Side Summary 314 Part IV: Bridging COM and CORBA 317Chapter 11: Custom Bridging Approaches 319Overview of Bridging Example 320Using C++ to Bridge COM and CORBA 322 Using Microsoft's JVM as a Bridge 323 Using a CORBA/Java ORB with Microsoft's JVM 323 A COM-to-CORBA Bridge 324 A Visual Basic Client 327 Other COM/CORBA Bridging Approaches 328 Using COM in Non-Microsoft JVMs 328 Bridging ActiveX and JavaBeans 328 Using Environments That Support COM and CORBA 329 Future Java/COM Support from Microsoft 330 Summary 330 Chapter 12: Commercial Bridging Approach 333COM/CORBA Interworking Specification 334Vendor Support for COM/CORBA Bridging 337 A Commercial Bridging Example 338 Selecting a Commercial Bridging Product 338 The CORBA Server 339 Creating a COM View for the CORBA Server 342 Using the CORBA Server from a Visual Basic Client 346 Using COM Servers from CORBA Clients 352 Bridging COM/CORBA Services 353 Summary 354 Chapter 13: Enterprise Application Servers 357Emergence of Enterprise Application Servers 358Early Web Application Servers 358 The Need for Enterprise Application Servers 359 Enterprise Application Server Criteria 360 Enterprise Application Server Approaches 362 COM Approach 362 CORBA Approach 364 Enterprise JavaBeans Approach 366 Summary 368 Chapter 14: Conclusion 371A Summary of What We've Covered 371Embracing COM and CORBA (Part I) 371 COM and CORBA on the Server (Part II) 372 COM and CORBA on the Client (Part III) 373 Bridging COM and CORBA (Part IV) 374 Farewell 374 AppendicesAppendix A: References 375On COM 375On CORBA 375 On COM/CORBA Bridging 375 Appendix B: Examples Available for Download 377Chapter 3 Examples 377Clients 377COM C++ Client 377 COM Visual Basic Client 377 CORBA C++ Client 378 CORBA Java Client 378 Servers 378 COM IDL 378 CORBA IDL 378 COM C++ Server 378 CORBA C++ Server 379 Chapter 6 Examples 379MTS Example 379MTS Account Server 379 MTS Teller Server 379 MTS Client 379 COM Security 380 COM Secure Agent Server 380 COM Secure Client 380 MTS Secure Account Server 380 MTS Secure Client 380 MSMQ Example 380 MSMQ Market Application 380 MSMQ Trader Application 381 Chapter 8 Examples 381Automation Interface Approach 381Visual J++ Server 381 Visual Basic Client 381 Visual C++ Client 381 Visual J++ Client 382 Custom Interface Approach 382 Visual C++ Server 382 Visual Basic Client 382 Visual C++ Client 382 Visual J++ Client 382 Dual Interface Approach 382 Visual Basic Server 383 Visual C++ Server 383 Visual J++ Server 383 Visual Basic Client 383 Visual Basic Automation Client 383 Visual C++ Client 383 Visual J++ Client 384 Chapter 9 Examples 384Clients 384COM Active Server Pages Client 384 CORBA Java Applet 384 Servers 384 COM IDL 384 CORBA IDL 385 COM Server 385 CORBA Server 385 Chapter 10 Examples 385Clients 385COM Active Server Pages Client 385 COM Visual Basic Client 386 CORBA Java Applet 386 Servers 386 COM IDL 386 CORBA IDL 386 COM Customer Interface 386 COM Customer Wrapper 387 COM Customer Server 387 COM Customer Proxy 387 COM-to-CORBA Bridge 387 CORBA Customer Server 387 CORBA Customer Proxy 387 CORBA-to-COM Bridge 388 Chapter 11 Examples 388COM IDL 388CORBA IDL 388 COM Client 388 COM-to-CORBA Bridge 388 CORBA Server 389 Chapter 12 Examples 389Bindings Generated by Commercial Bridging Product 389COM Client 389 CORBA Server 389 Appendix C: Selected Example Code 391MyCheckingAccount Classes (from Ch. 3) 391COM/C++ MyCheckingAccount Class 391 COM/Visual Basic MyCheckingAccount Class 397 CORBA/C++ MyCheckingAccount Class 400 CORBA/Java MyCheckingAccount Class 405 MTS Components (from Ch. 6) 408 Ch6Teller MTS Component 408 Ch6Account MTS Component 411 MSMQ Applications (from Ch. 6) 415 Trader MSMQ Application 415 Stock Market MSMQ Application 417 Index 421 |
Send mail to jpritchard@pobox.com with
questions or comments about this web site.
|