enterprise corba
DESCRIPTION
Enterprise Corba. Prezentacja seminaryjna T. Pieciukiewicz R. Hryniów. Wydajność. Prędkość działania konkretnej operacji zależy od: Ilości RMI niezbędnych do jej zrealizowania, Ilości danych przekazywanych w każdym wywołaniu, Kosztach marshallingu danych. Przykład. - PowerPoint PPT PresentationTRANSCRIPT
Enterprise Corba
Prezentacja seminaryjna
T. Pieciukiewicz
R. Hryniów
Wydajność
• Prędkość działania konkretnej operacji zależy od:– Ilości RMI niezbędnych do jej zrealizowania,– Ilości danych przekazywanych w każdym
wywołaniu,– Kosztach marshallingu danych.
Przykład
• Pobieramy z serwera tablicę obiektów w celu wyświetlenia.– Wariant pierwszy:
• Pobieramy sekwencje referencji do obiektów
• Dla każdego obiektu pobieramy interesujące nas dane.
• ZALETY:– Wszystkie działania wykonywane są tylko na obiektach
– Zawsze mamy aktualne dane
Przykład cd.
• WADY:– Duży koszt operacji w RMI – mamy 1 + n*m wywołań
(n- liczba obiektów, m-liczba atrybutów).
– Referencje do obiektów mają najwyższy koszt marshallingu (porównanie kosztów marshallingu dalej)
Przykład cd.
– Wariant drugi:• Pobieramy sekwencję struktur zawierających interesujące nas
dane. • Jeżeli potrzebujemy referencję do jednego z obiektów
pobieramy ją na podstawie struktury.• ZALETY:
– Mała liczba wywołań – dokładnie jedno – w celu pobrania danych
– Mniejsza liczba utworzonych obiektów (poważna zaleta w niektórych ORBach)
– Mniejsze koszty marshallingu
• WADY:– Potrzeba wykonania dodatkowej operacji w celu pobrania
obiektu. Nie wszystkim musi się to podobać.
Porównanie kosztów marshallingu
Przesyłanie dużej ilości danych
• Użycie iteratorów:
Przesyłanie dużej ilości danych
• Metoda przydatna przy przesyłaniu obrazów (lub innych danych binarnych).
• Zalecana również przy przesyłaniu większej ilości struktur.
Messaging service – po co?
• Przydatna jest możliwość przekazywania informacji z serwera do klienta (klientów) bez żądania ze strony klienta.– Np. aby informować klienta o aktualizacji
danych. Jest to lepsze od odpytywania serwera przez klienta co ustalony okres czasu – zmniejsza obciążenie serwera i ruch w sieci.
Messaging service - kanały
• Klienci zapisują się do kanałów informacyjnych, deklarując swoje zainteresowanie wiadomościami różnych kategorii.
• Otrzymują tylko potencjalnie interesujące ich wiadomości.
• Możliwość filtrowania wiadomości z określonego kanału.
Store and Forward
• Zapewnia dotarcie wiadomości do klienta nawet jeśli ten nie był aktywny w momencie rozsyłania wiadomości (po rejestracji w systemie otrzymuje wszystkie oczekujące na niego wiadomości).
Messaging service - implementacje
• VisiBroker
• Orbix
• Niektóre darmowe (np. JavaOrb)
Bezpieczeństwo
• Security Service– Level 1:
• Autentykacja użytkownika,
• Bezpieczne wywoływanie metod (działające na poziomie interfejsów – tzn. deklarujemy bezpieczeństwo dla wszystkich obiektów implementujących dany interfejs),
• Audyt.
Bezpieczeństwo cd.
– Level 2 (brak pełnej implementacji):• Dynamiczna kontrola siły zabezpieczeń,
• Dokładniejsza kontrola uprawnień
• Możliwość zdobycia przez aplikację informacji o aktualnie obowiązujących zasadach bezpieczeństwa.
• SecIOP – IIOP uzupełnione o bezpieczeństwo
• Corba/Firewall Specification
Bezpieczeństwo cd.
• ORB-SSL (może funkcjonować bez pozostałych serwisów bezpieczeństwa)– Autentykacja,– Szyfrowanie danych,– Integralność danych (zabezpieczenie przed
zmianami w czasie transportu),
Transakcje
• Sterowane przez klienta lub przez serwer.
• Transakcje sterowane przez serwer – niewidoczne dla klienta.
• Transakcje sterowane przez klienta – wywołania konkretnych metod sterujących transakcjami.
Transakcje rozproszone
• Object Transaction Monitor – integruje CORBA z monitorem transakcji.
• Wymagania:– Wsparcie dla bezpieczeństwa– Wsparcie dla równoważenia obciążenia– Kontrola przepływu wywołań
(wielotransakcje!)
Transakcje rozproszone
Transakcje rozproszone
CORBA OTS
CORBA OTS – jak to działa?
Przepływ wywołań i multitransakcje
Zarządzanie pamięcią – zwalnianie obiektów
• Możliwe polityki zwalniania obiektów:– Explicite zwalnianie obiektów przez klienta
– Zamknięcie połączenia przez klienta
– Okresowe przeglądanie obiektów w celu wyłonienia kandydatów do usunięcia
– Przekroczenie progu ilości aktywnych obiektów
– Podczas tworzenia nowego obiektu
– Zewnętrzne
Wybór obiektów do zwolnienia
• Najdłużej nieużywany
• Po zakończeniu czasu wymaganej aktywności
• Najstarszy obiekt
Skalowalność – limity połączeń
• ORBy mają limit jednoczesnych połączeń (zależny od implementacji, np. 1000).
• Co zrobić jeśli limit może zostać przekroczony?– Zamykanie połączeń – ze strony klienta (np. nie
będzie na dłuższy czas potrzebne) lub serwera (długa nieaktywność klienta).
– Koncentratory.
Koncentratory
Wielowątkowe serwery
• Wielowątkowość może uratować nas przed zakleszczeniem w pewnych wypadkach.
• Potencjalnie większa wydajność przy wieloprocesorowych maszynach.
• Polityki podziału na wątki:– Thread-per-Request– Thread-per-Client (Connection)– Thread-per-Object– Thread Pool
Równoważenie obciążenia
• Zrównoważenie obciążenia wszystkich serwerów danej aplikacji.
• Zmniejszenie strat w wypadku awarii jednego z serwerów.
• Ominięcie ograniczeń sprzętowych i programowych (np. limitu połączeń).
• Związane z podziałem (poziomym lub pionowym) aplikacji lub replikacją.
Polityki migracji klienta
• Na operację
• Na transakcję
• Na jednostkę pracy
• Na sesję
Równoważenie nie jest darmowe
• Koszt wyszukania najmniej obciążonego serwera (czas)
• Koszt synchronizacji serwerów (czas)• Koszt uruchomienia nowych serwerów
(czas, pieniądze!)• Koszt testowania procedur równoważących
(czas, pieniądze!)• Inne koszty (czas?, pieniądze?)
CORBA a równoważenie obciążenia
• Partycjonowanie poziome – realizacja przy pomocy Naming Service (lub podobnych).
• Pionowe – na poziomie BD i aplikacji.
• Replikacja – na poziomie ORB (brak specyfikacji)
• Każdy dostawca komercyjny proponuje własne rozwiązania.
Odporność na awarie
• Odporność na awarie -> odporność systemu na awarie spowodowane czynnikami takimi jak:– Awaria sprzętu lub systemu– Awaria sieci– Błędy w aplikacji– Sabotaż, klęski żywiołowe itd...
Środki pozwalające uzyskać odporność
• Replikacja serwerów i BD– Cold Backup (czekamy na awarię, po
wystąpieniu startujemy nowy serwer)– Warm Standby (serwer zapasowy działa cały
czas i synchronizuje się z głównym)– Hot Standby (grupa serwerów realizuje
równolegle zlecenia klienta).
CORBA i odporność
• Brak specyfikacji usług, protokołów itp.
• Odporność na poziomie transportu (ORB) zależy od konkretnego produktu,
• Odporność na wyższym poziomie zależy od rozwiązań organizacyjnych i konkretnych aplikacji.
Bibliografia
• Dirk Slama, Jason Garbis, Perry Russel „Enterprise Corba”
• Odrobina własnego doświadczenia