[ Pobierz całość w formacie PDF ]
Oprócz listy serwerów komponent TSimpleObjectBroker zawiera tylko kilka dodatkowych
właściwości i metod.
Metoda
function GetComputerForGUID(GUID: TGUID): String; override;
zwraca nazwę komputera, w którym zarejestrowany jest serwer z identyfikatorem GUID
określonym przez parametr GUID.
Metoda
function GetComputerForProgID(const ProgID): String; override;
zwraca nazwę komputera, w którym zarejestrowany jest serwer o nazwie określonej
przez parametr ProgID.
Właściwość
property LoadBalance: Boolean;
służy do wybierania serwera z listy. Jeśli ma wartość True, serwer jest wybierany losowo;
w przeciwnym razie sugerowana jest pierwsza dostępna nazwa serwera.
258
Część III ♦ Rozproszone aplikacje bazodanowe
Komponent TLocalConnection
Komponentu TLocalConnection używa się lokalnie w celu uzyskania dostępu do istnie-
jących komponentów dostawczych.
Właściwość
property Providers[const ProviderName: String]: TCustomerProvider;
zawiera wskaźniki do wszystkich komponentów dostawczych, które znajdują się w tym
samym module co dany komponent TLocalConnection. Poszczególne pozycje tej listy
są indeksowane według nazw komponentów dostawczych.
Łączną liczbę komponentów dostawczych na liście zwraca właściwość:
property ProviderCount: Integer;
Ponadto, stosując komponent TLocalConnection, możemy uzyskać lokalny dostęp do
interfejsu IAppServer. Użyj właściwości
property AppServer: IAppServer;
albo metody
function GetServer: IAppServer; override;
Komponent TSharedConnection
Jeśli interfejs IAppServer zdalnego modułu danych używa metody, która zwraca wskaź-
nik do analogicznego interfejsu innego zdalnego modułu danych, to pierwszy moduł
nazywamy macierzystym, a drugi — potomnym (zobacz rozdział 9. — „Serwer apli-
kacji”). Komponent TSharedConnection łączy aplikację klienta z potomnym modułem
danych serwera aplikacji.
Właściwość
property ParentConnection: TDispatchConnection;
powinna zawierać wskaźnik do komponentu połączeniowego z macierzystym zdalnym
modułem danych serwera aplikacji. Nazwę modułu potomnego określa właściwość:
property ChildName: String;
Jeśli interfejs macierzystego zdalnego modułu danych został skonfigurowany prawi-
dłowo, lista w oknie Object Inspector będzie pokazywać nazwy wszystkich modułów
potomnych.
Interfejs IAppServer potomnego zdalnego modułu danych jest zwracany przez właściwość
property AppServer: Variant;
albo metodę
function GetServer: IAppServer; override;
Metody obsługi zdarzenia komponentu TSharedConnection są dziedziczone po klasie
TCustomConnection. (zobacz tabela 8.1).
259
Komponent TConnectionBroker zapewnia scentralizowaną kontrolę nad połączeniem
między klienckimi zestawami danych a serwerem aplikacji. Właściwość Connection
Broker we wszystkich klienckich zestawach danych musi wskazywać instancję kom-
ponentu TConnectionBroker. Dzięki temu zmiana rodzaju połączenia (na przykład z HTTP
na gniazda TCP/IP) nie wymaga modyfikowania właściwości RemoteServer we wszyst-
kich komponentach TClientDataSet — wystarczy zmienić właściwość:
property Connection: TCustomRemoteServer;
Dostęp do interfejsu IAppServer można uzyskać za pomocą właściwości
property AppServer: Variant;
albo metody
function GetServer: IAppServer; override;
Metody obsługi zdarzeń komponentu TConnectionBroker opisano w tabeli 8.1.
Podsumowanie
Wielowarstwowe aplikacje rozproszone zapewniają efektywną interakcję między wieloma
zdalnymi, uproszczonymi klientami a serwerami aplikacji za pomocą oprogramowania
pośredniego. W aplikacjach wielowarstwowych najczęściej używa się modelu trójwar-
stwowego, w którym oprogramowanie pośrednie składa się tylko z serwera aplikacji.
W Delphi do tworzenia aplikacji trójwarstwowych używa się komponentów DataSnap
i zdalnych modułów danych. Wszystkie te narzędzia są dostępne w wersjach obsługują-
cych różne protokoły transportowe.
Trójwarstwowe aplikacje rozproszone korzystają też z komponentów TDataSetProvider
oraz TClientDataSet, które obsługują zestawy danych po stronie klienta.
Rozdział 8. ♦ Technologia DataSnap. Mechanizmy zdalnego dostępu
Komponent TConnectionBroker
[ Pobierz całość w formacie PDF ]