Ce sunt serviciile web? Architectură, Tipuri, Exemplu

⚡ Rezumat inteligent

Serviciile web oferă un mediu standardizat pentru aplicațiile client și server pentru a comunica prin World Wide Web. Această resursă explică modul de funcționare a serviciilor web, tipurile lor SOAP și RESTful, componentele WSDL și UDDI, rolurile arhitecturale și caracteristicile cheie.

  • 🌐 Definiția de bază: Un serviciu web este un modul software autonom care îndeplinește o sarcină definită și comunică între client și server prin intermediul webului.
  • 📨 Mesagerie XML: Serviciile web schimbă date ca XML, de obicei încapsulate în mesaje SOAP trimise prin HTTP standard, astfel încât orice limbaj le poate consuma.
  • 🧱 Componente cheie: Un serviciu web funcțional se bazează pe SOAP pentru mesagerie, WSDL pentru descrierea serviciului și UDDI pentru publicarea și descoperirea acestuia.
  • 👥 ArchiRoluri de structură: Arhitectura definește trei roluri — Furnizor, Solicitant și Broker — care publică, găsesc și leagă servicii printr-un registru.
  • ⚙️ Caracteristici de bază: Serviciile web sunt bazate pe XML, sunt slab cuplate, acceptă apeluri sincrone sau asincrone, activează RPC-uri și permit schimbul de documente bogate.

Servicii Web Architectură

Ce este serviciul web?

serviciu web este un mediu standardizat pentru a propaga comunicarea între aplicațiile client și server pe WWW (World Wide Web). Un serviciu web este un modul software care este conceput pentru a îndeplini un anumit set de sarcini.

  • Serviciile web în cloud computing pot fi căutate în rețea și pot fi, de asemenea, invocate în consecință.
  • Când este invocat, serviciul web ar putea oferi funcționalitatea clientului, care invocă acel serviciu web.

Cum funcționează serviciile web?

Cum funcționează serviciile web

Diagrama de mai sus arată o vedere foarte simplistă a modului în care un serviciu web ar funcționa de fapt. Clientul ar invoca o serie de apeluri de servicii web prin solicitări către un server care ar găzdui serviciul web real.

Aceste cereri sunt făcute prin ceea ce se numește apeluri de procedură la distanță. Apelurile de procedură la distanță (RPC) sunt apeluri efectuate către metode găzduite de serviciul web relevant.

Ca exemplu, Amazon oferă un serviciu web care oferă prețuri pentru produsele vândute online prin amazon.com. Partea frontală sau stratul de prezentare poate fi în .Net sau Java, dar oricare limbaj de programare ar avea capacitatea de a comunica cu serviciul web.

Componenta principală a designului unui serviciu web este datele care sunt transferate între client și server, și anume XML. XML (limbaj extensibil de marcare) este un echivalent al HTML-ului și un limbaj intermediar ușor de înțeles, înțeles de multe limbaje de programare.

Așadar, atunci când aplicațiile comunică între ele, ele comunică de fapt în XML. Aceasta oferă o platformă comună pentru ca aplicațiile dezvoltate în diverse limbaje de programare să comunice î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 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 ai nevoie de un serviciu web?

Aplicațiile de afaceri moderne utilizează o varietate de platforme de programare pentru a dezvolta aplicații web. Unele aplicații pot fi dezvoltate în Java, altele în .Net, în timp ce altele în Angular JS, Node.js etc.

De cele mai multe ori, aceste aplicații eterogene au nevoie de un anumit tip de comunicare între ele. Deoarece sunt construite folosind limbaje de dezvoltare diferite, devine foarte dificil să se asigure o comunicare precisă între aplicații.

Aici intervin serviciile web. Serviciile web oferă o platformă comună care permite aplicații multiple construite pe diverse limbaje de programare să aibă capacitatea de a comunica între ei.

Tipuri de servicii web

Există în principal două tipuri de servicii web:

  1. Servicii web SOAP.
  2. Servicii web RESTful.

