Obiektowe modelowanie systemów informatycznych



Pobieranie 8,01 Mb.
Strona47/113
Data23.10.2017
Rozmiar8,01 Mb.
1   ...   43   44   45   46   47   48   49   50   ...   113

Komponenty encyjne


Komponenty encyjne reprezentują trwałe dane, dokonywają inkapsulację danych w bazie danych. Te komponenty mają zasoby synchronizacji obiektowych reprezentacji danych (O-R odwzorowanie) w aplikacji klienta z danymi w bazie danych. Przykładami tych komponentów mogą być:

  • Informacje o koncie bankowym (numer konta, saldo, itp.)

  • Dane o zasobach ludzkich (nazwiska, działy, wynagrodzenia pracowników, itp.)

  • Informacja o klientach(nazwiska, adresy, telefony, itp.).

Komponent encyjny składa się ze standardowego zbioru plików wymaganych dla wszystkich komponentów, jak:

  • interfejs zdalny, interfejs lokalny;

  • interfejs domowy, interfejs lokalny domowy;

  • klasę komponentu EJB;

  • deskryptor rozmieszczenia.

Wiele egzemplarzy komponentu encyjnego może reprezentować te same dane. Każdy komponent encyjny może obsługiwać w danej chwili tylko jednego klienta. Różnicami pomiędzy komponentami encyjnymi a komponentami sesyjnymi są następne klasy:

  • Klasa komponentu encyjnego odwzorowuje definicję encji ze schematu bazy danych. Przykładowo, klasa komponentu encyjnego może odwzorowywać definicję tabeli relacyjnej bazy danych. W takim przypadku egzemplarz klasy komponentu encyjnego odwzorowuje wiersz tej tabeli.

  • Klasa klucza głównego pozwala odróżnić od siebie wszystkie komponenty encyjne. Klucz główny jest obiektem, który może zawierać dowolną liczbę atrybutów.

Przeznaczenie metod komponentu encyjnego:

  • setEntityContext (), unsetEntityContext() - wywoływane przez kontener EJB. Przy wywołaniu metody set komponent przechowa informację pro obiekt kontekstu w zmiennej lokalnej obiektu EJB. Przez obiekt kontekstu obiekt EJB może mieć dostęp do rozmaitych danych, jak na przykład informacji o transakcjach, bezpieczeństwie. Interfejs kontekstu zawiera metody: getEJBObject(), getPrimaryKey() i in.

  • ejbCreate () – wywoływana przez obiekt domowy (kontener), inicjalizuje egzemplarz komponentu w pamięci operacyjnej. Dla każdej metody ejbCreate () klasy komponentu musi być zdefiniowana metoda Create () interfejsu domowego. Klient wywołuje z obiektu domowego metodę create(), która przekazuje jego żądanie metodzie komponentu ejbCreate (). Rezultatem wywołania metody ejbCreate () jest wskaźnik obiektu klucza głównego, zaś obiekt domowy przy wywołaniu metody Create () zwraca wskaźnik obiektu EJB.

  • ejbRemote () - wywoływana przez obiekt domowy (kontener). Aby usunąć dane komponentu encyjnego z bazy danych, klient musi wywołać metodę remove() z obiektu EJB lub zarówno z interfejsu domowego. Metoda ta powoduje, że kontener wywołuje metodę ejbRemote () w komponencie.

  • ejbLoad ()wywoływana przez kontener, wczytuje dane z pamięci stałej do znajdujących się w pamięci operacyjnej pól komponentu encyjnego.

  • ejbStore () – wywoływana przez kontener, zapisuje dane przechowywane aktualnie w polach egzemplarza komponentu do pamięci stałej.

  • ejbActivate () - wywoływana przez kontener w momencie wyciągania egzemplarza z puli komponentu. Proces ten, zwany aktywacją, oznacza, że kontenerłączy komponent z konkretnym obiektem EJB i z jego kluczem głównym. Ta metoda powinna pozyskiwać zasoby (np. gniazda), które komponent będzie potrzebował po przypisaniu do konkretnego obiektu EJB.

  • ejbPassivate () - wywoływana przez kontener w momencie umieszczania egzemplarza w puli komponentu. Proces ten, zwany pasywacją, oznacza, że kontener rozłącza komponent i konkretny obiekt EJB z jego kluczem głównym. Ta metoda powinna zwalniać zasoby (np. gniazda) pozyskane w metodzie ejbActivate (). Podczas pasywacji egzemplarz komponentu musi zachować także zachować swój stan w pamięci stałej. Aby zapisać w bazie danych pola egzemplarza. Kontener przed pasywacją wywołuje metodę ejbStore(). Podobne, podczas aktywacji, aby wczytać dane do egzemplarza komponentu, kontener musi wywoływać metodę ejbLoad().

Istnieją dwa sposoby utrwalania komponentów encyjnych:

    1. Zarządzanie trwałością przez komponent

    2. Zarządzanie trwałością przez kontener.

W przypadku komponentów encyjnych samych zarządzających trwałością, za stworzenie odpowiednich struktur w bazie danych odpowiada metoda ejbCreate() oraz za usuwanie danych z bazy danych odpowiada metoda ejbRemote().

Zarządzanie transakcjami w obiektowo-relacyjnych bazach danych


Celem systemu zarządzania transakcjami jest takie sterowanie operacjami w bazie danych, aby były one wykonane z możliwie wysokim współczynnikiem współbieżności i aby przeciwdziałać naruszeniu spójności bazy danych. Realizacja tego celu została osiągnięta za pomocą odpowiednich protokołów zarządzania transakcjami.

Cechy transakcji


Z punktu wzoru SZBD transakcja to jest ciąg operacji na bazie danych które muszą być zrealizowane przez tego samego użytkownika lub programu zewnętrznego. Mechanizm transakcji zawiera możliwości zatwierdzenia wszystkich zmian w bazie danych w razie skutecznej realizacji wszystkich operacji lub wycofania wszystkich zmian w razie niepowodzenia jednej z nich. Każda transakcja w momencie inicjowania otrzymuje jednoznaczny identyfikator. Identyfikator ten jest następne związany z każdą operacją składającą się na transakcję. Do operacji tych należą:

  • - czytanie danej x przez transakcję ,

  • - zapisanie danej x przez transakcję ,


1   ...   43   44   45   46   47   48   49   50   ...   113


©operacji.org 2017
wyślij wiadomość

    Strona główna