1 kyung hee university corba prof. choong seon hong

29
1 Kyung Hee Univers ity CORBA CORBA Prof. Choong Seon HONG

Upload: anthony-griffin

Post on 30-Dec-2015

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

11Kyung Hee Universit

y

CORBACORBA

Prof. Choong Seon HONG

Page 2: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

22Kyung Hee Universit

y

What cover in “instant CORBA”What cover in “instant CORBA”

Guidance to CORBA/IIP

Basic working of CORBA 2.0 ORB and object Web

Next generation ORB

Page 3: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

33Kyung Hee Universit

y

Client/Server, CORBA-StyleClient/Server, CORBA-Style OMG (Object Management Group)

800+ companies : Microsoft, Sun, JavaSoft, IBM/Lotus, Netscape, Apple, Oracle, HP, NTT,Sprint, ……

Distributed objects

CORBA object bus : the shape of the components that live within it and how they interoperate.

CORBA that uses objects as a unifying metaphors for bringing existing applications to the bus.

IDL (Interface Definition Language) defining a component’s boundaries, or having contractual interfaces with potential clients

CORBA objects : blobs of intelligence that can live anywhere on a network.

Binary components that remote clients can access via method invocation. Clients don’t need to know where the distributed resides or what operating sy

stem it executes on. Language independent (C, C++, COBOL, JAVA, ….)

Page 4: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

44Kyung Hee Universit

y

Additional Features in CORBA 3.0Additional Features in CORBA 3.0

Internet Integration

Firewall Specification defines transport-level firewalls, application-level firewalls, and (perhaps most interesting) a bi-directional GIOP connection useful for callbacks and event notifications.

The Interoperable Name Service defines one URL-format object reference, iioploc and a second URL format, iiopname, actually invokes the remote Naming Service

Quality of Service Control

Asynchronous Messaging and Quality of Service Control

Minimum, Fault-Tolerant, and Real-Time CORBA

The CORBAcomponent architecture

A container environment that packages transactionality, security, and persistence, and provides interface and event resolution;

Integration with Enterprise JavaBeans; and

A software distribution format that enables a CORBA component software marketplace.

Page 5: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

55Kyung Hee Universit

y

IDLIDL

CORBA IDL Language Bindings Provide Client/Server

Interoperability

C C++ Smalltalk Ada COBOL Java

IDLIDL IDLIDLIDLIDL IDLIDL IDLIDL IDLIDL

ClientClient

ORBORB

ServerServer

C C++ Smalltalk Ada COBOL Java

IDLIDL IDLIDLIDLIDL IDLIDL IDLIDL IDLIDL

Page 6: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

66Kyung Hee Universit

y

OMG’s Object Management Architecture (OMA)OMG’s Object Management Architecture (OMA)

Page 7: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

77Kyung Hee Universit

y

IDL (Interface Definition Language)IDL (Interface Definition Language)

Specifying a component’s attributes

Inheriting from parent

IDL grammar : a subset of C++ with additional keywords to support

distributed concepts

CORBA’s ambitious goal : to “IDL-ize” all client/server middleware

and all components that live on an ORB

turning everything into nails (CORBA IDL)

giving everyone a hammer (Distributed service)

CORBA interface repository : containing the all definitions of the in

terface

Page 8: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

88Kyung Hee Universit

y

CORBA ComponentsCORBA Components “component” = “distributed object”

CORBA distributed object infrastructure: making it easier for

components to be more autonomous, self-managing, and

collaborative

OMG’s object management architectureOMG’s object management architecture OMA guide (the fall of 1991)

revised in Sept. 1992

added common facilities in 1995

Four main elements

Object request broker (ORB) : CORBA object bus

CORBA services : system level objet frameworks that extend the bus

CORBA facilities

Applications objects

Page 9: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

99Kyung Hee Universit

y

Object Request Broker (ORB)Object Request Broker (ORB)

CORBA 1.1 in 1991

CORBA 2.0 specifying interoperability across vendor ORBs (IIOP)

CORBA 3.0 (the end of 1998) : including JavaBeans object model an

d firewall communications support

Benefits of ORB

Static and dynamic method invocations

defining statically method invocations at compile time discovering method invocations at run time

High-level language bindings : invoking methods on server objects using your high-level language of choice

Self-describing system : providing run-time metadata for describing every server interface known to the system

Local/remote transparency : interconnecting to every other ORB in the universe using CORBA IIOP (Internet Inter-ORB Protocol) services

Page 10: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1010Kyung Hee Universit

y

Object Request Broker (2)Object Request Broker (2)

