wykład 10

Transkrypt

wykład 10
Apartamenty
• STA – obiekt COM żyjący w STA (single threaded
apartament) obsługuje żądania na jednym wątku.
Szeregowanie wywołań poprzez kolejkę komunikatów.
Konieczność synchronizacji jedynie dostepu do danych
globalnych serwera
• MTA – Multithreaded Apartament zawiera obiekty
obsługujące wywołania współbieżne z wielu wątków
obsługiwane przez pule watków. Konieczność
synchronizacji także danych wewnętrznych obiektu oraz
braku „thread affinity”.
• Neutral – apartament nie posiadający własnych wątków,
przejmuje wątki wywołujacego.
• Przepakowywanie interfejsów między apartamentami –
interfejs jest ważny tylko w apartamencie gdzie został
uzyskany.
Ustawienia Zabezpieczeń
• Autentykacja (kto usiłuje uzyskać
połączenie)
• Autoryzacja (co może zrobić)
• Tożsamość serwera (jako kto działa
serwer)
• Wywołania zwrotne
Problemy
•
•
•
•
Environment Initialization
COM requires that the programmer call the CoInitialize[Ex] and CoUninitialize
methods on each thread in the program that requires COM functionality ( OleInitialize
i OleUninitialize dla użycia clipboardu OLE). Wymagana ostrożność przy użyciu
wątkow tworzonych przez inne podmioty
Reference Counting
Reference counting within COM may cause problems if two or more objects are
circularly referenced. The design of an application must take this into account so that
objects are not left orphaned.Reference cycles are typically broken using either outof-band termination or split identities. In the out of band termination technique, an
object exposes a method which, when called, forces it to drop its references to other
objects, thereby breaking the cycle. In the split identity technique, a single
implementation exposes two separate COM objects (also known as identities). This
creates a weak reference (referencja, która nie chroni przed GC) between the COM
objects, preventing a reference cycle.
DLL Hell
Because the location of each component is stored in a system-wide location (the
Windows registry), there can be only one version of a certain component installed.
Thus, COM seriously suffers from DLL hell, where two or more applications require
different versions of the same component.
Zagrożenie bezpieczeństwa, szczególnie przy użyciu obcego kodu w IE
CORBA
Rysunki:
OMG,
http://www.cs.wustl.edu/~schmidt/corba-overview.html,
http://www.cs.wustl.edu/~schmidt/PDF/corba4.pdf,
Wikipedia
CORBA
•
•
•
•
•
•
•
•
CORBA = Common Object Request Broker Architecture
Specyfikacja środowiska middleware – służącego do tworzenia aplikacji
rozproszonych
Stworzona przez Object Management Group (OMG), konsorcjum ok. 800
firm. (stworzyło ono także np. Specyfikacje UML)
Aktualna wersja specyfikacji jest dostępna na
http://www.omg.org/technology/documents/spec_catalog.htm
Pierwsza wersja - CORBA 1.0 (October 1991)
Included the CORBA Object model, Interface Definition Language (IDL),
and the core set of application programming interfaces (APIs) for dynamic
request management and invocation (DII) and Interface Repository.
Included a single language mapping for the C language.
Implementacje są dostarczane przez niezależnych dostawców. W
większości są płatne ale istnieją także darmowe
Używając standardowego protokołu IIOP różne implementacje powinny ze
sobą współpracować
Częsty wybór dla dużych systemów informatycznych
Object Management Architecture
(OMA)
OMA
• CORBAservices Najbardziej podstawowa
funkcjonalność taka jak : naming service (wyszukianie
obiektów po nazwie), trader service(wyszukianie
obiektów po właściwosciach), persistent state service
(utrwalanie obiektów).
• Horizontal CORBAfacilities – usługi użyteczne
pomiędzy domenami biznesowymi takie jak: the Printing
Facility, the Secure Time Facility, the Internationalization
Facility,
• Domain CORBAfacilities – obiekty w aplikacjach które
mogą być używane w wielu aplikacjach z danej branży
• Application Objects – obiekty szczególne dla danej
aplikacji. Nie podlegają standaryzacji
Podstawowe pojęcia
•
•
•
•
•
•
•
•
•
•
Referencja do obiektu (object reference) – uchwyt obiektu określonego typu
identyfikujący jego położenie
Klient – wykonuje żądania na obiekcie poprzez jedną z jego referencji
Serwer – Kontekst obliczeniowy (np.. Proces) dla obiektów/serwantów. Klient i serwer
są rolami
Stopka (stub) – pośrednik klienta tłumaczący wywołania metod na komunikaty
Szkielet (skeleton) – pośrednik serwera tłumaczący komunikaty na wywołania metod
Obiekt – Jednostka programowania w CORBA posiadająca tożsamość, interfejs i
implementację. Z punktu widzenia klienta jest to jednostka identyfikowana przez
referencję i udostępniająca zdefiniowane w interfejsie operacje nieprzerwanie od
momentu kreacji (creation) do zniszczenia (destruction). Te operacje z punktu
widzenia klienta należy rozumieć w kontekscie referencji a nie samego obiektu.
Zniszczenie obiektu jest nieodwołalne.
Aktywacja i deaktywacja – są widoczne tylko dla serwera i oznaczają przydzielenie
zasobów obliczeniowych dla obiektu. Jeżeli obiekt ma stan to przy deaktywacji musi
on zostać utrwalony. Istnieje wiele wzorców aktywacji/deaktywacji.
Serwant (servant) – jednostka języka programowania implementująca żądania
jednego lub więcej obiektów. Odwzorowanie obiekt-serwant jest ustalane w trakcie
wykonania i może ulegać zmianie nawet co wywołanie
POA (portable object adapter) – pojemnik na obiekty/serwanty na serwerze zarządza
aktywacjajmi i odwzorowaniami serwant/obiekt. Dawniej BOA.
ORB (object request broker) – Infrastruktura przekazywania komunikatów