Rzut oka na zalety architektury zorientowanej na usługi
Architektura zorientowana na usługi (SOA) to styl projektowania oprogramowania, w którym usługi są dostarczane innym komponentom przez komponenty aplikacji, za pośrednictwem protokołu komunikacyjnego sieć. Jej zasady są niezależne od dostawców i innych technologii. W architekturze zorientowanej na usługi wiele usług komunikuje się ze sobą na jeden z dwóch sposobów: poprzez przekazywanie danych lub przez dwie lub więcej usług koordynujących działanie. To tylko jedna definicja architektury zorientowanej na usługi. Artykuł w Wikipedii zawiera dużo więcej szczegółów.
Charakterystyka architektury zorientowanej na usługi
Chociaż definicje architektury zorientowanej na usługi różnią się w zależności od firmy, istnieje sześć kluczowych założeń to nadrzędna koncepcja architektury zorientowanej na usługi. Te podstawowe wartości obejmują:
Wartość biznesowa
Cele strategiczne
Wewnętrzna interoperacyjność
Usługi wspólne
Elastyczność
Ewolucyjne udoskonalenie
Każdą z tych podstawowych wartości można dostrzec w kontinuum, od przetwarzania rozproszonego w starszym formacie, przez architekturę zorientowaną na usługi, aż po przetwarzanie w chmurze (coś, co często jest architektury zorientowanej na usługi).
Wzorce architektury zorientowanej na usługi
W każdym z elementów składowych architektury zorientowanej na usługi istnieją trzy role: dostawca usług; broker usług, rejestr usług, repozytorium usług; i zleceniodawca / konsument.
Dostawca usług współpracuje z rejestrem usług, omawiając przyczyny i sposoby oferowanych usług, takich jak bezpieczeństwo, dostępność, opłaty i inne. Ta rola określa również kategorię usługi i czy potrzebne są jakiekolwiek umowy handlowe.
Broker usług udostępnia informacje dotyczące usługi tym, którzy o nią proszą. Zakres brokera jest określany przez tego, kto go implementuje.
Żądający usługi lokalizuje wpisy w rejestrze brokera, a następnie wiąże je z dostawcą usług. Mogą lub nie mieć dostępu do wielu usług; zależy to od możliwości requestera usług.
Implementacja architektury zorientowanej na usługi
Jeśli chodzi o wdrażanie architektury zorientowanej na usługi (SOA), istnieje szeroki zakres technologii, które można użyć, w zależności od celu końcowego i tego, co próbujesz osiągnąć.
Zazwyczaj architektura zorientowana na usługi jest implementowana z usługami sieciowymi, dzięki czemu „funkcjonalne bloki konstrukcyjne są dostępne protokoły. ”
Przykładem standardu usług sieciowych jest SOAP, co oznacza Simple Object Access Protocol. W skrócie, SOAP” to specyfikacja protokołu przesyłania wiadomości służąca do wymiany ustrukturyzowanych informacji w implementacji usług internetowych w sieć komputerowa. Chociaż początkowo SOAP nie został dobrze przyjęty, od 2003 roku zyskał większą popularność i jest coraz szerzej używany i akceptowany. Inne opcje wdrażania architektury zorientowanej na usługi to Jini, COBRA lub REST.
Należy pamiętać, że architektury mogą „działać niezależnie od określonych technologii”, co oznacza, że można je wdrażać na różne sposoby, w tym wiadomości, takie jak ActiveMQ; Apache Thrift; i SORCER.
Dlaczego architektura zorientowana na usługi jest ważna
Architektura zorientowana na usługi ma wiele zalet, szczególnie w biznesie opartym na usługach internetowych. Poniżej pokrótce przedstawimy kilka z nich:
Architektura zorientowana na usługi do tworzenia kodu wielokrotnego użytku: nie tylko skraca to czas poświęcany na proces programowania, ale nie ma powodu, aby wymyślać koło kodowania za każdym razem, gdy trzeba utworzyć nową usługę lub proces. Architektura zorientowana na usługi umożliwia również do używania wielu codi języków, ponieważ wszystko przebiega przez centralny interfejs.
Korzystaj z architektury zorientowanej na usługi w celu promowania interakcji: w przypadku architektury zorientowanej na usługi wprowadzana jest standardowa forma komunikacji, umożliwiająca działanie różnych systemów i platform niezależne od siebie. Dzięki tej interakcji architektura zorientowana na usługi jest również w stanie obejść zapory ogniowe, umożliwiając firmom udostępnianie usług, które mają kluczowe znaczenie dla działalności.”
Korzystaj z architektury zorientowanej na usługi, aby zapewnić skalowalność: ważne jest, aby móc skalować firmę w celu zaspokojenia potrzeb klienta, jednak pewne zależności mogą przeszkadzać w tej skalowalności. Korzystanie z architektury zorientowanej na usługi ogranicza interakcję między klientem a usługą, co pozwala na większą skalowalność.
Użyj architektury zorientowanej na usługi, aby obniżyć koszty: dzięki architekturze zorientowanej na usługi można obniżyć koszty, będąc nadal ” utrzymanie pożądanego poziomu wydajności ”. Korzystanie z architektury zorientowanej na usługi pozwala firmom ograniczyć ilość analiz wymaganych przy opracowywaniu niestandardowych rozwiązań.
Jak architektura zorientowana na usługi i przetwarzanie w chmurze współpracują ze sobą
Po pierwsze, należy zauważyć, że Architektura zorientowana na usługi może działać z chmurą obliczeniową lub bez niej, chociaż coraz więcej firm przenosi magazyn plików do chmury, więc sensowne jest łączenie przetwarzania w chmurze i architektury zorientowanej na usługi.
Krótko mówiąc, korzystanie z chmury obliczeniowej umożliwia użytkownikom łatwe i natychmiastowe wdrażanie usług dostosowanych do wymagań ich klientów „bez konieczności konsultowania się z działem IT”.
Jednym z minusów korzystania z architektury zorientowanej na usługi i przetwarzania w chmurze jest to, że niektóre jej aspekty nie są oceniane, takie jak bezpieczeństwo i dostępność ility. Korzystając z przetwarzania w chmurze, użytkownicy często są zdani na łaskę dostawcy.
Istnieje dość duże wyzwanie, przed którym stają firmy podczas łączenia przetwarzania w chmurze i architektury zorientowanej na usługi, polegająca na integracji istniejących danych i systemów z chmurą rozwiązanie. Aby przejście było płynne, musi istnieć ciągłość od początku do końca. Należy również pamiętać, że nie każdy aspekt IT można zlecić w chmurze – są pewne rzeczy, które nadal trzeba wykonać ręcznie.
Możesz przeczytać więcej o tym, jak architektura zorientowana na usługi i chmura obliczenia działają tutaj razem.
Różnica między architekturą zorientowaną na usługi a SaaS
Sporo rozmawialiśmy o tym, czym jest architektura zorientowana na usługi i jak można ją wykorzystać do rozwoju firmy. Ale jest też SaaS (oprogramowanie jako usługa), którego można również użyć do rozwoju firmy. Być może zastanawiasz się, czym jest SaaS i czym różni się od architektury zorientowanej na usługi. Krótko mówiąc, zasoby dostępne za pośrednictwem SaaS to aplikacje. Kluczowym elementem jest to, że infrastruktura SaaS jest „dostępna dla użytkowników, ale przed nimi ukryta”. Zaletą SaaS jest to, że użytkownicy nie muszą zarówno instalować, jak i utrzymywać oprogramowania, co eliminuje wszelkie złożone wymagania. W przypadku SaaS klient nie wymaga również żadnych licencji z góry, co prowadzi do obniżenia kosztów, ponieważ dostawcy utrzymują tylko pojedyncza aplikacja.
Różnice między architekturą zorientowaną na usługi a mikrousługami
Mikrousługi, znane również jako architektura mikrousług, to „styl architektoniczny, który tworzy strukturę aplikacji jako zbiór małych usług autonomicznych, modelowanych wokół domeny biznesowej”.
Chociaż mikrousługi i architektura zorientowana na usługi są podobne pod pewnymi względami kluczowe różnice dotyczą ich funkcjonalności. Usługi są oczywiście głównym składnikiem obu. Istnieją cztery podstawowe typy usług:
Usługi funkcjonalne: definiują podstawowe operacje biznesowe
Usługi dla przedsiębiorstw: wdrażają funkcjonalność zdefiniowaną przez usługi funkcjonalne.
Aplikacja usługa: są one ograniczone do zawartości określonej aplikacji
Usługa infrastruktury: implementuje niefunkcjonalne zadania, takie jak uwierzytelnianie, audyt, bezpieczeństwo i rejestrowanie
Jak widać, każda z tych usług opiera się na wcześniejszym, tworząc system, który jest nie tylko łatwy w użyciu, ale także zapewnia różnorodne sposoby zarządzania firmą. Podobnie jak w przypadku każdej funkcji, należy dowiedzieć się, co działa najlepiej dla Ciebie i Twojej firmy.
Tutaj możesz przeczytać więcej o architekturze zorientowanej na usługi i mikrousługach.
Kilka uwag końcowych Architektura zorientowana na usługi
Jak możesz sobie wyobrazić, Architektura zorientowana na usługi może być trudnym orzechem do zgryzienia, ale kiedy już zrozumiesz jej zasady i korzyści, jakie może zapewnić Twojej firmie, będziesz zachwycony, że ją odkryłeś.
W tym artykule udostępniliśmy kilka doskonałych zasobów architektury zorientowanej na usługi, a wkrótce pojawi się kilka artykułów, które pozwolą głębiej zagłębić się w koncepcję i zapewnią jeszcze więcej zasobów, które pomogą Ci popchnąć Twoją firmę do następny poziom.
Bez względu na to, w jakim kierunku podążasz, świadcząc usługi swoim klientom, ważne jest, aby pamiętać, że różne rzeczy będą działać dla różnych osób. Chociaż nie możesz zapewnić niestandardowych usług dla każdego przyjętego klienta, możesz zapewnić szereg usług, które będą pasować do najbardziej typowych potrzeb Twoich klientów.
W przyszłych artykułach przyjrzymy się w Web 2.0 i zanurz się głębiej w mikrousługi architektury zorientowanej na usługi.