COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department.

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

COM vs. CORBA.
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 Systems Architectures
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Web Services Members Troy Tony Ellen Vincent. Web Services What is it Why is it useful What have been solved Demo Alternative technologies Question.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 COM/DCOM n Part of Project Presentation (Concept Outline)
Middleware Technologies compiled by: Thomas M. Cosley.
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.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
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.
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.
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
Dynamic Invocation Interface Alternative to using IDL stubs Object cannot distinguish between the two. How is DII different for the programmer?
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.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #23.
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.
Seminarium on Component-based Software Engineering Feraaz Imami LIACS – Leiden University Fall 2005 Component Object Model (COM)
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
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 Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 1

Computer Science at Azusa Pacific University What are They? COM: The Component Object Model is a software architecture that allows programs to be built from parts from different software producers. 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). CORBA: The Common Object Request Broker Architecture is an open distributed object computing infrastructure that is being standardized by the Object Management Group (OMG). September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 2

Computer Science at Azusa Pacific University COM Designed by Microsoft in 1993 Designed by Microsoft in 1993 Primarily used with Windows Primarily used with Windows It is being replaced with Microsoft.NET although it can be used with.NET It is being replaced with Microsoft.NET although it can be used with.NET September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 3

Computer Science at Azusa Pacific University COM COM provides the framework for interoperability and reusability of distributed objects. COM provides the framework for interoperability and reusability of distributed objects. Programmers can use different components from different vendors that communicate through COM. Programmers can use different components from different vendors that communicate through COM. Makes maintaining systems easier. Makes maintaining systems easier. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 4

Computer Science at Azusa Pacific University COM The main technologies that operate on the COM system are OLE, ActiveX, and MTS. 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. OLE aspects include compound documents, custom controls, inter-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 COM to be used in enterprise solutions. MTS provides advanced features to allow COM to be used in enterprise solutions. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 5

Computer Science at Azusa Pacific University COM September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 6

Computer Science at Azusa Pacific University What does COM do? Defines a binary standard for component interoperability Defines a binary standard for component interoperability Is Language-independent Is Language-independent Can support multiple platforms Can support multiple platforms Allows for component systems to grow Allows for component systems to grow Is extensible Is extensible September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 7

Computer Science at Azusa Pacific University What does COM do? Communications between components, even across process and networks. (dcom) Communications between components, even across process and networks. (dcom) Shared memory management between components Shared memory management between components Error and status reporting Error and status reporting Dynamic loading of components Dynamic loading of components September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 8

Computer Science at Azusa Pacific University How does COM do it? The Binary structure The Binary structure If the compiler can reduce language structures down to the specified binary representation. If the compiler can reduce language structures down to the specified binary representation. This allows the communication at the binary level This allows the communication at the binary level September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 9

Computer Science at Azusa Pacific University Vtables COM defines a standard way to lay out virtual function tables in memory and a standard way to call functions through 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. 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. This allows the sharing of resources by using multiples of an object, therefore reducing the memory requirement. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 10

Computer Science at Azusa Pacific University Vtable September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 11

Computer Science at Azusa Pacific University COM Interfaces An interface is not a class, it is just a group of related functions and is how components communicate. 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. 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. 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 Interfaces never change, to make sure that all version can work together. If a new components is added it requires a new interface September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 12

Computer Science at Azusa Pacific University COM interface benefits The functionality in applications to grow over time 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. 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. This also helps guarantees backward compatibility because of unchangeable interfaces. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 13

Computer Science at Azusa Pacific University 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. 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. It allows for fast negotiation of interfaces because it is done in groups. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 14

Computer Science at Azusa Pacific University COM Interface benefits Interface reusability allows for code to be reused easily and makes it easy for programmers to remember a specific interface. 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. Allows for multiple higher level languages to be used. It breaks down the languages into a binary standard. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 15

Computer Science at Azusa Pacific University 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 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. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 16

