Interfejs Klienta (CCI - Common Client Interface)
Interfejs klienta definiuje zbiór interfejsów i klas, których metody pozwalają klientowi wykonywać typowe operacje dostępu do danych.
ConnectorFactory - dostarcza komponenty aplikacji z instancjami klasy Connection dla EIS. Jest interfejsem, który pozwala komponentowi aplikacji uzyskać połączenie z instancją EIS. Aplikacja ustala połączenie za pomocą metody getConnection. Nastepnie metoda prosi serwer aplikacji o przydzielenie połączenia. Robi to poprzez metodę serwera ConnectionManager.allocateConnection. Adapter zasobów przekazuje obsługę połączenia do serwera aplikacji od momentu, gdy serwer załaduje połączenia i dostarczy inne usługi. Każde ze specyficznych żądań adaptera musi być przekazane do metody ConnectionManager.allocateConnection przy użyciu parametru ConnectionRequestInfo. Metoda getConnection może zostać przeciążona, jeśli EIS wymaga dodatkowej funkcjonalności. Przykład kodu implementującego ten interfejs.
public class myEISConnectionFactory implements
javax.resource.cci.ConnectionFactory
{
public javax.resource.cci.Connection
getConnection()
throws
javax.resource.ResourceException {
// Uzyskuje połączenie do MyEIS w
charaktersytyczny
// dla EIS sposób.
// Ta metoda musi wołać
//
metodę serwera aplikacji
// ConnectionManager.allocateConnection
.
}
}
Interfejs ConnectionFactory nie musi być implementowany. Producenci EIS mogą skorzystać z tego, że metoda getConnection jest dostarczana poprzez adapter zasobów. Metoda ta jest wymagana, ponieważ służy aplikacji do uzyskania połączenia z EIS.
Connection - reprezentuje połączenia niezależnego EIS (underlying EIS). Dostarcza aplikację wraz z pakietem komunikacyjnym dla EIS. Musi mieć metodę zamykającą połączenie, więc komponent aplikacji ma możliwość zakończenia połączenia z EIS. Przykład implementacji.
public class myEISConnection implements javax.resource.cci.Connection {
public void close() throws javax.resource.ResourceException {
// Zamyka połączenia do EIS
// w sposób charakterystyczny dla EIS. } }
Ten injterfejs nie jest wymagany przez architekturę konektora. Adapter zasobów musi tylko dostarczyć obiekt Connection z metodą close, aby była możliwość pozostania przy tej części kontraktu. Obiekt Connection jest niezbędny, ponieważ określa w jaki sposób aplikacja reprezentuje połączenia do EIS. Metoda close jest również niezbędna - aplikacja musi mieć możliwość kończenia połączenia z EIS.
ConnectionRequestInfo - reprezentuje specyficzne dane (argumenty) żądań adaptera zasobów. Dane te są przekazywane do metody serwera aplikacji - ConnectionManager.allocateConnection. Jeśli nie ma danych do przekazania to może być użyta wartość null. Przykład implementacji.
public class myEISConnectionRequestInfo implements javax.resource.spi.ConnectionRequestInfo
{
// dane struktury specyficznego EIS
public boolean equals (Object other) {}
public int hashcode () {
// Implementacja specyficzna dla EIS
}
}
ManagedConnectionFactory - uzgadnia istniejące połączenia do EIS z przychodzącymi zadaniami lub tworzy nowe fizyczne połączenie z EIS. Kiedy serwer aplikacji chce zarezerwować połączenie z EIS, prosi instancję ManagedConnectionFactory adaptera zasobów, żeby przydzieliła mu jakieś istniejące połączenie lub utworzyła nowe. Konfiguracja instancji jest ułatwiona przez dane (argumenty) specyficznych żądań (request-specific). Adapter zasobów musi dostarczyć implementacje tego interfejsu.
ManagedConnection - ten interfejs zapewnia uchwyt połączenia warstwy aplikacji z EIS do instancji ManagedConnection adaptera zasobów. Komunikacja odbywa się poprzez odbiornik i obsługę zdarzeń. Musi być zapewniona obsługa dla rejestracji błędów oraz mechanizm śledzenia. Metadane dla nich mogą być wczytane przez wywołanie getMetaData, co zwraca informacje zawarte w instancji ManagedConnectionMetadata. Ponadto, interfejs dostarcza metody takie jak cleanup do reinicjalizacji instancji i wolnych zasobów po zakończeniu połączenia. Implementacja tego interfejsu jest wymagana przez specyfikację.
MenagedConnectionMetadata ułatwia pobieranie metadanych instancji ManagedConnection. Metadane muszą dostarczać informacje o nazwie i wersji produktu EIS, maksymalną liczbę jednoczesnych połączeń, które mogą być obsługiwane. Interfejs jest wymagany.