CSA

advertisement
CSA
week 2
CSA, week 2
1
CORBA
Object Management Group (OMG)
standaard beschrijving objecten
interface definition language (IDL)
(CORBA 1.x: 1991; CORBA 2.x:1995)
CSA, week 2
2
CORBA
Object Management Architecture
gedistribueerde componenten
locatie onafhankelijk
interactie tussen componenten door
interfaces
interface verbergt implementatie
CSA, week 2
3
CORBA Object
CLIENT SIDE
SERVER SIDE
CLIENT
APPLICATIE
REQUEST
OBJECT
IMPLEMENTATIE
RESULT
RESULT
REQUEST
OBJECT REQUEST BROKER
CSA, week 2
4
CORBA gedistribueerd
object platform
Client applicatie:
Naam object
Interface object
Object request broker
Lokaliseren object (location transparancy)
Doorgeven request
Teruggeven resultaat
Onafhankelijk van platform en taal
CSA, week 2
5
INTERFACE DEFINITION
LANGUAGE (1)
C++
JAVA ADA
C++
JAVA ADA
IDL
IDL
IDL
IDL
IDL
CLIENT
IDL
SERVER
OBJECT REQUEST BROKER
CSA, week 2
6
INTERFACE DEFINITION
LANGUAGE (2)
Declaratief; geen implementatie details
Language binding: IDL2JAVA
CSA, week 2
7
OMG Architectuur
APPLICATIE OBJECTEN
CORBA FACILITIES
BUSINESS OBJECTEN
OBJECT REQUEST BROKER
EVENT
NAMING
SECURITY
CORBA SERVICES
CSA, week 2
QUERY
8
CORBA begrippen
Applicatie object: Willekeurig object in een
applicatie dat d.m.v. CORBA beschikbaar is
Service: Bevat objecten met een specifieke
systeemfunctie; voor programmeurs
(naamgeving, eventhandling, e.d.)
Business object
Objecten dat voor eindgebruikers betekenis
heeft (klant, order, betaling, e.d.)
CSA, week 2
9
Statische Invocatie
CLIENT
APPLICATIE
OBJECT
IMPLEMENTATIE
(SERVANT)
STUBS
SKELETONS
OBJECT REQUEST BROKER
CSA, week 2
10
Stub
Functie Stub (=letterlijk “stompje”):
- biedt juiste interface voor gebruik
CORBA-object (statische invocatie)
- marshalling/demarshalling van parameters
CSA, week 2
11
Object Request Broker
 Functie object request broker (= ORB)
- stuurt methoden (inclusief parameters),
die via stub worden geinvoceerd, door
naar het echte CORBA-object
Communicatie tussen ORB’s
- Internet Inter ORB Protocol
(= IIOP; maakt gebruik van TCP/IP)
CSA, week 2
12
Het lokaliseren van een
CORBA object
Object Referentie
- Elk CORBA object krijgt een uniek adres:
Interoperable Object Reference (= IOR)
Dit is enigszins vergelijkbaar met IP-adres
- Het object kan gevonden worden op basis
van dit adres
CSA, week 2
13
Skeleton
Functie Skeleton:
- juiste methode aanroepen van (JAVA)implementatie van CORBA-object (Servant)
- marshalling/demarshalling van parameters
CSA, week 2
14
IDL
DEFINITIE
USER
PRECOMPILE
STUBS
USES
IMPLEMENT
CLIENT
COMPILE
CLIENT CLASS
SKELETONS
EXTENDS
IMPLEMENT
SERVANTS
COMPILE
SERVANT CLASSES
Stub en Skeleton
 Stub en Skeleton
