Co to jest SOA? Zorientowany na usługi ArchiZasady Techniki
Co to jest SOA (zorientowany na usługi Architektura)?
Zorientowany na usługi Architechnologia (SOA) jest wzorcem architektonicznym w projektowaniu oprogramowania komputerowego, w którym komponenty aplikacji świadczą usługi innym komponentom za pośrednictwem protokołu komunikacyjnego, zazwyczaj przez sieć. Zasady zorientowania na usługi są niezależne od jakiegokolwiek produktu, dostawcy lub technologii.
SOA po prostu ułatwia wzajemną współpracę komponentów oprogramowania w różnych sieciach.
Usługi sieciowe, które są budowane zgodnie z architekturą SOA, mają tendencję do zwiększania niezależności usług sieciowych. Same usługi sieciowe mogą wymieniać między sobą dane i ze względu na podstawowe zasady, na których są tworzone, nie potrzebują żadnej interakcji z człowiekiem, ani też żadnych modyfikacji kodu. Zapewnia to, że usługi sieciowe w sieci mogą bezproblemowo ze sobą współdziałać.
Zorientowany na usługi ArchiZasady architektury (SOA).
Istnieje 9 rodzajów zasad projektowania SOA, które są wymienione poniżej
1. Standardowa umowa o świadczenie usług
Usługi są zgodne z opisem usługi. Usługa musi mieć jakiś opis opisujący, czego dotyczy. Ułatwia to aplikacjom klienckim zrozumienie działania usługi.
2. Luźne sprzęgło
Less zależności od siebie. Jest to jedna z głównych cech usług sieciowych, która po prostu stwierdza, że powinno być jak najmniej zależności między usługami sieciowymi a klientem wywołującym usługę sieciową. Tak więc jeśli funkcjonalność usługi zmieni się w dowolnym momencie, nie powinno to spowodować przerwania działania aplikacji klienckiej ani uniemożliwić jej działania.
3. Abstrakcja usług
Usługi ukrywają logikę, którą hermetyzują, przed światem zewnętrznym. Usługa nie powinna ujawniać sposobu, w jaki realizuje swoją funkcjonalność; powinien po prostu poinformować aplikację kliencką o tym, co robi, a nie o tym, jak to robi.
4. Ponowne wykorzystanie usługi
Logika jest podzielona na usługi z zamiarem maksymalizacji ponownego wykorzystania. W każdej firmie programistycznej ponowne wykorzystanie jest ważnym tematem, ponieważ oczywiście nie byłoby sensu tracić czasu i wysiłku na wielokrotne budowanie tego samego kodu w wielu aplikacjach, które ich wymagają. Dlatego też po napisaniu kodu usługi internetowej powinna ona umożliwiać współpracę z różnymi typami aplikacji.
5. Autonomia usług
Usługi powinny mieć kontrolę nad logiką, którą hermetyzują. Serwis wie wszystko o tym, jaką funkcjonalność oferuje, dlatego też powinien mieć pełną kontrolę nad zawartym w nim kodem.
6. Bezpaństwowość usług
W idealnym przypadku usługi powinny być bezpaństwowe. Oznacza to, że służby nie powinny ukrywać informacji między stanami. Należy to zrobić z poziomu aplikacji klienckiej. Przykładem może być zamówienie złożone w serwisie zakupowym. Teraz możesz mieć usługę internetową, która podaje cenę konkretnego artykułu. Jeśli jednak produkty zostaną dodane do koszyka, a strona internetowa przejdzie do strony, na której dokonujesz płatności, serwis internetowy nie powinien ponosić odpowiedzialności za cenę artykułu, który ma zostać przeniesiony na stronę płatności. Zamiast tego musi to zrobić aplikacja internetowa.
7. Wykrywalność usług
Usługi można wykryć (zwykle w rejestrze usług). Widzieliśmy to już w koncepcji UDDI, który wykonuje rejestr, w którym mogą być przechowywane informacje o usłudze sieciowej.
8. Komponowalność usług
Usługi dzielą duże problemy na małe problemy. Nigdy nie należy osadzać całej funkcjonalności aplikacji w jednej usłudze, lecz zamiast tego podzielić usługę na moduły, każdy z osobną funkcjonalnością biznesową.
9. Interoperacyjność usług
Usługi powinny wykorzystywać standardy umożliwiające różnym abonentom korzystanie z usługi. W usługach internetowych standardy takie jak XML a komunikacja za pośrednictwem protokołu HTTP zapewnia zgodność z tą zasadą.