COM vs. CORBA Integration via middleware By: Don Villanueva CS 524 Software Engineering II Fall II 2007 – Sheldon X. Liang, Ph. D.

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

Web Service Architecture
COM vs. CORBA.
Database Architectures and the Web
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Distributed Systems Architectures
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Chapter 13 Physical Architecture Layer Design
Middleware Technologies compiled by: Thomas M. Cosley.
Chapter 9: The Client/Server Database Environment
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.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
Chapter 9: Moving to Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Lecture The Client/Server Database Environment
The Client/Server Database Environment
Enterprise Resource Planning
Chapter 9 Elements of Systems Design
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
Database Architectures and the Web Session 5
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Web Services Architecture1 - Deepti Agarwal. Web Services Architecture2 The Definition.. A Web service is a software system identified by a URI, whose.
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.
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.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
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.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Slide 1 Physical Architecture Layer Design Chapter 13.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Architecture of Message Oriented Middleware [1]
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
XML and Web Services (II/2546)
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
3-Tier Architecture Chandrasekaran Rajagopalan Cs /01/99.
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.
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.
Kemal Baykal Rasim Ismayilov
CSIT 220 (Blum)1 Remote Procedure Calls Based on Chapter 38 in Computer Networks and Internets, Comer.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Internet and Distributed Application Services
The Client/Server Database Environment
Chapter 9 – RPCs, Messaging & EAI
Chapter 9: The Client/Server Database Environment
CORBA Within the OS & Its Implementation
#01 Client/Server Computing
Ch > 28.4.
Inventory of Distributed Computing Concepts and Web services
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Inventory of Distributed Computing Concepts
Component--based development
Quality Assurance for Component-Based Software Development
#01 Client/Server Computing
Presentation transcript:

COM vs. CORBA Integration via middleware By: Don Villanueva CS 524 Software Engineering II Fall II 2007 – Sheldon X. Liang, Ph. D

Sources Code Complete by Steve McConnell Code Complete by Steve McConnell Classical and Object-Oriented Software Engineering 7 th Ed by Stephen R. Schach Classical and Object-Oriented Software Engineering 7 th Ed by Stephen R. Schach

Middleware Middleware is computer software that connects software components or applications. The software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. This technology evolved to provide for interoperability in support of the move to client/server architecture. It is used most often to support complex, distributed applications. It includes web servers, application servers, content management systems, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service- oriented architecture. Middleware is computer software that connects software components or applications. The software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. This technology evolved to provide for interoperability in support of the move to client/server architecture. It is used most often to support complex, distributed applications. It includes web servers, application servers, content management systems, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service- oriented architecture.software componentsinteroperabilitydistributed applicationsweb serversapplication servers content management systemsXMLSOAPWeb servicesservice- oriented architecturesoftware componentsinteroperabilitydistributed applicationsweb serversapplication servers content management systemsXMLSOAPWeb servicesservice- oriented architecture While core kernel functionality of course can only be provided by the operating system itself, some functionality previously provided by separately sold middleware is now integrated in operating systems. The typical example is the TCP/IP stack for telecommunications, nowadays included in virtually every operating system. While core kernel functionality of course can only be provided by the operating system itself, some functionality previously provided by separately sold middleware is now integrated in operating systems. The typical example is the TCP/IP stack for telecommunications, nowadays included in virtually every operating system.

Middleware definition Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications so that they can exchange data. Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications so that they can exchange data. Enterprise application integration Enterprise application integration ObjectWeb defines middleware as: "The software layer that lies between the operating system and the applications on each side of a distributed computing system in a network."[1] ObjectWeb defines middleware as: "The software layer that lies between the operating system and the applications on each side of a distributed computing system in a network."[1]operating system[1]operating system[1]

