39
COM vs. CORBA COM vs. CORBA

COM vs. CORBA

  • Upload
    mariko

  • View
    23

  • Download
    2

Embed Size (px)

DESCRIPTION

COM vs. CORBA. What are They?. COM: The Component Object Model is a software architecture that allows programs to be built from parts from different software producers. - PowerPoint PPT Presentation

Citation preview

Page 1: COM vs. CORBA

COM vs. CORBACOM vs. CORBA

Page 2: COM vs. CORBA

What are They?What are They?

COM: The Component Object Model is a COM: The Component Object Model is a software architecture that allows programs software architecture that allows programs to be built from parts from different to be built from parts from different software producers. software producers.

CORBA: The Common Object Request CORBA: The Common Object Request Broker Architecture is an open distributed Broker Architecture is an open distributed object computing infrastructure that is object computing infrastructure that is being standardized by the Object being standardized by the Object Management Group (OMG).Management Group (OMG).

Page 3: COM vs. CORBA

COMCOM

Designed by Microsoft in 1993Designed by Microsoft in 1993Primarily used with WindowsPrimarily used with Windows It is being replaced with Microsoft .NET It is being replaced with Microsoft .NET

although it can be used with .NET although it can be used with .NET

Page 4: COM vs. CORBA

COMCOM

COM provides the framework for COM provides the framework for interoperability and reusability of interoperability and reusability of distributed objects.distributed objects.

Programmers can use different Programmers can use different components from different vendors that components from different vendors that communicate through COM.communicate through COM.

Makes maintaining systems easier.Makes maintaining systems easier.

Page 5: COM vs. CORBA

COMCOM

The main technologies that operate on the The main technologies that operate on the COM system are OLE, ActiveX, and MTS.COM system are OLE, ActiveX, and MTS.

OLE aspects include compound OLE aspects include compound documents, custom controls, inter-documents, custom controls, inter-application scripting, data transfer, etc.application scripting, data transfer, etc.

ActiveX allows programs to be web based.ActiveX allows programs to be web based.MTS provides advanced features to allow MTS provides advanced features to allow

COM to be used in enterprise solutions.COM to be used in enterprise solutions.

Page 6: COM vs. CORBA

COMCOM

Page 7: COM vs. CORBA

What does COM do?What does COM do?

Defines a binary standard for component Defines a binary standard for component interoperabilityinteroperability

Is Language-independentIs Language-independentCan support multiple platformsCan support multiple platformsAllows for component systems to growAllows for component systems to grow Is extensibleIs extensible

Page 8: COM vs. CORBA

What does COM do?What does COM do?

Communications between components, Communications between components, even across process and networks. even across process and networks. (dcom)(dcom)

Shared memory management between Shared memory management between componentscomponents

Error and status reportingError and status reportingDynamic loading of componentsDynamic loading of components

Page 9: COM vs. CORBA

How does COM do it?How does COM do it?

The Binary structureThe Binary structure If the compiler can reduce language If the compiler can reduce language

structures down to the specified binary structures down to the specified binary representation.representation.

This allows the communication at the This allows the communication at the binary levelbinary level

Page 10: COM vs. CORBA

VtablesVtables COM defines a standard way to lay out virtual COM defines a standard way to lay out virtual

function tables in memory and a standard way to function tables in memory and a standard way to call functions through vtables.call functions through vtables.

Through this any language that can call Through this any language that can call functions through pointers can be used with functions through pointers can be used with COM.COM.

This allows the sharing of resources by using This allows the sharing of resources by using multiples of an object, therefore reducing the multiples of an object, therefore reducing the memory requirement.memory requirement.

Page 11: COM vs. CORBA

VtableVtable

Page 12: COM vs. CORBA

COM InterfacesCOM Interfaces An interface is not a class, it is just a group of An interface is not a class, it is just a group of

related functions and is how components related functions and is how components communicate.communicate.

Clients can only use interface pointers which Clients can only use interface pointers which abstract all functions. The only way an interface abstract all functions. The only way an interface can be used is if it has a pointer.can be used is if it has a pointer.

A component usually has more than one A component usually has more than one interface because it has multiple services.interface because it has multiple services.

Interfaces never change, to make sure that all Interfaces never change, to make sure that all version can work together. If a new components version can work together. If a new components is added it requires a new interfaceis added it requires a new interface

Page 13: COM vs. CORBA

COM interface benefitsCOM interface benefits

The functionality in applications to grow The functionality in applications to grow over time over time

All COM objects support QueryInterface All COM objects support QueryInterface which allows the making of more which allows the making of more interfaces without changing the binary interfaces without changing the binary compatibility with existing code. compatibility with existing code.

