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