Koji web servisi postoje. Šta je web usluga? Tehnička implementacija web servisa

Web servis (servis) je program koji organizira interakciju između stranica. Informacije sa jednog portala se prenose na drugi.

Na primjer, postoji avio kompanija. Ima mnogo letova, odnosno puno karata. On prenosi informacije putem web servisa na web lokaciju tour travel agregatora. Korisnik koji uđe u agregator moći će da kupi karte za ovu aviokompaniju upravo tamo.

Drugi primjer web servisa je stranica za praćenje vremena koja pruža informacije o vremenskim prilikama u određenom gradu ili zemlji u cjelini. Ove informacije često koriste i treće strane.

Informacije na Internetu su raznovrsne. Sajtovima se upravlja različiti sistemi. koriste se različiti protokoli prijenosa i šifriranja. Web servisi pojednostavljuju razmjenu informacija između različitih lokacija.

Arhitektura i protokoli web servisa

Možete definirati 3 instance koje međusobno djeluju: katalog, izvođač i kupac. Nakon kreiranja usluge, izvođač je registruje u katalogu, a kupac tu uslugu pronalazi.

Mehanizam razmjene podataka formiran je u Opisu Web usluga. To je specifikacija koja pokriva formate prosljeđivanja, tipove sadržaja, transportne protokole koji se koriste u razmjeni informacija između korisnika i prijevoznika usluge.

Danas se za implementaciju različitih web servisa najčešće koristi nekoliko tehnologija:

  1. TCP/IP je protokol koji razumiju gotovo svi mrežna oprema, od glavnog računala do prenosivi uređaji i PDA.
  2. HTML je univerzalni jezik za označavanje koji se koristi za prikaz sadržaja na potrošačkim uređajima.
  3. XML je univerzalni alat za rukovanje svim vrstama podataka. Na njegovoj osnovi mogu raditi i drugi protokoli za razmjenu informacija: SOAP i WSDL.
  4. UDDI je univerzalni izvor prepoznavanja, integracije i opisa. Radi, po pravilu, u privatnim mrežama i još nije pronašao dovoljnu distribuciju.

Svestranost predstavljenih tehnologija je osnova za razumijevanje web servisa. Oni rade na standardnim tehnologijama koje su nezavisne od dobavljača aplikacija i drugih mrežnih resursa. Može se koristiti u bilo kojem operativni sistemi, aplikacijski serveri, programski jezici itd.

Prednosti

  • Stvaranje potrebnih uslova za interakciju softverskih komponenti, bez obzira na platformu.
  • Web servisi su bazirani na otvorenim standardnim protokolima. Kroz uvođenje XML-a, lako je kreirati i konfigurirati web servise.
  • Korištenje HTTP-a garantuje interakciju sistema putem međumrežnog pristupa.

nedostatke

  • Niske performanse i velika količina saobraćaja, u poređenju sa RMI, CORBA, DCOM sistemima, zbog upotrebe XML-poruka u kontekstu teksta.
  • Sigurnosni nivo. Svi moderni web servisi moraju implementirati kodiranje i zahtijevati autorizaciju korisnika. Da li je HTTPS dovoljan ili su potrebni pouzdaniji protokoli, kao što su XML enkripcija, SAML, itd., odlučuje se tokom razvoja.

Zadaci web servisa

Web usluge se mogu koristiti u mnogim područjima.

B2B transakcije

Integracija procesa ide odjednom, bez učešća ljudi. Na primjer, ažuriranje kataloga online trgovine novim proizvodima. Dovoze se u magacin, a skladištar bilježi dolazak u bazu podataka. Informacije se automatski prenose u online prodavnicu. A kupac, umjesto da na kartici proizvoda označi „Nema na lageru“, vidi njegovu količinu.

Integracija usluga preduzeća

Ako kompanija koristi korporativne programe, onda će web usluga pomoći u uspostavljanju njihovog zajedničkog rada.

Kreiranje klijent-server sistema

