SlideShare a Scribd company logo
1 of 52
COMPARISON AND BRIDGE
BETWEEN CORBA AND DCOM


              Wenjie Lin
   Directed by Dr. W. Homer Carlisle

            Nov. 18, 1998
What’s CORBA and DCOM ?
 CORBA (Common Object Request Broker
  Architecture) and DCOM (Distributed
  Component Object Model) are two major
  standards for distributed object computing.

 CORBA was proposed by the Object
  Management Group (a consortium of 700+
  companies); while DCOM was developed and
  advocated by Microsoft alone.
Problems
• CORBA and DCOM both provide an
  infrastructure for defining, constructing,
  deploying, accessing objects in an distributed
  environment, but in different ways.
• Incompatibility: Objects residing in these
  two systems can not communicate directly.
• A dilemma for enterprises
Questions

• What differences are there between CORBA
  and DCOM ?
• Can these two systems work together?
• How can these two systems work together?
Agenda

• CORBA Overview
• COM/DCOM Overview
• A Comparison between CORBA and
  DCOM
• CORBA/DCOM Bridge
CORBA Overview
CORBAFacilities
                                                             Vertical Facilities


Application
                                                            Horizontal Facilities
 Objects
                                                 User       Information Systems     Task
                                               Interface    Management Management Management




                   Object Request Broker


Naming   Trading   Life cycle   Persistence   Event   Transaction Security   Concurrency



 Relationship   Query      Event      Licensing   Properties    Time    Externalization


                           CORBAServices


                CORBA Architecture
CORBA IDL
• The services that a CORBA object can provide are
  expressed in an interface with a set of methods
• The interface servers as a binding contract between
  clients and servers.
• CORBA uses OMG Interface Definition Language
• Clients and Servers written in different languages
  communicate through a mapping of IDL to these
  languages.
CORBA Static Method Invocation

        Client Host                            Server Host


  Client                                                     Object

                  Client                   Object
                  Stub                     Skeleton
                  Code                      Code



 Function
 Call                  Object Request Broker
CORBA Dynamic Method Invocation

         Client Host                            Server Host


   Client                                                     Object

                 Dynamic                    Object
                 Invocation                 Skeleton
                 Interface                   Code



  Function
  Call                  Object Request Broker
module AddressBook {

 struct Address {
    string street;
    string city;
    string state;
    long zip;
 };

 struct Entry {
    string name;
    Address address;
    long number;
 };

 interface BookKeeper    {

      readonly attribute long numberOfEntries;

     boolean   addEntry(in string name, in Address addr, in long
number);
     boolean   removeEntry(in string name);
     long      lookupNumber(in string name);
     Address   lookupAddress(in string name);
     boolean   changeNumber(in string name, in long new_number);
     boolean   changeAddress(in string name, in Address new_address);

     };
};
Clients                           Object Implementations




Static       Dynamic          ORB         Object       Static     Dynamic
IDL          Invocation                                IDL        Skeleton
                             Interface   Adapters
Stubs        Interface                                Skeleton    Interfaces




                          Object Request Broker                                ORB


         Interface Repository                Implementation Repository
CORBA Application Development