Computer Science at Azusa Pacific University 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 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. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 17

Computer Science at Azusa Pacific University COM Client/Server Model The interaction between components creates a 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. 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. 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. Clients can also represent themselves and act as a peer to peer service. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 18

Computer Science at Azusa Pacific University COM Client/Server Model There are 3 different types of servers There are 3 different types of servers “in-process” means that the requested information is in the same process “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 “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. “remote” means that the component is on a different machine on the network. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 19

Computer Science at Azusa Pacific University COM: IUnknown IUnkown is a special interface made up of AddRef, Release, and QueryInterface. IUnkown is a special interface made up of AddRef, Release, and QueryInterface. AddRef and Release keep track of the objects connected to the component. 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. QueryInterface allows clients to determine if it can use a given interface with a component. It also retrieves the interface pointers. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 20

Computer Science at Azusa Pacific University COM: COL The Component Object Library contains much of the work of the COM system. The Component Object Library contains much of the work of the COM system. It maintains all of the GUID’s It maintains all of the GUID’s It handles loading requested components by calling what the component needs. It handles loading requested components by calling what the component needs. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 21

Computer Science at Azusa Pacific University COM: Problems Implementation Inheritance can inherit some of its functionality from another component 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. 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. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 22

Computer Science at Azusa Pacific University COM: Problems Cost for using COM on Microsoft products is very low, but for non Microsoft products is very expensive. 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. COM doesn’t make distributed any easier it just redirects where this process is handled. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 23

Computer Science at Azusa Pacific University CORBA It is maintained by the Object Management Group, which is comprised of nearly all the major software developers. It is maintained by the Object Management Group, which is comprised of nearly all the major software developers. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 24

Computer Science at Azusa Pacific University CORBA CORBA handles network programming tasks such as object registration, location, and activation, request demultiplexing, framing and error-handling, etc. 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). 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. Object Request Broker (ORB) handles requests and delivers them from objects to the clients. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 25

Computer Science at Azusa Pacific University 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 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. The client is hidden from this process as it same method as calling a local object. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 26

Computer Science at Azusa Pacific University CORBA: ORB The ORB also maintains the Interface Repository (IR) which contains the IDL. 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. On the server side ORB regulates the running objects by turning on or off programs as they are needed. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 27

Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 28

Computer Science at Azusa Pacific University CORBA: DII The Dynamic Invocation Interface are interpreted at run time an not compiled. The Dynamic Invocation Interface are interpreted at run time an not compiled. This allows the invocation of an operation of a new type. 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. There must be a way to retrieve the necessary information to use the DII. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 29

Computer Science at Azusa Pacific University CORBA: Stubs Stubs are what the client uses to interface with the ORB. 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 A client might invoke hundreds of instances but a new stub is created when the instance is of a different type September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 30

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. 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. Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 31

Computer Science at Azusa Pacific University CORBA: ORB Implementaion The client-side architecture is simple The client-side architecture is simple This allows for all scalability options are on the server side. 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. 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. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 32

Computer Science at Azusa Pacific University CORBA: Interoperability CORBA specifies an API to use which creates the ability to use code with different vendor’s with little effort. 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. 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. IIOP is used by other systems so that interoperability is possible with non-CORBA systems. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 33

Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 34

Computer Science at Azusa Pacific University CORBA: Services These services support the distributed objects. These services support the distributed objects. They operate on the ORB and have IDL interfaces They operate on the ORB and have IDL interfaces These include naming, events, transactions, properties, etc. These include naming, events, transactions, properties, etc. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 35

Computer Science at Azusa Pacific University CORBA: IDL The Interface Definition Language doesn’t have a programming language but it maps to popular programming languages. 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. 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 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. The other objects are encapsulated so that a client can’t see other objects code or data. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 36

Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 37

Computer Science at Azusa Pacific University 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. 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. Since CORBA is regulated by the very large OMG, it is difficult to create standards because of the many different opinions. September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 38

Questions? Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, 39