Common Object Request Broker Architecture (CORBA) Presented by: T.Bhaskar.

Презентация:



Advertisements
Похожие презентации
WEB SERVICES Mr. P. VASANTH SENA. W EB SERVICES The world before Situation Problems Solutions Motiv. for Web Services Probs. with Curr. sols. Web Services.
Advertisements

DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes.
Copyright 2003 CCNA 1 Chapter 9 TCP/IP Transport and Application Layers By Your Name.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Building a Simple Serial Network Understanding the OSI Model.
Designing Network Management Services © 2004 Cisco Systems, Inc. All rights reserved. Designing the Network Management Architecture ARCH v
Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Nov, 2013 Spring Framework Module 1 - Introduction.
SSD1: Introduction to Information Systems SSD1: Introduction to Information Systems ISS, Wuhan University.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, Voic Pro Advanced Functions Module Four – Voic Campaigns.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Connecting Networks Understanding How TCP/IP Works.
© 2006 Cisco Systems, Inc. All rights reserved.IP6FD v IPv6 Transition Mechanisms Implementing Dual Stack.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Using Multihomed BGP Networks.
CSTA is a kind of standard communication protocol used between PBX and computer that is famous in Europe. What is CSTA ? Control Requests Event Notifications.
Copyright 2003 CCNA 4 Chapter 11 Scaling IP Addresses By Your Name.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Cisco Devices.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © Wind River Systems, released under EPL 1.0. All logos are TM of their respective.
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
Copyright © 2006 Intel Corporation, released under EPL version /20061 Eclipse DSDP-TM Target Connection Adapters Peter Lachner WW0806 rev 1.0.
Транксрипт:

Common Object Request Broker Architecture (CORBA) Presented by: T.Bhaskar

Introduction What is the purpose / goals of CORBA? How to meet goals? Example Conclusion 2prepared by T.BHASKAR

Object Management Architecture Application Objects Object Request Broker Object Services Common Facilities 3prepared by T.BHASKAR

OMA System oriented components Object Request Brokers Object Services Application Objects Object Request Broker Object Services Common Facilities 4prepared by T.BHASKAR

OMA System oriented components Object Request Brokers Object Services Application oriented components Application Objects Common Facilities Application Objects Object Request Broker Object Services Common Facilities 5prepared by T.BHASKAR

OMA 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 6prepared by T.BHASKAR

What is the purpose / goals of CORBA ? Enable the building of plug and play component software environment Enable the development of portable, object oriented, interoperable code that is hardware, operating system, network, and programming language independent 7prepared by T.BHASKAR

How to meet goals? Interface Definition Language (IDL) Object Request Broker (ORB) 8prepared by T.BHASKAR

Interface Definition Language (IDL) Language Independence Defines Object Interfaces Hides underlying object implementation Language mappings exist for C, C++, Java, Cobol, Smalltalk, and Ada 9prepared by T.BHASKAR

Interface Definition Language (IDL) module { interface [:inheritance] { ; [ ] ( ) [raises exception][context]; } Defines a CORBA object Defines a method Defines a container (namespace) 10prepared by T.BHASKAR

IDL Compiler IDL Definitions IDL Compiler StubsSkeletons 1.Define objects using IDL 2.Run IDL file through IDL compiler 3.Compiler uses language mappings to generate programming language specific stubs and skeletons 11prepared by T.BHASKAR

CORBA IDL prepared by T.BHASKAR12 I D L ORB CC++COBOLAda Small talk More Client Side Object Implementation Side COBOLC Ada C++ Small talk More I D L ORB

Object Request Broker (ORB) What is it? Architecture Request Handling Scenario CORBA Services CORBA Facilities 13prepared by T.BHASKAR

Application What is it? Implementation of CORBA specification Middleware product Conceptual Software Bus Hides location and implementation details about objects Hardware OS Drivers Middleware 14prepared by T.BHASKAR

15 Object Request Broker Applicatio n Interface Object Services Object Services Domain Interface Common Facilities OMA Interface Categories

Essentials prepared by T.BHASKAR16 Client Object Implementation ORB With IDL the interface definition is separated from the implementation

prepared by T.BHASKAR17 Client Object Implementation ORB Defining the Objects interface in the OMG IDL creates a language independent API for the Object

prepared by T.BHASKAR18 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.

CORBA Introspection prepared by T.BHASKAR19 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection prepared by T.BHASKAR20 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 prepared by T.BHASKAR21 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection prepared by T.BHASKAR22 Object Implementation Implements the interface Can be written in any programming language Can be independent to the ORB implementation

CORBA Introspection prepared by T.BHASKAR23 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

prepared by T.BHASKAR24 IDL stubs IDL skeleton The stub is the part to include into the client project. Both generated from the same IDL interface Both provide the mapping to the particular programming language CORBA Introspection

prepared by T.BHASKAR25 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection prepared by T.BHASKAR26 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 prepared by T.BHASKAR27 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection prepared by T.BHASKAR28 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 prepared by T.BHASKAR29 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection prepared by T.BHASKAR30 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 Object Adapter

CORBA Introspection prepared by T.BHASKAR31 Client ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE Object Implementation

CORBA Introspection prepared by T.BHASKAR32 GIOP/IIOP ORB CORE Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments.

Client / Object Interaction ClientObj Impl IDL ORB ClientObj Impl IDL ORB Network TCP/IPOSIATMIPXTCP/IPOSIATMIPX 33prepared by T.BHASKAR

ORB Architecture Interface Repository IDL Compiler Implementation Repository Client Object (servant) ORB Core IDL Skeleton DSI ORB Interface IDL Stub DII OBJ Ref GIOP/IOOP Object Adapter 34prepared by T.BHASKAR

Interface Repository Object Adapter Database of object definitions Contains metadata about each object Allows for introspection Allows clients to discover interfaces at run-time Used in support of dynamic invocations 35prepared by T.BHASKAR

IDL Compiler Object Adapter Compiles IDL definition into stubs and skeletons Uses OMG specified language mappings to translate IDL into a language specific implementation 36prepared by T.BHASKAR

Implementation Repository Object Adapter Contains information that allows the ORB to locate and activate object implementations Provides information about the classes a server supports, the objects that are instantiated, and their IDs 37prepared by T.BHASKAR

ORB Core GIOP/IOOP Object Adapter Provides mechanism for transparently communicating client requests to target object implementations Makes client requests appear to be local procedure calls GIOP – General Inter-ORB Protocol IIOP – Internet Inter-ORB Protocol 38prepared by T.BHASKAR

ORB Interface Client Object (servant) ORB Interface Object Adapter Provides helper functions Converting object references to strings Creating argument lists for requests made through DII 39prepared by T.BHASKAR

IDL Stub Static invocation interface (SII) Marshals application data into a common packet-level representation –Network byte order (little-endian or big- endian) –Size of data types Client IDL Stub 40prepared by T.BHASKAR

IDL Skeleton Object (servant) IDL Skeleton Demarshals the packet-level representation back into typed data that is meaningful to an application –Network byte order (little-endian or big- endian) –Size of data types 41prepared by T.BHASKAR

Dynamic Invocation Interface Client DII Object Adapter Dynamically issue requests to objects without requiring IDL stubs to be linked in Clients discover interfaces at run- time and learn how to call them Steps: 1.Obtain interface name 2.Obtain method description (from interface repository) 3.Create argument list 4.Create request 5.Invoke request 42prepared by T.BHASKAR

Dynamic Skeleton Interface Object (servant) DSI Object Adapter Server side analogue to DII Allows an ORB to deliver requests to an object implementation that does not have compile-time knowledge of the type of object it is implementing 43prepared by T.BHASKAR

Object Adapter Object (servant) IDL Skeleton DSI Object Adapter Accept requests for service on behalf of the servers objects Demultiplexes requests to the correct servant Dispatches the appropriate operation upcall on the servant Registers classes it supports and their run-time instances with the implementation repository Portable Object Adapter (POA) policies control object behavior (ie. LifespanPolicy) Instance of the adapter design pattern 44prepared by T.BHASKAR

Object Reference Client Object (servant) OBJ Ref Object Adapter Interoperable Object Reference (IOR) Uniquely identifies each object Contents Type Name (repository ID) Protocol and Address Details Object Key (object adaptor name, object name) 45prepared by T.BHASKAR

Request Handling ORB POA Server Application Servants POA Incoming Request 46prepared by T.BHASKAR

Scenario Interface Repository IDL Compiler Implementation Repository Client Object (servant) OBJ Ref ORB Core GIOP/IOOP IDL Stub DII Object Adapter ORB Interface IDL Skeleton DSI 47prepared by T.BHASKAR

CORBA Interoperability prepared by T.BHASKAR48 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 prepared by T.BHASKAR49 ORB TCP/IP (Internet) Domain A Domain B

CORBA Services Provide basic infrastructure functionality Currently there are 15 defined services –Naming - maps human names to object references (White Pages) –Event - provides both a push and pull event model –Object Trader - discover objects based on the services they provide (Yellow Pages) –Transactions – allows distributed objects to participate in atomic transactions 50prepared by T.BHASKAR

CORBA Facilities Provide higher-level functionality at the application level Provide standard components that can be used off-the-shelf Two Categories –Horizontal – user interface, information management, systems management, and task management –Vertical – domain based, telecommunications, financial services 51prepared by T.BHASKAR

comparison prepared by T.BHASKAR52 CORBARMICOM/DCOM Request & response No constraint Server can contain one or several objects Point-to-point underlying TCP- base stream Synchronous LRPC,ORPC Remote reference Object reference Handles to remote objects Handles to remote interface IDL interfaceOMG IDLJAVAMIDL ProxyIDL stub IDL skeleton yes MarshallingIIOPSerializationNetwork data representation

prepared by T.BHASKAR53 CORBARMICOM/DCOM BrokerORB Transport and remote reference layer ? COM run-time Proxy IDL stub, DII IDL skeleton, DSI, POA Sub/skeleton layer Proxy object Stub object Abstract Factory Lifecycle ServiceObject factory

prepared by T.BHASKAR54 CORBARMICOM/DCOM Register a service with broker Adaptor Active() exportObject()Reference not passed as parameter-no need Else register to OXID Revolver Process NamingNaming Service RMI Registry GIUD Name of monikers Find a service, trading Naming, trading Location service no No But emulation service BindingAfter getting the object references After receiving the proxy creatInstance(..iid..) BindToObject() Dynamic invocation and delivery yes No on server side Client side (IDispatch) Static invocation and delivery yes

prepared by T.BHASKAR55 CORBARMICOM/DCO M Server object garbage collection problem Cooperative garbage collection Broker keeps track of the reference Cooperative garbage collection Persistent remote references POA( servant manager) RMI DaemonNo persistent TransactionNo implicit support Transaction Service JAVA Transaction Service Microsoft Transaction Server Concurrency in server objects Standard tools Depend on vendors Standard Java synchronization tools Apartment Model Free Threading Model Applying client- server relation transitively Straightforward

prepared by T.BHASKAR56 CORBARMICOM/DCOM Event ServiceJava Beans Event Model Connection points Outgoing interfaces

Conclusion Distributed object, component architecture Real world examples of design patterns –TAO – freeware ORB Adapter, Factory, Reactor, Strategy Plugable Transports CORBA Beans 57prepared by T.BHASKAR

References orba/OMG/arch2.htm Communications of the ACM, October 1998 Jeri Edwards, Dan Harkey, and Robert Orfali. Instant CORBA. New York: Wiley Computer Publishing, prepared by T.BHASKAR