Pentru ca un serviciu web să fie complet funcțional, există anumite componente care trebuie să fie prezente. 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 ca un protocol de mesagerie independent de transport. SOAP se bazează pe transferul de date XML sub formă de mesaje SOAP. Fiecare mesaj conține ceva numit document XML. Doar structura documentului XML urmează un model specific, dar nu și conținutul. Cel mai bun aspect al serviciilor web și al SOAP este că totul este trimis prin HTTP, care este protocolul web standard.

Iată în ce constă un mesaj SOAP:

  • 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ă documentului XML cărui client trebuie să fie trimis.
  • Corpul va conține mesajul real.

Diagrama de mai jos prezintă un exemplu simplu de comunicare prin SOAP.

Protocolul SOAP

Vom discuta în detaliu despre SOAP tutorial.

WSDL (Servicii web DescriptLimbaj ionic)

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ă de fapt 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 corect. Acest lucru se face cu ajutorul WSDL-ului, cunoscut sub numele de Servicii Web. DescriptLimbaj ion. Fișierul WSDL este din nou un fișier bazat pe XML care, practic, îi spune 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 de fișier WSDL este dat mai jos.

<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>

Aspectele importante de reținut despre exemplele de declarații WSDL de mai sus ale serviciilor web sunt următoarele:

  1. – Parametrul mesaj din definiția WSDL este utilizat pentru a defini diferitele elemente de date pentru fiecare operațiune efectuată de serviciul web. Așadar, în exemplul 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țiunea „TutorialResponse”. TutorialRequest conține un element numit „TutorialID”, care este de tip șir de caractere. În mod similar, operațiunea TutorialResponse conține un element numit „TutorialName”, care este, de asemenea, un tip șir de caractere.
  2. – Aceasta descrie de fapt operațiunea care poate fi efectuată de serviciul web, care în cazul nostru se numește Tutorial. Această operațiune poate prelua 2 mesaje: unul este un mesaj de intrare, iar celălalt este mesajul de ieșire.
  3. – Acest element conține protocolul utilizat. Așadar, în cazul nostru, îl definim să utilizeze 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 codificat.

Vom discuta în detaliu despre „WSDL” în acest articol. tutorial.

Universal Description, descoperire și integrare (UDDI)

UDDI este un standard pentru descrierea, publicarea și descoperirea serviciilor web care sunt furnizate de un anumit furnizor de servicii. Acesta oferă o specificație care ajută la găzduirea informațiilor despre serviciile web.

Acum am discutat în subiectul anterior despre WSDL și despre modul în care acesta 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 aceasta și oferă un depozit în care fișierele WSDL pot fi găzduite. 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 o carte de telefon conține numele, adresa și numărul de telefon al unei anumite persoane, în același mod registrul UDDI va conține informațiile relevante pentru serviciul web., astfel încât o aplicație client să știe unde poate fi găsită.

Avantajele Serviciilor Web

Înțelegem deja de ce au apărut serviciile web, și anume pentru a oferi o platformă care să permită diferitelor aplicații să comunice între ele. Dar să ne uităm la lista de avantaje ale serviciilor web care explică de ce este important să le folosim.

  1. Expunerea funcționalității afacerii în rețea – Un serviciu web este o unitate de cod gestionat care oferă un anumit tip 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 zilele noastre, toate aplicațiile se află pe internet, ceea ce face ca scopul serviciilor web să fie mai util. Aceasta înseamnă că serviciul web poate fi oriunde pe internet și poate oferi funcționalitatea necesară, după cum este necesar.
  2. Interoperabilitate între aplicații – Serviciile web permit diverselor aplicații să comunice între ele și să partajeze date și servicii între ele. Toate tipurile de aplicații pot comunica între ele. Așadar, în loc să scrieți cod specific care poate fi înțeles doar de anumite aplicații, acum puteți scrie cod generic care poate fi înțeles de toate aplicațiile.
  3. Un protocol standardizat pe care toată lumea îl înțelege – Serviciile web utilizează un protocol standardizat în industrie pentru comunicare. Toate cele patru niveluri (Service Transport, XML Messaging, Service) Descriptstraturile de ion și Service Discovery) utilizează protocoale bine definite în stiva de protocoale ale serviciilor web.
  4. Reducerea costurilor de comunicare – Serviciile web folosesc protocolul SOAP prin HTTP, astfel încât să puteți utiliza internetul existent la preț redus pentru implementarea serviciilor web.

