Какво представляват уеб услугите: концепция, как работят, предимства и недостатъци

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

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

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

Значение за развитието

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

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

В тази статия ще обясним по-подробно какво представляват уеб услугите, различните елементи, които ги съставляват, и малко повече за принципите на SOA (Service Oriented Architecture). Макар и сложно дефинирана, технологията представлява достъпна среда за разработка и програмиране.

Определение за технология

За да отговорим на въпроса какво представляват уеб услугите, те са стандартизирана среда за разпределяне на комуникацията между клиентски и сървърни приложения в World Wide Web. Може да се редактира и да се използват пакети за подобрения.

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

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

Как работи

Когато говорим за това какво представляват уеб услугите, е необходимо да разгледаме условията за работа с тях. Това ще ви помогне да разберете как работи системата.

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

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

Пример за уеб услуга е Amazon. Организацията разполага с мрежа от онлайн магазини и системи за доставка. Тя предоставя уеб услуга, която изисква цени за продукти, продавани онлайн чрез Amazon.com. Външният или презентационният слой може да бъде в .Net или Java, но всеки език за програмиране има свой собствен начин за взаимодействие с уеб услугата. Извършва се на обща платформа.

уеб услуги интернет

Съставни компоненти

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

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

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

При извикването на уеб услугата е възникнала грешка

Какви са видовете приложения

Съществуват основно два вида уеб услуги:

  1. SOAP.
  2. RESTful.

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

SOAP (Simple Object Access Protocol)

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

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

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

WSDL (език за описание на приложения)

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

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

Предимства на развитието

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

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

  1. Представяне на бизнес функции в уеб. Уеб услугата е единица управляван код, която предоставя определена функционалност на клиентски приложения или крайни потребители. Тази функция може да бъде извикана чрез протокола HTTP, което означава, че може да бъде извикана и през уеб. Всички приложения вече са в интернет, което прави по-полезно възлагането на уеб услуги. Това означава, че уеб услугата може да бъде разположена навсякъде в интернет и да предоставя необходимата функционалност.
  2. Взаимодействие между приложенията - уеб услугите позволяват на различни приложения да комуникират помежду си и да обменят данни и услуги помежду си. Всички видове приложения могат да комуникират помежду си. Така че вместо да пишете специфичен код, който е разбираем само за някои приложения, сега можете да пишете общ код, който е разбираем за всички приложения.
  3. Стандартизиран протокол, който се разбира от всички - Уеб услугите използват стандартен за индустрията протокол за комуникация. И четирите слоя (слой за трансфер на услуги, слой за XML съобщения, слой за описание на услуги и слой за откриване на услуги) използват добре дефинирани протоколи в системата.
  4. Намалени разходи за комуникация - уеб услугите използват протокола SOAP по HTTP, така че можете да използвате съществуващия евтин интернет за внедряване на уеб услуги.

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

използване на уеб услуги

Архитектура на приложението

Разработването на уеб услуги не е трудна задача, но е доста обширна. Трябва да разработите собствена среда, в която да бъдат качени всички работни протоколи и да бъдат свързани базите данни.

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

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

Взаимодействие с други системи

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

Включващи се разширения

Съществуват 3 основни типа заявки за работа и комуникация между системите и приложенията:

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

характеристики на разработката

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

Те имат следните особени поведенчески характеристики:

  1. Те се основават на XML - уеб услугите използват XML за представяне на данни на ниво представяне и пренос на данни. Използването на XML елиминира всякаква зависимост от мрежи, операционни системи или платформи, защото XML е общ език, разбираем за всички.
  2. Свободно обвързана система означава, че клиентът и уеб услугата не са свързани помежду си. Дори ако приложението се променя с течение на времето, то не трябва да променя начина, по който клиентът извиква уеб услуга. Използването на свободно свързана архитектура прави софтуерните системи по-лесно управляеми и опростява интеграцията между различни системи.
  3. Синхронна или асинхронна функционалност - синхронната се отнася до обвързването на клиента с изпълнението на услугата. При синхронните операции клиентът всъщност изчаква уеб услугата да завърши операцията. Пример за това вероятно е сценарият, при който се извършва операция за четене и запис на база данни. Ако данните се четат от една база данни и впоследствие се записват в друга, операциите трябва да се извършват последователно. Асинхронните операции позволяват на клиента да извика дадена услуга и след това да изпълнява паралелно други функции. Това е един от най-често срещаните и вероятно най-предпочитаните методи за гарантиране, че други услуги не спират, когато се извършва определена операция.
  4. Поддръжка на отдалечено извикване на процедури (Remote Procedure Calling - RPC) - уеб услугите позволяват на клиентите да извикват процедури, функции и методи на отдалечени обекти, като използват протокол, базиран на XML. Отдалечените процедури предоставят входни и изходни параметри, които уеб услугата трябва да поддържа.
  5. Подкрепа за споделяне на документи. Едно от основните предимства на XML е общият начин за представяне не само на данни, но и на сложни документи. Тези документи могат да бъдат толкова прости, колкото представянето на текущия адрес, или толкова сложни, колкото представянето на пълната книга.

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

Статии по темата