1.1.12. fejezet, Java és CORBA
Beküldte pzoli - 2011, május 27 - 5:13du
A Java alkalmas a CORBA alapú kommunikációra. Ehhez készítettem egy tanulmány programot. A JDK 1.6-ot használom a mintában, ám lehet komolyabb komponens készletet is alkalmazni, mint például a JacORB, amiben használható SSL is a kommunikáció titkosításához.
A JDK-ban mellékelt ORB szerver indítása (nyitott TCP portok: 1050,1049):
orbd -ORBInitialPort 1050 -ORBInitialHost localhost
CORBA szerver indítása:
java -jar server.jar -ORBInitialPort 1050 -ORBInitialHost localhost
CORBA kliens indítása:
java -jar client.jar -ORBInitialPort 1050 -ORBInitialHost localhost
A CORBA platform független leíró nyelvben, az IDL-ben írja le az interfészeket. Ezt a JDK-ban mellékelt idlj parancsal konvertálhatjuk Java kóddá. Két minta IDL:
module Timer_Corba_client { interface ITimerClient { boolean OnNewMessage(in string pMessage); boolean OnTimer(in long ThreadPID); boolean OnServerDown(); }; };
#include <TimerClient.idl> module Timer_Corba_server { interface TimerServer { boolean LogIn(in string userName, in string passwd, in Timer_Corba_client::ITimerClient EventObj); boolean LogOut(); boolean SendMessage(in string message,in string targetUserName); long RegisterEvent(in any data); boolean DeleteEvent(in long eventId); boolean Shutdown(); }; };
POA (Portable Object Adapter) és segéd osztályok, interfészek létrehozása:
idlj - -fall TimerClient.idl TimerServer.idl
A generált kódok az Timer_Corba_client könyvtárban a következők:
- ITimerClient.java : Az IDL interfész mint Java interfész
- ITimerClientHelper.java : Tipus operációk implementálása az interfész számára
- ITimerClientHolder.java : Kimenő és ki-be menő paraméterekhez használt segédosztály
- _ITimerClientStub.java : Helyi objektum implementációja a távoli CORBA objektumnak, ami továbbítja az összes kérést a távoli objektumnak. A kliens nem használja ezt az osztályt közvetlenül.
- ITimerClientOperations.java : Az ITimerClient interfész kiegészítő interfésze, ami leírja a kliens műveleteit.
- ITimerClientPOA.java : Ezt az osztályt kell kiterjesztenünk az implementációs osztályban.
Típus konverziók:
IDL Típus | Java Típus |
---|---|
boolean | boolean |
char / wchar | char |
octet | byte |
short / unsigned short | short |
long / unsigned long | int |
long long / unsigned long long | long |
float | float |
double | double |
string / wstring | String |
Kulcsszó konverziók:
IDL | Java |
---|---|
module | package |
interface | interface |
operation | metódus |
attribute | metódus pár |
exception | exception |
- A hozzászóláshoz be kell jelentkezni