Usluge se koriste za prilagođavanje rada klijenta i servera. Ovo vam daje sljedeće prednosti:

  • ne mogu prodati sami softver, ali omogućite plaćeni pristup web servisu;
  • lakše rješavanje problema korištenjem softvera treće strane;
  • lakše je organizovati pristup sadržaju i materijalima servera.

Web usluga je aplikacija koja pojednostavljuje tehničku konfiguraciju interakcija resursa.

Mehanizam Web usluga 1C:Enterprise zasniva se na korišćenju objekata metapodataka istog imena, tj. konfiguracijskih objekata iz grane "Web usluge".

1. OPĆE DEFINICIJE

Pokušajmo dati generaliziranu definiciju pojma "web servis".

web-servis je mrežna tehnologija koja pruža interprogram interakcija(između različitih aplikacija) na osnovu web standardi. Web servisi omogućavaju pristup s jedne aplikacije drugoj i istovremeno obavljanje određenih funkcija.

Web usluga je identificirana nizom URI (Uniform Resource Identifier) ​​- uniformnim identifikatorom resursa (ovo je niz znakova koji vam omogućava da identificirate resurs).

Web servis ima programski interfejs predstavljen u formatu WSDL(Web Services Description Language) - jezik za opisivanje web servisa i pristupanje njima, zasnovan na XML jeziku (http://www.w3.org/TR/wsdl specifikacija). Dizajniran za jedinstven pogled eksterni interfejsi web usluge i koristi se da bi drugi program obavijestio da ovaj program ima takvu "uslugu" (tj. prvi program na web stranici izlaže informacije o svojim uslugama u WSDL formatu datoteke).

Drugi sistemi stupaju u interakciju sa web uslugom razmjenom SOAP (Simple Object Access Protocol) poruka - protokola za razmjenu strukturiranih poruka u distribuiranom računarskom okruženju (http://www.w3.org/TR/soap specifikacija). Kao i svaki tekstualni protokol, SOAP se može koristiti sa bilo kojim protokolom sloja aplikacije: SMTP, FTP, HTTPS i još mnogo toga, ali se najčešće SOAP koristi preko HTTP-a.

Slika 1. Koncept web servisa.

SOAP se koristi za proizvoljnu razmjenu XML poruka i daljinski poziv procedura (RPC).

Tako se između web servisa i aplikacije XML dokumenti razmjenjuju u obliku poruka. Standardi web usluga definiraju:

Format poruke, interfejs na koji se poruka šalje;

Pravila za vezivanje sadržaja poruke za aplikaciju koja implementira uslugu i obrnuto;

Mehanizmi za objavljivanje i traženje interfejsa.

Najjednostavnija i najočitija upotreba web servisa je dobivanje referentnih podataka od javnih servisa dostupnih na Internetu. Na primjer, Aeroflot pruža informacije o svojim letovima putem web servisa, Banka Rusije - informacije o deviznim kursevima, hartijama od vrijednosti, kreditnim organizacijama - može biti mnogo opcija.

2. WEB-USLUGE U SISTEMU "1C: ENTERPRISE"

Aplikacijsko rješenje 1C:Enterprise 8 može biti:

Web Service Provider;

U sistemu 1C:Enterprise 8, Web servisi su jedan od platformskih mehanizama koji se koriste za integraciju sa drugim informacionim sistemima i 1C:Enterprise 8 aplikacijama među sobom.

Drugim riječima, 1C:Enterprise može eksportirati svoju funkcionalnost putem web servisa. Njihove definicije se postavljaju u stablo konfiguracije i postaju dostupne proizvoljno informacioni sistemi objavljivanjem na web serveru.

Mehanizam Web usluga u 1C:Enterprise je sredstvo za podršku uslužno orijentisanoj arhitekturi (SOA), što znači da programi koriste "usluge" za međusobnu razmjenu podataka.

Da bi funkcionalnost 1C:Enterprise bila dostupna vanjskim korisnicima web usluga, potrebno je učiniti sljedeće:

Kreirajte potreban broj web servisa u konfiguraciji;

Kreiranje web servisa je:

Pored stabla metapodataka konfiguracijskog objekta Web usluge;

Opis operacija koje ovaj Web servis može izvršiti;

Opis parametara rada.

Objekt konfiguracije web usluge sadrži modul koji kreira procedure na ugrađenom jeziku koje se izvršavaju kada se pozovu određene operacije web usluge. Tipovi parametara operacije web usluge su opisani pomoću XDTO tipova i mogu biti ili XDTO vrijednosti ili XDTO objekti.

Poziv web servisu ide ovako:

Odgovarajuća veza sa info bazom se bira iz skupa veza; u nedostatku potrebne veze, veza se kreira;

Nova sesija je kreirana;

Poziva se tražena metoda Web usluge.

Mehanizam Web usluga implementiran u 1C:Enterprise podržava sljedeće standarde:

WS-I Basic Profile 1.1;

SSL 3.0/TLS 1.0.

3. STUDYINGWEB-USLUGE U SISTEMU "1C: ENTERPRISE"

Web usluga je program kojem drugi programi mogu pristupiti preko Interneta (http). Na primjer, pretpostavimo da imate funkciju koja pruža HTML tekst. Svrha aplikacije je web pretraživač koji prikazuje rezultate i osoba može lako pročitati ovaj tekst na stranici.

S druge strane, ciljna publika web servisa su drugi programi ili drugi web servisi koji konzumiraju podatke koje servis servira. Tipično, izlaz je na standardnom jeziku koji drugi programi mogu razumjeti. Uzmite gornji primjer, ako web usluga ispisuje tekst u XML formatu, onda drugi web servisi koji mogu čitati ili razumjeti XML mogu koristiti taj izlaz.

Glavna prednost web servisa je to što aplikacije mogu biti napisane na bilo kojem jeziku, ali mogu komunicirati i međusobno komunicirati putem web usluge. Softverske aplikacije napisane na različitim programskim jezicima i koje rade na različitim platformama mogu koristiti web servise za razmjenu podataka putem Interneta (HTTP). Ova interakcija (na primjer, između Jave i Python-a, ili Windows aplikacije i Linux) povezan je sa upotrebom otvorenih standarda (XML, SOAP, HTTP).

  • SOAP (Simple Object Access Protocol)
  • UDDI (univerzalni opis, otkrivanje i integracija)
  • WSDL (jezik opisa web usluga)

Koliko različitih vrsta web servisa postoji?

Prije svega, postoje dvije vrste web servisa, Simple Object Access Protocol (SOAP) i Representational State Transfer (REST).

  • SOAP web servis prihvaća XML zahtjev i generiše XML izlaz.
  • REST web servis je generičniji i može prihvatiti XML kao i JSON kao zahtjev i generirati izlaz u XML-u, kao i JSON ili čak HTML

Ovo pitanje se može detaljnije proučiti kod nas.

Pregledali smo opšti koncepti mehanizam « web-usluge". Osvježimo malo znanja.

Web servisi se koriste za razmjenu podataka između servera i klijenta; XML format se koristi za “pakiranje” podataka radi međusobnog razumijevanja između oba učesnika u komunikaciji.

POGLAVLJEI

PRIMJER IMPLEMENTACIJEWEB-SERVIS U SISTEMU "1C: ENTERPRISE"

ZADATAK: Potrebno je kreirati web servis na osnovu kojeg klijenti mogu odrediti sve potrebne informacije za svoje aplikacije.

Zadatak je demonstracijski i služi samo kao primjer za razumijevanje i učenje mehanizmaweb-usluge.

ODLUKA:

Korak 1. Kreirajmo novi baza informacija bez konfiguracije za razvoj nove konfiguracije.

Korak 2 Dodajmo neke nove objekte u konfiguraciju

Imenik "Klijenti";

Dokument "Prijava";

Nabrajanje "Statusi aplikacija".

Korak 3 Kreirajmo novi XDTO paket.

Zašto i zašto kreiramo XDTO paket? Možete pročitati više o korištenju XDTO mehanizma u "Poglavlju 16. Vodič za programere" i.

Napomenimo samo ukratko da mehanizam XDTO jeste univerzalni način prikazi podataka za interakciju sa raznim eksternim izvorima podataka i softverskim sistemima.

U našem slučaju, XDTO paket je kreiran da opiše povratnu vrijednost web usluge.

Proširite granu “Općenito” → “XDTO paketi” → Dodaj…

Navedite naziv XDTO paketa " DocumentsData' i njegov nazivni prostor http://localhost/request ili http://192.168.1.76/request (radi lakšeg razumijevanja i učenja, navodimo lokalna IP adresa računar na kojem je instaliran web server (podržani web serveri: IIS ili Apache)). Svaka Web usluga može se jedinstveno identificirati svojim imenom i URI-jem imenskog prostora kojem pripada.

Naš paket sadrži dvije vrste XDTO objekata:

1) Kupac- za prijenos podataka elementa direktorija "Klijentsi".

- Ime ;

2) dokument- za prijenos podataka dokumenta "Prijava"

