[ Pobierz całość w formacie PDF ]
.hh msgSK.cc### Kilka przekszta³ceñ ORBit IDL%.h : %.idlorbit-idl $<%-common.c : %.idlorbit-idl $<%-skels.c : %.idlorbit-idl $<%-stubs.c : %.idlorbit-idl $<### Zale¿noœci omniORB.%SK.cc: %.idlomniidl2 $<%.hh : %.idlomniidl2 $<### Teraz nasze ulubione zale¿noœci:msg.h: msg.idlmsg-common.c: msg.idlmsg-stubs.c: msg.idlmsg-skels.c: msg.idl### Tutaj ustawiono powi¹zanie z omniORB2 zapewniaj¹c dodatkow¹ weryfikacjê### czy IDL jest poprawnie zbudowane z perspektywy innego jêzyka,### ORB i parsera.Je¿eli ten poœrednik nie jest zaistalowany, to### powi¹zanie siê nie uda, generuj¹c b³¹d.msg.hh: msg.idlmsgSK.cc: msg.idl### Kompilacja klienta komunikatówmsg-client: msg-client.o msg-common.o msg-stubs.o$(CC) -o msg-client msg-client.o msg-stubs.o msg-common.o \$(LFLAGS)msg-client.o: msg-client.cMo¿e nie jest najlepszym pomys³em u¿ycie make do automatycznej generacji zrêbówz IDL, ale to dzia³a.Zauwa¿my, ¿e makefile tworzy pliki powi¹zañ do C++ dziêkiu¿yciu poœrednika omniORB.Faktycznie nie korzystamy z tego, lecz takakonstrukcja pomaga w wyszukiwaniu b³êdów w plikach IDL, poniewa¿ omniORB szukaproblemów odnosz¹cych siê do jêzyka C++.Uruchamianie przyk³adowej aplikacjiNajpierw nale¿y siê upewniæ, czy ORBit, Python oraz ORBit-Python s¹zainstalowane w systemie.Pierwsze dwa s¹ prawdopodobnie dostarczone wdystrybucji Linuksa.ORBit-Python umo¿liwiaj¹cy powi¹zanie jêzyka Python zpoœrednikiem ORBit mo¿na pobraæ ze strony http://orbit-python.sault.org/.Za³Ã³¿my, ¿e wszystkie wspomniane do tej pory pliki s¹ ju¿ w katalogu/usr/local/erc/ORBitsamples.PrzejdŸmy do tego katalogu i u¿yjmy polecenia:$ makeZostan¹ utworzone zrêby IDL i msg-client, a tak¿e msg.hh oraz msgSK.cc, je¿eliby³ zainstalowany poœrednik omniORB.Musimy teraz uruchomiæ serwer, aby mo¿na by³o dokonaæ rozruchu naszejrozproszonej aplikacji:$./msg-serverDokonuje siê to z aktualnie u¿ywanego terminala, a wiêc mo¿na uruchomiæ tenprogram w tle, aby dalsze korzystanie z terminala by³o mo¿liwe.Polecenie spowodowa³o uruchomienie serwera i zapis IOR w postaci znakowej dopliku /usr/local/src/ORBitsamples/msg-server.ior.Mo¿na przejrzeæ zawartoœætego pliku, aby sprawdziæ, jak wygl¹da IOR.Teraz nadesz³a chwila prawdy:przejdŸmy na dostêpny terminal i wpiszmy polecenie:$./msg-client me you < msg-server.iorTerminal, na którym zosta³ uruchomiony msg-server, powinien teraz wyœwietliæliczbê komunikatów, informacjê o ka¿dym komunikacie i zawartoœæ pliku IOR.Doskonale! Mamy wiêc pierwsz¹ aplikacjê dzia³aj¹c¹ w architekturze CORBA.Je¿eli jest dostêpny inny komputer po³¹czony za pomoc¹ protoko³u TCP/IP, tomo¿na spróbowaæ zestawiæ zdalne po³¹czenie.Nale¿y w tym celu wykonaæ kilkaczynnoœci: na tym komputerze trzeba uruchomiæ msg-client i mieæ dostêp do plikumsg-server.ior.Jednym ze sposobów rozwi¹zania tego problemu jest zamontowaniekatalogu /usr/local na obydwóch komputerach.Mo¿na tak¿e skopiowaæ wspomnianepliki za pomoc¹ FTP lub przenieœæ je na dyskietce.W przypadku komputera Alphafirmy Compaq potrzebna bêdzie ponowna kompilacja programu msg-client.Wszystko to pokazuje, ¿e mo¿na wysy³aæ komunikaty z klienta do serwera.Serwernapisany w jêzyku Python by³ obci¹¿ony dla celów testowych wiadomoœciamiprzesy³anymi przez dwa inne serwery i w ci¹gu 10 minut przetworzy³ 15000komunikatów bez zg³aszania b³êdów.Materia³y Ÿród³owePoni¿ej podajemy u¿yteczne strony WWW:Konsorcjum Object Management Group (http://www.omg.org)ORRBit (http://www.labs.redhat.com/orbit)Enhydra (http://www.enhydra.org)CORBA Links dra Douglasa Schmidta (http:/www.cs.wustl.edu/~schmidt/corba.html)Bezp³atny poœrednik ORB Toma Valesky(http://patriot.net/~tvalesky/freecorba.html)Open Source Java i XML Application Server z projektu Enhydra(http://www.enhydra.org)Simple Object Access Protocol (SOAP) (http://www.w3.org/TR/SOAP/)PodsumowanieW tym rozdziale pokazano architekturê CORBA jako sposób budowy rozproszonychaplikacji obiektowych oraz jej wa¿niejsze sk³adniki, czyli poœredniki wywo³añobiektów (ORB) i jêzyk definicji interfejsu (IDL).Porównano architekturê CORBA z niektórymi innymi systemami realizuj¹cymipodobne zadania.Pod wzglêdem funkcjonalnym zbli¿aj¹ siê one do siebie,poniewa¿ organizacje wspomagaj¹ce CORBA zaczynaj¹ wdra¿aæ us³ugi przypominaj¹ceus³ugi wystêpuj¹ce w innych systemach lub pomosty komunikacyjne miêdzysystemami.Zapoznaliœmy siê z niektórymi szczegó³ami struktur IDL oraz ze sposobemdefiniowania interfejsów obiektów.Zobaczyliœmy tak¿e, jak w aplikacjach CORBAmo¿na ³¹czyæ IDL niezale¿ny od jêzyka ze specyficznymi jêzykami programowania,zwracaj¹c szczególn¹ uwagê na odwzorowanie w jêzyku C.Pokazano tu równie¿ kod Ÿród³owy prostego systemu powiadamiania, zawieraj¹cyfragmenty napisane w jêzykach C i Python oraz korzystaj¹cy z poœrednika ORBit
[ Pobierz całość w formacie PDF ]