Какво представляват уеб услугите? Архитектура, типове, пример

Съдържание:

Anonim

Какво представлява уеб услугата?

Уеб услугата е стандартизиран носител за разпространение на комуникация между клиентските и сървърните приложения в глобалната мрежа. Уеб услугата е софтуерен модул, който е предназначен да изпълнява определен набор от задачи.

  • Уеб услугите в облачни изчисления могат да се търсят по мрежата и също могат да се извикват съответно.
  • При извикване уеб услугата ще може да предостави функционалността на клиента, който извиква тази уеб услуга.

В този урок за уеб услуги ще научите основите на уеб услугите -

  • Как работят WebServices?
  • Защо се нуждаете от уеб услуга?
  • Тип на уеб услугата
  • Предимства на уеб услугите
  • Архитектура на уеб услуги
  • Характеристики на уеб услугата
  • Как работят WebServices?

    Как работят уеб услугите?

    Горната диаграма показва много опростен изглед на това как всъщност би работила уеб услуга. Клиентът ще извика поредица от обаждания към уеб услуги чрез заявки към сървър, който ще хоства действителната уеб услуга.

    Тези заявки се правят чрез това, което е известно като отдалечени извиквания на процедури. Отдалечените процедурни повиквания (RPC) са извиквания към методи, които се хостват от съответната уеб услуга.

    Като пример Amazon предлага уеб услуга, която предоставя цени за продукти, продавани онлайн чрез amazon.com. Предният край или презентационният слой могат да бъдат в .Net или Java, но всеки език за програмиране би имал способността да комуникира с уеб услугата.

    Основният компонент на дизайна на уеб услуга са данните, които се прехвърлят между клиента и сървъра, а това е XML. XML (Extensible markup language) е аналог на HTML и лесен за разбиране междинен език, който се разбира от много езици за програмиране.

    Така че, когато приложенията говорят помежду си, те всъщност говорят в XML. Това осигурява обща платформа за приложения, разработени на различни езици за програмиране, за да говорят помежду си.

    Уеб услугите използват нещо известно като SOAP (Simple Object Access Protocol) за изпращане на XML данни между приложения. Данните се изпращат по нормален HTTP. Данните, които се изпращат от уеб услугата до приложението, се наричат ​​SOAP съобщение. SOAP съобщението не е нищо друго освен XML документ. Тъй като документът е написан в XML, клиентското приложение, извикващо уеб услугата, може да бъде написано на всеки език за програмиране.

    Защо се нуждаете от уеб услуга?

    Съвременните бизнес приложения използват различни програмни платформи за разработване на уеб-базирани приложения. Някои приложения могат да бъдат разработени в Java, други в .Net, докато други в Angular JS, Node.js и др.

    Най-често тези разнородни приложения се нуждаят от някакъв вид комуникация, за да се случи между тях. Тъй като те са изградени с помощта на различни езици за разработка, става наистина трудно да се осигури точна комуникация между приложенията.

    Тук се появяват уеб услугите. Уеб услугите предоставят обща платформа, която позволява на множество приложения, изградени на различни езици за програмиране, да имат възможност да комуникират помежду си.

    Тип на уеб услугата

    Има основно два вида уеб услуги.

    1. SOAP уеб услуги.
    2. RESTful уеб услуги.

    За да може една уеб услуга да бъде напълно функционална, има определени компоненти, които трябва да са налице. Тези компоненти трябва да присъстват независимо от езика за разработка, който се използва за програмиране на уеб услугата.

    Нека разгледаме тези компоненти по-подробно.

    SOAP (Прост протокол за достъп до обекти)

    SOAP е известен като независим от транспорта протокол за съобщения. SOAP се основава на прехвърляне на XML данни като SOAP съобщения. Всяко съобщение има нещо, което е известно като XML документ. Само структурата на XML документа следва определен модел, но не и съдържанието. Най-добрата част от уеб услугите и SOAP е, че всички те се изпращат чрез HTTP, което е стандартният уеб протокол.

    Ето от какво се състои SOAP съобщението

    • Всеки SOAP документ трябва да има корен елемент, известен като елемент . Основният елемент е първият елемент в XML документ.
    • "Пликът" от своя страна е разделен на 2 части. Първият е заглавката, а следващият е тялото.
    • Хедърът съдържа данните за маршрутизация, които по същество представляват информацията, която казва на XML документа, до кой клиент трябва да бъде изпратен.
    • Тялото ще съдържа действителното съобщение.

    Диаграмата по-долу показва прост пример за комуникация чрез SOAP.

    SOAP протокол

    Ще обсъдим SOAP подробно в този урок.

    WSDL (език за описание на уеб услуги)

    Не може да се използва уеб услуга, ако не може да бъде намерена . Клиентът, който се позовава на уеб услугата, трябва да знае къде всъщност се намира уеб услугата.

    На второ място, клиентското приложение трябва да знае какво всъщност прави уеб услугата, за да може да извика правилната уеб услуга. Това се прави с помощта на WSDL, известен като език за описание на уеб услугите. WSDL файлът отново е XML-базиран файл, който основно казва на клиентското приложение какво прави уеб услугата. Използвайки WSDL документа, клиентското приложение ще може да разбере къде се намира уеб услугата и как тя може да бъде използвана.

    Пример за уеб услуга

    Пример за уеб услуги за WSDL файл е даден по-долу.

    
    
    
    

    Важните аспекти, които трябва да се отбележат за горните примери за декларация на WSDL за уеб услуги, са следните:

    1. <съобщение> - Параметърът на съобщението в дефиницията WSDL се използва за дефиниране на различните елементи на данни за всяка операция, извършена от уеб услугата. Така че в горните примери за уеб услуги имаме 2 съобщения, които могат да се обменят между уеб услугата и клиентското приложение, едното е "TutorialRequest", а другото е операцията "TutorialResponse". TutorialRequest съдържа елемент, наречен "TutorialID", който е от типа низ. По същия начин операцията TutorialResponse съдържа елемент, наречен "TutorialName", който също е низ от тип.
    2. - Това всъщност описва операцията, която може да бъде извършена от уеб услугата, която в нашия случай се нарича Урок. Тази операция може да отнеме 2 съобщения; едното е входно съобщение, а другото е изходно съобщение.
    3. - Този елемент съдържа използвания протокол. Така че в нашия случай ние го определяме да използва http ( http://schemas.xmlsoap.org/soap/http ). Ние също така посочваме други подробности за тялото на операцията, като пространството от имена и дали съобщението трябва да бъде кодирано.

    Ще обсъдим подробно „WDSL“ в този урок.

    Универсално описание, откриване и интеграция (UDDI)

    UDDI е стандарт за описание, публикуване и откриване на уеб услугите, предоставяни от определен доставчик на услуги. Той предоставя спецификация, която помага при хостинг на информация за уеб услуги.

    Сега обсъдихме в предишната тема за WSDL и как тя съдържа информация за това, което всъщност прави уеб услугата. Но как клиентско приложение може да намери WSDL файл, за да разбере различните операции, предлагани от уеб услуга? Така че UDDI е отговорът на това и осигурява хранилище, в което могат да се хостват WSDL файлове. Така клиентското приложение ще има пълен достъп до UDDI, който действа като база данни, съдържаща всички WSDL файлове.

    Точно както телефонният указател има името, адреса и телефонния номер на определено лице, по същия начин регистърът UDDI ще има съответната информация за уеб услугата . За да може едно клиентско приложение да знае къде може да бъде намерено.

    Предимства на уеб услугите

    Вече разбираме защо на първо място се появиха уеб услугите, които трябваше да предоставят платформа, която може да позволи на различни приложения да говорят помежду си.

    Но нека разгледаме списъка с предимствата на уеб услугите защо е важно да се използват уеб услуги.

    1. Излагане на бизнес функционалност в мрежата - Уеб услугата е единица управляван код, която предоставя някакъв вид функционалност на клиентски приложения или крайни потребители. Тази функционалност може да бъде извикана по протокола HTTP, което означава, че може да бъде извикана и през интернет. В днешно време всички приложения са в Интернет, което прави целта на уеб услугите по-полезна. Това означава, че уеб услугата може да бъде навсякъде в интернет и да предоставя необходимата функционалност, както се изисква.

    2. Оперативна съвместимост между приложенията - Уеб услугите позволяват на различни приложения да говорят помежду си и да споделят данни и услуги помежду си. Всички видове приложения могат да говорят помежду си. Така че вместо да пишете конкретен код, който може да бъде разбран само от конкретни приложения, сега можете да напишете общ код, който може да бъде разбран от всички приложения

    3. Стандартизиран протокол, който всички разбират - Уеб услугите използват стандартизиран индустриален протокол за комуникация. Всичките четири слоя (Service Transport, XML Messaging, Service Description и Service Discovery) използват добре дефинирани протоколи в стека на протоколи за уеб услуги.

    4. Намаляване на разходите за комуникация - Уеб услугите използват SOAP през HTTP протокол, така че можете да използвате съществуващия си евтин интернет за внедряване на уеб услуги.

    Архитектура на уеб услуги

    Всяка рамка се нуждае от някаква архитектура, за да се увери, че цялата рамка работи по желание, подобно на уеб услугите. The Web Services Architecture се състои от три различни роли, както са дадени по-долу:

    1. Доставчик - Доставчикът създава уеб услугата и я прави достъпна за клиентско приложение, което иска да я използва.
    2. Заявител - заявителят не е нищо друго освен клиентско приложение, което трябва да се свърже с уеб услуга. Клиентското приложение може да бъде .Net, Java или всяко друго езиково приложение, което търси някаква функционалност чрез уеб услуга.
    3. Брокер - Брокерът не е нищо друго освен приложението, което осигурява достъп до UDDI. UDDI, както беше обсъдено в по-ранната тема, дава възможност на клиентското приложение да намери уеб услугата.

    Диаграмата по-долу показва как доставчикът на услуги, заявителят на услугата и регистърът на услугите си взаимодействат помежду си.

    Архитектура на уеб услуги
    1. Публикуване - Доставчикът информира брокера (регистъра на услугите) за съществуването на уеб услугата, като използва интерфейса за публикуване на брокера, за да направи услугата достъпна за клиентите
    2. Намери - заявителят се консултира с брокера, за да намери публикувана уеб услуга
    3. Обвързване - С информацията, получена от посредника (регистъра на услугите) за уеб услугата, заявителят може да обвърже или да извика уеб услугата.

    Характеристики на уеб услугата

    Уеб услугите имат следните специални поведенчески характеристики:

    1. Те са базирани на XML - Web Services използва XML за представяне на данните на слоевете за представяне и пренос на данни. Използването на XML елиминира всякаква зависимост в мрежа, операционна система или платформа, тъй като XML е общият език, разбираем за всички.

    2. Loosely Coupled - Loosely coupled означава, че клиентът и уеб услугата не са обвързани един с друг, което означава, че дори ако уеб услугата се промени с течение на времето, тя не трябва да променя начина, по който клиентът извиква уеб услугата. Приемането на слабо свързана архитектура има тенденция да направи софтуерните системи по-управляеми и позволява по-проста интеграция между различни системи.

    3. Синхронна или асинхронна функционалност - Синхронността се отнася до обвързването на клиента с изпълнението на услугата. При синхронни операции клиентът всъщност ще изчака уеб услугата да завърши операция. Пример за това вероятно е сценарий, при който се извършва операция за четене и запис на база данни. Ако данните се четат от една база данни и впоследствие се записват в друга, тогава операциите трябва да се извършват последователно. Асинхронните операции позволяват на клиента да извика услуга и след това да изпълнява паралелно други функции. Това е една от често срещаните и може би най-предпочитаните техники за гарантиране, че други услуги не се спират, когато се извършва определена операция.

    4. Възможност за поддържане на разговори за отдалечени процедури (RPC) - Уеб услугите позволяват на клиентите да извикват процедури, функции и методи на отдалечени обекти, използвайки XML-базиран протокол. Отдалечените процедури излагат входни и изходни параметри, които уеб услугата трябва да поддържа.

    5. Поддържа обмен на документи - Едно от ключовите предимства на XML е неговият общ начин за представяне не само на данни, но и на сложни документи. Тези документи могат да бъдат толкова прости, колкото да представят текущ адрес, или могат да бъдат толкова сложни, колкото да представят цяла книга.