Ce este serviciul web?
Serviciul web este un mediu standardizat pentru propagarea comunicațiilor între aplicațiile client și server pe World Wide Web. Un serviciu web este un modul software care este conceput pentru a efectua un anumit set de sarcini.
- Serviciile web în cloud computing pot fi căutate prin rețea și pot fi invocate în consecință.
- Atunci când este invocat, serviciul web ar putea furniza funcționalitatea clientului, care invocă acel serviciu web.
În acest tutorial pentru serviciul web, veți învăța elementele de bază ale serviciilor web-
- Cum funcționează serviciile web?
- De ce aveți nevoie de un serviciu web?
- Tipul serviciului web
- Avantajele serviciilor web
- Arhitectura serviciilor web
- Caracteristicile serviciului web
- Servicii web SOAP.
- Servicii web RESTful.
- Fiecare document SOAP trebuie să aibă un element rădăcină cunoscut sub numele de element
. Elementul rădăcină este primul element dintr-un document XML. - „Plicul” este la rândul său împărțit în 2 părți. Primul este antetul, iar următorul este corpul.
- Antetul conține datele de rutare, care sunt practic informațiile care indică documentul XML către ce client trebuie să fie trimis.
- Corpul va conține mesajul real.
Cum funcționează serviciile web?
Diagrama de mai sus prezintă o vedere foarte simplistă a modului în care ar funcționa efectiv un serviciu web. Clientul ar invoca o serie de apeluri de servicii web prin cereri către un server care ar găzdui serviciul web propriu-zis.
Aceste solicitări sunt făcute prin ceea ce este cunoscut sub numele de proceduri la distanță. Apelurile de procedură la distanță (RPC) sunt apeluri efectuate către metode găzduite de serviciul web relevant.
De exemplu, Amazon oferă un serviciu web care oferă prețuri pentru produsele vândute online prin intermediul amazon.com. Front-end-ul sau stratul de prezentare pot fi în .Net sau Java, dar oricare limbaj de programare ar avea capacitatea de a comunica cu serviciul web.
Componenta principală a unui design de servicii web este datele care sunt transferate între client și server, și anume XML. XML (Extensible markup language) este un omolog al HTML și ușor de înțeles limbajul intermediar care este înțeles de multe limbaje de programare.
Deci, atunci când aplicațiile vorbesc între ele, ele vorbesc de fapt în XML. Aceasta oferă o platformă comună pentru aplicații dezvoltate în diferite limbaje de programare pentru a vorbi între ele.
Serviciile web folosesc ceva cunoscut sub numele de SOAP (Simple Object Access Protocol) pentru trimiterea datelor XML între aplicații. Datele sunt trimise prin HTTP normal. Datele care sunt trimise de la serviciul web către aplicație se numesc un mesaj SOAP. Mesajul SOAP nu este altceva decât un document XML. Deoarece documentul este scris în XML, aplicația client care apelează serviciul web poate fi scrisă în orice limbaj de programare.
De ce aveți nevoie de un serviciu web?
Aplicațiile moderne de afaceri utilizează o varietate de platforme de programare pentru a dezvolta aplicații bazate pe web. Unele aplicații pot fi dezvoltate în Java, altele în .Net, în timp ce altele în Angular JS, Node.js etc.
Cel mai adesea, aceste aplicații eterogene au nevoie de un fel de comunicare între ele. Deoarece sunt construite folosind diferite limbaje de dezvoltare, devine cu adevărat dificil să se asigure o comunicare exactă între aplicații.
Aici intervin serviciile web. Serviciile web oferă o platformă comună care permite mai multor aplicații construite pe diferite limbaje de programare să aibă capacitatea de a comunica între ele.
Tipul serviciului web
Există în principal două tipuri de servicii web.
Pentru ca un serviciu web să fie pe deplin funcțional, există anumite componente care trebuie să fie la locul lor. Aceste componente trebuie să fie prezente, indiferent de limbajul de dezvoltare utilizat pentru programarea serviciului web.
Să analizăm aceste componente mai detaliat.
SOAP (Protocol simplu de acces la obiecte)
SOAP este cunoscut sub numele de protocol de mesagerie independent de transport. SOAP se bazează pe transferul de date XML ca mesaje SOAP. Fiecare mesaj are ceva care este cunoscut sub numele de document XML. Numai structura documentului XML urmează un model specific, dar nu conținutul. Cea mai bună parte a serviciilor web și a SOAP este că toate acestea sunt trimise prin HTTP, care este protocolul web standard.
Iată în ce constă un mesaj SOAP
Diagrama de mai jos prezintă un exemplu simplu de comunicare prin SOAP.
Vom discuta în detaliu SOAP în acest tutorial.
WSDL (limba de descriere a serviciilor web)
Un serviciu web nu poate fi utilizat dacă nu poate fi găsit . Clientul care invocă serviciul web ar trebui să știe unde se află efectiv serviciul web.
În al doilea rând, aplicația client trebuie să știe ce face de fapt serviciul web, astfel încât să poată invoca serviciul web potrivit. Acest lucru se face cu ajutorul WSDL, cunoscut sub numele de limbaj de descriere a serviciilor web. Fișierul WSDL este din nou un fișier bazat pe XML care spune practic aplicației client ce face serviciul web. Prin utilizarea documentului WSDL, aplicația client ar putea înțelege unde se află serviciul web și cum poate fi utilizat.
Exemplu de serviciu web
Un exemplu de servicii Web al unui fișier WSDL este dat mai jos.
Aspectele importante de remarcat despre exemplele de servicii web de declarație WSDL de mai sus sunt următoarele:
- Parametrul mesajului din definiția WSDL este utilizat pentru a defini diferitele elemente de date pentru fiecare operație efectuată de serviciul web. Deci, în exemplele de servicii web de mai sus, avem 2 mesaje care pot fi schimbate între serviciul web și aplicația client, unul este „TutorialRequest”, iar celălalt este operația „TutorialResponse”. TutorialRequest conține un element numit „TutorialID” care este de tip șir. În mod similar, operația TutorialResponse conține un element numit „TutorialName”, care este, de asemenea, un șir de tip. -
- Aceasta descrie de fapt operația care poate fi efectuată de serviciul web, care în cazul nostru se numește Tutorial. Această operație poate prelua 2 mesaje; unul este un mesaj de intrare, iar celălalt este mesajul de ieșire. - Acest element conține protocolul utilizat. Deci, în cazul nostru, îl definim pentru a utiliza http ( http://schemas.xmlsoap.org/soap/http ). De asemenea, specificăm alte detalii pentru corpul operației, cum ar fi spațiul de nume și dacă mesajul ar trebui codat.
Vom discuta în detaliu „WDSL” în acest tutorial.
Descriere universală, descoperire și integrare (UDDI)
UDDI este un standard pentru descrierea, publicarea și descoperirea serviciilor web furnizate de un anumit furnizor de servicii. Oferă o specificație care ajută la găzduirea informațiilor despre serviciile web.
Acum am discutat în subiectul anterior despre WSDL și cum conține informații despre ceea ce face de fapt serviciul Web. Dar cum poate o aplicație client să localizeze un fișier WSDL pentru a înțelege diferitele operațiuni oferite de un serviciu web? Deci UDDI este răspunsul la acest lucru și oferă un depozit pe care pot fi găzduite fișiere WSDL. Deci aplicația client va avea acces complet la UDDI, care acționează ca o bază de date care conține toate fișierele WSDL.
Așa cum un director telefonic are numele, adresa și numărul de telefon al unei anumite persoane, în același mod în care registrul UDDI va avea informațiile relevante pentru serviciul web . Pentru ca o aplicație client să știe, unde poate fi găsită.
Avantajele serviciilor web
Înțelegem deja de ce au apărut în primul rând serviciile web, care a fost să furnizeze o platformă care să permită diferitelor aplicații să vorbească între ele.
Dar să ne uităm la lista avantajelor serviciilor web de ce este important să utilizați serviciile web.
-
Expunerea funcționalității de afaceri în rețea - Un serviciu web este o unitate de cod gestionat care oferă un fel de funcționalitate aplicațiilor client sau utilizatorilor finali. Această funcționalitate poate fi invocată prin protocolul HTTP ceea ce înseamnă că poate fi invocată și prin internet. În prezent, toate aplicațiile sunt pe internet, ceea ce face ca scopul serviciilor web să fie mai util. Asta înseamnă că serviciul web poate fi oriunde pe internet și poate oferi funcționalitatea necesară, după cum este necesar.
-
Interoperabilitate între aplicații - Serviciile web permit diferitelor aplicații să vorbească între ele și să partajeze date și servicii între ele. Toate tipurile de aplicații pot vorbi între ele. Deci, în loc să scrieți un cod specific care poate fi înțeles doar de anumite aplicații, puteți scrie acum cod generic care poate fi înțeles de toate aplicațiile
-
Un protocol standardizat pe care toată lumea îl înțelege - serviciile web utilizează protocolul industrial standardizat pentru comunicare. Toate cele patru straturi (Transport de servicii, Mesagerie XML, Descriere de servicii și Straturi de descoperire de servicii) utilizează protocoale bine definite în stiva de protocol de servicii web.
-
Reducerea costului comunicării - Serviciile web utilizează protocolul SOAP peste HTTP, astfel încât să puteți utiliza internetul existent la preț redus pentru implementarea serviciilor web.
Arhitectura serviciilor web
Fiecare cadru are nevoie de un fel de arhitectură pentru a se asigura că întregul cadru funcționează după cum se dorește, în mod similar, în serviciile web. Servicii Arhitectura Web este format din trei roluri distincte , prezentate mai jos:
- Furnizor - Furnizorul creează serviciul web și îl pune la dispoziția aplicației client care dorește să îl utilizeze.
- Solicitant - Un solicitant nu este altceva decât aplicația client care trebuie să contacteze un serviciu web. Aplicația client poate fi o aplicație bazată pe .Net, Java sau orice altă limbă care caută un fel de funcționalitate prin intermediul unui serviciu web.
- Broker - Brokerul nu este altceva decât aplicația care oferă acces la UDDI. UDDI, așa cum sa discutat în subiectul anterior, permite aplicației client să localizeze serviciul web.
Diagrama de mai jos prezintă modul în care furnizorul de servicii, solicitantul de servicii și registrul de servicii interacționează între ele.
- Publicare - Un furnizor informează brokerul (registrul de servicii) despre existența serviciului web utilizând interfața de publicare a brokerului pentru a face serviciul accesibil clienților
- Găsire - Solicitantul consultă brokerul pentru a localiza un serviciu web publicat
- Bind - Cu informațiile pe care le-a obținut de la broker (registrul de servicii) despre serviciul web, solicitantul poate lega sau invoca serviciul web.
Caracteristicile serviciului web
Serviciile web au următoarele caracteristici comportamentale speciale:
-
Acestea sunt bazate pe XML - Serviciile Web utilizează XML pentru a reprezenta datele la nivelurile de reprezentare și de transport al datelor. Utilizarea XML elimină orice dependență de rețea, sistem de operare sau platformă, deoarece XML este limbajul comun înțeles de toți.
-
Cuplat slab - Cuplat slab înseamnă că clientul și serviciul web nu sunt legate între ele, ceea ce înseamnă că, chiar dacă serviciul web se schimbă în timp, nu ar trebui să schimbe modul în care clientul apelează serviciul web. Adoptarea unei arhitecturi slab cuplate tinde să facă sistemele software mai ușor de gestionat și permite integrarea mai simplă între diferite sisteme.
-
Funcționalitate sincronă sau asincronă - Sincronitatea se referă la legarea clientului de executarea serviciului. În operațiuni sincrone, clientul va aștepta efectiv serviciul web pentru a finaliza o operațiune. Un exemplu în acest sens este probabil un scenariu în care se efectuează o operație de citire și scriere a bazei de date. Dacă datele sunt citite dintr-o bază de date și ulterior scrise în alta, atunci operațiunile trebuie făcute într-un mod secvențial. Operațiile asincrone permit unui client să invoce un serviciu și apoi să execute alte funcții în paralel. Aceasta este una dintre tehnicile comune și probabil cele mai preferate pentru a se asigura că alte servicii nu sunt oprite atunci când se efectuează o anumită operațiune.
-
Abilitatea de a suporta apeluri de procedură la distanță (RPC) - Serviciile web permit clienților să invoce proceduri, funcții și metode pe obiecte la distanță folosind un protocol bazat pe XML. Procedurile de la distanță expun parametrii de intrare și ieșire pe care un serviciu web trebuie să îi accepte.
-
Sprijină schimbul de documente - Unul dintre avantajele cheie ale XML este modul său generic de a reprezenta nu numai date, ci și documente complexe. Aceste documente pot fi la fel de simple ca reprezentarea unei adrese curente sau pot fi la fel de complexe ca reprezentarea unei cărți întregi.