Niečo o technológii Corba



Čo to je?

CORBA je skratka termínu Common Object Request Broker Architecture. Je to architektúra a špecifikácia na vytváranie, distribuovanie a spravovanie distribuovaných objektov v sieti. Dôležité je, že umožnuje aby objekty rôznych poskytovateľov v rôznych programovacích jazykoch spolu komunikovali.

Na čo to je?

Corba sa používa distribuované objektové aplikácie v heterognénnom prostredí. Teda jeden objekt je napr. na na unixovskom stroji v jazyku c++, druhý na windowse v jave na druhom konci sveta. Výhodou je že všetko je štandardizované.

Ako to funguje?

Corba je klient/server architektúra. Skladá sa z troch komponentov(je ich viac, ale ..). Klient, server a orb. Server sprístupňnuje nejaké služy, klient ich využíva. Orb - object request broker sprístupňuje rôzne služby. Asi najvyužívanejšou je Naming service - klient zadá orbu meno objektu a dostane na naň referenciu. Ďaľšie služby sú napr. transaction service , security service (na to som zvedavý) atď.

Zaujímavé je že Corba objekty vlastne neexistujú-sú virtálne a implementujú ich servanti v nejakom jazyku ktorý môže byť aj neobjektový.

Ako sa to programuje?

Vo všeobecnosti sa vezme nejaký case nástroj v ňom sa zbúchajú triedy ich vzťahy, aké si posielajú správy - teda celý model projektu. Takýto nástroj potom vygeneruje idl súbor/y (jednodušie sa dajú spraviť aj ručne). Idl súbor je definícia rohraní typov a objektov v akoby corba jazyku. Ten potom spracuje idl kompiler pre daný programovací jazyk a vygeneruje šablóny ktoré sa potom poupravujú.

Popis ukážkového programu 1

V súbore hello.idl sme nadefinovali objekt s dvoma metódami. Jedna vráti hello, druhá objekt zruší. Java.client inicializuje orb(spojí sa s ním) a inicializuje naming service a pomocou neho získa odkaz na bežiaci server. Pre javu sa server javí ako pomocná trieda vygenerovaná idl kompilerom. Táto pomocná trieda nám zabezpečí zavolanie vzdialeného objektu.V Java.server sú dve triedy. Jedna impementuje rozhranie nadefinované idl súborom. Druhá túto triedu vytvorí, zaregistruje ju a priradí jej meno aby ju klienti mohli využívať.

Postup sprevádzkovania ukážkového programu

  • Skompilovať idl súbor aby vytvoril šablóny pre javu(fall znamená vytvárať aj server) : idlj -fall Hello.idl
  • Skompilovať klienta : javac HelloClient.java
  • Skompilovať server : javac HelloServer.java
  • Spustiť orb : orbd -ORBInitialPort 1050 -ORBInitialHost menopočítačasorbom
  • Spustiť server : java HelloServer -ORBInitialPort 1050 -ORBInitialHost menopočítačasorbom
  • Spustiť klienta : java HelloClient -ORBInitialPort 1050 -ORBInitialHost menopočítačasorbom.

    Postup sprevádzkovania ukážkového programu 2

  • Skompilovať idl súbor aby vytvoril šablóny pre javu(fall znamená vytvárať aj server) : idlj -fall horse.idl
  • Skompilovať všetko javac *.java
  • Spustiť orb : orbd -ORBInitialPort 10000 -ORBInitialHost menopočítačasorbom
    pozn. to 10000 nemeniť - je napevno v programe
  • Spustiť server : java hrserver počet_jazdcov menopočítačasorbom
  • Spustiť klienta : java hrclientt číslo_jazdca menopočítačasorbom Klienta treba sputsiť toĺkotrkát koĺko jazdcov. Keď budú napr 2 jazdci tak prý má čílslo 0 a druhý 1.

    Odkazy:

  • Java tutoriál hello world
  • Celkom pekná práca - kapitoly 1-4 poskytujú úvod do corby. Veľmi Doporučujem prečítať-je tam všeličo čo by malo byť tu.
  • Priklad 1 - ukážkový programček.
  • Priklad 2 - ukážkový programček.