Kiedy się sprawdza?
Główną zaletą podejścia SOA jest przygotowanie organizacji na zmiany, o których nie wiemy zbyt dużo w momencie tworzenia rozwiązania.
Skrót SOA pochodzi od terminu Service Oriented Architecture, który oznacza architekturę nastawioną na usługi lub opartą na usługach. Pod tym pojęciem kryje się zestaw postulatów, rekomendacji i dobrych praktyk związanych z projektowaniem architektury systemów informatycznych. Dla przypomnienia, architektura oznacza strukturę logiczną systemu lub systemów informatycznych z wyodrębnionymi głównymi elementami składowymi i powiązaniami między nimi.
Podejście SOA zakłada budowę logiki rozwiązań w postaci luźno powiązanych usług. Usługą (ang. service) może być dowolny fragment funkcjonalności przydatnej dla użytkownika. Informacje o tym, co oznacza luźne powiązanie usług, znajdują się w dalszej części materiału.
Duży nacisk w SOA kładzie się na zapewnienie szerokiej dostępności usług. Aby to osiągnąć, należy przede wszystkim oprzeć interfejsy usług i mechanizmy wywoływania usług na otwartych i szeroko wykorzystywanych standardach, takich jak na przykład: XML i HTTP/HTTPS.
Usługi muszą być tak projektowane, aby zapewnić ich odpowiednią granularność (ang. granularity). Powinny one mieć odpowiednio dużo logiki, aby stanowić spójne i autonomiczne elementy funkcjonalności. Z drugiej strony nie mogą być zbyt duże, gdyż ogranicza to możliwość ponownego wykorzystania takiej usługi w nowych scenariuszach.
W praktyce granularność usług jest mniejsza (czyli zawierają one więcej funkcjonalności) niż np. granularność metod komponentów JavaBeans, ale jednocześnie będzie pewnie dużo większa niż granularność zleceń wykonywanych w scenariuszach integracji B2B. Dobrymi przykładami publicznych usług mogą być następujące operacje:
- pobierz dane klienta;
- stwórz klienta;
- zarejestruj interakcję z klientem;
- sprawdź wiarygodność klienta.
Składniki kontraktu
Kolejnym postulatem SOA dotyczącym budowy serwisów jest ustalenie kontraktu opisującego istotne aspekty działania serwisu.
Pierwszym elementem kontraktu jest opis funkcjonalności usługi z punktu widzenia jej użytkownika. Nie jest istotne, jak ta funkcjonalność jest zaimplementowana, jakie wewnętrzne algorytmy, techniki, języki programowania itp. zostały do tego użyte. Chodzi o funkcjonalność widoczną dla klienta.
Istotnym elementem kontraktu jest również definicja formatu danych wejściowych i wyjściowych oraz ewentualnych komunikatów o błędach czy wyjątków zwracanych przez usługę.
Ostatni element kontraktu to opis kwestii operacyjnych, takich jak: czasy dostępności usługi, czasy odpowiedzi, koszt wykonania usługi.
Kontrakt w żadnym wypadku nie powinien określać aspektów implementacyjnych i technicznych rozwiązania udostępniającego usługę.
Oceń artykuł
Komentarze (0)
Najpopularniejsze
- Pierwsze w Polsce testy transmisji danych z...
- Magdalena Gaj została Przewodniczącą Rady...
- Asseco wątpi w obiektywny wybór dostawcy w...
- Raport Państwo 2.0, czyli nowa wizja...
- Sygnity: wezwanie Asseco i sezonowość...
- Ogromna liczba komputerów Mac wciąż...
- Nasza Klasa uruchomiła inkubator...
- Google prezentuje okulary z Augmented Reality
- Oracle daje klientom bezpłatny system do...
- CBA kontroluje przetargi związane z CEPiK
Rekomendacje
Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści - Prenumerata: Computerworld, Networld, PC World
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88






