Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00542 008663 10441565 na godz. na dobę w sumie
COM+. Kompendium programisty - książka
COM+. Kompendium programisty - książka
Autor: Liczba stron: 452
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-641-0 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook, audiobook).
Dzięki tej książce odkryjemy świat modelu COM+ oraz zrozumiemy cel i zastosowanie różnych zawartych w nim technologii. Po lekturze zrozumiesz, że wiele z tej aury złożoności, która otacza COM+, bierze się jedynie z faktu konsolidacji technologii dostępnych obecnie w oddzielnych pakietach i wprowadzenia dodatkowych usprawnień, które ułatwiają tworzenie aplikacji COM w porównaniu ze stanem obecnym.

Szczegółem, który odróżnia tę książkę od innych, jest zbliżenie się do rzeczywistości przy prezentowaniu modelu COM+. Oznacza to pracę z rzeczywistymi przykładami programów, które powinny pomóc Ci szybciej rozpocząć pracę z COM+. Jednym z ważniejszych rodzajów aplikacji używanych w zastosowaniach biznesowych jest baza danych -- to właśnie aplikację tego typu stworzymy najpierw, a następnie będziemy ją usprawniać na wiele różnych sposobów. Przykładowa baza danych korzysta z wielu tabel. Prześledzimy dokładnie wszystkie etapy projektu wymagane do stworzenia zarówno samej bazy danych, jak i aplikacji zarządzającej nią. Część tego procesu będzie wymagała napisania i zastosowania komponentu działającego po stronie serwera, który nie tylko uprości etap tworzenia zapytań, ale również znacznie zredukuje ruch w sieci.

COM+ nie musi być puszką Pandory, pełną trudnych do zrozumienia technologii i narzędzi, która udaremni Twoją pracę. Ta książka pomoże Ci w poznaniu nowej i ekscytującej części Windows 2000. Nauczymy się wszystkiego, co COM+ może uczynić w kierunku przeskalowania Twoich aplikacji biurowych i sieciowych do zastosowania ich na poziomie sieci WAN oraz Internetu.