Built-in security and transactions

including context information in messages to handle security and transactions

Polymorphic messaging : the same function call with different

effects

Coexistence with existing systems encapsulating existing

applications with IDL wrappers

Page 11: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1111Kyung Hee Universit

y

ORB vs RPCORB vs RPC

call a specific

function

call a method

within a specific

object

Page 12: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1212Kyung Hee Universit

y

Object Request Broker Core (IIOP)

Anatomy of CORBA ORBAnatomy of CORBA ORB

The structure of a CORBA 3.x ORB

ObjectImplementation

ORBInterface

ORBInterfaceORB

InterfaceClient

IDLStub

DynamicInvocation

ORBInterfaceORB

InterfaceDynamic Skeleton

Invocation

StaticSkeletons

ObjectAdapter Implementation

Repository

Client

InterfaceRepository

Page 13: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1313Kyung Hee Universit

y

Anatomy of CORBA ORB (2)Anatomy of CORBA ORB (2) Client IDL Stubs : providing the static interface to object services

precompiled stubs defining how clients invoke corresponding services on the servers

local proxy for a remote server object

generated by the IDL compiler

including code to perform marshaling that encode and decode the operation and its parameters into flattened format

Dynamic Invocation Interface (DII)

discovering methods to be invoked at run time : useful for tools that discover services at run time

Interface repository APIs

obtaining and modifying the description of all the registered component interfaces, methods, parameters

interface repository : run-time distributed database that contains machine-readable versions of the IDL-defined interfaces

Page 14: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1414Kyung Hee Universit

y

Anatomy of CORBA ORB (3)Anatomy of CORBA ORB (3)

ORB interface

a few APIs for local services : ex) converting object reference to a string, and vice versa

Server IDL stubs (skeletons) : providing static interface to each ser

vice exported by the server

created using an IDL compiler

Dynamic skeleton interface (DSI)

providing run-time biding mechanism for servers

looking at parameter values in an incoming message to figure out who is the target object and method

useful for implementing generic bridges between ORBs

Page 15: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1515Kyung Hee Universit

y

Anatomy of CORBA ORB (4)Anatomy of CORBA ORB (4)

Object adapter

siting on top of the ORB’s core communications services and accepts requests for service on behalf of the server’s objects

assigning server objects object references (object Ids)

registering the classes to be supported by object adapter and their run-time instances (i.e., objects) with implementation repository

Implementation Repository

providing a run-time repository of information about the classes a sever supports, the objects that are instantiated and the objects’ Ids

storing additional information associated with the implementation

ex) trace information, security, other the administrative data, ….

ORB interface

consisting of a few APIs to local services

Page 16: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1616Kyung Hee Universit

y

Interoperability ProtocolsInteroperability Protocols

IIOP (Internet Inter-ORB Protocol)

basically TCP/IP with some CORBA-defined message exchanges.

standard CORBA backbone

specifying how GIOP messages are exchanged over a TCP/IP network

ESIOPs (Environment-Specific Inter-ORB Protocols)

“out-of-the-box” interoperation over specific networks

ex) DCE ESIOP : providing a robust environment for mission critical ORBs

(including advanced features such as Kerberos security, cell and global directories, authenticated RPC, etc)

GIOP (General Inter-ORB Protocol) : specifying a set of message for

mats and common data representation for communications betwee

n ORB and ORB

CDR (Common Data Representation) : mapping data types defined by OMG IDL into a flat, networked message representation

Page 17: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1717Kyung Hee Universit

y

CORBA Inter-ORB ArchitectureCORBA Inter-ORB Architecture

General Inter-ORBProtocol (GIOP)

General Inter-ORBProtocol (GIOP)

InternetInter-ORBProtocol(IIOP)

TCP/IP

InternetInter-ORBProtocol(IIOP)

TCP/IP

Environment SpecificInter-ORB Protocol (ESIOP)

DCE/ESIOP

Environment SpecificInter-ORB Protocol (ESIOP)

DCE/ESIOP

CORBA IDLCORBA IDL

InternetInter-ORBProtocol(IIOP)OSIand

IPX/SPX

InternetInter-ORBProtocol(IIOP)OSIand

IPX/SPX

DCE RPCover

TCP/IP

DCE RPCover

TCP/IP

DCE RPCoverOSI

DCE RPCoverOSI

Mandatory for CORBA 2.0

Optional

etc

Internet

ObjectRequestSemantics

TransferMessageSyntax

Transports

Page 18: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1818Kyung Hee Universit

y

CORBA ServicesCORBA Services

