1 / 25

CryptoChat projekt

CryptoChat projekt. Bognár Attila, Herényi Gergely, Tihanyi Sándor. Konzulens: Vajda István, BME-HIT Nagy András, Egus InfoSystems. A projekt háttere. CORBA Java, C++ Dokumentálás Verziókezelés. Mi is az a CORBA?. Elosztott számítógépes alkalmazások korábban csak UNIX világban

efia
Download Presentation

CryptoChat projekt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CryptoChat projekt Bognár Attila, Herényi Gergely, Tihanyi Sándor Konzulens: Vajda István, BME-HIT Nagy András, Egus InfoSystems

  2. A projekt háttere • CORBA • Java, C++ • Dokumentálás • Verziókezelés

  3. Mi is az a CORBA? • Elosztott számítógépes alkalmazások • korábban csak UNIX világban • RPC, socket programozás (rugalmatlan, nehezen átlátható kód) • Új gondolat: általános keretrendszer • szabványos • objektum-orientált • rendszerfüggetlen • programozási nyelvtől független

  4. Történeti áttekintés • Object Management Group (OMG) • keretrendszer kidolgozása (1989-től) • http://www.omg.org • Object Management Architecture (OMA) • az OMG által szabványosított architektúra • legalacsonyabb szintje a CORBA • Common Object Request Broker Architechture (CORBA) • 2.0-ás változat 1995-ben • 3.0-s változat folyamatban

  5. CORBA komponensek • Kliens oldal (objektum felhasználó rész) • Szerver oldal (objektumot implementáló rész) • Más összefüggésben lehet kliens is • Bármelyik komponens bármilyen nyelven implementálható • Transzparens hálózati kommunikáció az ORB-n keresztül

  6. CORBA komponensek

  7. A rendszer működése • Kliens hozzáférése az objektumokhoz • proxyn keresztül • Proxy feladata • kérés továbbítása a szerver oldali objektum implementációk felé • visszatérő érték visszaadása

  8. CORBA szolgáltatások (3/1) • Lifecycle Service: • objektumok létrehozása, törlése, másolása, mozgatása • Relationship Service: • objektumok közti kapcsolatokat írja le • típusok, szerepek, a kapcsolat számossága, szemantikája • Persistent Object Service, Externalization Service: • interfész, protokoll definíció az objektumok elmentéséhez és visszaállításához • Trader Service: • az objektumok "tartalom" szerinti megnevezése

  9. CORBA szolgáltatások (3/2) • Transaction Service: • műveletek csoportosítása, commit-rollback protokoll • Concurency Control Service: • több felhasználó esetén az adatbázisokban fellépő konkurencia kezelése • Object Query Service: • Objektumok, OO és relációs adatbázisok összekapcsolhatóak egyetlen adatbázisba, ezek lekérdezése • Security Service: • Elosztott biztonsági szolgáltatások • Licensing Service: • licensz jogok

  10. CORBA szolgáltatások (3/3) • Naming Service: • az objektumok azonosítása megnevezés alapján • Event Service: • az események megfelelő helyekre eljuttatása • Property Service: • objektumokhoz tulajdonságok rendelhetők • Any típusú • ezen tulajdonságok kezelése

  11. ORBacus for C++ and Java • Object-Oriented Concepts, Inc. • http://www.ooc.com/ob • IDL fordító • C++ és Java nyelvre • HTML és RTF formátumra dokumentáláshoz • Windows 95/98/NT, UNIX, Linux rendszerekre • Egy- és többszálas programozás támogatása • többféle konkurrencia modell használható • Interface Repository • segítségével könnyen lehet IDL fordítókat írni más nyelvekre

  12. ORBacus for C++ and Java • Megvalósított CORBA funkciók: • Naming, Event, Property • Saját kommunikációs protokoll beillesztése • Open Communications Interface (OCI) • pluggable protocols: • IIOP (TCP/IP), SSLIOP, ATM, ISDN, multicast UDP/IP • Dinamikus programozás • Dinamic Invocation Interface (DII), Dinamic Skeleton Interface(DSI) • DynAny típus • a fordítási időben ismeretlen objektumok kezelésére

  13. ORBacus for C++ and Java • Kiegészítő elemek, alkalmazások az OOC-től: • SSL (biztonságos kommunikáció) • Trader (objektum kereső) • Names (adminisztrációs GUI)

  14. IDL nyelv • Feladata: • objektum felületének leírása • nyelvfüggetlen módon • architektúra független módon • Részei • modul • interface  C++ class • attribute, readonly attribute • egyszerű típusok, struktúrák • metódusok • in, out, inout argumentumokkal • oneway metódusok: asszinkron módon hívható • exception

  15. obj.cpp generálódik obj.IDL obj.h obj_impl.cpp obj_skel.h miírjuk obj_impl.h obj_skel.cpp Server.cpp Client.cpp Interfész specifikáció leképzése

  16. Példa alkalmazás: Hello World! • IDL file: • //IDL • interface Hello • { • void hello(); • }; Ebből az idl fordító a következőket generálja: hello.h, hello.cpp, hello_skel.h,hello_skel.cpp

  17. Hello World: szerver oldal • Hello_impl.h, Hello_impl.cpp • a Hello_skel osztályból örököltetjük az objektumot • itt írjuk meg a tényleges funkciókat • Server.cpp • ORB és BOA objektumok példányosítása • Hello_impl objektum példányosítása • objektumreferencia kiíratása file-ba az ORB objektum segítségével • a BOA elindítása: a szerver működik és várja a kéréseket

  18. Hello World: kliens oldal • Client: • ORB objektum példányosítása • a szerver által file-ba kiírt objektum-referencia beolvasása, majd CORBA objektummá konvertálása • az előbb kapott CORBA objektumból a hello objektum elkészítése (a proxy objektum) • ezek után az objektum úgy használható, mint ha a sajátunk volna • pl. hello->hello(); hívás

  19. Hello World: osztályhierarchia CORBA_Object CORBA_Object_skel Hello Hello_skel Client Server Hello_impl

  20. Egyéb lehetőségek • Naming Service használata • Naming szerver funkció elindítása egy adott porton • Távoli objektumok megtalálása „név” szerint • Biztonságos kommunikáció • SSL (Secure Socket Layer) pluggable protocol használata

  21. Más lehetőségek a CORBA használatára • MICO • http://www.mico.org • GNU CopyLeft • idl fordító csak C++-hoz • Java IDL • JDK 1.2 része • http://www.javasoft.com/products/jdk/idl/index.html

  22. Fejlesztési környezet • Java™: JDK 1.2 • kliens oldal (bármilyen Java platform) • előnye, hátránya: • része a Java IDL • egyelőre nem támogatják a böngészők, csak az 1.1-es verziót • C++ • szerver oldal (UNIX, Linux) • egcs 1.1.2 (Experimental GNU Compiler)

  23. Dokumentálás • LaTeX 2 • nem WYSIWYG • stabil, nyomdaképes kimenet • struktúrált szerkesztési lehetőség • platformfüggetlen, kis erőforrásigényű • magyar nyelv támogatás: • elválasztás • korrekt ékezetek (T1 encoding) • generált szövegek magyarul (pl. „Tartalomjegyzék”, „ábra”, „Függelék”)

  24. Dokumentálás • LaTeX kimeneti formátum lehetőségei • DVI (Device Independent) • dvips: PS (Adobe PostScript) • latex2html: HTML formátumra konvertálás • latex2rtf: RTF formátumra konvertálás • ps2pdf: Adobe Portable Document Format • Rajzok • xfig: • vektorgrafika • exportálás EPS, PS, LaTeX, PNG, stb. formátumba

  25. Verziókezelés • CVS (Concurrent Versions System) • file-csoportok konkurens kezelésére • csapatmunka támogatás • változások nyomon követhetősége • UNIX, Linux, Windows platformokra

More Related