Organizations Oracle and IBM are the most important vendors in the middleware software. In addition to the existing vendors updating their wares to address the newly expanded vision, vendors such as TIBCO, Mercator Software, Crossflo, Vitria and webMethods were specifically founded to provide Web-oriented middleware tools. Groups such as the Apache Software Foundation and the ObjectWeb Consortium encourage the development of open source middleware. Oracle and IBM are the most important vendors in the middleware software. In addition to the existing vendors updating their wares to address the newly expanded vision, vendors such as TIBCO, Mercator Software, Crossflo, Vitria and webMethods were specifically founded to provide Web-oriented middleware tools. Groups such as the Apache Software Foundation and the ObjectWeb Consortium encourage the development of open source middleware. TIBCOMercator SoftwareCrossfloVitria webMethodsWebApache Software FoundationObjectWeb Consortiumopen source TIBCOMercator SoftwareCrossfloVitria webMethodsWebApache Software FoundationObjectWeb Consortiumopen source

Types of Middleware Remote Procedure Call (RPCs) — Client makes calls to procedures running on remote systems. Can be asynchronous or synchronous. Remote Procedure Call (RPCs) — Client makes calls to procedures running on remote systems. Can be asynchronous or synchronous. Remote Procedure Callasynchronoussynchronous Remote Procedure Callasynchronoussynchronous Message Oriented Middleware (MOM) — Messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing. Message Oriented Middleware (MOM) — Messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing. Message Oriented Middleware Message Oriented Middleware Object Request Broker (ORB) — This type of middleware makes it possible for applications to send objects and request services in an object-oriented system. Object Request Broker (ORB) — This type of middleware makes it possible for applications to send objects and request services in an object-oriented system. Object Request Broker Object Request Broker SQL-oriented Data Access — middleware between applications and database servers. SQL-oriented Data Access — middleware between applications and database servers. SQL-oriented Data Access SQL-oriented Data Access Other sources include these additional classifications: Other sources include these additional classifications: Transaction processing (TP) monitors — Provides tools and an environment to develop and deploy distributed applications.[3] Transaction processing (TP) monitors — Provides tools and an environment to develop and deploy distributed applications.[3] Transaction processing (TP) monitorsdeploydistributed applications[3] Transaction processing (TP) monitorsdeploydistributed applications[3] Application servers — software installed on a computer to facilitate the serving (running) of other applications. Application servers — software installed on a computer to facilitate the serving (running) of other applications. Application servers Application servers

What is COM? Full name: Common Object Model Full name: Common Object Model Microsoft vendor-specific binary standard for objects/components. Microsoft vendor-specific binary standard for objects/components. More information: More information:

COM in depth COM is a framework for creating and using objects. COM is a framework for creating and using objects. COM, the Component Object Model delivers on the long promised benefits of object technology: code reuse and off the shelf components. COM, the Component Object Model delivers on the long promised benefits of object technology: code reuse and off the shelf components.

How does COM do this? By providing a standard way to create and use components with a wide choice of tools, languages and applications. By providing a standard way to create and use components with a wide choice of tools, languages and applications.

How are COM services provided? COM services are provided in a standard way, whether those services are required within a single running process, within two different processes on the same machine, or on two different processes across a network using DCOM. COM services are provided in a standard way, whether those services are required within a single running process, within two different processes on the same machine, or on two different processes across a network using DCOM. COM is about choice; it provides the choice of the highest volume languages and tools available, as well as the largest base of applications. COM is about choice; it provides the choice of the highest volume languages and tools available, as well as the largest base of applications. COM also provides choice in the area of security, as it provides a common interface (SSPI) where various security providers can be plugged in. COM also provides choice in the area of security, as it provides a common interface (SSPI) where various security providers can be plugged in.

More on COM The COM specification has been complete since the end of Since then additions have been made, such as DCOM, but applications that worked then still work now. COM provides the major elements necessary for a technology to succeed: The COM specification has been complete since the end of Since then additions have been made, such as DCOM, but applications that worked then still work now. COM provides the major elements necessary for a technology to succeed: a solid specification, a solid specification, a single reference implementation which has been ported to multiple platforms. a single reference implementation which has been ported to multiple platforms. COM is everywhere; it is found on millions of systems worldwide and is a key part of most Microsoft software. COM is everywhere; it is found on millions of systems worldwide and is a key part of most Microsoft software.