• Define the object’s interface in OMG’s IDL
• Compile the IDL
• Implement the server (providing implementation
  code for the interface it supports
• Compile and register the server object
• Create and compile the client program
Approaches to Server Implementation
• Inheritance Approach: The IDL compiler
  generates an abstract base class for server
  implementation. A server implementation class
  must extend this abstract class. The server
  application can simply instantiate objects of the
  implementation class
• The TIE approach: Client invocations are routed
  to the TIE object and then the TIE object delegates
  the call to implementation object
Server Implementation - TIE approach

   Client
   Client
 Operation                         Implementation
                                    Implementation
  Operation                            Object
Invocations
 Invocations                            Object

                             BookKeeperImplementation.java




            IDL             TIE
                            TIE
          Interface        Object
                           Object

                      _tie_BookKepper.java
The CORBA Implementation of the
     Sample Application - AddressBook
• The application was implemented using OrbixWeb3.0,
  a product of IONA technology
• The IDL file of the application defines two structures, one
  attributes and six operations for adding, changing,
  deleting an entry as well as lookup entry by name
• The server is implemented using the Inheritance approach
• Two clients were created. One was written in plain Java
  application, and the other was written in Java applet
module AddressBook {

 struct Address {
    string street;
    string city;
    string state;
    long zip;
 };

 struct Entry {
    string name;
    Address address;
    long number;
 };

 interface BookKeeper    {

      readonly attribute long numberOfEntries;

     boolean   addEntry(in string name, in Address addr, in long
number);
     boolean   removeEntry(in string name);
     long      lookupNumber(in string name);
     Address   lookupAddress(in string name);
     boolean   changeNumber(in string name, in long new_number);
     boolean   changeAddress(in string name, in Address new_address);

     };
};
COM/DCOM Overview
COM Basics
• Access to an object only through interfaces
• A COM interface is structured as a table of
  pointer to functions (virtual function table)
• COM defines a standard way to layout virtual
  function tables (vtables) in memory and to call
  functions through the vtables
• COM defines a base interface (IUnknown) to provide
  lifetime management and query objects for
  functionality
• COM defines a mechanism to identify objects and
  their interfaces uniquely worldwide
COM Interface Pointer and vtable

            pFuncA      FuncA

            pFuncB      FuncB

 Pointer    pFuncC      FuncC
   to
interface
             …            …




                        Object with
            vtable    member functions
IUnknown Interface

Interface IUnknown
{
  HRESULT QueryInterface(IID& iid, void **ppv);
  ULONG AddRef(void);
  ULONG Release(void);
}
Creation of COM Objects
             COM
              COM
             Client                              Server
                                                  Server
             Client
                                                 Binary
                                                 Binary
Interface pointer



                                                  Code
                                                  Code

                    CLSID

                                CLSID
      COM
      COM                                        System
                                                  System
     Library
     Library                                     Registry
                                                 Registry
                            Server binary code
COM Library Function for Object Creation

   HRESULT CoCreateInstance
     {
        REFCLSID clsid,
        LPUNKNOWN *pUnkOuter,
        DWORD dwClsCtx,
        REFIID riid,
        LPVOID *ppv,
     };
DCOM
- COM With a Longer Wire
Client                             Proxy Object                                                 Stub                                  Component


                        Security                                              Security
"CoCreateI                                        DCE RPC                                              DCE RPC
                        Provider                                              Provider
  nstance"

                              Protocol Stack                                        Protocol Stack
OLE32                                                                                                            "CoCreateInstance"


         (Remote)
         Activation



                  SCM                                                                                                    SCM


                                                            DCOM network-
                                                                   protocol




                                      DCOM Architecture
API function for Creating
a COM object on Remote
       Machines
HRESULT CoCreateInstanceEx (
   REFCLSID clsid,
   LPUNKNOWN *pUnkOuter,
   DWORD dwClsCtx,
   COSERVERINFO * pServerInfo,
   ULONG cmq,
   MULTI_QI rgmq[]
);
DCOM Application Development
• Define the object’s interface using MIDL
• Compile the IDL file to generate proxy/stub and other
  supporting files
• Implement the server by providing implementation code
  for the interface it supports
• Compile the server implementation code and register
  the server executable with the system registry
• Compile the proxy/stub code to generate the proxy/stub
  DLL and register it with system registry
• Create and compile the client program
The DCOM Implementation of the
         Sample Application
• The MIDL file for this application defines an interface
  named IBookKeeper which inherits from IUnknown,
  a library named AddressBookLib, and implementation
  class named CBookKeeper that will implement the
  IBookKeeper interface
• The MIDL file was compiled using the MIDL
  compiler that comes with Visual C++
• The server implementation class implements methods
  that the interface IBookKeeper supports, the methods
  of IUnknown, and some methods of the class factory
• The client program was written in Visual C++
A Comparison
between CORBA and DCOM
Object Model

• Both distinct interface from implementation, and
  clients invoke methods through a reference
• CORBA clients access object through object
  reference and DCOM through interface pointer
• Both CORBA and DCOM interfaces are language
  independent
• CORBA achieves it through language mapping,
  DCOM does it though binary standard
CORBA and DCOM Interface

• Naming systems: CORBA uses a mechanism like Java
  Package (class name + module name), DCOM uses UUIDs
• Association of class and interface(s) it supports: CORBA
  follows a standard model and specified in the interface’s
  implementation class; in DCOM, it is specified in the IDL
  file, and the association is purely arbitrary
• CORBA IDL supports user-defined exception types,
  DCOM does not.
• CORBA supports multiple inheritance of other interfaces
  at the IDL level, but DCOM does not
Client/Server Architecture

• Both provides RPC-style client/server communication
  (client - Client Stub - network - server stub - server)

• CORBA does not specify what wire protocol for the
  communication within same ORBs, but specifies
  TCP-based protocol (IIOP) for inter-ORB
  communication; DCOM can use any protocols that
  used in DCE RPC
Server Implementation and Registration

• In CORBA, the implementation class needs only
  to implement the interface it supports
• In DCOM, the implementation class needs,
  additionally, to provide implementation for the
  IUnKnown interface and IClassfFactory interface
  if COgetClassObject() is used to object creation
• Both CORBA and DCOM server need to be
  registered before clients can use its services.
  CORBA uses Implementation Repository, DCOM
  uses system registry.
Method Invocation
• Both CORBA and DCOM provide static and
  dynamic method invocations.
• No much differences in the way of static invocation
• CORBA achieves the dynamic invocation through
  the use of Interface Repository and Dynamic
  Invocation Interface (DII), there is no difference in
  object implementation for static or dynamic
  invocation; DCOM achieves the DI through Type
  Library and IDispatch interface, objects that supports
  DI must implements the IDispatch interface
Object Lifetime Management
• CORBA manages object lifetime through its
  Lifetime Service.
• DCOM manages object lifetime through counting
  methods provided in IUnknown interface
• CORBA specification does not attempt to track
  the number of clients communicating with a
  particular object; DCOM does
Security

• CORBA’s security is provided by CORBA’s
  Security Service. It defines three levels of security
  (from non-aware to full range). Different ORB
  products differ widely.
• DCOM uses NT mechanism as basis of its security
  control. Additional security service can be
  provided by adding Microsoft Transaction Server.
CORBA/DCOM Bridge
The Problems
• CORBA and DCOM have their own advantages and
  disadvantages (i.e. CORBA’s better platform
  independence and exception handling, DCOM’s
  better user interface)
• Relying on a single infrastructure can be risky since
  application systems are very dependent on their
  infrastructure
• Current application systems exist in many enterprises
The Solution is
to make CORBA/DCOM
    working together
How ?
COM/CORBA Interworking through Bridge
The Interworking Model


Object Model A (client)                     Object Model B (Server)

Object reference in A


             View of                            Target
             Target                             Object
             object

                    Object reference in B
OrbixCOMet Bridge View Object




    COM Interface

                       DCOM              CORBA
Automation Interface
                       Object            Object


                        Bridge View Object
Building a DCOM Client that
  access an existing CORBA Server

• Obtain the MIDL definition for all types defined in
  the corresponding OMG IDL file in the CORBA
  server
• Compile the MIDL file (create proxy/stub code and
  other supporting files to be used by the client)
• Register types in the Bridge (cputidl AddressBook.idl)
• Build the Proxy/Stub DLL
• Implement the client
Implementation of DCOM Client
    accessing a CORBA Server

• The client obtains a COM View object in the Bridge
  that can forward requests to the CORBA server
• The COM View object instantiates a CORBA Factory
  object in the Bridge by calling CoCreateInstanceEx(
  IID_ICORBAFactory, …)
• The client calls GetObject() on the CORBA factory
  object, passing the name of the target object in the
  CORBA server, and returns the object reference to the
  target object in the CORBA server
DCOM Client to CORBA Server


CORBA Server                      DCOM Client

       Target
                IIOP   Bridge   DCOM
      CORBA
       Object
                                COM Interface pointer
 CORBA Object
                                 COM View
   Reference
Binding the DCOM Client to a CORBA Object


        DCOM Client
                                                   To BookKeeper
    Reference    Reference to                      object in remote
    to factory   BookKeeper                        CORBA server

                                                   2
                                3

                                Factory   1   COM View
                                Object        IBookKeeper



                                          Bridge
A VB Client that Accesses the CORBA Server
A CORBA Client that Accesses the CORBA Server
Conclusions
• Both CORBA and DCOM provides functions for
  achieving the transparent activation and accessing of
  remote objects. However, they provides its own
  programming interfaces, uses its own IDL languages,
  support its own data type, and uses its own wire
  protocols. They have their own advantages and
  disadvantages.
• CORBA and DCOM can be bridged to work together
• The interworking of CORBA and DCOM can take the
  advantages of DCOM’s strength in visual component
  development and CORBA’s strength in flexibility and
  services
Future Work

• The Bridge solution to CORBA/DCOM
  interworking imposes a significant amount
  of communication overhead. A middleware
  that natively supports both CORBA and
  DCOM will be the future. This type of
  future middleware should support both
  CORBA and DCOM at the IDL level.

More Related Content

What's hot

Chapter10
Chapter10Chapter10
Chapter10lopjuan
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example Alexia Wang
 
Corba in power system
Corba in power systemCorba in power system
Corba in power systemPROTIM PAUL
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecturenupurmakhija1211
 
CORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBACORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBAPriyanka Patil
 
RMI and CORBA Why both are valuable tools
RMI and CORBA Why both are valuable toolsRMI and CORBA Why both are valuable tools
RMI and CORBA Why both are valuable toolselliando dias
 
CORBA Component Model
CORBA Component Model CORBA Component Model
CORBA Component Model Elham Hormozi
 
CORBA - Introduction and Details
CORBA - Introduction and DetailsCORBA - Introduction and Details
CORBA - Introduction and Detailsdgsdg2websd
 
85305524 i-t-case-study
85305524 i-t-case-study85305524 i-t-case-study
85305524 i-t-case-studyhomeworkping3
 
Presentation On Com Dcom
Presentation On Com DcomPresentation On Com Dcom
Presentation On Com DcomBharat Kumar Katur
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studieshushu
 

What's hot (20)

Chapter10
Chapter10Chapter10
Chapter10
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
 
Corba in power system
Corba in power systemCorba in power system
Corba in power system
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
Unit iv
Unit ivUnit iv
Unit iv
 
Corba
CorbaCorba
Corba
 
CORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBACORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBA
 
RMI and CORBA Why both are valuable tools
RMI and CORBA Why both are valuable toolsRMI and CORBA Why both are valuable tools
RMI and CORBA Why both are valuable tools
 
C O R B A Unit 4
C O R B A    Unit 4C O R B A    Unit 4
C O R B A Unit 4
 
CORBA
CORBACORBA
CORBA
 
CORBA Component Model
CORBA Component Model CORBA Component Model
CORBA Component Model
 
CORBA - Introduction and Details
CORBA - Introduction and DetailsCORBA - Introduction and Details
CORBA - Introduction and Details
 
CORBA
CORBACORBA
CORBA
 
Common Object Request Broker Architecture
Common Object Request Broker ArchitectureCommon Object Request Broker Architecture
Common Object Request Broker Architecture
 
Corba
CorbaCorba
Corba
 
85305524 i-t-case-study
85305524 i-t-case-study85305524 i-t-case-study
85305524 i-t-case-study
 
CORBA & RMI in java
CORBA & RMI in javaCORBA & RMI in java
CORBA & RMI in java
 
Presentation On Com Dcom
Presentation On Com DcomPresentation On Com Dcom
Presentation On Com Dcom
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
 
19.cobra
19.cobra19.cobra
19.cobra
 

Viewers also liked

Dcom vs. corba
Dcom vs. corbaDcom vs. corba
Dcom vs. corbaMohd Arif
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
MIDELWARE TECH
MIDELWARE TECHMIDELWARE TECH
MIDELWARE TECHmuthahar.sk
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Sri Prasanna
 
Component object model and
Component object model andComponent object model and
Component object model andSaransh Garg
 
Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corbaMayuresh Wadekar
 

Viewers also liked (9)

Dcom vs. corba
Dcom vs. corbaDcom vs. corba
Dcom vs. corba
 
DCOM Comparison
DCOM ComparisonDCOM Comparison
DCOM Comparison
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
DCOM
DCOMDCOM
DCOM
 
COM and DCOM
COM and DCOMCOM and DCOM
COM and DCOM
 
MIDELWARE TECH
MIDELWARE TECHMIDELWARE TECH
MIDELWARE TECH
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
 
Component object model and
Component object model andComponent object model and
Component object model and
 
Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corba
 

Similar to internet

corba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxcorba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxAasimAbdul
 
Distributed systems corba remote connection
Distributed systems corba remote connectionDistributed systems corba remote connection
Distributed systems corba remote connectionMohammedAkramMohiudd
 
corbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdfcorbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdfBesAli1
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptxKaviya452563
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overviewscdhruv5
 
Ch-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxCh-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxdagilema
 
Net remoting
Net remotingNet remoting
Net remotingVidhi Patel
 
5c8605.ado.net
5c8605.ado.net5c8605.ado.net
5c8605.ado.netharkesh singh
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1phanleson
 
82159587 case-study-on-corba
82159587 case-study-on-corba82159587 case-study-on-corba
82159587 case-study-on-corbahomeworkping3
 
6. The grid-COMPUTING OGSA and WSRF
6. The grid-COMPUTING OGSA and WSRF6. The grid-COMPUTING OGSA and WSRF
6. The grid-COMPUTING OGSA and WSRFDr Sandeep Kumar Poonia
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
Distributed objects
Distributed objectsDistributed objects
Distributed objectsSharafat Husen
 
UNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.pptUNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.pptAsmitSilhare1
 
ADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.pptADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.pptrani marri
 

Similar to internet (20)

corba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxcorba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptx
 
Distributed systems corba remote connection
Distributed systems corba remote connectionDistributed systems corba remote connection
Distributed systems corba remote connection
 
corbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdfcorbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdf
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptx
 
Low Level View of Android System Architecture
Low Level View of Android System ArchitectureLow Level View of Android System Architecture
Low Level View of Android System Architecture
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overview
 
Ch-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxCh-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptx
 
CORBA.ppt
CORBA.pptCORBA.ppt
CORBA.ppt
 
COM
COMCOM
COM
 
Net remoting
Net remotingNet remoting
Net remoting
 
5c8605.ado.net
5c8605.ado.net5c8605.ado.net
5c8605.ado.net
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Getting started with entity framework
Getting started with entity framework Getting started with entity framework
Getting started with entity framework
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1
 
82159587 case-study-on-corba
82159587 case-study-on-corba82159587 case-study-on-corba
82159587 case-study-on-corba
 
6. The grid-COMPUTING OGSA and WSRF
6. The grid-COMPUTING OGSA and WSRF6. The grid-COMPUTING OGSA and WSRF
6. The grid-COMPUTING OGSA and WSRF
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
Distributed objects
Distributed objectsDistributed objects
Distributed objects
 
UNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.pptUNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.ppt
 
ADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.pptADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.ppt
 

Recently uploaded

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayMakMakNepo
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 

Recently uploaded (20)

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up Friday
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 

internet

  • 1. COMPARISON AND BRIDGE BETWEEN CORBA AND DCOM Wenjie Lin Directed by Dr. W. Homer Carlisle Nov. 18, 1998
  • 2. What’s CORBA and DCOM ?  CORBA (Common Object Request Broker Architecture) and DCOM (Distributed Component Object Model) are two major standards for distributed object computing.  CORBA was proposed by the Object Management Group (a consortium of 700+ companies); while DCOM was developed and advocated by Microsoft alone.
  • 3. Problems • CORBA and DCOM both provide an infrastructure for defining, constructing, deploying, accessing objects in an distributed environment, but in different ways. • Incompatibility: Objects residing in these two systems can not communicate directly. • A dilemma for enterprises
  • 4. Questions • What differences are there between CORBA and DCOM ? • Can these two systems work together? • How can these two systems work together?
  • 5. Agenda • CORBA Overview • COM/DCOM Overview • A Comparison between CORBA and DCOM • CORBA/DCOM Bridge
  • 7. CORBAFacilities Vertical Facilities Application Horizontal Facilities Objects User Information Systems Task Interface Management Management Management Object Request Broker Naming Trading Life cycle Persistence Event Transaction Security Concurrency Relationship Query Event Licensing Properties Time Externalization CORBAServices CORBA Architecture
  • 8. CORBA IDL • The services that a CORBA object can provide are expressed in an interface with a set of methods • The interface servers as a binding contract between clients and servers. • CORBA uses OMG Interface Definition Language • Clients and Servers written in different languages communicate through a mapping of IDL to these languages.
  • 9. CORBA Static Method Invocation Client Host Server Host Client Object Client Object Stub Skeleton Code Code Function Call Object Request Broker
  • 10. CORBA Dynamic Method Invocation Client Host Server Host Client Object Dynamic Object Invocation Skeleton Interface Code Function Call Object Request Broker
  • 11. module AddressBook { struct Address { string street; string city; string state; long zip; }; struct Entry { string name; Address address; long number; }; interface BookKeeper { readonly attribute long numberOfEntries; boolean addEntry(in string name, in Address addr, in long number); boolean removeEntry(in string name); long lookupNumber(in string name); Address lookupAddress(in string name); boolean changeNumber(in string name, in long new_number); boolean changeAddress(in string name, in Address new_address); }; };
  • 12. Clients Object Implementations Static Dynamic ORB Object Static Dynamic IDL Invocation IDL Skeleton Interface Adapters Stubs Interface Skeleton Interfaces Object Request Broker ORB Interface Repository Implementation Repository
  • 13. CORBA Application Development • Define the object’s interface in OMG’s IDL • Compile the IDL • Implement the server (providing implementation code for the interface it supports • Compile and register the server object • Create and compile the client program
  • 14. Approaches to Server Implementation • Inheritance Approach: The IDL compiler generates an abstract base class for server implementation. A server implementation class must extend this abstract class. The server application can simply instantiate objects of the implementation class • The TIE approach: Client invocations are routed to the TIE object and then the TIE object delegates the call to implementation object
  • 15. Server Implementation - TIE approach Client Client Operation Implementation Implementation Operation Object Invocations Invocations Object BookKeeperImplementation.java IDL TIE TIE Interface Object Object _tie_BookKepper.java
  • 16. The CORBA Implementation of the Sample Application - AddressBook • The application was implemented using OrbixWeb3.0, a product of IONA technology • The IDL file of the application defines two structures, one attributes and six operations for adding, changing, deleting an entry as well as lookup entry by name • The server is implemented using the Inheritance approach • Two clients were created. One was written in plain Java application, and the other was written in Java applet
  • 17. module AddressBook { struct Address { string street; string city; string state; long zip; }; struct Entry { string name; Address address; long number; }; interface BookKeeper { readonly attribute long numberOfEntries; boolean addEntry(in string name, in Address addr, in long number); boolean removeEntry(in string name); long lookupNumber(in string name); Address lookupAddress(in string name); boolean changeNumber(in string name, in long new_number); boolean changeAddress(in string name, in Address new_address); }; };
  • 18.
  • 20. COM Basics • Access to an object only through interfaces • A COM interface is structured as a table of pointer to functions (virtual function table) • COM defines a standard way to layout virtual function tables (vtables) in memory and to call functions through the vtables • COM defines a base interface (IUnknown) to provide lifetime management and query objects for functionality • COM defines a mechanism to identify objects and their interfaces uniquely worldwide
  • 21. COM Interface Pointer and vtable pFuncA FuncA pFuncB FuncB Pointer pFuncC FuncC to interface … … Object with vtable member functions
  • 22. IUnknown Interface Interface IUnknown { HRESULT QueryInterface(IID& iid, void **ppv); ULONG AddRef(void); ULONG Release(void); }
  • 23. Creation of COM Objects COM COM Client Server Server Client Binary Binary Interface pointer Code Code CLSID CLSID COM COM System System Library Library Registry Registry Server binary code
  • 24. COM Library Function for Object Creation HRESULT CoCreateInstance { REFCLSID clsid, LPUNKNOWN *pUnkOuter, DWORD dwClsCtx, REFIID riid, LPVOID *ppv, };
  • 25. DCOM - COM With a Longer Wire
  • 26. Client Proxy Object Stub Component Security Security "CoCreateI DCE RPC DCE RPC Provider Provider nstance" Protocol Stack Protocol Stack OLE32 "CoCreateInstance" (Remote) Activation SCM SCM DCOM network- protocol DCOM Architecture
  • 27. API function for Creating a COM object on Remote Machines HRESULT CoCreateInstanceEx ( REFCLSID clsid, LPUNKNOWN *pUnkOuter, DWORD dwClsCtx, COSERVERINFO * pServerInfo, ULONG cmq, MULTI_QI rgmq[] );
  • 28. DCOM Application Development • Define the object’s interface using MIDL • Compile the IDL file to generate proxy/stub and other supporting files • Implement the server by providing implementation code for the interface it supports • Compile the server implementation code and register the server executable with the system registry • Compile the proxy/stub code to generate the proxy/stub DLL and register it with system registry • Create and compile the client program
  • 29. The DCOM Implementation of the Sample Application • The MIDL file for this application defines an interface named IBookKeeper which inherits from IUnknown, a library named AddressBookLib, and implementation class named CBookKeeper that will implement the IBookKeeper interface • The MIDL file was compiled using the MIDL compiler that comes with Visual C++ • The server implementation class implements methods that the interface IBookKeeper supports, the methods of IUnknown, and some methods of the class factory • The client program was written in Visual C++
  • 31. Object Model • Both distinct interface from implementation, and clients invoke methods through a reference • CORBA clients access object through object reference and DCOM through interface pointer • Both CORBA and DCOM interfaces are language independent • CORBA achieves it through language mapping, DCOM does it though binary standard
  • 32. CORBA and DCOM Interface • Naming systems: CORBA uses a mechanism like Java Package (class name + module name), DCOM uses UUIDs • Association of class and interface(s) it supports: CORBA follows a standard model and specified in the interface’s implementation class; in DCOM, it is specified in the IDL file, and the association is purely arbitrary • CORBA IDL supports user-defined exception types, DCOM does not. • CORBA supports multiple inheritance of other interfaces at the IDL level, but DCOM does not
  • 33. Client/Server Architecture • Both provides RPC-style client/server communication (client - Client Stub - network - server stub - server) • CORBA does not specify what wire protocol for the communication within same ORBs, but specifies TCP-based protocol (IIOP) for inter-ORB communication; DCOM can use any protocols that used in DCE RPC
  • 34. Server Implementation and Registration • In CORBA, the implementation class needs only to implement the interface it supports • In DCOM, the implementation class needs, additionally, to provide implementation for the IUnKnown interface and IClassfFactory interface if COgetClassObject() is used to object creation • Both CORBA and DCOM server need to be registered before clients can use its services. CORBA uses Implementation Repository, DCOM uses system registry.
  • 35. Method Invocation • Both CORBA and DCOM provide static and dynamic method invocations. • No much differences in the way of static invocation • CORBA achieves the dynamic invocation through the use of Interface Repository and Dynamic Invocation Interface (DII), there is no difference in object implementation for static or dynamic invocation; DCOM achieves the DI through Type Library and IDispatch interface, objects that supports DI must implements the IDispatch interface
  • 36. Object Lifetime Management • CORBA manages object lifetime through its Lifetime Service. • DCOM manages object lifetime through counting methods provided in IUnknown interface • CORBA specification does not attempt to track the number of clients communicating with a particular object; DCOM does
  • 37. Security • CORBA’s security is provided by CORBA’s Security Service. It defines three levels of security (from non-aware to full range). Different ORB products differ widely. • DCOM uses NT mechanism as basis of its security control. Additional security service can be provided by adding Microsoft Transaction Server.
  • 39. The Problems • CORBA and DCOM have their own advantages and disadvantages (i.e. CORBA’s better platform independence and exception handling, DCOM’s better user interface) • Relying on a single infrastructure can be risky since application systems are very dependent on their infrastructure • Current application systems exist in many enterprises
  • 40. The Solution is to make CORBA/DCOM working together
  • 41. How ?
  • 43. The Interworking Model Object Model A (client) Object Model B (Server) Object reference in A View of Target Target Object object Object reference in B
  • 44. OrbixCOMet Bridge View Object COM Interface DCOM CORBA Automation Interface Object Object Bridge View Object
  • 45. Building a DCOM Client that access an existing CORBA Server • Obtain the MIDL definition for all types defined in the corresponding OMG IDL file in the CORBA server • Compile the MIDL file (create proxy/stub code and other supporting files to be used by the client) • Register types in the Bridge (cputidl AddressBook.idl) • Build the Proxy/Stub DLL • Implement the client
  • 46. Implementation of DCOM Client accessing a CORBA Server • The client obtains a COM View object in the Bridge that can forward requests to the CORBA server • The COM View object instantiates a CORBA Factory object in the Bridge by calling CoCreateInstanceEx( IID_ICORBAFactory, …) • The client calls GetObject() on the CORBA factory object, passing the name of the target object in the CORBA server, and returns the object reference to the target object in the CORBA server
  • 47. DCOM Client to CORBA Server CORBA Server DCOM Client Target IIOP Bridge DCOM CORBA Object COM Interface pointer CORBA Object COM View Reference
  • 48. Binding the DCOM Client to a CORBA Object DCOM Client To BookKeeper Reference Reference to object in remote to factory BookKeeper CORBA server 2 3 Factory 1 COM View Object IBookKeeper Bridge
  • 49. A VB Client that Accesses the CORBA Server
  • 50. A CORBA Client that Accesses the CORBA Server
  • 51. Conclusions • Both CORBA and DCOM provides functions for achieving the transparent activation and accessing of remote objects. However, they provides its own programming interfaces, uses its own IDL languages, support its own data type, and uses its own wire protocols. They have their own advantages and disadvantages. • CORBA and DCOM can be bridged to work together • The interworking of CORBA and DCOM can take the advantages of DCOM’s strength in visual component development and CORBA’s strength in flexibility and services
  • 52. Future Work • The Bridge solution to CORBA/DCOM interworking imposes a significant amount of communication overhead. A middleware that natively supports both CORBA and DCOM will be the future. This type of future middleware should support both CORBA and DCOM at the IDL level.