Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications



Similar documents
Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Infrastructure that supports (distributed) componentbased application development

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Middleware Lou Somers

Overview of CORBA 11.1 I NTRODUCTION TO CORBA Object services 11.5 New features in CORBA Summary

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Distributed Objects and Components

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Web Services. Copyright 2011 Srdjan Komazec

Architecture of the CORBA Component Model CORBA 3.0

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

Middleware: Past and Present a Comparison

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

Chapter 2: Enterprise Applications from a Middleware Perspective

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

CORBA. BY VIRAJ N BHAT

Distributed Network Management Using SNMP, Java, WWW and CORBA

Chapter 5 Application Server Middleware

XII. Distributed Systems and Middleware. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

How To Understand The Concept Of A Distributed System

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Interface Definition Language

Introduction to Distributed Computing using CORBA

Elements of Advanced Java Programming

Chapter 2: Remote Procedure Call (RPC)

White paper. IBM WebSphere Application Server architecture

CORBA and object oriented middleware. Introduction

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Event-based middleware services

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1

System types. Distributed systems

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Distributed Systems. Outline. What is a Distributed System?

Implementing Java Distributed Objects with JDBC

Distributed Internet Applications - DIA. Principles of Object-Oriented Middleware

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

What Is the Java TM 2 Platform, Enterprise Edition?

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

Principles and characteristics of distributed systems and environments

The distributed object computing paradigm: concepts and applications

Service-Oriented Architecture and Software Engineering

COM 440 Distributed Systems Project List Summary

Chapter 16 Distributed Processing, Client/Server, and Clusters

CORBA Component Model(CCM)

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI)

How To Write A Microsoft.Net Event Management System (Mnet)

Java and Distributed Object Models: An Analysis

Seamless Integration of Distributed Real Time Monitoring and Control Applications Utilising Emerging Technologies

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Java-technology based projects

Report of the case study in Sistemi Distribuiti A simple Java RMI application

Service Oriented Architecture

How To Write A Network Operating System For A Network (Networking) System (Netware)

Distributed Systems Architectures

Introduction into Web Services (WS)

JavaPolis 2004 Middleware and Web Services Security

Introduction to CORBA

System Models for Distributed and Cloud Computing

Chapter 7, System Design Architecture Organization. Construction. Software

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

B) Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Object-Oriented Middleware for Distributed Systems

Mobile Computing Middleware

B. WEB APPLICATION ARCHITECTURE MODELS

Sun Microsystems Inc. Java Transaction Service (JTS)

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Distribution transparency. Degree of transparency. Openness of distributed systems

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA

Virtual machine interface. Operating system. Physical machine interface

Simplifying Processes Interoperability with a Service Oriented Architecture

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

VisiBroker Configuration Reference

Service Oriented Architectures

Transcription:

Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1

Chapter 6. CORBA-based Architecture Part 6.1 Introduction to CORBA 1. Introduction 2. Distributed Architecture 3. Middleware Systems 4. CORBA Architecture 2

1. Introduction CORBA is a software standard that is defined and maintained by the Object Management Group (OMG). The OMG: -Founded in 1989 by eight companies as a non-profit organization. -The consortium now includes over 800 members. -Charter: establishment of industry guidelines and detailed object management specifications to provide a common framework for application development. OMG produces specifications, not implementations -Implementations of OMG specifications can be found on over 50 operating systems CORBA is the acronym for Common Object Request Broker Architecture. It consists of a standard framework for developing and maintaining distributed software systems. Specifically, it provides -A RPC mechanism allowing the invocation of operations across different programming languages, hardware, and operating system platforms, achieving portability and interoperability. -A component model, the CORBA Component Model (CCM), for reusable component development. 3

2. Distributed Architecture Definition A distributed architecture is an architecture supporting the development of applications and services that can exploit a physical architecture consisting of multiple, autonomous processing elements. Those elements do not share primary memory but cooperate by sending messages over the network. Example-Distributed System Key Characteristics: Multiple autonomous components Components are not shared by all users Resources may not be accessible Software runs in concurrent processes on different processors Multiple points of control Multiple points of failure 4

Underlying Issues -Some of the key challenges involved in designing, implementing and operating a distributed system include: Heterogeneity -Heterogeneous hardware, OS, languages, protocols etc. Concurrency -Resource sharing and concurrent access to data pose the issue of data integrity. Failure -Independent failure: often we want the system to keep working after one or more have failed. -Unreliable communication: connections may be unavailable; messages may be lost. Insecure communication -The interconnections among the computers may be exposed to unauthorized eavesdropping and message modification. Costly Communication -The interconnections among the computers usually provide lower bandwidth, higher latency and higher cost communication compared to independent processes in a single 5 machine

Transparency Distributed systems should be perceived by users and application programmers as a whole rather than as a heterogeneous collection of cooperating components: this is referred to as transparency. -Transparency has different dimensions that were identified by ANSA as part of the International Standard of Open Distributed Processing (ODP). -These represent various properties that distributed systems should have. Dimensions of Transparency in Distributed Systems Scalability Transparency Perform ance Transparency Failure Transparency M igration Transparency R eplication Transparency C oncurrency Transparency Access Transparency Location Transparency 6

3. Middleware Systems Definition: Middleware is software that enables interprocess communication. It provides an API that isolates the application code from the underlying network communication formats and protocols (FAPs). -Middleware systems implement the various forms of distribution transparencies by creating the illusion of unity and homogeneity within the network, what is called in other words the single-system image. They act as glue between autonomous components and processes (e.g., clients, server) by providing generic services on top of the OS. Com ponent Com ponent Middleware Network Com ponent O perating SystemCom ponent Com ponent Com ponent Hardware Middleware Middleware Network Operating System Host Hardware Com ponent Network O perating Com ponent System Middleware Hardware Host Network Network O perating System Host Hardware Host 7

-There are three kinds of middleware systems: transaction-oriented middleware, message-oriented middleware, and object-oriented middleware. Transaction-oriented middleware supports distributed computing involving database applications. Message-oriented middleware supports reliable, asynchronous communications among distributed components. Object-oriented middleware systems are based on object-oriented paradigm, and primarily supports synchronous communications among distributed components. -The most popular object-oriented middleware paradigms include CORBA, DCOM, DotNET, and EJB (which is based on RMI). All these middleware systems, also referred to as Object-Oriented middleware, are based on the Remote Procedure Call (RPC) framework foundation. They extend RPC framework by introducing object-oriented mechanisms. 8

Example - Middleware Example - Distributed Middleware with CORBA 9

Remote Procedure Call (RPC) -RPC allows the invocation of operations across different hardware and operating system platforms. Provide the same mechanism as local procedure call but at the interprocess level. Support a common Interface Definition Language (IDL). -The RPC mechanism is provided by a RPC software, which handles transparently all the steps involved. The functionality of the RPC software include: Location of the server functions, and and concurrent requests. Parameters passing and data representation. Failure management Security management -The RPC software provides an implementation of the session and presentation layer. Note that the transport layer (below) is implemented as a socket. 10

-The presentation layer implementation enables data conversion and formatting (e.g., marshalling/unmarshalling). -The session layer implementation enables clients to locate RPC servers statically or dynamically, and activates or deactivates RPC servers when requests arrive. IDL With OO middleware such as CORBA: RPC Presentation layer -Heterogeneous data conversion -Marshalling/unmarshalling (client and server stubs) -The presentation layer fulfills the same functions as corresponding layer for RPC. It is also in charge of mapping object references to suitable format for the transport layer. -The session layer is in charge of mapping object references to hosts, activating and deactivating objects, executing the requested services, and synchronizing client and server. Session layer -Server location (portmap daemon) -Server activation/deactivation (inetd daemon) Transport layer 11

RPC Mechanism Network Directory Service Client Server 2. locate server (Start Up) 1. publish (Start Up) 3. call function (Client Application) 6. Receive RPC (Server runtime) 4. pack arguments (Client stub) 5. Make RPC (Client runtime) RPC 7. unpack arguments (Server stub) 8. Execute function (Server application) 12

4. CORBA Architecture CORBA in a Nutshell In CORBA the services that an object provides are expressed in a contract that serves as the interface between it and the rest of the system. The Object interface is expressed using a special language named Interface Definition Language (IDL). For objects to communicate across the network, they need a communication infrastructure named Object Request Broker (ORB). Client IDL stub Object Implementation IDL skeleton Request Object Request Broker (ORB) Both client and object implementation are isolated from the ORB by an IDL interface. Clients see only the object s interface, never the implementation. To communicate, the request does not pass directly from client to object implementation; 13 instead every request is passed to the client s local ORB, which manages it.

CORBA Reference Model Architecture -The CORBA standard relies on a reference model named the Object Management Architecture (OMA). A p p lic a tio n O b je c t s C O R B A D o m a in s C O R B A F a c ilitie s O b je c t R e q u e s t B r o k e r (O R B ) C O R B A S e r v ic e s - A typical CORBA implementation includes: An Object Request Broker (ORB) implementation An Interface Definition Language (IDL) compiler Implementations of Common Object Services (COS), also called CORBA Services Common Frameworks, also called CORBA facilities An Internet Inter ORB Protocol (IIOP) implementation 14

Interface Definition Language (IDL) -IDL provides a programming language neutral way to define how a service is implemented. It is an intermediary language between specification languages such as the UML and programming languages such as C, C++ etc. It provides an abstract representation of the interfaces that a client will use and a server will implement. Clients and object implementation are then isolated by three mechanisms: an IDL stub on the client end, an ORB, and a corresponding skeleton on the object implementation end. 15

Object Request Broker -The interface the client sees is completely independent of where the object is located, what programming language it is implemented in, or any other aspect that is not reflected in the object s interface. -The ORB is responsible for: finding the object implementation for the request, preparing the object implementation to receive the request, communicating the data making up the request. 16

Structure of Object Request Interfaces 17

Object Adapter An object adapter is the primary means for an object implementation to access ORB services such as object reference generation. Object adapters are responsible for the following functions: Generation and interpretation of object references Method invocation Security of interactions Object and implementation activation and deactivation Mapping object references to the corresponding object implementations Registration of implementations 18

Common Object Services (COS) -Up to 15 services are currently available that assist the ORB. They are defined on top of the ORB, as standard CORBA objects with IDL interfaces Factory NamingContext EventChannel ORB -Popular services include: Naming Service: provides a way for CORBA clients (and servers) to find objects on the network. Event Service: stores and delivers events sent by clients or servers to their target objects. Security Service: provides a means to authenticate messages, authorize access to objects, and provide secure communications. Transaction Service: defines a means to control an action against a database or other subsystem. 19

ORB Interoperability Architecture -One of the goals of the CORBA specification is that client and object implementations are portable. -Interoperability is more important in a distributed system than portability. -CORBA 2.0 added interoperability as a goal in the specification, under the form of interoperability protocols: Inter-ORB Bridge Support General Inter-ORB Protocol (GIOP) Internet Inter-ORB Protocol (IIOP) Environment-Specific Inter-ORB Protocols (ESIOPs) 20

Inter-ORB Bridge Support -The role of a bridge is to ensure that content and semantics are mapped from the form appropriate to one ORB to that of another, so that users of any given ORB only see their appropriate content and semantics. -The General Inter-ORB Protocol (GIOP) specifies a standard transfer syntax (low-level data representation) and a set of message formats for communications between ORBs. The protocol is specifically built for ORB to ORB interactions and is designed to work directly over any connection-oriented transport protocol that meets a minimal set of assumptions. -IIOP (Internet Inter-ORB Protocol) is a TCP/IP implementation of GIOP. IIOP is used in other systems that do not even attempt to provide the CORBA API (e.g, RMI over IIOP, EJB etc.) Because they all use IIOP, programs written to these APIs can interoperate with each other and with CORBA programs. 21

Examples of CORBA Products ORB Description Orbacus A popular Java and C++ ORB from Iona Technologies WebSphere Netscape Communicator Sun Java 2 Platform A popular application server with an ORB from IBM Netscape browsers have a version of VisiBroker embedded in them Provides an ORB and two CORBA programming models: -RMI programming model -IDL programming model Examples ORBs implementations Client- and Implementation-resident ORB Server-based ORB System-based ORB Library-based ORB 22