Life Cycle Services : operation for creating, copying, moving, and

deleting components on the bus

Persistence Services : providing a single interface for storing com

ponents persistently on a variety of storage servers such as ODB

MS and RDBMS

Naming Service : locating others components by name

allowing objects to be bound to existing network directories or naming contexts - including ISO’s x.500, Internet’s LDAP, and so forth.

Event Service : dynamically register or unregister interesting in sp

ecific events. Defining a well-known object called an event channel

that collects and distributes events among components.

Concurrency Control Service : providing a lock manager that can o

btain locks on behalf of transactions or threads

Page 19: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

1919Kyung Hee Universit

y

CORBA Services (2)CORBA Services (2)

Transaction Service : providing two-phase commit coordination

among recoverable components

Relationship Service : providing a way to create dynamic

associations ( or links) between components that know nothing of

each other.

Externalization Service : providing a standard way for getting data

into and out of a component

Query Service : providing query operations for objects as superset

of SQL

based on SQL 3 specification and Object Management Group’s (ODMG) Object Query Language (OQL)

Page 20: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2020Kyung Hee Universit

y

CORBA Services (3)CORBA Services (3)

Licensing service : providing operations for metering the use of

components

supporting any model of usage control at any point in a component’s life cycle

supporting charging per session and per instance creation, and per site

Properties Service : providing for associating named values with

any component. ex) a title or a date

Time Service : providing interfaces for synchronizing time in a

distributed object environment, and operations for defining and

managing time-triggered events

Security Service : supporting authentication, access control lists,

Page 21: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2121Kyung Hee Universit

y

CORBA Services (4)CORBA Services (4)

Trader Service : providing a “Yellow Pages” for objects

publicizing objects’ services and biding for jobs

Collection Service : providing CORBA interfaces to generically

create and manipulate the most common collections

Page 22: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2222Kyung Hee Universit

y

CORBA facilitiesCORBA facilities

Collections of IDL-defined frameworks that provide services of direct

use to application objects

Adopted OpenDoc as compound document technology : Distributed

Document Component Facility (DDCF)

DDCF : specifying presentation services for components and a

document interchange standard based on OpenDoc

Goal :Defining IDL interfaces for every distributed services we know

of today and to be invented

Page 23: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2323Kyung Hee Universit

y

CORBA Business ObjectsCORBA Business Objects Providing a natural way for describing application-independent co

ncepts such customer, order, money, payment, …..

An application-level component that can use in unpredictable com

binations

A component that represent a “recognizable” everyday life entity

Self-contained deliverable that has a user interface, state, and kno

ws how to cooperate with other separately developed business obj

ects to perform a desired task

Studying in OMG’s Business Object Task Force

Page 24: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2424Kyung Hee Universit

y

Anatomy of CORBA Business ObjectAnatomy of CORBA Business Object

A variation of the of Model/View/Controller (MVC) by Smalltalk and

in almost every GUI class library

model : representing the application object and its encapsulated data

view : representing the object visually on the screen

controller : defining the way the user interface reacts to user input and GUI events

Business object

encapsulating storage, metadata, concurrency, and business rules associated with an active business entity

handling short-lived process functions

Business process objects

encapsulating the business logic at the enterprise level

handling long-lived process function involving interaction with other business objects

Page 25: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2525Kyung Hee Universit

y

Anatomy of CORBA Business Object (2)Anatomy of CORBA Business Object (2)

Presentation objects

Presenting the object visually to the user

Communicating directly with the business object to display data on the screen or sometimes with process object

Page 26: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2626Kyung Hee Universit

y

Component Evolution and InfrastructureComponent Evolution and Infrastructure

Page 27: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2727Kyung Hee Universit

y

3-tier Client/Sever, Object Style3-tier Client/Sever, Object Style

ORB

ORB

ORB

O R B

LotusNotes

DBMS

TP monitors

ORB

Tier 1View Object

Tier 2Server Objects

Tier 3Legacy

Applications

CORBAIIOP

CORBA

CORBA

CORBA

Business Objects

Page 28: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2828Kyung Hee Universit

y

CORBA and Web ServicesCORBA and Web Services

Page 29: 1 Kyung Hee University CORBA Prof. Choong Seon HONG

2929Kyung Hee Universit

y

The Standards of Web ServicesThe Standards of Web Services

XML, holds the data

SOAP, the protocol for communicating with the service

WSDL, describes the service

Basic Data Types, Namespaces

Program Interface Description

Envelope, Bindings

Directory

XML Schema, describes the data

UDDI, the directory for the service