CORBA Łukasz Wnęk
Model obiektowy Grupa OMG definiując standard CORBA opierała się na opracowanym przez siebie abstrakcyjnym modelu obiektowym. Model opisany jest modelem konkretnym związanym z CORBą, przez co ma pewne ograniczenia oraz własne osobliwości. Obiekt jest identyfikowalnym, złożoną jednostką, która udostępnia jedną lub więcej usług.
OMG Opracowanie jednorodnej architektury z użyciem technologii obiektowej, mającej na celu integrację rozproszonych aplikacji, która zapewniałaby: ponowne użycie komponentów oprogramowania i danych współdziałanie i przenaszalność podstawy rynku kompatybilnego oprogramowania
Zalety rozproszonych obiektów Zgodność z logiką biznesu (obiekty biznesowe mogą być bezpośrednio zaimplementowane jako obiekty CORBA) Skalowalność aplikacji: mała zależność czasu reakcji systemu od zwiększenia ilości danych, liczby użytkowników, liczby węzłów. Dekompozycja aplikacji na małe elementy wykonawcze (obiekty, metody,...) Przyrostowe dodawanie/odejmowanie funkcjonalności (“płacę tylko za to, czego używam”) Podział zasobów i zbalansowanie obciążeń Współbieżność i asynchroniczne przetwarzanie
ORB-pośrednik zamówień obiektowych
ORB (ang. Object Request Broker) ORB (ang. Object Request Broker). Jego głównym zadaniem jest dostarczanie zleceń do obiektów i następnie zwrot odpowiedzi od nich do klientów. Zapewnia on przezroczystą komunikację pomiędzy klientem i serwerem. ORB ukrywa: Lokalizację obiektu: klient nie potrzebuje wiedzieć, gdzie obiekt jest ulokowany. Implementację obiektu: klient nie potrzebuje wiedzieć, jak obiekt jest zaimplementowany. Stan działania obiektu: klient nie potrzebuje wiedzieć, czy obiekt jest aktywny, gotowy do akceptacji zapytania, czy nie uczestniczy aktualnie w innych procesach. Mechanizm komunikowania się obiektów: klient nie potrzebuje wiedzieć, jaki mechanizm komunikacyjny jest aktualnie używany (TCP/IP, lokalne wywołania metod, itd.)
Pniaki i szkielety Pniak(stub) znajduje sie po stronie klienta i zajmuje się tworzeniem i wysyłaniem jego zleceń. Szkielet (skeleton) znajduje się po stronie serwera. Szkielet wypełniony kodem implementacji operacji zajmuje się dostarczanie zleceń klienta do implementacji obiektów.
SERWISY CORBY Standard CORBY określa zbiór usług – serwisów (COS) wspomagających współdziałanie rozproszonych obiektów. Serwisy są to standardowe obiekty CORBY, określane jako Object Services, zdefiniowane przy użyciu interfejsów języka IDL jako części składowe serwisu ORB.
Serwisy CORBA Jednym z głównych serwisów Corby jest NamingService. Pozwala on na większą uniwersalność systemu rozproszonego. Dostęp to powyższego serwisu dostępny jest z każdej platformy systemowej. Usługa ta umożliwia przekazanie referencji do obiektu. Działanie NamingService przedstawia poniższy rysunek.
Działanie
SERWISY cd... Object life cycle – definiuje sposób tworzenia, likwidowania, kopiowania i przenoszenia obiektów CORBY, Naming – definiuje zasady nazewnictwa obiektów CORBY, Events – definiuje sposób komunikacji między obiektami CORBY, Relationships – specyfikuje relacje między obiektami CORBY, Externalization – nadzoruje transformację obiektów CORBY w zewnętrznych środowiskach,
CORBA-RMI CORBA Java / RMI Każdy interfejs dziedziczy z CORBA.Object Każdy serwer implementuje java.rmi.Remote Obiekty identyfikowane przez referencje Interfejsy identyfikuje nazwa, implementacje przechowywane w repozytorium Interfejsy identyfikuje nazwa, implementacje mapowane na URL w rejestrze Referencja do serwera tworzona przez adapter Referencję do serwera tworzy metoda UnicastRemoteObject. exportObject(this) Używa protokołu GIOP Używa protokołu JRMP Klient uzyskuje referencję do serwera z serwisu nazwowego lub handlowego Klient używa metody lookup()
CORBA-RMI cd Mapowanie nazw obiektów do implementacji wykonuje repozytorium implementacji Mapowanie nazw do implementacji wykonuje rejestr Informacje o parametrach metod znajdują się w repozytorium interfejsów Informacje o parametrach metod przechowują same obiekty. Dostęp możliwy przez refleksję. Znajdowaniem obiektów zajmuje się ORB Znajdowaniem obiektów zajmuje się Wirtualna Maszyna Javy Podczas wołania metod interfejsy przekazywane są przez referecję, inne obiekty przez wartość Wszystkie interfejsy dziedziczące z Remote przekazywane przez referencję, reszta przez wartość Nie obsługuje garbage collection Garbage collection realizowane przez Wirtualną Maszynę Obsługuje języki oraz platformy, dla których istnieje implementacja CORBA ORB Dostępne wyłącznie dla Wirtualnej Maszyny Javy (w tym produkcji Suna i Microsoftu)
CORBA-COM Zarówno COM, jak i CORBA służą do tworzenia i komunikowania się struktury rozproszonych obiektów. Technologie te mają odrębny sposób obsługi obiektów i oferują różne usługi. Obie mają też swoje plusy i minusy.
CORBA-COM cd ... COM jest dostępny bezpłatnie dla wszystkich komputerów pracujących w środowisku Windows. Jest to jego zaleta, ale zarazem i wada - nie ma bowiem wersji COM dla żadnej innej platformy. Jego potęgą jest integracja na niskim poziomie z systemem operacyjnym.
CORBA-COM cd CORBA jest technologią zaimplementowaną praktycznie dla każdej platformy i wspierającą prawie każdy język programowania. Stosując CORBA, spotkamy się jednak z pewnym problemem - nie wszystkie ORB-y potrafią się ze sobą skomunikować. Potęga CORBA tkwi w jej niezawodności i skalowalności, systemy stosujące tę technologię zapewniają efektywniejsze wykorzystanie komputerów i większą stabilność pracy.