Translator usług to wzorzec implementacji usługi,
który umożliwia udostępnienie danej implementacji usługi z innym interfejsem. Niektóre
operacje w interfejsie mogą zostać zrestrukturyzowane lub ukryte dla
konkretnych użytkowników tego interfejsu.
Za pomocą tego wzorca można wykonywać następujące czynności:
- Obsługiwać konkretny interfejs dla klientów wewnętrznych i
jednocześnie udostępniać inny interfejs (prawdopodobnie z pewnymi
ograniczeniami) dla klientów zewnętrznych.
- Prezentować zestaw usług w oparciu o standard branżowy
interfejsu/modelu danych zewnętrznym konsumentom usług.
- Oferować różne jakości usług do wyboru przez poszczególne klienty.
- Obsługiwać różne wersje tej samej usługi, gdy w nowych wersjach
wprowadzono zmiany interfejsu.
- Obsługiwać przypadki, w których klienty z różnych obszarów
geograficznych wymagają wysyłania/odbierania danych z użyciem lokalnych
jednostek miar.
- Obsługiwać przypadki, w których klienty z różnych obszarów geograficznych
wymagają przetłumaczenia wysyłanych/zwróconych danych na inny język.
Dostawca usług jest wirtualizowany przez wdrożenie mediacji
magistrali Enterprise Service Bus (ESB), która implementuje interfejs proxy wymagany przez requester
usług. Mediacja odpowiednio transformuje żądanie, a następnie kieruje je do rzeczywistego
dostawcy usług. Mediacja musi także przetworzyć odpowiedzi od usługi docelowej,
transformując je z powrotem na format oczekiwany przez klient. Z poziomu klientów widoczna jest
tylko usługa wirtualna udostępniana przez mediację, która jest przez nie
traktowana jako rzeczywisty dostawca usługi.
W mediacji usługi można zaimplementować szereg dodatkowych opcji,
takich jak:
- Uwierzytelnianie
- Autoryzacja
- Kontrola i rejestrowanie
- Konwersja protokołów
- Korelacja odpowiedzi
Na następującym diagramie przedstawiono przykładowy scenariusz
translacji usług:
Rozwiązanie
Rozwiązanie polega na zaimplementowaniu przepływu mediacji zawierającego następujące elementy:
- Przepływ żądań dla każdej jednokierunkowej operacji w interfejsie usługi
proxy, który odwzorowuje tę operację na jednokierunkową operację w usłudze
dostawcy.
- Przepływ żądań dla każdej operacji żądanie-odpowiedź w interfejsie usługi
proxy, który odwzorowuje tę operację na jednokierunkową operację w usłudze dostawcy.
- Przepływ żądań i przepływ odpowiedzi dla każdej operacji żądanie-odpowiedź
w interfejsie usługi proxy, który odwzorowuje tę operację na operację
żądanie-odpowiedź w interfejsie dostawcy usług.
Przepływy żądań odwzorowują wszystkie żądania przychodzące do
wstępnie skonfigurowanego punktu końcowego dostawcy usług.
Dodatkowo jest dostępna opcja rejestrowania i śledzenia komunikatów z
żądaniami i odpowiedziami.