This also helps guarantees backward This also helps guarantees backward compatibility because of unchangeable compatibility because of unchangeable interfaces.interfaces.

Page 14: COM vs. CORBA

COM Interface benefitsCOM Interface benefits

Fast interaction because the calls are Fast interaction because the calls are simply two memory pointers. The simply two memory pointers. The difference between a COM call and direct difference between a COM call and direct function call is negligible.function call is negligible.

It allows for fast negotiation of interfaces It allows for fast negotiation of interfaces because it is done in groups.because it is done in groups.

Page 15: COM vs. CORBA

COM Interface benefitsCOM Interface benefits

Interface reusability allows for code to be Interface reusability allows for code to be reused easily and makes it easy for reused easily and makes it easy for programmers to remember a specific programmers to remember a specific interface.interface.

Allows for multiple higher level languages Allows for multiple higher level languages to be used. It breaks down the languages to be used. It breaks down the languages into a binary standard.into a binary standard.

Page 16: COM vs. CORBA

COM Interface benefitsCOM Interface benefits

COM handles all calls to remote COM handles all calls to remote processes including network calls. COM processes including network calls. COM will make the remote procedure call so will make the remote procedure call so that no additional code is required to make that no additional code is required to make a remote function call. This functionality a remote function call. This functionality was added with the release of DCOM.was added with the release of DCOM.

Page 17: COM vs. CORBA

COM Interface BenefitsCOM Interface Benefits

COM creates a unique identifier that is a COM creates a unique identifier that is a 128-bit integer so that there will be a way 128-bit integer so that there will be a way to correctly identify a component across a to correctly identify a component across a network of millions of components. network of millions of components.

Page 18: COM vs. CORBA

COM Client/Server ModelCOM Client/Server Model

The interaction between components creates a The interaction between components creates a Client/Server modelClient/Server model

The code that requests a function from a The code that requests a function from a component is considered the client and the component is considered the client and the component that provides the function is component that provides the function is considered the server.considered the server.

This allows for a crash at the server level but will This allows for a crash at the server level but will keep the client operating.keep the client operating.

Clients can also represent themselves and act Clients can also represent themselves and act as a peer to peer service.as a peer to peer service.

Page 19: COM vs. CORBA

COM Client/Server ModelCOM Client/Server Model

There are 3 different types of serversThere are 3 different types of servers ““in-process” means that the requested in-process” means that the requested

information is in the same processinformation is in the same process ““local” means that the location of the local” means that the location of the

component is running on the same component is running on the same machine but in a different processmachine but in a different process

““remote” means that the component is on remote” means that the component is on a different machine on the network.a different machine on the network.

Page 20: COM vs. CORBA

COM: IUnknownCOM: IUnknown

IUnkown is a special interface made up of IUnkown is a special interface made up of AddRef, Release, and QueryInterface.AddRef, Release, and QueryInterface.

AddRef and Release keep track of the AddRef and Release keep track of the objects connected to the component.objects connected to the component.

QueryInterface allows clients to determine QueryInterface allows clients to determine if it can use a given interface with a if it can use a given interface with a component. It also retrieves the interface component. It also retrieves the interface pointers.pointers.

Page 21: COM vs. CORBA

COM: COLCOM: COL

The Component Object Library contains The Component Object Library contains much of the work of the COM system. much of the work of the COM system.

It maintains all of the GUID’sIt maintains all of the GUID’s It handles loading requested components It handles loading requested components

by calling what the component needs.by calling what the component needs.

Page 22: COM vs. CORBA

COM: ProblemsCOM: Problems

Implementation Inheritance can inherit Implementation Inheritance can inherit some of its functionality from another some of its functionality from another component component

The problem is this is not clearly defined. If The problem is this is not clearly defined. If a parent or child component is changed it a parent or child component is changed it my mess up other components related to my mess up other components related to it.it.

Page 23: COM vs. CORBA

COM: ProblemsCOM: Problems

Cost for using COM on Microsoft products Cost for using COM on Microsoft products is very low, but for non Microsoft products is very low, but for non Microsoft products is very expensive.is very expensive.

COM doesn’t make distributed any easier COM doesn’t make distributed any easier it just redirects where this process is it just redirects where this process is handled.handled.

Page 24: COM vs. CORBA

CORBACORBA

It is maintained by the Object It is maintained by the Object Management Group, which is comprised Management Group, which is comprised of nearly all the major software of nearly all the major software developers.developers.

Page 25: COM vs. CORBA

CORBACORBA

CORBA handles network programming tasks CORBA handles network programming tasks such as object registration, location, and such as object registration, location, and activation, request demultiplexing, framing and activation, request demultiplexing, framing and error-handling, etc.error-handling, etc.