Książka ta ma trzy główne cele: nauczyć teorii COM+, pokazać sposoby wykorzystania modelu w środowiskach programistycznych (ogólnego przeznaczenia i firmowych) oraz zaprezentować przykładowe programy. Rozdziały 1. -- 6. opisują teorię modelu COM+ oraz szczegóły użytkowe. Natomiast rozdziały 7. -- 10. zawierają w pełni funkcjonalne przykłady programów.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl COM+. Kompendium programisty Autor: John Paul Mueller T³umaczenie: Adam Balcerzak, Marcin Jêdrysiak, Tomasz Wasilewski ISBN: 83-7197-641-0 Tytu³ orygina³u: COM+ Developer s Guide Format: B5, stron: 452 Przyk³ady na ftp: 14 kB Dziêki tej ksi¹¿ce odkryjemy ġwiat modelu COM+ oraz zrozumiemy cel i zastosowanie ró¿nych zawartych w nim technologii. Po lekturze zrozumiesz, ¿e wiele z tej aury z³o¿onoġci, która otacza COM+, bierze siê jedynie z faktu konsolidacji technologii dostêpnych obecnie w oddzielnych pakietach i wprowadzenia dodatkowych usprawnieñ, które u³atwiaj¹ tworzenie aplikacji COM w porównaniu ze stanem obecnym. Szczegó³em, który odró¿nia tê ksi¹¿kê od innych, jest zbli¿enie siê do rzeczywistoġci przy prezentowaniu modelu COM+. Oznacza to pracê z rzeczywistymi przyk³adami programów, które powinny pomóc Ci szybciej rozpocz¹æ pracê z COM+. Jednym z wa¿niejszych rodzajów aplikacji u¿ywanych w zastosowaniach biznesowych jest baza danych -- to w³aġnie aplikacjê tego typu stworzymy najpierw, a nastêpnie bêdziemy j¹ usprawniaæ na wiele ró¿nych sposobów. Przyk³adowa baza danych korzysta z wielu tabel. Przeġledzimy dok³adnie wszystkie etapy projektu wymagane do stworzenia zarówno samej bazy danych, jak i aplikacji zarz¹dzaj¹cej ni¹. Czêġæ tego procesu bêdzie wymaga³a napisania i zastosowania komponentu dzia³aj¹cego po stronie serwera, który nie tylko uproġci etap tworzenia zapytañ, ale równie¿ znacznie zredukuje ruch w sieci. COM+ nie musi byæ puszk¹ Pandory, pe³n¹ trudnych do zrozumienia technologii i narzêdzi, która udaremni Twoj¹ pracê. Ta ksi¹¿ka pomo¿e Ci w poznaniu nowej i ekscytuj¹cej czêġci Windows 2000. Nauczymy siê wszystkiego, co COM+ mo¿e uczyniæ w kierunku przeskalowania Twoich aplikacji biurowych i sieciowych do zastosowania ich na poziomie sieci WAN oraz Internetu. Ksi¹¿ka ta ma trzy g³ówne cele: nauczyæ teorii COM+, pokazaæ sposoby wykorzystania modelu w ġrodowiskach programistycznych (ogólnego przeznaczenia i firmowych) oraz zaprezentowaæ przyk³adowe programy. Rozdzia³y 1. -- 6. opisuj¹ teoriê modelu COM+ oraz szczegó³y u¿ytkowe. Natomiast rozdzia³y 7. -- 10. zawieraj¹ w pe³ni funkcjonalne przyk³ady programów. Spis treści O Autorze........................................................................................ 9 Wstęp............................................................................................. 11 Rozdział 1.COM+ — najnowsza technologia tworzenia komponentów..... 23 Co to jest COM+?...................................................+...................................................+....... 24 Nowości w COM+...................................................+...................................................+ 24 Szersze spojrzenie na COM+ ...................................................+.................................. 26 Porównanie COM+ i COM...................................................+............................................ 26 Cele projektowe COM+ ...................................................+.......................................... 27 Transakcje i COM+ ...................................................+................................................. 27 Wiadomości i COM+ ...................................................+.............................................. 28 Usługi COM+ ...................................................+...................................................+....... 28 Wprowadzenie do MTS ...................................................+................................................. 30 Opis usług MTS...................................................+...................................................+.... 31 Rola puli zasobów w COM+ ...................................................+................................... 32 Gdzie pasuje MSMQ?...................................................+...................................................+. 32 Rozdział 2.Podstawy COM — wersja skrócona......................................... 35 Tworzenie obiektu ...................................................+...................................................+...... 36 Serwer typu in-Process ...................................................+............................................ 37 Serwery typu Out-of-Process ...................................................+.................................. 38 Wielokrotne użycie komponentu...................................................+............................. 53 Wywoływanie metod interfejsu ...................................................+..................................... 54 Interfejs IUnknown...................................................+.................................................. 55 Interfejsy ActiveX ...................................................+...................................................+ 56 Używanie interfejsów ActiveX ...................................................+............................... 58 Zliczanie odwołań ...................................................+...................................................+ 60 Wymagania dotyczące Rejestru...................................................+..................................... 61 Praca z apartamentami i wątkami ...................................................+.................................. 66 Rodzaje wątków ...................................................+...................................................+... 66 Rodzaje apartamentów i przydziałów ...................................................+..................... 68 Wymagania rozrządu...................................................+............................................... 71 Rozdział 3.Wyjątkowe cechy COM+............................................................. 73 COM+ i automatyzacja...................................................+.................................................. 75 6 COM+. Kompendium programisty Aktywacja w czasie trwania (JIT) ...................................................+........................... 76 Przetwarzanie transakcji...................................................+.......................................... 77 Kontekst COM+ ...................................................+...................................................+... 78 Rozdzielacze zasobów ...................................................+...................................................+ 80 Menedżer wyrównywania zasobów (CRM) ...................................................+.................. 80 Ujścia zdarzeń COM+ ...................................................+...................................................+ 82 Katalog COM+ ...................................................+...................................................+........... 82 Pula obiektów ...................................................+...................................................+............ . 83 Zabezpieczenia oparte na rolach...................................................+.................................... 83 Standardowe mechanizmy zabezpieczeń Windows ...................................................+ 84 Zabezpieczenia oparte na rolach ...................................................+........................... 105 Mechanizm wyrównywania obciążenia komponentu (CLB) ......................................... 110 Cele mechanizmu wyrównywania obciążenia...................................................+....... 111 Jak działa mechanizm wyrównywania obciążenia? ................................................. 112 Radzenie sobie z niesprawnymi serwerami i routerami ........................................... 113 Rozdział 4.Przegląd MTS ............................................................................. 115 Co to jest transakcja? ...................................................+...................................................+ 116 Wyjaśnienie pojęcia transakcji ...................................................+.............................. 117 MTS i COM+ ...................................................+...................................................+..... 118 Przebieg transakcji...................................................+...................................................+.... 122 Przegląd obiektów MTS ...................................................+........................................ 122 Określanie zdarzeń transakcji...................................................+................................ 123 Rozważania na temat zdalnego uruchamiania...................................................+....... 124 Rozważania na temat podziału obciążenia MTS...................................................+... 125 Niezawodność aplikacji COM+...................................................+................................... 125 Problemy związane z COM/DCOM ...................................................+............................ 127 Transakcje i bazy danych...................................................+............................................. 128 Obsługa różnych baz danych...................................................+................................. 129 Cechy baz danych MTS...................................................+......................................... 130 Tworzenie baz danych z pomocą MTS ...................................................+................. 131 MTS i COM+ ...................................................+...................................................+..... 133 Rozważania na temat zabezpieczeń...................................................+............................. 133 Koordynator transakcji rozproszonych (MS-DTC) ...................................................+......... 135 MS-DTC w akcji ...................................................+...................................................+ 135 Rozproszona część MS-DTC ...................................................+................................ 135 Rozdział 5.Przegląd MSMQ......................................................................... 137 Przegląd asynchronicznej komunikacji MSMQ ...................................................+.......... 138 Routing wiadomości...................................................+.............................................. 139 Rodzaje dostępu do dysku ...................................................+..................................... 141 Gwarancje dostarczenia...................................................+......................................... 142 Bezpieczeństwo ...................................................+...................................................+.. 144 MSMQ i MTS...................................................+...................................................+..... 149 Przegląd kolejek wiadomości ...................................................+...................................... 152 Rodzaje kolejek wiadomości...................................................+................................. 152 Kolejki wiadomości dla aplikacji rozłączonych...................................................+.... 154 Przesyłanie wiadomości — jak to wygląda od strony serwera?..................................... 156 Części składowe wiadomości ...................................................+................................ 156 Manipulacja kolejką i wiadomościami od strony COM........................................... 156 Obsługa błędów MSMQ...................................................+........................................ 160 Active Directory/Baza danych MQIS...................................................+.......................... 161 Wymagania dotyczące instalacji bazy danych i ocena rozmiaru................................... 163 Rodzaje serwerów MSMQ w przedsiębiorstwie ...................................................+... 163 Spis treści 7 MSMQ 1.0 kontra MSMQ 2.0 ...................................................+.............................. 165 Problemy z wydajnością ...................................................+.............................................. 165 Problemy związane z wewnętrzną wydajnością MSMQ ......................................... 166 Ograniczenia przetwarzania, które wpływają na wydajność aplikacji..................... 168 Rozdział 6.Rodzaje aplikacji........................................................................ 173 Różnice między aplikacjami COM+...................................................+............................ 174 Komponenty serwerowe...................................................+........................................ 176 Korzyści wynikające z użycia COM+...................................................+................... 177 Atrybuty, kontekst i stan...................................................+........................................ 178 Cztery poziomy zmiany komponentu...................................................+.................... 180 Zagadnienia programowania...................................................+........................................ 186 Wydajność ...................................................+...................................................+.......... 187 Bezpieczeństwo ...................................................+...................................................+.. 187 Rodzaje aplikacji COM+ ...................................................+............................................. 189 Aplikacje serwerowe ...................................................+............................................. 189 Aplikacje biblioteczne ...................................................+........................................... 190 Aplikacje proxy ...................................................+...................................................+.. 190 Aplikacje preinstalowane ...................................................+...................................... 191 Rozważania na temat aplikacji rozłączonych ...................................................+.............. 191 Oddzielna praca z MTS i MSMQ ...................................................+................................ 192 Rozdział 7.Aplikacja sterowana przez transakcje .................................... 195 Instalacja SQL Server 6.5 Developer Edition...................................................+.............. 197 Tworzenie zdalnego narzędzia diagnostycznego i programistycznego dla SQL Servera .. 202 Definiowanie aplikacji...................................................+................................................. 209 Przegląd zadań aplikacji ...................................................+........................................ 211 Przegląd bazy danych ...................................................+............................................ 212 Szczegółowy przegląd poszczególnych tabel...................................................+........ 214 Tworzenie bazy danych i powiązanych tabel...................................................+........ 218 n-warstwowy widok projektu ...................................................+................................ 229 Tworzenie komponentów serwerowych ...................................................+...................... 231 Tworzenie powłoki komponentu...................................................+........................... 232 Dodanie kodu komponentu...................................................+.................................... 244 Rejestracja i instalacja komponentu na serwerze ...................................................+.. 252 Tworzenie komponentu klienckiego...................................................+............................ 263 Tworzenie powłoki komponentu...................................................+........................... 263 Dodanie kodu komponentu...................................................+.................................... 266 Tworzenie prostej aplikacji do testowania katalogu ................................................ 270 Tworzenie aplikacji testowej ...................................................+....................................... 280 Tworzenie powłoki aplikacji ...................................................+................................. 281 Definiowanie interfejsu użytkownika...................................................+.................... 283 Dodanie kodu aplikacji...................................................+.......................................... 292 Testowanie aplikacji COM+...................................................+.................................. 299 Rozdział 8.Postępowanie w przypadku niepowodzenia transakcji ......... 301 Scenariusze niepowodzenia ...................................................+......................................... 302 Błędy trybu połączonego...................................................+....................................... 305 Błędy trybu rozłączonego...................................................+...................................... 311 Metody usuwania skutków błędów...................................................+.............................. 314 Wykrywanie źródła błędu...................................................+...................................... 314 Interpretacja kodów błędów ...................................................+.................................. 339 Obsługa dużej liczby błędów...................................................+................................. 339 8 COM+. Kompendium programisty Usuwanie błędów ...................................................+.................................................. 341 Rozdział 9.Wysyłanie wiadomości i obiektów COM ................................ 345 Przegląd scenariusza komunikacji ...................................................+............................... 348 Dwa interfejsy API ...................................................+................................................ 349 Definiowanie typu wiadomości...................................................+............................. 353 Zrozumienie sekwencji transferu danych...................................................+.............. 355 Tworzenie wymaganych kolejek...................................................+........................... 355 Tworzenie aplikacji typu odbiornik-odtwarzacz ...................................................+......... 357 Tworzenie powłoki dla odbiornika i odtwarzacza...................................................+. 357 Projektowanie formularza okna dialogowego ...................................................+....... 360 Dodanie kodu odtwarzania ...................................................+.................................... 361 Utworzenie aplikacji testowej...................................................+...................................... 364 Tworzenie powłoki aplikacji testowej...................................................+................... 364 Projektowanie formularza okna dialogowego aplikacji testowej................................ 366 Dodanie kodu aplikacji...................................................+.......................................... 368 Testowanie aplikacji ...................................................+...................................................+. 371 Sprawdzenie wiadomości ...................................................+...................................... 371 Sprawdzenie wyników testu ...................................................+.................................. 376 Kwestie administracyjne MSMQ...................................................+................................. 377 Podstawy zarządzania kolejkami...................................................+........................... 377 Kolejka martwych listów...................................................+....................................... 379 Kontrola Podglądu zdarzeń ...................................................+................................... 379 Rozdział 10........................................................... Praca w trybie rozłączonym 381 Definiowanie aplikacji...................................................+................................................. 383 Środowisko biurowe a rozproszone...................................................+....................... 385 Przedstawienie domyślnego rejestratora, odbiornika i odtwarzacza w COM+........ 387 Przepływ danych aplikacji...................................................+..................................... 391 Tworzenie i instalacja komponentu ...................................................+............................. 391 Tworzenie powłoki komponentu...................................................+........................... 393 Dodanie kodu komponentu...................................................+.................................... 395 Instalacja komponentu...................................................+........................................... 396 Tworzenie aplikacji testowej ...................................................+....................................... 403 Tworzenie powłoki aplikacji ...................................................+................................. 404 Projektowanie formularza okna dialogowego ...................................................+....... 405 Dodanie kodu aplikacji...................................................+.......................................... 406 Testowanie w trybie połączonym ...................................................+................................ 410 Testowanie w trybie rozłączonym ...................................................+............................... 411 Słownik ........................................................................................ 417 Skorowidz ................................................................................... 443 Wyjątkowe cechy COM+ COM+ jest jednym z najbardziej oczekiwanych dodatków do systemu Windows 2000 poza Active Directory. Użytkownicy liczą, że usunie on wiele problemów związanych z technolo- gią komponentów. Jednakże trzeba zdać sobie sprawę, że COM+ oferuje swoje funkcje jako dodatek, a nie zamiast obecnej technologii komponentów firmy Microsoft. Pomimo tego, co twierdzi Microsoft, COM+ jest kontynuacją technologii dCOM. Oczywiście, ciągłość funkcji COM+ ma pewne zalety dla programisty. Po pierwsze, nakłady finansowe zainwestowane w istniejącą technologię nie są zagrożone. Zasadniczo wciąż potrzeba tych samych narzędzi, by stworzyć aplikację komponentową, a aplikacja zaprojektowana dla COM działa prawie tak samo, jak dawniej. Krótko mówiąc, COM+ jest po prostu udoskonaloną wersją COM. W przypadku COM+ „konsolidacja” może być lepszym określeniem niż „nowość”. COM+ bierze to, co najlepsze z trzech całkowicie różnych technologii. Pracując z COM+, tak naprawdę bę- dziesz widział efekt pracy z COM, Microsoft Transaction Server (MTS), Microsoft Management Queue (MSMQ) i innymi technologiami, takimi jak DCOM. Zgadza się, DCOM jest wciąż podstawą przesyłania danych przez sieć. Więc, po co w ogóle dodawać „+” do nazwy COM? Są pewne nowe możliwości w COM+, których istnienia powinieneś być świadomy, by móc je efektywnie wykorzystywać. Przyjrzy- my się temu, co Microsoft dodał do COM w celu zrobienia z niego lepszego narzędzia do in- tegracji. Częścią wysiłku konsolidacji jest umożliwienie pracy z różnymi elementami COM+ w sposób, który jest niewidzialny dla programisty i użytkownika. Nie warto konsolidować czegoś, jeżeli wszystkie części komponentu są wciąż całkowicie widoczne i wymagają indy- widualnego dostępu. Pierwsza część rozdziału omówi nowe funkcje automatyzacji zawarte w COM+. Najnowsza oferta COM polega na tym, że robi on pewne rzeczy automatycznie (w przeszłości musiałeś robić je ręcznie). Problem dotyczący przetrzymywania przez komponent zasobów systemowych 74 COM+. Kompendium programisty przestał istnieć. Komponent przetrzymuje zasoby systemu tylko tak długo, aby udało mu się zakończyć przydzielone zadanie, potem natychmiast je zwalnia. Lepsze zarządzanie zasobami oznacza, że serwer będzie pracował bardziej wydajnie i w ten sposób może spowodować opóź- nienie potrzeby jego modernizacji. Dodatkowo, fakt, że COM i MTS są obecnie zintegrowane, oznacza, że istnieje większa szansa, że transakcje będą działać. Na koniec, komponenty COM+ używają tzw. kontekstu. Pomaga on określić sposób interakcji komponentu z klientem i reakcji na jego żądania. Zasobami zarządzają dwa elementy: rozdzielacz zasobów oraz menedżer wyrównywania zaso- bów. Oprócz wysiłku pojedynczych komponentów, Windows 2000 ma proaktywne podejście do zarządzania zasobami. Rozdzielacz zasobów zapewnia, że każdy komponent otrzyma tylko tyle zasobów, ile potrzebuje, i tylko na czas, kiedy ich potrzebuje. Następnie, zamiast całkowicie zwalniać zasoby, rozdzielacz zasobów zwraca je do puli, która używana jest do obsługi potrzeb innych komponentów. Strategia wykorzystywania puli zasobów znacznie redukuje czas, który jest potrzebny na przydzielenie (zwolnienie) zasobów. Oznacza to, że aplikacja zużywa mniej cykli zegara procesora głównego na wywiązywanie się ze dswoich podstawowych zadań. W kolejnej części tego rozdziału przyjrzymy się menedżerowi wyrównywania zasobów (Com- pensating Resource Manager — CRM). Zwykle, byłbyś zmuszony utworzyć rozdzielacz zasobów dla swojej aplikacji. Zależnie od stopnia złożoności aplikacji, rozdzielacz zasobów nie miałby zbyt wiele do roboty. COM+ zwalnia cię z obowiązku stworzenia rozdzielacza zasobów, oferując gotowe rozwiązanie w postaci CRM. Ta cecha COM+ umożliwia aplikacjom pracę z DTC bez konieczności tworzenia rozdzielacza zasobów. Wystarczy jedynie dodać specjalny interfejs do komponentu. CRM uzyskuje dostęp do tego interfejsu i umożliwia komponentowi decydowanie o wyniku transakcji na podstawie wyników poszczególnych transakcji w komponencie. Krótko mówiąc, otrzymujesz wszystkie możliwości pełnej implementacji rozdzielacza zasobów bez najmniejszego wysiłku. CRM również odpowiada za obsługę nieudanych transakcji, opierając się na wpisach pochodzących ze swojego własnego dziennika zdarzeń. Oznacza to, że zyskujesz mechanizm automatycznej obsługi błędów bez dodatkowejd pracy. Czwarta część rozdziału omawia ujścia zdarzeń COM+. Są to odbiorniki zdarzeń. W przypad- ku wystąpienia zdarzenia na serwerze powiązane ujście otrzymuje wiadomość o zdarzeniu, a następnie reaguje na nie. Funkcja nie jest nowa, lecz w przypadku COM+ jest inaczej obsłu- giwana. Pamiętaj, że COM+ obejmuje wiele technik zdalnego uruchamiania opartych na starszych technologiach, takich jak DCOM. W rezultacie, zdarzenie, które miało miejsce, niekoniecznie wydarzyło się na lokalnym serwerze. Mógł je wygenerować klient, lub serwer obsługujący obecnie część większej aplikacji. Koncepcja katalogu komponentów, opisana w kolejnej części rozdziału, powinna zainteresować programistów mających do czynienia z bibliotekami typów. Zamiast tworzenia opisu komponentu w oddzielnym pliku (twoja aplikacja może go nie zrozumieć), COM+ udostępnia koncepcję katalogu komponentów. Jest to w zasadzie baza danych specjalnego przeznaczenia, która służy do przechowywania opisów wszystkich komponentów zarejestrowanych na serwerze. Aplikacja może pobrać te opisy, by uzyskać więcej informacji na temat komponentu i sposobu współpracy z nim. Nie musisz się już dłużej martwić o to, gdzie znajduje się plik TLB (zawierający bibliotekę typów), ponieważ twoja aplikacja może pobrać niezbędne idnformacje z centralnego magazynu. W kolejnej części rozdziału przyjrzymy się tematowi puli obiektów i obiektom zasobów. Pula obiektów jest następcą mechanizmu puli obecnie używanego przez Microsoft Data Access Rozdział 3. G Wyjątkowe cechy COM+ 75 Components (MDAC). Podczas pracy z MDAC aplikacja może stworzyć połączenie z bazą danych, następnie po udanym jego nawiązaniu zwrócić je do puli połączeń. Połączenie nie jest zrywane, więc krócej trwa wydostanie go z puli i ponowne użycie niż nawiązanie nowego połączenia. Pula obiektów działa na tej samej zasadzie, lecz odnosi się do wszystkich rodzajów obiektów, włączając w to połączenia z bazą danych. Używanie puli obiektów sprawia, że aplika- cja staje się bardziej wydajna. Obiekty zasobów są specjalnymi komponentami, które obsługują mechanizm puli obiektów. Istnieje kilka wymogów dotyczących ich tworzenia, lecz najważniejsze jest to, że obsługują one interfejs IObjectControl. Zabezpieczenia oparte na rolach to temat poruszony w kolejnej części rozdziału. Windows 2000 korzysta z tego mechanizmu, ponieważ jest to najbardziej wydajny sposób obsługi dostępu użytkownika w środowiskach sieciowych dużych rozmiarów. Pomyśl o rolach jako o bardziej elastycznym rozszerzeniu pojęcia grup. Tworzysz listę ródżnych ról w firmie (kierownik działu, informatyk itd.), a następnie przydzielasz jedną lub więcej ról każdemu użytkownikowi. Rola określa, kim jest użytkownik według kryterium wykonywanych przez niego zadań. Innymi słowy, mechanizm zabezpieczeń opartych na rolach nie zakłada, że użytkownik powinien mieć dostęp do obiektu po prostu dlatego, że pracuje w danym dziale firmy. Użytkownik musi wykonywać zadanie, które wymaga dostępu do tego obiektu, by wymadgania bezpieczeństwa zostały spełnione. Ostatnia część rozdziału omówi funkcję, która może (ale nie musi) być dostępna, gdy będziesz czytał po raz pierwszy ten rozdział — wyrównywanie obciążenia komponentu (CLB). Począt- kowo istniały plany włączenia tego mechanizmu do Windows 2000, lecz firma Microsoft ostatecznie zdecydowała się udostępnić go jako oddzielny produkt i tylko z serwerami wyższej klasy. Jednakże, mechanizm ten jest tak ważny, że pomimo wszystko zostanie omówiony. Za- sadniczo, CLB umożliwia systemowi Windows 2000 automatycznie wyrównywanie obciążenia komponentu, rozkładając je na kilka serwerów. Na przykład, możesz mieć komponent bazy danych załadowany na czterech serwerach ze względu na stopień wykorzystania. Jak administra- tor określa serwer, do którego został przydzielony użytkownik? Dawniej administrator mógł jedynie statycznie przypisać użytkownika do serwera i mieć nadzieję, że zrobił dobrze. Niestety, oznaczało to, że niektóre serwery były bardzo obciążone, podczas gdy inne nie były wykorzy- stywane. CLB zmienia ten stan rzeczy. Obecnie żądanie użytkownika dotyczące dostępu do kom- ponentu jest przypisywane serwerowi, który potrafi najlepiej wywiązać się z zadania jego obsługi. Użytkownik uzyskuje najlepszy możliwy czas dostępu, a firma nie musi przeprowadzać zbyt czę- stych modernizacji, ponieważ wykorzystywany jest pełedn potencjał mocy każdego serwera. COM+ i automatyzacja Programiści COM spędzają wiele czasu na zarządzaniu częściami swoich aplikacji, których użytkownik nigdy nie widział lub uznał je za automatyczne. Problemy te wynikały częściowo z faktu, że Microsoft oferował wiele technologii, które mogły pracować z COM, lecz były one sprzedawane jako oddzielne produkty. Oczywiście, najważniejsze w tym przypadku są MSMQ i MTS, które obecnie są częścią systemu operacyjnego Windows 2000. Wcześniej wspominali- śmy, że COM+ nie jest nowy, ile raczej skonsolidowany. Konsolidacja jest bardziej przydatna do automatycznego wykonywania zadań w tle. 76 COM+. Kompendium programisty W tym podrozdziale przyjrzymy się elementom automatyzacji. Pierwszym z nich jest aktywacja w czasie trwania (JIT, Just In Time). Technologia ta pozwala serwerowi na bardziej wydajne używanie zasobów poprzez zachowywanie aktywności obiektów jedynie tak długo, jak są potrzeb- ne. Kiedy klient przez długi czas przechowuje adres do nieużywanego komponentu, serwer dezaktywuje ten komponent do chwili, gdy będzie on ponownie potrzebny. Następnym razem, gdy klient go zażąda, serwer dokona automatycznej reaktdywacji tego komponentu. Drugim elementem automatyzacji są transakcje. Zapewniają one, że każde żądanie klienta jest obsługiwane przynajmniej raz i tylko ten jeden raz. Jedst to niezwykle ważna cecha baz danych, gdyż wprowadzenie danych więcej niż jeden raz może spowodować ich uszkodzenie. Ponieważ będziemy pracować z transakcjami, ta część będzie jedynie przeglądem zagadnienia. Wiadomości teoretyczne na ten temat można znaleźć w rozdziale 4., zadś przykład transakcyjny w rozdziale 7. Przegląd domen COM+ i jego kontekstu zawarty w ostatniej części rozdziału pomoże zrozumieć programistom sposób, w jaki wykorzystywany jest poszczególny egzemplarz komponentu. Przeglądanie komponentów w kontekście pozwala wykonać więcej przetwarzania mniejszym kosztem. Pomaga również w dziale automatyzacji poprzez umożliwienie COM+ dokonania ulepszeń w dziedzinie zabezpieczeń. Więcej na temat specyfiki zabezpieczeń COM+ w części zatytułowanej „Zabezpieczenia oparte na rolach”. Aktywacja w czasie trwania (JIT) Zawsze ktoś żąda dostępu do zasobów serwera. Z tego powodu, standardowe techniki progra- mowania COM często obejmują pojęcie przejęcia zasobu i następnie przetrzymania go do czasu, aż komponent nie będzie dłużej potrzebował tego zasobu. Oznacza to, że zasób może być zablokowany na długo i przez ten czas być bezczynny. Nowa metodologia COM+ polega na uzyskaniu dostępu do zasobu, następnie możliwie szybkim przekazaniu go do puli, by inne aplikacje miały dostęp do potrzebnych im zasobów. Oczywiście, wciąż gdzieś tam jest dużo starszych aplikacji COM, które nie używają tej nowej strategii, więc jest bardzo prawdopodobne, że wiele zasobów serwera wciąż jest marnowanych. Dlatego też potrzebny jest mechanizm aktywacji w czasie trwania (JIT). Używanie aktywacji JIT oznacza, że nawet jeżeli klient przetrzymuje odwołanie do komponentu, Windows 2000 wciąż może używać fizycznych zasobów wymaganych przez komponent do chwili, gdy będą znowu potrzebne aplikacji. Windows 2000 monitoruje wszystkie komponenty, które są oznaczone jako zgodne z JIT. Kiedy minie określony czas bez wywołania jakiejkolwiek metody, komponent jest dezaktywowany, a wykorzystywane przez niego zasoby wracają do puli. Tak długo, jak mówimy o aplikacji, komponent istnieje, a odwołanie do niego wciąż pozostaje prawidłowe. Następnym razem, gdy aplikacja wywoła metodę dezaktywowanego obiektu, Windows 2000 dokona jego ponownej aktywacji i przydzielenia wymaganych zasobów. Cały ten proces rozgrywa się w tle bez żadnego udziału ze strony programisty. Użytkownik jest całkowicie nieświadomy tego, co się stało. Zatem, jeżeli nowa technika polega na zwalnianiu zasobów, które nie są już dłużej potrzebne, jak aktywacja JIT pomaga programistom COM+? COM+ jest zaprojektowany do ułatwiania procesu tworzenia aplikacji rozproszonych. W rezultacie, komponent nie musi być aktywowany na lokalnym serwerze — właściwie może być uruchomiony na zdalnym serwerze. Oznacza to, Rozdział 3. G Wyjątkowe cechy COM+ 77 że wywołanie każdego klienta przejdzie przez wiele serwerów i zablokuje te zasoby na tych serwerach pośredniczących do chwili, gdy zdalny serwer umożliwi dostęp do potrzebnego kom- ponentu. Oczywiście, nie potrzeba wiele takich żądań, by obniżyć ogólną wydajność sieci komputerowej (z powodu zwiększonej liczby żądań sieciowych) i wydajności kilku serwerów. Aktywacja JIT służy również pomocą w sytuacji, gdy chcesz zmniejszyć liczbę wywołań klientów do minimum. Z pewnością zadajesz sobie pytanie, czy masz jakąkolwiek kontrolę nad aktywacją JIT, poza jej uruchamianiem i wyłączaniem. Microsoft udostępnia interfejs IObjectControl, by umożliwić ci ręczną interakcję z komponentami. Ten interfejs jest używany zarówno w przypadku puli obiek- tów (opisanej dalej w rozdziale), jak i aktywacji JIT. Dwie z metod #EVKXCVG i GCEVKXCVG umożliwiają ręczne wykonanie zadań aktywacji JIT na komponencie. Wykorzystanie tych funkcji pozwoli ci poprawić wydajność całego procesu przydzielandia zasobów. Trzecią metodą interfejsu IObjectControl jest CP$G2QQNGF . Ta metoda jest używana przez pulę obiektów, by poinformować system Windows 2000, czy dany obiekt może korzystać z puli. Obiekt musi zwrócić wartość TRUE przy wywołaniu metody CP$G2QQNGF , by zostać wy- słanym do puli obiektów, zamiast być zniszczony podczas dezaktywacji przez Windows 2000. Korzystanie z puli obiektów znacznie przyspieszda proces aktywacji i dezaktywacji. Przetwarzanie transakcji Przetwarzanie transakcji zwykle rodzi wizje zarządzania bazami danych oraz różnego rodzaju danych finansowych. Jest to faktyczna przyczyna zaistnienia mechanizmu przetwarzania trans- akcji. Pracownicy bankowi muszą mieć pewność, że informacje wprowadzane przez nich do bazy danych są w niej zapisywane raz i tylko jeden raz. Pomyśl, jakie spustoszenie wywołałby kilkukrotny zapis tych samych transakcji! Jednakże, nie tylko instytucje finansowe potrzebują korzystania z transakcji. Szpital lub podobna instytucja również musi mieć pewność, że dane są zapisywane prawidłowo. Krótko mówiąc, MTS był początkowo projektowany do spełnienia wymagań całej grupy ludzi, którzy potrzebowali bezwzględnej integralności danych. Są po prostu takie miejsca, gdzie utrata integralności danych grozi katastrofą. Oczywiście, dane nie są jedynym rodzajem obiektu, który wymaga ściślej kontroli, zwłaszcza w środowisku aplikacji rozproszonych Windows 2000. Co się stanie, jeżeli potrzebny komponent zostanie uszkodzony w trakcie przesłania z serwera lub jeżeli dwie kopie tego komponentu są przesyłane w różnym czasie? W pierwszym przypadku, aplikacja klienta może po prostu zaprze- stać pracy. W drugim przypadku, możesz doświadczyć naprawdę dziwnych i nieprzewidywal- nych efektów, ponieważ niezainicjowany komponent jest w stanie zamazać ten, który aplikacja zdążyła zainicjować. Jak widać, transakcje są bardzo ważną częścią COM+. Zarówno dane, jak i kod wymagają nadzoru, by mieć pewność, że obiekt wysyłany do klienta jest tym, który tam właściwie dociera. Więcej na temat sposobu działania transakcji w dalszedj części książki. Uwaga 78 COM+. Kompendium programisty By odświeżyć nieco Windows 2000, Microsoft nadał nowe nazwpy kilku istniejącym już produktom. Przeznaczenie ich jest takie same, jedynie ich nazwy uległy zmianie. Większość z zestawu funkcji udostępnianych przez MTS obecna jest w DTC, który właściwie zaczynał jakpo część składowa pakietu SQL Server. Obecnie MSMQ jest określany mianem Queued Components (Składniki w kolejce) lub Message Queuing (Kolejkowanie wiadomości), zależnie od tego, z którą werspją MSMQ pracujesz. W wielu przypadkach, podczas przeglądania dokumentacji Microsoftu określenia te będą występowały razem. Dla porządku, odwołując się do MTS i MSMQ, będziemy używać ich starych nazpw. Z wyjątkiem sytuacji, gdy będzie mowa o oknach dialogowych lub innych cechach Windows 2000, które korzystają z nowego nazewnictwa lub jeżeli nowe określenie jest z jakiegoś powodu bardziej odpowpiednie. Na przykład, jeżeli będę mówił o tym, jak skonfigurować MTS pdo użycia z komponentem, najprawdopodobniej użyję określenia DTC w trakcie opisywania sposobu wykonania tego zadania, pponieważ jest to nowe zastosowanie istniejącego produktu. Kontekst COM+ Każdy komponent COM+ jest tworzony ze specjalnym zestawem właściwości, znanym pod nazwą kontekst. Identyfikuje on dany egzemplarz komponentu i jest związany z tylko jednym apartamentem COM. Wiele obiektów może być związanych z pojedynczym kontekstem — zwykle, gdy tych obiektów żąda aplikacja. Dodatkowo, jeden apartament może zawierać wiele kontekstów. Zamysł skrywający się za kontekstem polega na daniu komponentowi punktu odwołania, jakiegoś pomysłu na to, gdzie jest jego miejsce w aplikacji. Poprzez sprawdzenie kontekstu, w którym jest uruchomiony, komponent może, zależnie od potrzeb, wykonywać dodatkowe przetwarzanie. Wskazówka Może spotkałeś się z sytuacją, gdy konteksty używane pprzez COM+ były określane mianem interfejsów obiektowych kontekstu MTS („MTS context wrapper”). W systemie Windows 2000 pojęcie to zostało rozszerzone, by objąć całą działalność COM. W rezultaciep, wcześniejsze określenie nie jest używane, lecz nie zmienia to faktup, że jest ono wciąż obecne w innej formie. COM+ również radzi sobie z kontekstem komponentu. Używa właściwości zawartych w kon- tekście, by udostępniać usługi podczas fazy wykonania. Dodatkowo, kontekst ma wpływ na środowisko uruchamiania komponentu. Podczas pracy z COM+, będziesz bezpośrednio pracował z właściwościami kontekstu, by wskazać systemowi operacyjnemu pewne zmiany w środowisku Rozdział 3. G Wyjątkowe cechy COM+ 79 i rodzajach aplikacji. Na przykład, podczas pracy z komponentem transakcyjnym będziesz używał kontekstu, by decydować o wyniku transakcji. Każdy obiekt COM+ ma dostęp do interfejsu IObjectContext. Przyjrzymy mu się dokładniej w rozdziale 4. podczas omawiania MTS. Istnieje sześć metod bezpośrednio związanych z MTS, które pozwalają wpływać na wynik transakcji: TGCVG+PUVCPEG , +U+P6TCPUCEVKQP , 5GV#DQTV , 5GV QORNGVG , PCDNG QOOKV , KUCDNG QOOKV . Metoda +U CNNGT+P4QNG jest używana wraz z zabezpieczeniami opartymi na rolach, w celu sprawdzenia obecnej roli progra- mów żądających — ich uprawnień do używania różnych metod wewnątrz twojego komponentu. Metoda +U5GEWTKV[ PCDNGF pozwala określić, czy mechanizm zabezpieczeń MTS jest włączony. Zabezpieczenia MTS nie będą włączone jedynie wtedy, gdy obiekt jest uruchamiany w procesie klienta. Należy sprawdzić tę konkretną wartość, aby upewnić się, czy zabezpieczenia są włączone. Sprawdzenie tej wartości pozwala również określić miejsce uruchomienia komponentu (klient czy serwer). Dodatkowo, oprócz interfejsu IObjectContext, istnieje kilka dodatkowych interfejsów związanych z kontekstem komponentu. Oto ich lista: G IObjectContextInfo — pozwala uzyskać kilka konkretnych informacji na temat bieżącego kontekstu, włączając w to identyfikatory transakcji, akdtywności i kontekstu. Z pewnością użyjesz również metody tego interfejsu — +U+P6TCPUCEVKQP , by dowiedzieć się, czy obecnie twój komponent jest częścią transakcji. Metodad )GV6TCPUCEVKQP pozwoli uzyskać wskaźnik +6TCPUCEVKQP do bieżącej transakcji (jeżeli jest jakaś). G IContextState — udostępnia bieżące informacje o obecnym stanie kontdekstu i pozwala określać czy twój komponent zgadza się na wykonanie trdansakcji. W praktyce właściwie nie zachodzi potrzeba skorzystania z tego interfejsu. Jednakże, metoda )GV/[6TCPUCEVKQP8QVG pozwoli określić stan swojego głosu w głosowaniu w sprawie zakończenia transakcji. Metoda )GV GCEVKXCVG1P4GVWTP pozwoli na określenie bieżącego stanu bitu „realizacji” twojego komponentu — tden bit określa moment zakończenia procesu przetwarzania przez komponent. G IObjectContextActivity — jedyna metoda tego interfejsu uzyskuje identyfikator aktywności dla bieżącego kontekstu komponentu. G ISecurityCallContext — omówimy dokładnie ten interfejs w części dotyczącej zabezpieczeń opartych na rolach. Ten interfejs jest oddpowiedzialny przede wszystkim za umożliwianie komponentowi określania bieżącego stanu dzabezpieczeń. Można użyć metod tego interfejsu do określenia, jakie role zosdtały przydzielone bieżącemu użytkownikowi, co pozwoliłoby ustalić, czy powinien mieć ddostęp do konkretnych metod w twoim komponencie. Zwykle, by określić stan swojego komponentu — jak został aktywowany i przez kogo — będziesz używał właściwości kontekstu, by w ten sposób wybrać najlepszy sposób działania podczas obsługi wywołań jego metod. Jednakże istnieją dwa szczególne zdarzenia, które wymagają dokładniejszego omówienia: aktywacja i przechwycenie. Aktywacja pojawia się, gdy komponent jest po raz pierwszy tworzony lub reaktywowany z puli obiektów. Podczas aktywacji tworzony jest nowy kontekst dla komponentu lub używany jest już istniejący — zwykle podczas wywołania obsługi zamykanego klienta przez kolejny obiekt. Przechwycenie pojawia się podczas wywołania krzyżującego kontekst. Kontekst programu żądającego jest tak dostosowywany, by pasował do tego, który posiada wywoływany komponent. Dwa obiekty mają różne wymagania odnośnie do środowiska działania, które są zawarte w ich kontekstach. To sedno kwestii używania kontekstów 80 COM+. Kompendium programisty — pozwalają obiektom działać w środowisku najlepiej dostosowanym do ich potrzeb. Używanie przechwytywania pozwala dwóm obiektom współdziałać w sposób nie naruszający kontekstu, w jakim pracują. Rozdzielacze zasobów Rozdzielacze zasobów robią dokładnie to, co sugeruje ich nazwa — rozdzielają zasoby kompo- nentowe, których wymagają aplikacje. Każdy komponent COM+ potrafi korzystać z rozdzielaczy zasobów, by móc zarządzać różnymi obiektami, których wymaga komponent. Windows 2000 dostarcza domyślny zestaw rozdzielaczy zasobów, lecz istnieje również możliwość stworzenia własnego. Na przykład, wiele menedżerów baz danych zawiera Menedżera Zasobów oraz jeden lub więcej niestandardowych rozdzielaczy zasobów. Wskazówka W momencie wywołania rozdzielacza zasobów komponent staje się transakcyjny. Komponent nie musi robić nic więcej w celu uruchomienia MTS lub pracy z nim. W systemie Windows 2000 wszystkie transakcje komponentu są deklaracyjne, co oznacza, że uczestniczpące komponenty nie wymagają dodatkowego kodu. Wszystkie transakcje odpowiadają wymaganiom specyfikacji transakcji OLE wdrażanej przepz MS DTC(Microsoft Distributed Transaction Coordinator). Jeszcpze do tego wrócimy. Rozdzielacz zasobów pracuje z nietrwałymi danymi, które są przechowywane w pamięci ope- racyjnej i są tracone w momencie wyłączenia komputera lub jego ponownego uruchamiania. Żaden z komponentów obsługiwanych przez rozdzielacz zasobów nie jest trwały. Krótko mówiąc, rozdzielacz zasobów pozwala systemowi Windows 2000 zarządzać dużą pulą tymczasowych obiektów, która jest wykorzystywana do wielu różnych dcelów przez pewną liczbę aplikacji. Istnieją różne rodzaje obiektów, z którymi może pracować rozdzielacz zasobów. Nie pracuje on tylko ze standardowymi komponentami. Obsługuje wszystkie rodzaje obiektów. Nawet takie, które na pierwszy rzut oka nie potrzebują jakiegokolwiek zarządzania. Zwykle zobaczysz rozdzielacz zasobów podczas pracy z takimi obiektami, jak połączenia (z bazami danych, sieciowe, z gniazd- kami), bloki i struktury pamięci, kolejki, wątki oraz z idnnymi formami nietrwałych obiektów. Zatem, jak pracuje rozdzielacz zasobów? Klient wysyła żądanie odnośnie do zasobu do mene- dżera zasobów (np. SQL Server). Wraz ze wzrostem liczby żądań, SQL Server tworzy jeden lub więcej rozdzielaczy zasobów. One zaś po kolei tworzą pulę zasobów przeznaczoną do tymcza- sowego przechowywania obiektów, które nie są już dłużej potrzebne aplikacji. W momencie gdy aplikacja kończy używanie obiektu w rodzaju połączenia z bazą danych, jest on umieszczany w puli zasobów, zamiast zostać zniszczony. Używanie puli redukuje czas potrzebny zarówno na pozbycie się zbędnego obiektu, jak i na stworzenied nowego, gdy tylko aplikacje tego zażądają. Rozdział 3. G Wyjątkowe cechy COM+ 81 Menedżer wyrównywania zasobów (CRM) Menedżer wyrównywania zasobów (Compensating Resource Manager — CRM) jest częścią COM+, która obsługuje mechanizm zarządzania wyrównywaniem zasobów w połączeniu z Distributed Transaction Coordinator (DTC — dla tych, którzy nie lubią nowej terminologii). Pamiętaj, że Windows 2000 pozwala zarządzać obiektami innymi niż połączenia z bazą danych oraz innymi obiektami powiązanymi również z bazami danych początkowo zarządzanymi przez MTS. Teraz możesz zarządzać wszystkimi rodzajami obiektów różnego typu, zarówno zawiera- jącymi kod, jak i dane. Zasadniczo, menedżer zasobów obsługuje trwałe obiekty w komponencie transakcyjnym, podczas gdy rozdzielacz zasobów zajmuje się tymi nietrwałymi (istniejącymi wyłącznie w pamięci). SQL Server jest przykładem menedżera zasobów, a sterownik ODBC (zapewniający dostęp do niego) jest przykładem rozdzielacza zasobów. Ogólnie, obiekty zaangażowane w transakcję nie są świadome, czy transakcja się udała, czy też nie. Autor komponentu zakłada, że albo transakcja się powiodła i system Windows 2000 nie bę- dzie zmuszony robić nic więcej, albo zakończyła się niepowodzeniem. W przypadku niepowo- dzenia, przywracany jest stan sprzed transakcji i rozpoczynana jest nowa transakcja. W żadnym przypadku, nie istnieje żaden powód, by komponent musdiał znać wynik transakcji. Jednakże, istnieją sytuacje, gdy komponent będzie musiał wykonać pewną pracę w sytuacji niepo- wodzenia transakcji. Na przykład, pracując z aplikacją bazodanową, komponent może zażądać przywrócenia stanu sprzed błędnej transakcji. Ponieważ komponent jest zwykle dezaktywowany na granicach transakcji w celu zachowania ochrony transakcji, potrzebuje jakiegoś sposobu, by wykonać tę potransakcyjną czynność. I to jest zadanie dla wyrównawczej części CRM. Menedżer wyrównywania zasobów jest specjalnym rodzajem menedżera zasobów, który pozwala kompo- nentowi na wykonanie pewnej pracy naprawczej w sytudacji niepowodzenia transakcji. CRM jest obiektem nietransakcyjnym. Innymi słowy, nie może brać udziału w transakcji. Trans- akcja została zakończona i nie ma nic, na co CRM mógłby mieć wpływ — transakcja zakończyła się niepowodzeniem i czas, by wykonać naprawę. Stworzysz CRM jako część kodu startowego swojego komponentu i zarejestrujesz za pomocą udostępnianego przez system programu CRM Clerk, który zapamiętuje informacje o CRM i zapisuje przejawy wszelkiej aktywności ze strony komponentu. Ten dziennik stanowi podstawę działań naprawczych, które podejmuje CRM — pozwala on CRM dowiedzieć się, gdzie transakcja doznała niepowodzenia, i wykonać każdą czynność wymaganą do przywrócenie stanu sprzed transakcji. Podstawowy CRM jest złożony z dwóch części: CRM Worker i CRM Compensator. Ten pierwszy jest częścią, która jest aktywna podczas przygotowania do etapu dwufazowego zatwierdzania transakcji. Jest to część twojego CRM, która współpracuje programem CRM Clerk w celu utworzenia trwałych wpisów w dzienniku, które posłużą do przywrócenia stanu sprzed błędnej 82 COM+. Kompendium programisty transakcji. CRM Compensator jest uruchamiany podczas etapu zatwierdzania transakcji. To jest jedyna część twojego komponentu, która właściwie może zobaczyć wynik transakcji. Jeżeli transakcja się powiedzie, CRM Compensator zwykle zwalnia wszystkie zasoby, które prze- chowuje wraz z tymi przetrzymywanymi przez komponent. W przeciwnym razie CRM Com- pensator korzysta z zawartości dziennika, w celu zapewnienia, że zostanie przywrócony stan rzeczy sprzed nieudanej transakcji, bez wywierania wpływu na zadania wykonywane przez inne transakcje. Wszystkie menedżery wyrównywania zasobów (CRMs) korzystają z usług interfejsu ICrmCom- pensator. Interfejs ten udostępnia metody umożliwiające CRM tworzenie wpisów w dzienniku, zatwierdzanie transakcji lub jej przerwanie. Istnieją również metody, które określają moment rozpoczęcia i zakończenia każdego etapu transakcji — dwie dla fazy przygotowań i kolejne dwie dla fazy zatwierdzania. Ujścia zdarzeń COM+ W tej kwestii naprawdę nie ma nic nowego poza nazwą i sposobem, w jaki ta technologia mo- że być zastosowana do twoich komponentów. W przypadku każdego komponentu COM, ujście zdarzeń odbiera powiadomienia o zdarzeniu. Po odebraniu komponent zwykle przeprowadza jakąś akcję w odpowiedzi na zdarzenie. Ujścia zdarzeń COM+ początkowo odnosiły się do zdarzeń generowanych przez MTS. Nowa nazwa odzwierciedla po prostu zmianę obecnych obowiązków MTS: jego zdolność do wykonywania szerszego zakresu zadań i że jest bardziej zorientowany obiektowo. Katalog COM+ Jeżeli chcesz coś kupić w sprzedaży wysyłkowej, przeglądasz katalog, zapisujesz numer katalogo- wy produktu, dzwonisz do firmy i zamawiasz potrzebną rzecz. To samo dzieje się w przypadku COM+ na poziomie aplikacji. Katalog COM+ udostępnia pełną listę wszystkich komponentów zarejestrowanych na serwerze oraz ich dane konfiguracyjne. W większości przypadków zawierają one atrybuty aplikacji COM+, atrybuty z poziomów klasy i komputera. Katalog COM+ jest fi- zycznie przechowywany w REGDB — która jest rejestrową bazą danych (jak sugeruje nazwa). Zwykle będziesz miał bezpośredni dostęp do katalogu COM+ za pośrednictwem przystawki konsoli MMC — Usługi składowe. Oczywiście, możesz również mieć dostęp do katalogu COM+ poprzez swoją aplikację. W tej sytuacji celem katalogu jest udostępnienie warstwy uniezależnienia, która ukrywa pewne ka- prysy związane z uzyskiwaniem dostępu do informacji konfiguracyjnych komponentu. Dostęp do katalogu COM+ uzyskiwany jest poprzez interfejs ICOMAdminCatalog, który udostępnia metody dostępu do kolekcji jako całości lub pojedynczych komponentów (zwanych w tej sy- tuacji aplikacjami). Dostęp do pojedynczego komponentu obejmuje m.in. numer wersji kom- Rozdział 3. G Wyjątkowe cechy COM+ 83 ponentu. Możesz również instalować, importować, eksportować, uruchamiać oraz zamykać pojedyncze aplikacje. Interfejs ICOMAdminCatalog udostępnia również inne „makropoleceniowe” możliwości. Na przykład, są takie metody, które umożliwiają ci pracę z więcej niż jedną aplikacją naraz. Ta „makropoleceniowa” zdolność jest rozszerzana na rejestrowanie więcej niż jednej klasy zdarzeń komponentu naraz, co naprawdę oszczędza dużo czasu w trakcie pracy z bardziej złożonymi komponentami. Istnieją również pewne metody obsługiwane przez interfejs ICOMAdminCatalog, które mogą nadawać się, lub nie, do pracy na twoim serwerze. Na przykład, ze względu na to, że Microsoft sprzedaje CLB jako oddzielny produkt, nie istnieje żaden sposób, by dowiedzieć się, czy będziesz miał tę usługę zainstalowaną na swojej maszynie. Jednakże, istnieją metody służące do urucha- miania i zatrzymywania tej usługi, jeżeli tylko jest zainstalowana. Jednym z zadań związanych z usługą, które zawsze będzie dostępne, jest zdolność do tworzenia kopii bezpieczeństwa REGDB (centralnego magazynu danych konfiguracyjnych COM+) i jdej późniejszego odtwarzania. Pula obiektów Właściwie jest to pojęcie, które bardzo łatwo zrozumieć. Pomyśl o ilości kodu wymaganego do utworzenia egzemplarza obiektu i do zmiany właściwości obiektu. Nie trzeba być naukow- cem, by zrozumieć, że zmiana właściwości jest daleko mniej wymagająca w kwestii kodowania niż tworzenie nowego obiektu. To jest właśnie to, o co chodzi w puli obiektów. Zamiast tworzenia nowych obiektów za każdym razem, gdy pojawia się taka potrzeba, a następnie niszczenia ich po zakończeniu pracy z nimi, pula obiektów umożliwia zachowanie obiektu do ponownego wykorzystania w przyszłości. Zabezpieczenia oparte na rolach Ochrona to bardzo ważna kwestia, zwłaszcza że komputerowi włamywacze (crackerzy) zaczęli pojawiać się już na prawie każdym polu zastosowań komputerów. Nowości, takie jak rozpo- wszechnienie kontrolek ActiveX, skryptów języka Java, różnego rodzaju innych skryptów, używa- nie makropoleceń w aplikacjach oraz nieprzewidywalne błędy programistyczne w najważniejszych produktach — chociaż brzmi to paranoicznie — przyczyniły się do tego, że administratorzy mają mniejszą możliwość ochrony zasobów, zaś crackerzy większąd łatwość ich uszkodzenia. Windows 2000 udostępnia różnorodne sposoby zmniejszania takiego zagrożenia. Jeżeli piszesz aplikację, która będzie korzystać ze wszystkich mechanizmów zabezpieczających systemu Windows 2000 i jeżeli administrator sieci prawidłowo skonfiguruje uprawnienia obiektów w sieci, wtedy ryzyko dokonania włamania jest znacznie mniejsze — ale wciąż istnieje. Krótko mówiąc, ochrona jest nieustannie zmieniającym się procesem zarządzania konfiguracją, uważnego śledzenia zdarzeń i aktualizacji oprogramowania. 84 COM+. Kompendium programisty Na szczęście, Windows 2000 posiada wiele narzędzi zabezpieczających. Kolejne podrozdziały opiszą dwa elementy składowe tego układu ochrony. Pierwszym jest standardowy mechanizm zabezpieczeń obiektów, który istnieje do momentu powstania systemu Windows NT i, który został znacząco usprawniony w Windows 2000. Zabezpieczenia oparte na obiektach określają wymogi odnośnie do konkretnego poziomu dostępu, które muszą być spełnione przez użytkow- nika, jeśli ten chce uzyskać dostęp do tego obiektu poprzez użycie żetonu. Drugim elementem jest nowszy mechanizm zabezpieczeń opartych na rolach, którego będziesz używał z wieloma komponentami. W tej sytuacji, obiekty są przydzielane konkretnym rolom, tak jak użytkownicy, którzy potrzebują dostępu do nich. Rola jest ukierunkowana na zadanie. By uzyskać dostęp do obiektu, użytkownik musi wykonywać zadanie, którego wymaga ten obiekt. Te dwie technologie pracują razem, by zapewnić twojej sieci bezpieczeństwod. Uwaga W tym rozdziale będą używane dwa terminy na określenie pludzi łamiących zabezpieczenia serwerów WWW lub sieci komputperowych. Pierwsze z nich — hacker — odnosi się do kogoś, kto wykonuje niskopoziomowe zadanie, np. sprawdza zabezpieczenia pstosowane przez firmę, za jej przyzwoleniem. Hackerzy nie robią nic, cop mogłoby uszkodzić sieć lub przechowywane w niej dane. Drugie okpreślenie — cracker — określa osobę, która włamuje się na serwery WWW lub do psieci komputerowych, chcąc ukraść dane, uszkodzić dane, sieć lub zainstalować wrogie oprogramowanie (wirusy, konie tropjańskie). Standardowe mechanizmy zabezpieczeń Windows Windows 2000 pozwala konfigurować mechanizmy ochronne na kilka różnych sposobów, włą- czając w to dobrze znane zabezpieczenia na poziomie użytkownika i pliku. Możesz również tworzyć grupy, przydzielając prawa dostępu właśnie im, zamiast poszczególnym użytkownikom. Dodatkowo, istnieje możliwość śledzenia każdego aspektu działania systemu zabezpieczeń przy korzystaniu z różnych ostrzeżeń i plików zawierających zapis wszelkiej aktywności. Żadne zdarzenie nie prześlizgnie się bez kontroli i bliższego przyjrzenia się mu. Faktycznie, prosty moment przekazywania informacji z jednego procesu do innego jest przyczyną przeprowadzania przez system Windows 2000 pewnego rodzaju kontroli. Dla aplikacji poziom zabezpieczeń udostępniany przez Windows 2000 ma zarówno wady, jak i zalety. Z jednej strony, nie ma zbyt wielu słabych punktów., które aplikacje mogą wykorzystać, by złamać zabezpieczenia. W większości przypadków, Windows 2000 po prostu przerwie pracę błędnie działającej aplikacji, zanim zdąży dojść do jakiegokolwiek naruszenia zabezpieczeń. Z drugiej strony, taka surowa ochrona właściwie zbyt mocno ingeruje w pracę niektórych starszych aplikacji, utrudniając im w pełni prawidłową pracę, która jest możliwa w warunkach mniej surowych zabezpieczeń panujących w Windows 95/98. Zasadniczo, zabezpieczenia oferowane przez Windows 2000 mogą właściwie mieć wpływ na poziom zgodności, który będzie mogła Rozdział 3. G Wyjątkowe cechy COM+ 85 udostępnić twoja maszyna. Na szczęście, dla programisty COM+ rodzaje aplikacji, na które zwykle mają wpływ surowe zabezpieczenia systemu Windows 2000, nie stanowią problemu, więc nie będziemy więcej wracać do tego tematu. Duża liczba mechanizmów zabezpieczających, które udostępnia Windows 2000, to duży plus dla użytkowników Internetu i witryn WWW. Faktycznie, wielu twórców serwisów WWW chciałoby, aby system Windows 2000 zapewniał jeszcze bardziej surowe reguły zabezpieczeń, niż oferuje obecnie. To poziom własnych zabezpieczeń sprawia, że Windows 2000 jest świetną platformą systemową do uruchomienia witryny WWW. W dodatku, w większości przypadków możesz poprawić standardowe możliwości serwisu WWW, jeżeli napiszesz kod korzystający z mechanizmów oferowanych przez system Windows 2000. W większości przypadków, oznacza to tworzenie komponentów, do których możesz uzyskać dostęp poprzez skrypty ASP, jako dodatek do zwykłych metod konfiguracji zabezpieczeń. Innym sposobem na osiągnięcie tego samego celu jest stworzenie filtra ISAPI, który będzie monitorował zabezpieczenia twojego systemu (tej techniki nie będziemy omawiać). Nawet jeżeli nie uda ci się zapobiec złamaniu twoich zabezpieczeń przez crackera, będziesz mógł przynajmniej śledzić, co on robi, by zmini- malizować zakres wyrządzonych szkód. W dodatku, znając miejsce włamania, można w przy- szłości wzmocnić je, uszczelniając tym samym zabezpieczdenia. Wskazówka Pewien sławny hacker powiedział, że nie ma znaczenia cpzy, lecz kiedy ktoś włamie się na twoją witrynę WWW lub do twojej sieci — śledzenie zdarzeń dotyczących zabezpieczeń pozwoli ci wykryć usteprki w zabezpieczeniach, zanim staną się problemem. W pewnych przypadkach, możesz nawet przeprowadzić dokładną kontrolę swojej sieci, korzystając z usług firmy doradczej zatrudniającej hackerów. Należyp pamiętać, że zarówno crackerzy, jak i hackerzy często używają tych spamych narzędzi i metod do przełamywania zabezpieczeń twojej sieci — różnica polega na tym, że hacker jest tutaj po to, by pomóc ci wzmocnić ochronę twojej sieci — wykryć słabe miejsca w zabezpieczeniach i je naprawipć. Dziury w zabezpieczeniach Zatem, czy zdobyć się na wysiłek wbudowywania dodatkowych — charakterystycznych dla systemu Windows 2000 — zabezpieczeń w swój komponent lub aplikację? Po pierwsze, to niemożliwe, by konfiguracja zabezpieczeń twojej sieci LAN była perfekcyjna. Musisz się przekonać, że wszystkie części każdej aplikacji zapewniają wymagany poziom zabezpieczeń — inaczej będziesz miał dziury w zabezpieczeniach swojej sieci lokalnej. Obecnie jednym z najbardziej powszechnych źródeł problemów z ochroną w firmach jest użytkownik, który nie rozumie reguł biznesu dotyczących zabezpieczeń. Dodanie do aplikacji i związanych z nimi komponentów, charakterystycznych dla Windows 2000, metod ochrony, pomoże ci pokonać pewnego rodzaju problemy związane z wiedzą użytkownika, lub przynajmniej ostrzec go, że robi coś, co wykracza poza wytyczne firmy. 86 COM+. Kompendium programisty Nie możesz martwić się jedynie o swoją sieć LAN, trzeba pomyśleć także o Internecie. Nawet jeżeli nie udostępnisz swojej witryny WWW w Internecie, zawsze będą sposoby, które umoż- liwią włamanie i dokonanie spustoszeń w sieci. Internet otwiera crackerowi wszystkie rodzaje potencjalnych możliwości. Nie ma rady na to, że w obecnych specyfikacjach API dotyczących zabezpieczeń
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

COM+. Kompendium programisty
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: