Какво представляват уеб услугите? Archiструктура, типове, пример
Какво е уеб услуга?
Уеб услуга е стандартизирана среда за разпространение на комуникация между клиентските и сървърните приложения в WWW (World Wide Web). Уеб услугата е софтуерен модул, предназначен да изпълнява определен набор от задачи.
- Уеб услугите в облачните изчисления могат да бъдат търсени в мрежата и съответно да бъдат извиквани.
- Когато бъде извикана, уеб услугата ще може да предостави функционалността на клиента, който извиква тази уеб услуга.
Как работят уеб услугите?

Горната диаграма показва много опростен изглед на това как една уеб услуга действително би работила. Клиентът ще извика поредица от извиквания на уеб услуга чрез заявки към сървър, който ще хоства действителната уеб услуга.
Тези заявки се правят чрез това, което е известно като извикване на отдалечени процедури. Remote Procedure Calls (RPC) са извиквания към методи, които се хостват от съответната уеб услуга.
Като пример, Amazon предоставя уеб услуга, която предоставя цени за продукти, продавани онлайн чрез amazon.com. Предният край или презентационният слой може да бъде в .Net или Java но всеки език за програмиране ще има способността да комуникира с уеб услугата.
Основният компонент на дизайна на уеб услугата са данните, които се прехвърлят между клиента и сървъра и това е XML. XML (разширяем език за маркиране) е аналог на HTML и лесен за разбиране междинен език, който се разбира от много езици за програмиране.
Така че, когато приложенията си говорят помежду си, те всъщност говорят в XML. Това осигурява обща платформа за приложения, разработени на различни езици за програмиране, които да общуват помежду си.
Уеб услугите използват нещо известно като SOAP (Simple Object Access Protocol) за изпращане на XML данни между приложения. Данните се изпращат по нормален HTTP. Данните, които се изпращат от уеб услугата към приложението, се наричат SOAP съобщение. SOAP съобщението не е нищо друго освен XML документ. Тъй като документът е написан на XML, клиентското приложение, извикващо уеб услугата, може да бъде написано на всеки език за програмиране.
Защо имате нужда от уеб услуга?
Съвременните бизнес приложения използват различни платформи за програмиране за разработване на уеб базирани приложения. Някои приложения могат да бъдат разработени в Java, други в .Net, докато някои други в Angular JS, Node.js и т.н.
Най-често тези хетерогенни приложения се нуждаят от някакъв вид комуникация, за да се осъществи между тях. Тъй като те са изградени с помощта на различни езици за разработка, става наистина трудно да се осигури точна комуникация между приложенията.
Тук се намесват уеб услугите. Уеб услугите предоставят обща платформа, която позволява множество приложения, изградени върху различни програмни езици да имат способността да общуват помежду си.
Тип уеб услуга
Има основно два вида уеб услуги.
- SOAP уеб услуги.
- RESTful уеб услуги.
За да бъде една уеб услуга напълно функционална, има определени компоненти, които трябва да бъдат поставени. Тези компоненти трябва да присъстват независимо какъв език за разработка се използва за програмиране на уеб услугата.
Нека разгледаме тези компоненти по-подробно.
SOAP (Прост протокол за достъп до обекти)
SOAP е известен като транспортно-независим протокол за съобщения. SOAP се основава на прехвърляне на XML данни като SOAP съобщения. Всяко съобщение има нещо, което е известно като XML документ. Само структурата на XML документа следва определен модел, но не и съдържанието. Най-добрата част от уеб услугите и SOAP е, че всичко се изпраща чрез HTTP, който е стандартният уеб протокол.
Ето от какво се състои едно SOAP съобщение
- Всеки SOAP документ трябва да има основен елемент, известен като елемент. Основният елемент е първият елемент в XML документ.
- „Пликът“ от своя страна е разделен на 2 части. Първият е заглавката, а следващият е тялото.
- Заглавката съдържа данните за маршрутизиране, което е основно информацията, която казва на XML документа до кой клиент трябва да бъде изпратен.
- Тялото ще съдържа действителното съобщение.
Диаграмата по-долу показва прост пример за комуникация чрез SOAP.
Ще обсъдим SOAP подробно в това настойнически.
WSDL (Език за описание на уеб услуги)
Уеб услуга не може да се използва, ако не може да бъде намерена. Клиентът, който извиква уеб услугата, трябва да знае къде всъщност се намира уеб услугата.
Второ, клиентското приложение трябва да знае какво всъщност прави уеб услугата, за да може да извика правилната уеб услуга. Това става с помощта на WSDL, известен като език за описание на уеб услуги. WSDL файлът отново е базиран на XML файл, който основно казва на клиентското приложение какво прави уеб услугата. Използвайки WSDL документа, клиентското приложение ще може да разбере къде се намира уеб услугата и как може да се използва.
Пример за уеб услуга
Пример за WSDL файл на уеб услуги е даден по-долу.
<definitions>
<message name="TutorialRequest">
<part name="TutorialID" type="xsd:string"/>
</message>
<message name="TutorialResponse">
<part name="TutorialName" type="xsd:string"/>
</message>
<portType name="Tutorial_PortType">
<operation name="Tutorial">
<input message="tns:TutorialRequest"/>
<output message="tns:TutorialResponse"/>
</operation>
</portType>
<binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Tutorial">
<soap:operation soapAction="Tutorial"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:Tutorialservice"
use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:Tutorialservice"
use="encoded"/>
</output>
</operation>
</binding>
</definitions>
Важните аспекти, които трябва да се отбележат относно горните примери за WSDL декларация на уеб услуги, са следните:
- – Параметърът на съобщението в дефиницията на WSDL се използва за определяне на различните елементи от данни за всяка операция, изпълнявана от уеб услугата. Така че в примерите за уеб услуги по-горе имаме 2 съобщения, които могат да се обменят между уеб услугата и клиентското приложение, едното е „TutorialRequest“, а другото е операцията „TutorialResponse“. TutorialRequest съдържа елемент, наречен „TutorialID“, който е от типа низ. По подобен начин операцията TutorialResponse съдържа елемент, наречен „TutorialName“, който също е тип низ.
- – Това всъщност описва операцията, която може да бъде извършена от уеб услугата, която в нашия случай се нарича Tutorial. Тази операция може да отнеме 2 съобщения; едното е входно съобщение, а другото е изходно съобщение.
- – Този елемент съдържа протокола, който се използва. Така че в нашия случай ние го дефинираме да използва http (http://schemas.xmlsoap.org/soap/http). Ние също така определяме други подробности за тялото на операцията, като пространството на имената и дали съобщението трябва да бъде кодирано.
Ще обсъдим „WDSL“ подробно в това настойнически.
Универсален Description, Discovery и Integration (UDDI)
UDDI е стандарт за описване, публикуване и откриване на уеб услугите, които се предоставят от определен доставчик на услуги. Той предоставя спецификация, която помага при хостването на информацията в уеб услугите.
В предишната тема обсъдихме WSDL и как той съдържа информация за това какво всъщност прави уеб услугата. Но как клиентското приложение може да намери WSDL файл, за да разбере различните операции, предлагани от уеб услуга? Така че UDDI е отговорът на това и предоставя хранилище, в което могат да се хостват WSDL файлове. Така клиентското приложение ще има пълен достъп до UDDI, който действа като база данни, съдържаща всички WSDL файлове.
Точно както телефонният указател съдържа името, адреса и телефонния номер на определено лице, по същия начин UDDI регистърът ще има съответната информация за уеб услугата. Така че клиентското приложение да знае къде може да бъде намерено.
Предимства на уеб услугите
Вече разбираме защо уеб услугите се появиха на първо място, което беше да осигурят платформа, която може да позволи на различни приложения да общуват помежду си.
Но нека да разгледаме списъка с предимствата на уеб услугите защо е важно да се използват уеб услуги.
- Разкриване на бизнес функционалност в мрежата – Уеб услугата е единица от управляван код, която предоставя някакъв вид функционалност на клиентски приложения или крайни потребители. Тази функционалност може да бъде извикана през HTTP протокола, което означава, че може да бъде извикана и през интернет. В днешно време всички приложения са в интернет, което прави целта на уеб услугите по-полезна. Това означава, че уеб услугата може да бъде навсякъде в интернет и да предоставя необходимата функционалност според изискванията.
- Оперативна съвместимост между приложенията – Уеб услугите позволяват на различни приложения да общуват помежду си и да споделят данни и услуги помежду си. Всички видове приложения могат да общуват помежду си. Така че вместо да пишете специфичен код, който може да бъде разбран само от конкретни приложения, сега можете да пишете общ код, който може да бъде разбран от всички приложения
- Стандартизиран протокол, който всеки разбира – Уеб услугите използват стандартизиран индустриален протокол за комуникация. Всичките четири слоя (Транспортиране на услуги, XML съобщения, Услуги Description и слоеве за откриване на услуги) използва добре дефинирани протоколи в протоколния стек на уеб услугите.
- Намаляване на разходите за комуникация – Уеб услугите използват SOAP през HTTP протокол, така че можете да използвате вашия съществуващ евтин интернет за внедряване на уеб услуги.
Уеб услуги Archiтекстура
Всяка рамка се нуждае от някакъв вид архитектура, за да се увери, че цялата рамка работи както желаете, подобно в уеб услугите. The Уеб услуги Archiтекстура се състои от три отделни роли, както е дадено по-долу:
- доставчик – Доставчикът създава уеб услугата и я прави достъпна за клиентско приложение, което иска да я използва.
- Заявител – Заявителят не е нищо друго освен клиентското приложение, което трябва да се свърже с уеб услуга. Клиентското приложение може да бъде .Net, Java, или всяко друго базирано на език приложение, което търси някакъв вид функционалност чрез уеб услуга.
- Посредник – Брокерът не е нищо друго освен приложението, което предоставя достъп до UDDI. UDDI, както беше обсъдено в по-ранната тема, позволява на клиентското приложение да намери уеб услугата.
Диаграмата по-долу показва как доставчикът на услуги, рикуестърът на услуги и регистърът на услугите взаимодействат помежду си.
- Публикувам – Доставчикът информира брокера (регистър на услугата) за съществуването на уеб услугата, като използва интерфейса за публикуване на брокера, за да направи услугата достъпна за клиентите
- Какво – Заявителят се консултира с брокера, за да намери публикувана уеб услуга
- Вържи – С информацията, получена от брокера (регистър на услугата) за уеб услугата, заявителят може да обвърже или извика уеб услугата.
Характеристики на уеб услугата
Уеб услугите имат следните специални поведенчески характеристики:
- Те са базирани на XML – Уеб услугите използват XML за представяне на данните в слоевете за представяне и транспортиране на данни. Използването на XML елиминира всякаква зависимост от мрежа, операционна система или платформа, тъй като XML е общият език, разбираем от всички.
- Слабо свързани – Слабо свързано означава, че клиентът и уеб услугата не са обвързани една с друга, което означава, че дори ако уеб услугата се промени с течение на времето, това не трябва да променя начина, по който клиентът извиква уеб услугата. Приемането на слабо свързана архитектура прави софтуерните системи по-управляеми и позволява по-проста интеграция между различни системи.
- Syncхронична или асинхронна функционалност - Syncхроничността се отнася до обвързването на клиента с изпълнението на услугата. При синхронни операции клиентът всъщност ще изчака уеб услугата да завърши операция. Пример за това вероятно е сценарий, при който се извършва операция за четене и запис на база данни. Ако данните се четат от една база данни и впоследствие се записват в друга, тогава операциите трябва да се извършват по последователен начин. Асинхронните операции позволяват на клиента да извика услуга и след това да изпълни други функции паралелно. Това е една от често срещаните и вероятно най-предпочитаните техники за гарантиране, че други услуги няма да бъдат спрени, когато се извършва определена операция.
- Възможност за поддръжка на извиквания на отдалечени процедури (RPC) – Уеб услугите позволяват на клиентите да извикват процедури, функции и методи на отдалечени обекти, използвайки XML-базиран протокол. Отдалечените процедури разкриват входни и изходни параметри, които уеб услугата трябва да поддържа.
- Поддържа обмен на документи – Едно от основните предимства на XML е неговият общ начин за представяне не само на данни, но и на сложни документи. Тези документи могат да бъдат толкова прости, колкото представяне на текущ адрес, или могат да бъдат толкова сложни, колкото представяне на цяла книга.