Ovaj tip XDTO objekta će sadržavati sljedeća svojstva:

- Kupac- Tip klijenta iz imenskog prostora http://192.168.1.76/request; je referenca na XDTO objekat koji smo definisali gore;

- Status- tip stringa sa http://www.w3.org/2001/XMLSchema imenskog prostora;

- Broj- tip stringa sa http://www.w3.org/2001/XMLSchema imenskog prostora.

Korak 4 Dodajte novu web uslugu u konfiguraciju

Proširite granu "Općenito" → "Web usluge" → Dodaj ...

Za Web uslugu navedite sljedeće vrijednosti svojstva:

Ime - DocumentsData

URI prostori imena - http://192.168.1.76/request

XDTO paketi - DocumentsDatailihttp://192.168.1.76/request

Naziv datoteke publikacije - request.1cws

Korak 5 Za kreirani web servis definiramo operaciju " getdata»

Vrijednosti svojstva operacije:

Vrsta povrata - Dokument (http://192.168.1.76/request)

Eventualno prazna vrijednost - Istinito

Naziv procedure - getdata.

Korak 6 Operacija getdata definirajte parametar Customer sa sljedećim vrijednostima svojstva:

Vrsta vrijednosti - tip string iz http://www.w3.org/2001/XMLSchema imenskog prostora;

Smjer transfera - unos.

Korak 7 Otvorimo modul kreiranog Web servisa i u njega postavimo funkciju Get() koja će se izvršiti kada se ovaj Web servis pozove.

Funkcija GetData(Customer) // Dobiti tipove XDTO objekata ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Document"); // Dobiti klijenta ClientReference = Directories.Clients.FindByName(Customer); Ako nije ValueFilled(ClientReference) onda vrati nedefinisano; EndIf; Zahtjev = Novi zahtjev; Request.Text = "IZABIR PRVO 1 | Ticket.Reference, | REPRESENTATION(Ticket.Status) AS Status, | Ticket.Number |FROM | Document.Ticket AS Ticket |WHERE | Ticket.Client = &Klijent"; Request.SetParameter("Klijent", ClientReference); QueryResult = Query.Execute(); Ako QueryResult.Empty() onda vrati nedefinisano; EndIf; Odabir = QueryResult.Select(); Selection.Next(); Dokument = Selection.Reference.GetObject(); // Kreiranje objekta XDTO ulaznice Ticket = FactoryXDTO.Create(TicketType); Aplikacija.Broj = Broj.Uzorka; Klijent = FactoryXDTO.Create(ClientType); Client.Name = ClientReference.Name; Aplikacija.Kupac = Klijent; Application.Status = Selection.Status; // Zahtjev za povrat Zahtjev za povrat; EndFunctions

Korak 8 Objavimo kreirani Web servis na web serveru.

Stavka menija konfiguratora: "Administracija" → "Objavljivanje na web serveru".

Na kartici "Web usluge" postavite oznaku "Objavite web usluge" i također potvrdite okvir pored naše nove web usluge.

POGLAVLJEII

PRIMJER REFERENCE NAWEB- USLUGA 1C:PREDUZEĆA IZ APLIKACIJE TREĆE STRANKE

Glavna svrha mehanizma web usluga u 1C: Enterprise je prijenos potrebnih podataka u aplikacije trećih strana.

Razmotrimo primjer razvoja aplikacije u Delphiju koja poziva našu web uslugu iz prvog odjeljka ovog članka.

Korak 1. Kreirajmo novi projekat i postavimo nekoliko kontrola na obrazac

Tekstualno polje - koristi se za prikaz informacija primljenih od web servisa;

Dva dugmeta - brisanje tekstualnog polja i pristup web servisu;

Polje za unos je parametar koji se prosljeđuje web servisu.

Korak 2 Uvoz WSDL datoteke

Kao rezultat, dobijamo novi modul zahtjev(takvo ime smo definirali direktno u 1C). Ovaj modul sadrži sve potrebne informacije o web servisu.

Korak 3 Napišite rukovalac pozivima web usluge

Varijabla DocumentDataPortType je već definirana u modulu zahtjev

Korak 4 Pokrenite aplikaciju i provjerite.

POGLAVLJEIII

PRIMJER REFERENCE NAWEB-SERVIS U SISTEMU "1C: ENTERPRISE"

Korak 1. Kreirajmo novu eksternu obradu pod nazivom "WEB_Service"

Korak 2 Za obradu, definiramo nova forma

Korak 3 Navedite nekoliko detalja za obrazac

Klijent - upišite "String"

ClientReturn - upišite "String"

Povrat broja - upišite "String"

StatusReturn - tip "String".

Detalje ćemo prikazati na obrascu.

Korak 4 Dodajmo naredbu obrasca " Da dobijete podatke»

Odredite rukovalac komandom

&OnClient procedura GetData(Command) GetDataOnServer(Client); Kraj procedure Procedure GetDataOnServer(Client) // Kreirajte WS proxy na osnovu veze i izvršite operaciju Get() Definicija = New WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proxy = Novi WSProxy(Definicija, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); RequestData = Proxy.GetData(Client); Ako je OrderData = Undefined, onda ClientReturn = "Nedefinisano"; StatusReturn = "Nedefinisano"; ReturnNumber = "Nedefinisano"; Povratak; EndIf; CustomerReturn = RequestData.Customer.Name; StatusReturn = RequestData.Status; PovratniBroj = RequestData.Numder; EndProcedure

1C:Enterprise može koristiti web usluge drugih provajdera na dva načina:

Korišćenjem statički veze kreirane u stablu konfiguracije;

"plus": velika brzina rada;

"oduzeti": ponovni uvoz WSDL opisa pomoću konfiguratora i spremanje promijenjene konfiguracije.

Korišćenjem dinamičan veze kreirane pomoću ugrađenog jezika

(odnosno, "protiv" statičkih za dinamičke su "plusovi")

POGLAVLJEIV

DEBUGING WEB USLUGA U SISTEMU 1C:PREDUZEĆA

Za lokalni web servis potrebno vam je:

Korak 1. Stavite datoteku na klijenta na kojem je pokrenut 1C sistem webservicecfg.xml sa sljedećim sadržajem

Korak 2 Za fajl default. vrd publish config add red

Korak 3 U konfiguratoru izaberite stavku menija

"Debug" → "Veza" → "Automatsko povezivanje" → "Web usluge na serveru"

Korak 4 Kliknite na dugme "OK".

Za verziju servera, također morate pokrenuti 1c server u načinu za otklanjanje grešaka s ključem /debug