Each service that an object provides is given by Each service that an object provides is given by its interface which is defined by Interface its interface which is defined by Interface Definition Language (IDL). Definition Language (IDL).

Object Request Broker (ORB) handles requests Object Request Broker (ORB) handles requests and delivers them from objects to the clients.and delivers them from objects to the clients.

Page 26: COM vs. CORBA

CORBA: ORBCORBA: ORB

The ORB is a distributed service that The ORB is a distributed service that sends requests to remote objects, finds sends requests to remote objects, finds that object and waits for it’s reply and that object and waits for it’s reply and gives it to the client.gives it to the client.

The client is hidden from this process as it The client is hidden from this process as it same method as calling a local object.same method as calling a local object.

Page 27: COM vs. CORBA

CORBA: ORBCORBA: ORB

The ORB also maintains the Interface The ORB also maintains the Interface Repository (IR) which contains the IDL.Repository (IR) which contains the IDL.

On the server side ORB regulates the On the server side ORB regulates the running objects by turning on or off running objects by turning on or off programs as they are needed.programs as they are needed.

Page 28: COM vs. CORBA
Page 29: COM vs. CORBA

CORBA: DIICORBA: DII

The Dynamic Invocation Interface are The Dynamic Invocation Interface are interpreted at run time an not compiled. interpreted at run time an not compiled.

This allows the invocation of an operation This allows the invocation of an operation of a new type.of a new type.

There must be a way to retrieve the There must be a way to retrieve the necessary information to use the DII.necessary information to use the DII.

Page 30: COM vs. CORBA

CORBA: StubsCORBA: Stubs

Stubs are what the client uses to interface Stubs are what the client uses to interface with the ORB.with the ORB.

A client might invoke hundreds of A client might invoke hundreds of instances but a new stub is created when instances but a new stub is created when the instance is of a different typethe instance is of a different type

Page 31: COM vs. CORBA

CORBA: ORB InterfaceCORBA: ORB Interface

It provides access to every ORB service It provides access to every ORB service except for client requests which go except for client requests which go through the stubs and object requests through the stubs and object requests which are done through the POA.which are done through the POA.

Page 32: COM vs. CORBA

CORBA: ORB ImplementaionCORBA: ORB Implementaion

The client-side architecture is simpleThe client-side architecture is simpleThis allows for all scalability options are on This allows for all scalability options are on

the server side.the server side.The ORB doesn’t require code to be in a The ORB doesn’t require code to be in a

specific spot so that ORBs can spread specific spot so that ORBs can spread their work across vast networks or keep it their work across vast networks or keep it all in one computer.all in one computer.

Page 33: COM vs. CORBA

CORBA: InteroperabilityCORBA: Interoperability

CORBA specifies an API to use which CORBA specifies an API to use which creates the ability to use code with creates the ability to use code with different vendor’s with little effort. different vendor’s with little effort.

CORBA 2.0 added IIOP network protocol CORBA 2.0 added IIOP network protocol that allowed communication of CORBA that allowed communication of CORBA products over TCP/IP connections.products over TCP/IP connections.

IIOP is used by other systems so that IIOP is used by other systems so that interoperability is possible with non-interoperability is possible with non-CORBA systems.CORBA systems.

Page 34: COM vs. CORBA
Page 35: COM vs. CORBA

CORBA: ServicesCORBA: Services

These services support the distributed These services support the distributed objects. objects.

They operate on the ORB and have IDL They operate on the ORB and have IDL interfacesinterfaces

These include naming, events, These include naming, events, transactions, properties, etc.transactions, properties, etc.

Page 36: COM vs. CORBA

CORBA: IDLCORBA: IDL

The Interface Definition Language doesn’t have The Interface Definition Language doesn’t have a programming language but it maps to popular a programming language but it maps to popular programming languages.programming languages.

The IDL defines the interface very strictly so that The IDL defines the interface very strictly so that it can easily pass requests between different it can easily pass requests between different programming language objects.programming language objects.

It is so strict that even if an ORD is different is It is so strict that even if an ORD is different is can still easily communicatecan still easily communicate

The other objects are encapsulated so that a The other objects are encapsulated so that a client can’t see other objects code or data.client can’t see other objects code or data.

Page 37: COM vs. CORBA
Page 38: COM vs. CORBA

CORBA: ProblemsCORBA: Problems

CORBA calls are all the same so the CORBA calls are all the same so the simplest call must be the same as the simplest call must be the same as the most complex call. There is no limit on the most complex call. There is no limit on the complexity.complexity.

Since CORBA is regulated by the very Since CORBA is regulated by the very large OMG, it is difficult to create large OMG, it is difficult to create standards because of the many different standards because of the many different opinions.opinions.

Page 39: COM vs. CORBA

Questions?Questions?