COM vs. CORBA.

Slides:



Advertisements
Similar presentations
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Advertisements

Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
CORBA Architecture Nitin Prabhu. Outline CORBA Object Model CORBA Architecture Static Invocation Dynamic Invocation CORBA Communication Model.
Architectural Pattern: Broker
CORBA - Common Object Request Broker Architecture.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Distributed Object Computing Weilie Yi Dec 4, 2001.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Hadar Vorenshtein & Meital Levy Instructor yavgeni Rivkin.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
COM/DCOM Implementation Basics of: Object creation and access Object Reuse Interface referencing.
Introduction to COM and DCOM Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
Information Management NTU Interprocess Communication and Middleware.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Abhishek Bachchan Vishal Patangia
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
Dynamic Invocation Interface Alternative to using IDL stubs Object cannot distinguish between the two. How is DII different for the programmer?
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
Common Object Request Broker Architecture (CORBA) The Common Object Request Broker Architecture (CORBA) is a specification of a standard architecture for.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Seminarium on Component-based Software Engineering Feraaz Imami LIACS – Leiden University Fall 2005 Component Object Model (COM)
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Topic 5: CORBA RMI Dr. Ayman Srour
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Java Distributed Computing
Component Object Model(COM)
Common Object Request Broker Architecture (CORBA)
Java Distributed Computing
Common object request broker
CORBA Alegria Baquero.
What is RMI? Remote Method Invocation
Distribution and components
Out-of-Process Components
Ch > 28.4.
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Interpreter Style Examples
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Component--based development
Quality Assurance for Component-Based Software Development
Out-of-Process Components
Copyright 1999 B.Ramamurthy
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

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. CORBA: The Common Object Request Broker Architecture is an open distributed object computing infrastructure that is being standardized by the Object Management Group (OMG).

COM Designed by Microsoft in 1993 Primarily used with Windows It is being replaced with Microsoft .NET although it can be used with .NET

COM COM provides the framework for interoperability and reusability of distributed objects. Programmers can use different components from different vendors that communicate through COM. Makes maintaining systems easier.

COM The main technologies that operate on the COM system are OLE, ActiveX, and MTS. OLE aspects include compound documents, custom controls, inter-application scripting, data transfer, etc. ActiveX allows programs to be web based. MTS provides advanced features to allow COM to be used in enterprise solutions.

COM

What does COM do? Defines a binary standard for component interoperability Is Language-independent Can support multiple platforms Allows for component systems to grow Is extensible

What does COM do? Communications between components, even across process and networks. (dcom) Shared memory management between components Error and status reporting Dynamic loading of components

How does COM do it? The Binary structure If the compiler can reduce language structures down to the specified binary representation. This allows the communication at the binary level

Vtables COM defines a standard way to lay out virtual function tables in memory and a standard way to call functions through vtables. Through this any language that can call functions through pointers can be used with COM. This allows the sharing of resources by using multiples of an object, therefore reducing the memory requirement.

Vtable

COM Interfaces An interface is not a class, it is just a group of related functions and is how components communicate. Clients can only use interface pointers which abstract all functions. The only way an interface can be used is if it has a pointer. A component usually has more than one interface because it has multiple services. Interfaces never change, to make sure that all version can work together. If a new components is added it requires a new interface

COM interface benefits The functionality in applications to grow over time All COM objects support QueryInterface which allows the making of more interfaces without changing the binary compatibility with existing code. This also helps guarantees backward compatibility because of unchangeable interfaces.

COM Interface benefits Fast interaction because the calls are simply two memory pointers. The difference between a COM call and direct function call is negligible. It allows for fast negotiation of interfaces because it is done in groups.

COM Interface benefits Interface reusability allows for code to be reused easily and makes it easy for programmers to remember a specific interface. Allows for multiple higher level languages to be used. It breaks down the languages into a binary standard.

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

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

COM Client/Server Model The interaction between components creates a Client/Server model The code that requests a function from a component is considered the client and the component that provides the function is considered the server. This allows for a crash at the server level but will keep the client operating. Clients can also represent themselves and act as a peer to peer service.

COM Client/Server Model There are 3 different types of servers “in-process” means that the requested information is in the same process “local” means that the location of the component is running on the same machine but in a different process “remote” means that the component is on a different machine on the network.

COM: IUnknown IUnkown is a special interface made up of AddRef, Release, and QueryInterface. AddRef and Release keep track of the objects connected to the component. QueryInterface allows clients to determine if it can use a given interface with a component. It also retrieves the interface pointers.

COM: COL The Component Object Library contains much of the work of the COM system. It maintains all of the GUID’s It handles loading requested components by calling what the component needs.

COM: Problems Implementation Inheritance can inherit some of its functionality from another component The problem is this is not clearly defined. If a parent or child component is changed it my mess up other components related to it.

COM: Problems Cost for using COM on Microsoft products is very low, but for non Microsoft products is very expensive. COM doesn’t make distributed any easier it just redirects where this process is handled.

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

CORBA CORBA handles network programming tasks such as object registration, location, and activation, request demultiplexing, framing and error-handling, etc. Each service that an object provides is given by its interface which is defined by Interface Definition Language (IDL). Object Request Broker (ORB) handles requests and delivers them from objects to the clients.

CORBA: ORB The ORB is a distributed service that sends requests to remote objects, finds that object and waits for it’s reply and gives it to the client. The client is hidden from this process as it same method as calling a local object.

CORBA: ORB The ORB also maintains the Interface Repository (IR) which contains the IDL. On the server side ORB regulates the running objects by turning on or off programs as they are needed.

CORBA: DII The Dynamic Invocation Interface are interpreted at run time an not compiled. This allows the invocation of an operation of a new type. There must be a way to retrieve the necessary information to use the DII.

CORBA: Stubs Stubs are what the client uses to interface with the ORB. A client might invoke hundreds of instances but a new stub is created when the instance is of a different type

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

CORBA: ORB Implementaion The client-side architecture is simple This allows for all scalability options are on the server side. The ORB doesn’t require code to be in a specific spot so that ORBs can spread their work across vast networks or keep it all in one computer.

CORBA: Interoperability CORBA specifies an API to use which creates the ability to use code with different vendor’s with little effort. CORBA 2.0 added IIOP network protocol that allowed communication of CORBA products over TCP/IP connections. IIOP is used by other systems so that interoperability is possible with non-CORBA systems.

CORBA: Services These services support the distributed objects. They operate on the ORB and have IDL interfaces These include naming, events, transactions, properties, etc.

CORBA: IDL The Interface Definition Language doesn’t have a programming language but it maps to popular programming languages. The IDL defines the interface very strictly so that it can easily pass requests between different programming language objects. It is so strict that even if an ORD is different is can still easily communicate The other objects are encapsulated so that a client can’t see other objects code or data.

CORBA: Problems CORBA calls are all the same so the simplest call must be the same as the most complex call. There is no limit on the complexity. Since CORBA is regulated by the very large OMG, it is difficult to create standards because of the many different opinions.

Questions?