Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 15

9.


.
. -

. , r
.

. ,
,
. ,
.
CORBA,
. CORBA

.
Microsoft DCOM. DCOM
(middleware) Windows ,
Windows 95. Windows
DCOM. DCOM

.
(
,

,
middleware. )
,
- . ,
Globe
wide-area . Globe
CORBA DCOM Globe
.

, .
7 : , ,
, , ,
.

9.1 CORBA
- Common Object
Request Broker Architecture, CORBA. ,
CORBA .
Object Management Group (OMG),
800 , .

1
OMG CORBA
.
CORBA 1990-.
CORBA 2.4 ,
CORBA 3.
CORBA
. 700
1200
. CORBA

. CORBA
.
CORBA
,
-
. CORBA
http://www.omg.org. C++
CORBA Baker. S. CORBA Distributed Objects Using Orbix.
Reading, MA: Addison-Wesley, 1997.

9.1.1 CORBA
CORBA OMG
1997. , 9.1 4
Object Request Broker
(ORB). ORB CORBA ;
,
. ,
ORB
.
ORB CORBA .

9.1 CORBA

,
CORBA (facilities).
CORBA ( )
.
.
,

2
, (
workflow ).

, , .
CORBA
ORB.


CORBA 2.
.
CORBA
.
CORBA . ,
CORBA
. , Globe ,

CORBA.
CORBA Interface Definition Language
(IDL). CORBA IDL
.
CORBA IDL. ,
.
IDL.
, Distributed COM Globe,
. ..
. CORBA
IDL
.
, C, C++, Java, Smalltalk, Ada COBOL.
CORBA ,
CORBA .9.2

9.2 CORBA

3
CORBA, ORB. ORB
runtime
.
.
ORB .
.
ORB. ORB (marshal)
(unmarshal)
, .
.
ORB
. ,
CORBA .
,
.
.
ORB , ORB.
, stub-
. proxy
.
2 proxy stub
.
.
proxy ORB .
CORBA IDL, CORBA
IDL
ORB.

. ,

. , CORBA Dynamic invocation Interface (DII)
,
. , DII ,
,

.
3.
9.2 CORBA ,
.
stub skeletons CORBA,
.
stub
IDL
skeleton.

. .

4
(implementation repository)


. CORBA
/, .


.
CORBA .
IDL
. ID
.

, .
.

IDL ,
. ( ,

.) CORBA
.
CORBA
. ,
.
ORB
.

. 3


.
.
,

.
(.. )
.
, ,
.
,
.

ORB .

5
CORBA

CORBA CORBA .
CORBA
CORBA . , CORBA
.
CORBA .9.3.
, ,
.
,
DCOM Globe.
(collection service)

query .
.
.
.
(concurrency control).

.
.
.
.
,
. CORBA
(event service)
.
(notification service)
.
(externalization)
.
Java,
.
(life cycle service) ,
, .
(factory object)
.
. ,
.

.


Collection , , ,
.
Query

6

Concurrency

Transaction

Event
Notification -

Externalization
Life cycle , ,

Licensing
Naming
Property (, )
Trading

Persistence
Relationship
Security ,
Time

. 9.3 CORBA

(licensing service)
.
. ,

.
.
CORBA (naming service)

.
(property service).
(, ) .

. ,
.
(trading service)
( )
.
(persistence service)
.
:

.

7

.
(relationship service)
.
(security service).

SESAME Kerberos. CORBA
, , , , -
. .
, CORBA (time service)
.
Pope, CORBA CORBA
.
CORBA IDL
.
.
.
.

9.1.2

, CORBA :
.
.
CORBA
. ,

.
2.

,
.

.
.

. CORBA

.
.
.
CORBA .
,

8
. RPC
2.
CORBA
(one-way request).
.
RPC, CORBA
.
.
CORBA
(deferred synchronous request).

.
. ,
.
3 . 9.4

9.4 CORBA

CORBA
-
, .

.
.
.
CORBA . ,
,
. (supplier)
(consumer).
(event channel), .,
. 9.5.

9
9.5 ,

. 9.5 (push model). ,


,
.
. ,

.
CORBA (pull
model) . 9.6.
.
.

9.6 CORBA


, . ,
.

, . CORBA
.

, .

.
. ,
.
, . CORBA /
.
12
. CORBA
.

10
(messaging)
CORBA .

. 2

.
,
.
. CORBA
.
CORBA -
. ,
.
,
.
(callback model)
.

.
. ,

, () .
. ,

.
.
.
callback .
ORB
.
,
:
int add(in int i, in int j, out int k);
( CORBA IDL)
integers i j i+j k.
-1 .
()
(
OMG):

void sendcb_add (in int i, in int j); //


void replycb_add(in int ret_val, in int k); // ORB

,

callback . ,

11
, callback
.
.
, stub
sendcb_add. , callback ,
replycb_add.
.
, callback . 9.7

9.7 CORBA

callback CORBA (polling


model). ,
ORB . callback

. ,

.
add
(,
):

void sendpoll_add(in int i, in int j); //


void replypoll_add(out int ret_val, out int k); //

callback replypoll_add
ORB .
IDL . . 9.8.
,
.

12
9.8 CORBA



.
( )
.
OMG, 2001
2.4.4.

CORBA
. CORBA

. , ORB
.
ORB
.
. 9.2
CORBA
General Inter-ORB Protocol (GIOP).
GIOP ,
.
, -
., . TCP ,
. GIOP TCP
Internet Inter-ORB protocol IIOP.
GIOP ( IIOP GIOP) 8
. 9.9. Request Reply,
.
Request ,
,
. .

13
Request request ,
incoming .
Reply
.
, request
Request .

Request
Reply
LocateRequest
LocateReply
CancelRequest
Closeconnection
Messageerror
Fragment

9.9 GIOP

,

. LocateRequest.
Locate Reply,
.
CancelRequest
Request LocateRequest.
.

,
.
.
.
GIOP .
,
.
ClosecoConnection.
MessageError.
GIOP .
ICMP
. IP
ICMP .)
GIOP
.
. Fragment

14

.

15

You might also like