Servicii Web Architectură

Fiecare framework are nevoie de un anumit tip de arhitectură pentru a se asigura că întregul framework funcționează conform dorințelor. În mod similar, în serviciile web, Servicii Web Architectură constă în trei roluri distincte, așa cum se arată mai jos:

  1. Furnizor de – Furnizorul creează serviciul web și îl pune la dispoziția aplicațiilor client care doresc să îl utilizeze.
  2. Solicitantul – Un solicitant nu este altceva decât aplicația client care trebuie să contacteze un serviciu web. Aplicația client poate fi un .Net, Javasau orice altă aplicație bazată pe limbaj care caută un fel de funcționalitate prin intermediul unui serviciu web.
  3. Broker – Brokerul nu este altceva decât aplicația care oferă acces la UDDI. UDDI, așa cum s-a discutat în subiectul anterior, permite aplicației client să localizeze serviciul web.

Diagrama de mai jos prezintă modul în care interacționează între furnizorul de servicii, solicitantul de servicii și registrul de servicii.

Servicii Web Architectură

  1. Publica – 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.
  2. Găsi – Solicitantul consultă brokerul pentru a localiza un serviciu web publicat.
  3. Lega – Cu informațiile obținute de la broker (registrul de servicii) despre serviciul web, solicitantul poate lega sau invoca serviciul web.

Caracteristicile serviciilor web

Serviciile web au următoarele caracteristici comportamentale speciale:

  1. Sunt bazate pe XML – Serviciile web utilizează XML pentru a reprezenta datele la nivelurile de reprezentare și transport de date. Utilizarea XML elimină orice dependență de rețea, sistem de operare sau platformă, deoarece XML este limbajul comun înțeles de toți.
  2. Slab cuplate – Cuplat liber înseamnă că clientul și serviciul web nu sunt legați unul de celălalt, ceea ce înseamnă că, chiar dacă serviciul web se modifică î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 să permită o integrare mai simplă între diferite sisteme.
  3. Syncfuncționalitate sincronă sau asincronă - Synchronicitatea se referă la legarea clientului de executarea serviciului. În operațiunile sincrone, clientul va aștepta de fapt ca serviciul web să finalizeze o operațiune. Un exemplu în acest sens este probabil un scenariu în care se realizează 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 efectuate într-o manieră 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.
  4. Abilitatea de a sprijini 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 de ieșire pe care un serviciu web trebuie să îi suporte.
  5. Acceptă schimbul de documente – Unul dintre avantajele cheie ale XML este modul său generic de a reprezenta nu numai datele, ci și documentele 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.

Întrebări frecvente

Modelele de inteligență artificială sunt de obicei livrate ca servicii web, astfel încât aplicațiile trimit date prin HTTP și primesc predicții în XML sau JSON. De asemenea, inteligența artificială poate monitoriza traficul serviciilor web, detecta anomalii și genera automat cod client, ceea ce face integrarea mai rapidă și mai fiabilă.

Da. Instrumentele de inteligență artificială pot genera definiții WSDL, pot sugera structuri de endpoint-uri, pot crea cazuri de testare și pot valida răspunsuri SOAP sau REST. Dezvoltatorii ar trebui să revizuiască în continuare rezultatul pentru a se asigura că...tracRegulile de ts și securitate sunt corecte înainte de implementare.

SOAP este un protocol de mesagerie strict, bazat pe XML, cu standarde încorporate pentru securitate și tranzacții. REST este un stil arhitectural care utilizează metode HTTP simple și adesea JSON. SOAP se potrivește sistemelor formale ale întreprinderilor, în timp ce REST este mai ușor și mai popular pentru API-urile web.

WSDL (Servicii web Description Language) este un fișier XML care descrie ce face un serviciu web, unde se află și cum se apelează. Aplicațiile client citesc WSDL-ul pentru a înțelege operațiunile și formatele de mesaje disponibile.

Rezumați această postare cu: