CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
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.
The road to reliable, autonomous distributed systems
Architectural Pattern: Broker
CORBA - Common Object Request Broker Architecture.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Netprog CORBA Intro1 CORBA Common Object Request Broker Architecture Based partially on Notes by D. Hollinger and Java Network Programming and Distributed.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Distributed Service Architectures Yitao Duan 03/19/2002.
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
Middleware Technologies compiled by: Thomas M. Cosley.
II. Middleware for Distributed Systems
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Communication in Distributed Systems –Part 2
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Introduction to CORBA Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie Mellon.
CORBA Programming Using ACE/TAO
Common Object Request Broker Architecture (CORBA) CS-328.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
1 G52IWS: Distributed Computing Chris Greenhalgh.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
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.
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
Abhishek Bachchan Vishal Patangia
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
CORBA/IDL Common Object Resource Broker Architecture (CORBA) Interface Definition Language (IDL) Object Management Group (OMG) ( Specification.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Distributed Object Frameworks DCE and CORBA. Distributed Computing Environment (DCE) Architecture proposed by OSF Goal: to standardize an open UNIX envt.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
MiddlewareTech Corba Concepts - recap of RMI - ORB - CORBA
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
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.
CS551 - Lecture 11 1 CS551 Object Oriented Middleware (III) (Chap. 5 of EDO) Yugi Lee STB #555 (816)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
Distributed Objects and Remote Invocation Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts.
CORBA (Common Object Request Broker Architechture) Aniket Prabhune Varun Saini Balaprasuna Chennupati Lally Singh.
Enterprise Computing Distribution and components.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
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.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
CORBA: An Overview Mojtaba Hosseini.
Common Object Request Broker Architecture (CORBA)
CORBA Alegria Baquero.
Distribution and components
Inventory of Distributed Computing Concepts and Web services
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
1999년 10월 29일 김 정 선 한양대학교 공학대학 전자컴퓨터공학부
Copyright 1999 B.Ramamurthy
Presentation transcript:

CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection ORB Interoperability Run-time features, Fault-tolerance and Component Model CORBA 3.0 Part 1Part 2 Simple Application IDL to Programming Language mapping Advanced Programming Issues Appendix Look into the IDL

CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 2 Part 1. Overview Proprietary systems Networks with proprietary protocols Open systems and standardized communication protocols

Introduction 1998 CTIT, Nikolay Diakov 3 Object Management Group (OMG) Common Object Request Broker Architecture (CORBA) Object Management Architecture (OMA)

OMG 1998 CTIT, Nikolay Diakov 4 Founded April Largest software consortium in the world It has 800+ participants Small staff (27 full time); no internal development. Offices in U.S.A., Germany, Japan, U.K, Australia, India. Dedicated to creating and popularizing object-oriented standards for application integration based on existing technology.

Common Object Request Broker Architecture 1998 CTIT, Nikolay Diakov 5

CORBA 1998 CTIT, Nikolay Diakov 6 CORBA bus App1 App2 App3 AppX

Object Management Architecture 1998 CTIT, Nikolay Diakov 7

OMA 1998 CTIT, Nikolay Diakov 8 Application Objects Object Request Broker Object Services Common Facilities Object Management Architecture

OMA 1998 CTIT, Nikolay Diakov 9 System oriented components Object Request Brokers Object Services Application Objects Object Request Broker Object Services Common Facilities

OMA 1998 CTIT, Nikolay Diakov 1010 System oriented components Object Request Brokers Object Services Application oriented components Application Objects Common Facilities Application Objects Object Request Broker Object Services Common Facilities

OMA 1998 CTIT, Nikolay Diakov 1111 System oriented components Object Request Brokers Object Services Application oriented components Application Objects Common Facilities Horizontal Vertical Application Objects Object Request Broker Object Services Common Facilities

OMG Object Model (OM) 1998 CTIT, Nikolay Diakov 1212

OMG Object Model (OM) 1998 CTIT, Nikolay Diakov 1313 Object –Combines Functionality and Data –Typically represents a real-world object –Has a well-defined interface (Through IDL) –and an “object reference” or address –Follows basic OO principles: EncapsulationInheritance PolymorphismInstantiation

OMG Object Model (OM) 1998 CTIT, Nikolay Diakov 1414 Consists of Core Object Model Components Profiles Goals Application portability Object level Design level Source code level Interoperability

CORBA Object Model 1998 CTIT, Nikolay Diakov 1515 Based on OMG/OM Goes concrete on the technology - interaction between clients and servers Concepts clients requests operations Interfaces and attributes

CORBA Object Services 1998 CTIT, Nikolay Diakov 1616

CORBA Object Services 1998 CTIT, Nikolay Diakov 1717 Access to object references Naming Service Object Trader Service Notification of significant events of change of state Event Service Notification Service Support of transactional semantics Transaction Service Access to object references Naming Service Object Trader Service Notification of significant events of change of state Event Service Notification Service Support of transactional semantics Transaction Service Support for secure interoperability Object Security Service Licensing Service Other Life Cycle Service Persistence Service Concurency Control Service Time Service Support for secure interoperability Object Security Service Licensing Service Other Life Cycle Service Persistence Service Concurency Control Service Time Service

CORBA Interface Definition Language 1998 CTIT, Nikolay Diakov 1818

CORBA IDL 1998 CTIT, Nikolay Diakov 1919 OMG/ISO IDL (Interface Definition Language) Separates the Interface from the Implementation multiple-inheritance, strongly typed, public interface specification language; independent of any particular language/compiler; mappings will be provided for many languages/compilers; not a programming language. Enables Interoperability

CORBA IDL 1998 CTIT, Nikolay Diakov 2020 I D L ORB CC++COBOLAda Small talk More Client Side Object Implementation Side COBOLC Ada C++ Small talk More I D L ORB

CORBA - UML and MOF 1998 CTIT, Nikolay Diakov 2121 Unified Modeling Language - enables visual modeling and analysis Metadata Object Facility - provides a standard repository for metadata within the CORBA architecture

CORBA For Developers 1998 CTIT, Nikolay Diakov 2222 Develop Clients and Servers Independently using the Best Tools for Each Task CORBA Services and CORBA Facilities accessed via standard OMG IDL Interfaces CORBA provides a sophisticated base for software development CORBA Services provide necessary OO foundation CORBA Facilities standardize building blocks Developers create or assemble Application Objects Much more than Client-Server

CORBA For Users 1998 CTIT, Nikolay Diakov 2323 Purchase Server Objects from Multiple Vendors and Integrate Under One or More Client Applications Seamlessly Integrate In-House and Purchased Objects Acquire & Maintain a Single Set of Business Objects Accessed by the Entire Enterprise Each Division Accesses These Common Objects Using a GUI Built for its Own Needs

CORBA Essential 1998 CTIT, Nikolay Diakov 2424

CORBA 1998 CTIT, Nikolay Diakov 2525 Client Object Implementation ORB With IDL the interface definition is separated from the implementation

CORBA 1998 CTIT, Nikolay Diakov 2626 Client Object Implementation ORB Defining the Object’s interface in the OMG IDL creates a language independent API for the Object

CORBA 1998 CTIT, Nikolay Diakov 2727 Client Object Implementation ORB Objects may be written in programming languages -- C, C++, Java, Smalltalk, Ada, COBOL, Visual Basic, or might be Wrapped Legacy Applications, Tool- Generated Objects, or Objects purchased from Vendors. C++ Java Pascal Ada

CORBA 1998 CTIT, Nikolay Diakov 2828 Client Object Implementation ORB The same IDL defines the Client Side API.

CORBA Introspection 1998 CTIT, Nikolay Diakov 2929

CORBA Introspection 1998 CTIT, Nikolay Diakov 3030 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 3131 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 3232 Client The Client invokes operations The invocation is transparent in terms of runtime environment location implementation language The Client invokes operations The invocation is transparent in terms of runtime environment location implementation language

CORBA Introspection 1998 CTIT, Nikolay Diakov 3333 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 3434 Object Implementation Implements the interface Can be written in any programming language Can be independent to the ORB implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 3535 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 3636 IDL stubs IDL skeleton The stub is the part to include into the client project. Both generated from the same IDL interface The skeleton is the part to include into the server project. Both provide the mapping to the particular programming language

CORBA Introspection 1998 CTIT, Nikolay Diakov 3737 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 3838 ORB interface ORB is a logical entity that may be implemented in various ways. To hide implementation details from the applications, the CORBA specification defines an abstract interface for an ORB. This interface provides a variety of helper functions.

CORBA Introspection 1998 CTIT, Nikolay Diakov 3939 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 4040 DII DSI Provides dynamic access to the request scheme of the ORB No stub specific bindings Allows deferred synchronous and oneway requests Provides dynamic access to the request scheme of the ORB No stub specific bindings Allows deferred synchronous and oneway requests Allows request to go to implementations that does not have compile-time knowledge about the interface they implement

CORBA Introspection 1998 CTIT, Nikolay Diakov 4141 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 4242 Object Adapter Object Activation Delivering the requests to the particular implementation CORBA 3.0 standardizes Portable Object Adapters Object Activation Delivering the requests to the particular implementation CORBA 3.0 standardizes Portable Object Adapters

CORBA Introspection 1998 CTIT, Nikolay Diakov 4343 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection 1998 CTIT, Nikolay Diakov 4444 GIOP/IIOP ORB CORE Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments.

CORBA Interoperability 1998 CTIT, Nikolay Diakov 4545

CORBA Interoperability 1998 CTIT, Nikolay Diakov 4646 There are different hardware platforms; There are different operating systems; There are different network protocols; There are different application formats/protocols. There must be consensus on interoperability. One possible answer to the question how to make these things work together is:

CORBA Interoperability 1998 CTIT, Nikolay Diakov 4747 Boundaries which may not be obvious or logical to you –departmental (budget, task, group) boundaries –site boundaries (company, plant) –technological boundaries (HW, SW)

CORBA Interoperability 1998 CTIT, Nikolay Diakov 4848 ORB TCP/IP (Internet) Domain A Domain B

CORBA Interoperability 1998 CTIT, Nikolay Diakov 4949 Key steps to Full Interoperability Standardize rich, extendible, and generic enough communication protocol Each vendor implements mapping to and from this protocol Standardize rich, extendible, and generic enough communication protocol Each vendor implements mapping to and from this protocol

CORBA Interoperability Bridging 1998 CTIT, Nikolay Diakov 5050 ORB TCP/IP (Internet) Domain A Domain B Bridge Client Server Object

CORBA Interoperability Bridging 1998 CTIT, Nikolay Diakov 5151 Bridging mediated full-bridging half-bridging immediate ORB Domain A Domain B Bridge

CORBA Interoperability Bridging 1998 CTIT, Nikolay Diakov 5252 Bridging mediated full-bridging half-bridging immediate In-line bridges Request-level bridges ORB Domain A Domain B Bridge

CORBA Interoperability Bridging 1998 CTIT, Nikolay Diakov 5353 GIOP IIOP ESIOP

CORBA goes Real-Time 1998 CTIT, Nikolay Diakov 5454

CORBA goes Real-Time 1998 CTIT, Nikolay Diakov 5555 Real-time CORBA is an optional ORB extension fixed-priority scheduling control over ORB resources for end-to-end predictability flexible communications Real-time CORBA is an optional ORB extension fixed-priority scheduling control over ORB resources for end-to-end predictability flexible communications

CORBA is Fault-Tolerant 1998 CTIT, Nikolay Diakov 5656

CORBA is Fault-Tolerant 1998 CTIT, Nikolay Diakov 5757 The flexible POA it self is not enough. A new specification for fault-tolerant CORBA is standardized. The flexible POA it self is not enough. A new specification for fault-tolerant CORBA is standardized.

CORBA is Fault-Tolerant 1998 CTIT, Nikolay Diakov 5858 An Example is the GIOP offers mechanism of providing multiple addresses in an Interoperable Object Reference. This allows load-balance schemes and fault-tolerant schemes of finding another ORB resource for satisfying a request.

CORBA Component Model 1998 CTIT, Nikolay Diakov 5959

CORBA Component Model 1998 CTIT, Nikolay Diakov 6060 CORBAbeans Multiple interfaces per object, object passable by value, messaging servce Components does not map 1:1 to interface or CORBA object Multiple interfaces per object, object passable by value, messaging servce Components does not map 1:1 to interface or CORBA object

CORBA Component Model 1998 CTIT, Nikolay Diakov 6161 CORBA component instance identity properties event notification mechanism CORBA scripting facility - assembling applications from CORBA components instance identity properties event notification mechanism CORBA scripting facility - assembling applications from CORBA components

CORBA CTIT, Nikolay Diakov 6262

CORBA CTIT, Nikolay Diakov Portable Object Adapter 2. CORBA messaging 3. Objects-By-Value 1. Portable Object Adapter 2. CORBA messaging 3. Objects-By-Value

CORBA CTIT, Nikolay Diakov Portable Object Adapter (POA) The POA mediates the CORBA objects and the programming implementations The main purpose of POA is to provide portability for CORBA server applications. Portability from the implementation of the ORB.

CORBA CTIT, Nikolay Diakov Portable Object Adapter (POA) allows Creation of CORBA Objects Demultiplexing of requests made on each CORBA object Dispatching requests to the appropriate implementation that the CORBA Object represents Activation/Deactivation of CORBA Objets Creation of CORBA Objects Demultiplexing of requests made on each CORBA object Dispatching requests to the appropriate implementation that the CORBA Object represents Activation/Deactivation of CORBA Objets All this in an ORB implementation independent way

Server Application CORBA CTIT, Nikolay Diakov Portable Object Adapter (POA) ORB Request

Server Application CORBA CTIT, Nikolay Diakov Portable Object Adapter (POA) ORB POA Request

Server Application CORBA CTIT, Nikolay Diakov Portable Object Adapter (POA) ORB POA Request Implementation (Servant)

CORBA CTIT, Nikolay Diakov CORBA Messaging The CORBA messaging fills a big hole in the consistency of the CORBA specification It helps reliably communicating over unreliable connections. The Client / Servers are not that tightly coupled anymore as in the synchronous invocation. Makes CORBA usable in large distributed systems. The CORBA messaging fills a big hole in the consistency of the CORBA specification It helps reliably communicating over unreliable connections. The Client / Servers are not that tightly coupled anymore as in the synchronous invocation. Makes CORBA usable in large distributed systems.

CORBA CTIT, Nikolay Diakov CORBA Messaging Asynchronous messaging Time-independent invocations Facilities for specifying messaging quality of service (QoS) Asynchronous messaging Time-independent invocations Facilities for specifying messaging quality of service (QoS)

CORBA CTIT, Nikolay Diakov CORBA Messaging Asynchronous messaging Callback Polling - returns a type, for later polling Time-independent invocations Facilities for specifying messaging quality of service (QoS) Asynchronous messaging Callback Polling - returns a type, for later polling Time-independent invocations Facilities for specifying messaging quality of service (QoS)

CORBA CTIT, Nikolay Diakov CORBA Messaging Quality of Service Allows specifying policies for quality of message delivery, queuing and priorities. These policies can be applied on level ORB, level Thread, or level object. Quality of Service Allows specifying policies for quality of message delivery, queuing and priorities. These policies can be applied on level ORB, level Thread, or level object.

CORBA CTIT, Nikolay Diakov Objects by Value What is passing-by-value?

CORBA CTIT, Nikolay Diakov Objects by Value -How is it possible with CORBA? Valuetype - new constructed type added to the OMG IDL like interfaces it has operations and data members it can inherit other Valuetype (single only) Unlike interfaces datamembers are transferred operation invocations are local Valuetype - new constructed type added to the OMG IDL like interfaces it has operations and data members it can inherit other Valuetype (single only) Unlike interfaces datamembers are transferred operation invocations are local

CORBA CTIT, Nikolay Diakov Objects by Value -How is it possible with CORBA? How the operation invocations are local and still work? - Java, Smalltalk - C++ The programmer of the object has to take care of the mechanism of transferring the implementation locally. The extended IDL to programming language mapping just gives the means for doing that. How the operation invocations are local and still work? - Java, Smalltalk - C++ The programmer of the object has to take care of the mechanism of transferring the implementation locally. The extended IDL to programming language mapping just gives the means for doing that.

CORBA Advanced Programming Issues 1998 CTIT, Nikolay Diakov 7676 Part 2. Advanced Programming Issues

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov 7777

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Define the problem 1. Think distributed 2. Define a communication interface 3. Build the server 4. Build the client 5. Setup a test session

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Define the problem We define our problem in the context of the electronic commerce. We need our client to be able to buy goods from our sites.

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Think distributed Client Server Object

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Define a communication interface Client Server Object Interface Purchase - operation ListGoodies - operation AddGoodytoCart - operation ListCart - operation Order

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Build the server Client Server Object Interface Purchase - operation ListGoodies - operation AddGoodytoCart - operation ListCart - operation Order The server will implement the interface. It will provide the code of each operation, in a language that is most suitable and chosen by the developer.

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Build the client Client Server Object Interface Purchase - operation ListGoodies - operation AddGoodytoCart - operation ListCart - operation Order The client will include the some code to be able to locate the Server object, bind to an instance, and to call operations on it. The client will include the some code to be able to locate the Server object, bind to an instance, and to call operations on it.

CORBA Simple Application In CORBA 1998 CTIT, Nikolay Diakov Setup a test session Client Server Object ORB 1. Run the ORB software on a machine connected to the network. 2. Run the SERVER program. If on a remote machine, depending on the implementation the SERVER will find the ORB. 3. Run the Client.

CORBA The Interface Definition Language 1998 CTIT, Nikolay Diakov 8585

CORBA The Interface Definition Language 1998 CTIT, Nikolay Diakov 8686 Similar to C++ preprocessing lexical rules grammar inheritance IDL is NOT an implementation language!

CORBA IDL to Programming Language Mapping 1998 CTIT, Nikolay Diakov 8787

CORBA IDL to Programming Language Mapping 1998 CTIT, Nikolay Diakov 8888 Translates from OMG IDL constructs to programming language constructs Special IDL compiler generate stubs for the client and skeletons for the server objects

CORBA IDL to Java Mapping 1998 CTIT, Nikolay Diakov 8989 IDL Modules map to Java Packages Interfaces map to public Java Interfaces + “Helper” and “Holder” Java classes IDL Operations map to Java methods the integral types (Integer, float) map to the corresponding Java integral types exceptions map to Java exceptions

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov 9090

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Callbacks 2. Interface Repository 3. DII 4. DSI

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Callbacks Client Server Normally, the communication between clients and servers follow the request/response scheme. This however, is not sufficient sometimes. Normally, the communication between clients and servers follow the request/response scheme. This however, is not sufficient sometimes. Request then Response

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Callbacks Client Server Imagine the server being able to invoke methods on the client. The client becomes a server Imagine the server being able to invoke methods on the client. The client becomes a server Request then Response

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Callbacks Client Server How is this done on CORBA The client implements an interface too. The client implements an interface too.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Callbacks Client Server How is this done on CORBA The client invokes an operation on the server passing a reference to its interfaces

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Callbacks Client Server How is this done on CORBA The server is now able to invoke operations on the client anytime

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Interface Repository

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov Interface Repository Interface Repository allows: –Implementation of browsers that allow designers to determine what have been defined in a system. –CASE tools to aid software design, writing and debugging –Applications to use DII to learn dynamically about objects and interfaces that were not know at compile time.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII The Dynamic Invocation Interface (DII) allows clients to dynamically discover objects; discover objects’ interfaces; create requests; invoke requests; receive responses.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII - Features requests appear as objects themselves; requests are reusable; invocation may be synchronous or deferred synchronous

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server Using DII the client discovers the proper server object. Using DII the client discovers the proper server object.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client discovers the appropriate interface implemented from this object The client discovers the appropriate interface implemented from this object

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client creates a request object, which encapsulates a invocation of a operation on the servers interface. The client creates a request object, which encapsulates a invocation of a operation on the servers interface.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client invokes the request. The client invokes the request.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client invokes the request. The client invokes the request.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client invokes the request. The client invokes the request.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client obtains a result if necessary. The client obtains a result if necessary.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client obtains a result if necessary. The client obtains a result if necessary.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server The client obtains a result if necessary. The client obtains a result if necessary.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server This scenario can be used as many times as necessary. The request object and all other object can be reused. This has potential to boost up performance. This scenario can be used as many times as necessary. The request object and all other object can be reused. This has potential to boost up performance.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server Requests can be sent in a deferred style. These request does not block the client in expectation for a result. The result can be obtained later, when ready and/or when needed. Requests can be sent in a deferred style. These request does not block the client in expectation for a result. The result can be obtained later, when ready and/or when needed.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DII Client Server Requests can be sent in a oneway style. These request does not block the client in expectation for a result. There is no result. These invocation are very useful sometimes when the client wants to announce something to the server object but no result and no waiting for completion of the invocation is needed. Requests can be sent in a oneway style. These request does not block the client in expectation for a result. There is no result. These invocation are very useful sometimes when the client wants to announce something to the server object but no result and no waiting for completion of the invocation is needed.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DSI

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DSI Client Server Dynamic Skeleton Interface is the Server side analog of the DII scheme. Dynamic Skeleton Interface is the Server side analog of the DII scheme.

CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DSI Client Server Each DSI request enters the particular interface the same way as the static. The difference is that the implementation has to dynamically determine which operation has been invoked and demarshal the parameters. Each DSI request enters the particular interface the same way as the static. The difference is that the implementation has to dynamically determine which operation has been invoked and demarshal the parameters. Request IR

Domain B Domain A CORBA Advanced Topics 1998 CTIT, Nikolay Diakov DSI - Usage The DSI is mainly used in implementation of software bridges for Interoperability. It is naturally and easy through DSI to translate all request of one type to another domain. The DSI is mainly used in implementation of software bridges for Interoperability. It is naturally and easy through DSI to translate all request of one type to another domain. ORB1 ORB2 Client Server Bridge DSI