1 Kyung Hee University CORBA Prof. Choong Seon HONG.
-
Upload
anthony-griffin -
Category
Documents
-
view
227 -
download
1
Transcript of 1 Kyung Hee University CORBA Prof. Choong Seon HONG.
11Kyung Hee Universit
y
CORBACORBA
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
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, ….)
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.
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
66Kyung Hee Universit
y
OMG’s Object Management Architecture (OMA)OMG’s Object Management Architecture (OMA)
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
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
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
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
1111Kyung Hee Universit
y
ORB vs RPCORB vs RPC
call a specific
function
call a method
within a specific
object
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
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
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
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
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
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
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
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)
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,
…
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
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
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
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
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
2626Kyung Hee Universit
y
Component Evolution and InfrastructureComponent Evolution and Infrastructure
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
2828Kyung Hee Universit
y
CORBA and Web ServicesCORBA and Web Services
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