SOA a usługi sieciowe
Usługi internetowe służą do tworzenia aplikacji, które mogą wysyłać/odbierać wiadomości przy użyciu protokołu SOAP przez HTTP. Usługa sieciowa to upubliczniony pakiet funkcjonalności oferowany w sieci. SOA to zbiór koncepcji architektonicznych służących do rozwoju i integracji usług. Do implementacji architektury SOA można używać usług sieci Web. Ale to tylko jedna metoda realizacji aplikacji opartych na SOA.
Co to są usługi sieciowe?
Usługa sieci Web to metoda komunikacji w sieci. Według W3C usługa sieciowa to system przeznaczony do obsługi transakcji maszyna-maszyna w sieci. Jest to interfejs API sieci Web opisany w języku WSDL (Web Service Description Language), a usługi sieci Web są zwykle samowystarczalne i samoopisujące. Usługi sieciowe można wykrywać za pomocą protokołu UDDI (Universal Description, Discovery and Integration). Poprzez wymianę komunikatów SOAP (Simple Object Access Protocol) zazwyczaj przez HTTP (z XML), inne systemy mogą wchodzić w interakcje z usługami sieciowymi.
Usługi internetowe są używane na wiele sposobów, takich jak RPC (zdalne wywołania procedur), SOA (architektura zorientowana na usługi) i REST (przeniesienie stanu reprezentacji). Istnieją dwie zautomatyzowane metodologie projektowania usług internetowych. Podejście oddolne dotyczy najpierw tworzenia klas, a następnie używania narzędzi do generowania WSDL do tworzenia tych klas jako usług sieci Web. Podejście odgórne dotyczy definiowania specyfikacji WSDL, a następnie używania narzędzi do generowania kodu w celu wygenerowania odpowiednich klas. Usługi sieciowe mają dwa główne zastosowania. Mogą być używane jako komponenty aplikacji wielokrotnego użytku i/lub do łączenia aplikacji internetowych działających na różnych platformach.
Co to jest SOA?
SOA (architektura zorientowana na usługi) to zestaw koncepcji architektonicznych używanych do tworzenia i integracji usług. SOA zajmuje się przetwarzaniem rozproszonym, w którym konsumenci korzystają z zestawu usług interoperacyjnych. Wielu konsumentów może korzystać z jednej usługi i odwrotnie. Dlatego SOA jest często używana do integracji wielu aplikacji korzystających z różnych platform. Aby SOA działała poprawnie, usługi powinny być luźno powiązane z systemami operacyjnymi i technologiami bazowych aplikacji. Programiści SOA tworzą usługi za pomocą jednostek funkcjonalności i udostępniają je przez Internet. Usługi sieci Web mogą służyć do implementacji architektury SOA. W takim przypadku usługi sieciowe stają się jednostkami funkcjonalności SOA dostępnymi przez Internet. Z usług internetowych może korzystać każdy, nie przejmując się platformami lub językami programowania używanymi do ich tworzenia. SOA jest bezpośrednio zbudowana na zasadzie zorientowania na usługi, która mówi o usługach z prostym interfejsem, do którego użytkownicy mogą uzyskać dostęp niezależnie, nie martwiąc się o rzeczywistą implementację usługi na platformie.
Jaka jest różnica między SOA a usługami sieciowymi?
Istnieją pewne kluczowe różnice między usługami sieci Web a architekturą SOA. Usługi sieciowe definiują technologię sieciową, która może być używana do tworzenia aplikacji, które mogą wysyłać/odbierać komunikaty przy użyciu protokołu SOPA przez HTTP. Jednak SOA jest modelem architektonicznym do implementacji luźno powiązanych aplikacji opartych na usługach. Do implementacji aplikacji SOA można używać usług internetowych. Chociaż podejście usług internetowych do SOA stało się bardzo popularne, jest to tylko jedna metoda implementacji SOA. SOA można wdrożyć przy użyciu dowolnej innej technologii opartej na usługach (np. CORBA i REST).