An Architectural Comparison of Distributed Object Technologies
Total Page:16
File Type:pdf, Size:1020Kb
An Architectural Comparison of Distributed Object Technologies by Jay Ongg ABSTRACT As developers develop larger systems, distributed object technologies came into the foreground to handle complexity. This thesis examines popular architectures of component software which can be scaled to handle large scale distributed systems. These architectures include OLE by Microsoft, CORBA by the Object Management Group, and Java Beans by Sun. Many issues need to be examined, such as what platforms will the system run on and the size of the network the system will run on. The decision of what architecture is suitable for a given complex system is crucial. This thesis provides a comparative analysis to provide a rational basis for selection. Supervisor: Nishikant Sonwalkar Title: Director, Hypermedia Teaching Facility TABLE OF CONTENTS 1. INTRODUCTION AND BACKGROUND............................................................................................................... 5 1.1 COMPONENT SOFTWARE.....................................................................................................................................5 1.2 OBJECTS...................................................................................................................................................................5 1.2.1 Encapsulation ............................................................................................................................................. 5 1.2.2 Polymorphism.............................................................................................................................................. 6 1.2.3 Inheritance................................................................................................................................................... 6 1.3 OUT-OF-PROCESS OBJECTS...................................................................................................................................7 1.3.1 Local Out-of-process Objects.................................................................................................................... 7 1.3.2 Remote Objects ............................................................................................................................................ 7 1.4 DISTRIBUTED OBJECT TECHNOLOGIES.............................................................................................................8 2. CORBA SPECIFICATION........................................................................................................................................ 9 2.1 OVERVIEW...............................................................................................................................................................9 2.2 ARCHITECTURE ...................................................................................................................................................10 2.2.1 Object Request Broker (ORB).................................................................................................................10 2.2.2 IDL ...............................................................................................................................................................10 2.2.3 Object Adapters.........................................................................................................................................11 2.2.4 Interface Repository (IR) .........................................................................................................................11 2.2.5 Implementation Repository.....................................................................................................................12 2.2.6 Dynamic Invocation Interface (DII) ......................................................................................................12 2.2.7 Dynamic Skeleton Interface (DSI) .........................................................................................................12 2.2.8 Internet Interoperability Protocol (IIOP) and the Intergalactic Object Bus................................12 2.3 CORBASERVICES AND THE OBJECT MANAGEMENT ARCHITECTURE (OMA)........................................13 2.4 CORBAFACILITIES AND CORBADOMAINS.....................................................................................................13 3. OLE..............................................................................................................................................................................14 3.1 COMPONENT OBJECT MODEL (COM) AND DISTRIBUTED COM (DCOM)...............................................14 3.1.1 Interfaces and Classes..............................................................................................................................15 3.1.2 IUnknown and its members.....................................................................................................................15 3.1.3 MIDL and RPC ..........................................................................................................................................15 3.1.4 Object Registration...................................................................................................................................16 3.1.5 Local/Remote Transparency...................................................................................................................17 3.1.6 COM Services and Features ...................................................................................................................17 3.1.7 Distributed Component Object Model (DCOM) .................................................................................17 3.2 OLE AUTOMATION.............................................................................................................................................18 3.2.1 Dispinterfaces and IDispatch .................................................................................................................18 3.2.2 Locales........................................................................................................................................................19 3.2.3 Remote Automation ..................................................................................................................................19 3.3 ACTIVEX AND THE INTERNET .........................................................................................................................19 3.3.1 Architecture and Example.......................................................................................................................20 3.3.2 ActiveX controls and the Internet..........................................................................................................20 4. JAVA SOLUTIONS..................................................................................................................................................21 4.1 APPLETS...............................................................................................................................................................21 4.1.1 Untrusted Applets .....................................................................................................................................21 4.1.2 Trusted Applets..........................................................................................................................................21 4.2 JAVA DISTRIBUTED OBJECT MODEL (RMI) ...................................................................................................22 4.2.1 Dynamic Class Loading...........................................................................................................................22 4.2.2 ByteCode Passing.....................................................................................................................................23 4.3 JAVABEANS...........................................................................................................................................................23 4.3.1 JavaBeans Features .................................................................................................................................23 2 4.3.2 Bridging......................................................................................................................................................23 4.3.3 Downloading and Packaging................................................................................................................24 5. SPECIFICATION COMPARISONS......................................................................................................................25 5.1 ARCHITECTURES.................................................................................................................................................25 5.1.1 Standard Objects.......................................................................................................................................25 5.1.2 Dynamically Bindable Objects...............................................................................................................27 5.1.3 Downloadable Objects.............................................................................................................................28 5.2 LANGUAGES AND DEVELOPMENT TOOLS.......................................................................................................29 5.2.1 CORBA Language Support.....................................................................................................................29