- worden tijdens (pre-)compile time
gegenereerd vanuit IDL voor specifieke
language mapping (JAVA)
- Stub is een object, met zelfde interface als
het CORBA-object
- Skeleton is een klasse, servant is hiervan
afgeleid
CSA, week 2
16
CORBA implementaties
CORBA is alleen standaard, geen code
Implementaties (o.a.):
Visibroker van Borland/Inprise
JDK1.2 (Java2)
CORBA kan worden toegepast met (o.a.)
Java
C++
Pascal
CSA, week 2
17
Inleiding opdracht 2
Splitsing programma opdracht 1 in client
en server
“balletje in rechthoek”-server
Request bevat gegevens balletje op de
rand (coördinaten, richting, e.d.) met de
opdracht om deze verder te bewegen
Reply bevat gegevens balletje op de
andere rand
CSA, week 2
18
IDL script; practicum
module client_server
{
struct CORBA_Ball
{
long x;
long y;
long dx;
long dy;
long color;
long radius;
boolean visible;
};
interface CORBA_ballMover
{ CORBA_Ball roll(in CORBA_Ball ball);
};
};
CSA, week 2
19
IDL script; voorbeeld
module mod
{
interface Test
{ long check (in boolean b);
};
};
CSA, week 2
20
Gegenereerde files met
IDL2java
CSA, week 2
21
Test.idl
Geschreven
door
programmeur
IDL script
met
interface
Test
IDL2JAVA
_TestImplBase.java
Test.java
TestHelper.java
Skeleton klasse:
hier worden de
skeleton
methodes voor
intern gebruik
gedefinieerd
Hierin staat de
interface zoals
die in het IDL
script
gedefinieerd is
In deze abstracte
klasse staan een
aantal static
help-functies,
waaronder
narrow
extends
Gegenereerd
door
IDL2JAVA
implements
TestServant.java
In deze klasse
worden de
methode
check uit
interface Test
gedefinieerd
Het CORBA
object is een
instantie van
deze klasse
Geschreven
door
programmeur
Klasse ORB
ORB = Object Request Broker
Client en server bevatten ieder een ORB
object
ORB objecten zorgen voor sturen requests
en ontvangen replies m.b.v. IIOP protocol
ORB object aanmaken en initialiseren met
ORB.init(...);
CSA, week 2
23
CORBA model
functie-waarde en result
parameters
methode-aanroep met
parameters
CORBA-methodes,
gedefinieerd door de
programmeur
Client
Server
skeleton methodes,
gegenereerd vanuit IDLscript
String_to_object
CORBAobject
new
stub
connect
REQUEST met
methodenaam, in-parameters
init
ORB
ORB
REPLY met
functiewaarde, out-parameters
CSA, week 2
24
init
Server opdracht 2 (1)
Skeleton klasse afkomstig van Idl2java
Klasse voor servant wordt afgeleid van de
skeleton klasse
Server creëert een servant met new
(eventueel met een naam; geen CORBA
standaard)
CSA, week 2
25
Server opdracht 2 (2)
Meldt servant bij ORB aan met connect
Met servant corresponderende CORBAobject krijgt een uniek adres: IOR
CORBA object en daarmee de servant,
is nu vanaf een client met deze IOR
bereikbaar
Server is in deze opdracht gegeven
CSA, week 2
26
Smart Agent
Smart Agent kan namen van objecten
bevatten (primitieve nameserver)
Tenminste 1 Smart Agent op elk lokaal
netwerk
Fault tolerant:
Smart Agents kunnen elkaars taak overnemen
Smart Agent kan na crash van een object
overschakelen op ander object
CSA, week 2
27
Client opdracht 2 (1)
Moet stub verkrijgen voor het CORBAobject
Drie mogelijkheden:
IOR van server naar client doorgeven d.m.v.
een file
CORBA object een naam geven en object
lokaliseren d.m.v. die naam
Naming Server (week 3)
CSA, week 2
28
Client opdracht 2 (2)
Stub wordt in twee stappen gecreëerd:
referentie verkrijgen op basis van IOR of
naam (referentie is van klasse
org.omg.CORBA.Object)
referentie omzetten naar stub met methode
narrow uit klasse XXXHelper
CSA, week 2
29
Download