Zasada autonomii usług
Autonomia usług to zasada projektowania stosowana w ramach paradygmatu projektowania zorientowanego na usługi w celu świadczenia usług o zwiększonej niezależności od ich środowisk wykonawczych. Powoduje to większą niezawodność, ponieważ usługi mogą działać w mniejszym stopniu w zależności od zasobów, nad którymi kontrola jest niewielka lub żadna.
Zamiar
Paradygmat projektowania zorientowanego na usługi kładzie nacisk na ponowne wykorzystanie usług zgodnie z zasadą projektowania ponownego wykorzystania usług . W ramach tego paradygmatu usług intensywnie ponownie wykorzystywanych niezawodność staje się krytyczna dla zapewnienia długowieczności usług. Z kolei niezawodność usługi zależy od kontroli operacyjnej usługi nad logiką usługi i bazowymi zasobami implementacyjnymi w celu zmniejszenia zależności od zasobów zewnętrznych, nad którymi ma niewielką lub żadną kontrolę, takich jak logika usługi współdzielonej lub wspólna baza danych, które mogą nie być dostępne, gdy jest to wymagane przez Serwis.
Tradycyjne tworzenie oprogramowania opartego na komponentach również podlega takim samym wymogom dotyczącym autonomii, a zapewnienie autonomii i niezawodności w takich okolicznościach pozostawia się rzeczywistemu środowisku wykonawczemu, np. poprzez zapewnienie obsługi przełączania awaryjnego lub wdrożenie rozwiązania na dedykowanych serwerach. Jednak w ramach zorientowania na usługi stawka jest jeszcze wyższa, ponieważ rozwiązanie zorientowane na usługi może składać się z usług, które istnieją poza granicami organizacji. Tak więc w tym przypadku liczy się projekt samej usługi, a usługa musi być zaprojektowana w taki sposób, aby sprawowała maksymalną kontrolę nad tym, jak spełnia swoją funkcjonalność. Zasada autonomii usług ma na celu dostarczenie wskazówek do projektowania autonomicznych usług, tak aby powstałe usługi były bardziej przewidywalne i niezawodne.
Aplikacja
Zastosowanie autonomii usługi obejmuje dwa rodzaje autonomii, które pozwalają na zwiększenie ogólnej autonomii usługi, autonomię czasu projektowania i autonomię czasu działania.
Autonomia czasu projektowania
Autonomia w czasie projektowania odnosi się do niezależności, z jaką usługi mogą ewoluować bez wpływu na konsumentów usług. Ten rodzaj autonomii jest wymagany, ponieważ starsze zasoby usługi mogą wymagać remontu lub logika usługi może wymagać refaktoryzacji w celu zwiększenia jej wydajności.
Zastosowanie zasad luźnego łączenia usług i abstrakcji usług pomaga w osiągnięciu autonomii w czasie projektowania, ponieważ ich zastosowanie skutkuje usługami, których kontrakty są chronione przed ich logiką i implementacją, a zatem usługi mogą być przeprojektowane bez wpływu na ich odbiorców usług.
Autonomia czasu pracy
Autonomia w czasie wykonywania odnosi się do zakresu kontroli, jaką usługa ma nad sposobem przetwarzania logiki rozwiązania przez środowisko wykonawcze. Im większą kontrolę ma usługa nad swoim środowiskiem wykonawczym, tym bardziej przewidywalne jest jej zachowanie. Autonomię w czasie wykonywania uzyskuje się poprzez zapewnienie dedykowanych zasobów przetwarzania dla usługi. Na przykład, jeśli logika usługi wykonuje zadania intensywnie korzystające z pamięci, usługę można wdrożyć na serwerze z zarezerwowanymi lub zachowanymi zasobami. Podobnie, w stosownych przypadkach, udostępniając lokalnie buforowane kopie danych, można zmniejszyć zależność usługi od zdalnej udostępnionej bazy danych. W rezultacie zwiększa się ogólna autonomia usługi...
Istnieje bezpośredni związek między autonomią w czasie wykonywania a autonomią w czasie projektowania. Zwiększenie autonomii czasu projektowania automatycznie zwiększa możliwość ewolucji środowiska implementacji usługi.
Rodzaje usług
Chociaż maksymalne zwiększenie autonomii usługi jest zawsze pożądane, nie zawsze jest możliwe zaprojektowanie każdej usługi z maksymalną autonomią w czasie projektowania i działania. W rezultacie usługom należy nadać priorytet, tak aby można było zająć się ich autonomią zgodnie z ich wartością dla biznesu. Można to zrobić, przyglądając się kontekstowi funkcjonalnemu usługi. Usługi, których konteksty funkcjonalne są niezależne od konkretnego procesu biznesowego, np. usługi podmiotowe i użyteczności publicznej, są dobrymi kandydatami do zwiększenia ich autonomii. Dzieje się tak dlatego, że oferują funkcjonalność, która jest interesująca dla różnych typów konsumentów. Z drugiej strony usługi związane z określonymi procesami biznesowymi, np. usługi związane z zadaniami i zadaniami zorganizowanymi, są mniej wielokrotnego użytku i zależą od indywidualnej autonomii ich usług.
Rozważania
Zapewnienie autonomii usług może wymagać dodatkowej infrastruktury i musi być stosowane zgodnie z potrzebami i priorytetami. W niektórych przypadkach usługi mogą wymagać odizolowania i wdrożenia w dostosowanym i dedykowanym środowisku, z naciskiem na zaprojektowanie prawidłowego kontekstu funkcjonalnego, ponieważ wprowadzenie fundamentalnych zmian w takiej usłudze może być trudne.
Autonomia usług obejmujących starsze zasoby może być trudna do przewidzenia i zwiększenia. Może to wymagać dodatkowej analizy części usług komunalnych, ponieważ poziom autonomii zależy od funkcjonalności zapewnianej przez usługę.
- Dennisa Wisnoskiego. Zasady i wzorce w Departamencie Obrony USA [Online]. Data dostępu: 15 kwietnia 2010 r.
- Mauro. i in. Integracja urządzeń zorientowana na usługi - analiza wzorców projektowych SOA . [online], s. 1–10, 2010 43. Hawaii International Conference on System Sciences, 2010. Data dostępu: 8 kwietnia 2010 r.
- Keesa Leune'a. Kontrola dostępu i architektury zorientowane na usługi [online]. strona 50. Dostęp: 15 kwietnia 2010 r.
- Jammesa. i in. Komunikacja urządzeń zorientowana na usługi przy użyciu profilu urządzeń dla usług internetowych [online]. Data dostępu: 17 kwietnia 2010 r.