What is CORBA? Full Name: Common Object Request Broker Architecture Full Name: Common Object Request Broker Architecture CORBA is a Middleware standard specified by the Object Management Group. CORBA is a Middleware standard specified by the Object Management Group. Quoting from - Quoting from - "The Common Object Request Broker Architecture (CORBA), is the Object Management Group's answer to the need for interoperability among the rapidly proliferating number of hardware and software products available today. Simply stated, CORBA allows applications to communicate with one another no matter where they are located or who has designed them. CORBA 1.1 was introduced in 1991 by Object Management Group and defined the InterfaceDefinitionLanguage and the ApplicationProgrammingInterfaces that enable client/server object interaction within a specific implementation of an Object Request Broker (ORB). CORBA 2.0, adopted in December of 1994, defines true interoperability by specifying how ORBs from different vendors can interoperate." "The Common Object Request Broker Architecture (CORBA), is the Object Management Group's answer to the need for interoperability among the rapidly proliferating number of hardware and software products available today. Simply stated, CORBA allows applications to communicate with one another no matter where they are located or who has designed them. CORBA 1.1 was introduced in 1991 by Object Management Group and defined the InterfaceDefinitionLanguage and the ApplicationProgrammingInterfaces that enable client/server object interaction within a specific implementation of an Object Request Broker (ORB). CORBA 2.0, adopted in December of 1994, defines true interoperability by specifying how ORBs from different vendors can interoperate."InterfaceDefinitionLanguageApplicationProgrammingInterfaceInterfaceDefinitionLanguageApplicationProgrammingInterface

Strengths of CORBA Cross-platform and multi-vendor. Very strong support in Unix and mainframe systems. Cross-platform and multi-vendor. Very strong support in Unix and mainframe systems. Is an industry standard. Is an industry standard. Some really excellent implementations are available for free. Some really excellent implementations are available for free. Many free versions are OpenSource Many free versions are OpenSourceOpenSource A wider range of programming language bindings. A wider range of programming language bindings. ALL objects/interfaces can be called dynamically at run time through a data-driven interface: CORBA DII (DynamicInvocationInterface?). ALL objects/interfaces can be called dynamically at run time through a data-driven interface: CORBA DII (DynamicInvocationInterface?).? Multiple inheritance in interfaces. (COM has single inheritance between interfaces, but discourages its use, favoring multiple interfaces instead.) Multiple inheritance in interfaces. (COM has single inheritance between interfaces, but discourages its use, favoring multiple interfaces instead.)

Strengths of COM Strong versioning support of interfaces; one can "easily" support upward and/or backward compatible interfaces on an object. Strong versioning support of interfaces; one can "easily" support upward and/or backward compatible interfaces on an object. Microsoft backs it. They have lots of money, and widely used tools (on Windows platforms). MS is now encouraging use of.NET/SOAP, but COM is still supported. Microsoft backs it. They have lots of money, and widely used tools (on Windows platforms). MS is now encouraging use of.NET/SOAP, but COM is still supported. Price: Comes with Windows -- and so is perceived as being "free" on that platform. Price: Comes with Windows -- and so is perceived as being "free" on that platform. Tool support (like within VB, VC++, J++) Tool support (like within VB, VC++, J++) More flexible pointers; CORBA object references can only be to whole objects (as in Java), whereas COM pointers can point into the middle of structures (as in C++). More flexible pointers; CORBA object references can only be to whole objects (as in Java), whereas COM pointers can point into the middle of structures (as in C++). Strong definition of object identity: COM has a clearly-defined way to determine if two different interface pointers really refer to the same object; even if the two interfaces aren't related to each other in any way by inheritance. Strong definition of object identity: COM has a clearly-defined way to determine if two different interface pointers really refer to the same object; even if the two interfaces aren't related to each other in any way by inheritance.

Summary Windows or UNIX Windows or UNIX Java or Microsoft Java or Microsoft Internet Explorer or Firefox Internet Explorer or Firefox IIS or Apache IIS or Apache List goes on and on……. List goes on and on…….