Jakie usługi internetowe są dostępne. Co to jest usługa sieciowa? Techniczne wdrażanie usług internetowych

Usługa internetowa (usługa) to program, który organizuje interakcje między witrynami. Informacje z jednego portalu są przenoszone do innego.

Na przykład jest linia lotnicza. Ma odpowiednio wiele lotów, dużo biletów. Przesyła informacje za pośrednictwem usługi internetowej do witryny agregatora podróży turystycznych. Użytkownik, który wejdzie do agregatora, będzie mógł od razu kupić bilety na tę linię lotniczą.

Innym przykładem usług internetowych jest witryna śledząca pogodę, która dostarcza informacji o warunkach pogodowych w określonym mieście lub kraju jako całości. Informacje te są również często wykorzystywane przez osoby trzecie.

Informacje w Internecie są różnorodne. Witryny są zarządzane różne systemy. stosowane są różne protokoły transmisji i szyfrowania. Usługi sieciowe upraszczają wymianę informacji między różnymi witrynami.

Architektura i protokoły usług sieciowych

Możesz zdefiniować 3 instancje, które ze sobą współpracują: katalog, kontrahent i klient. Po utworzeniu usługi wykonawca rejestruje ją w katalogu, a klient odnajduje tam usługę.

Mechanizm wymiany danych jest ukształtowany w Opisie usług sieciowych. Jest to specyfikacja obejmująca formaty przesyłania, rodzaje treści, protokoły transportowe, które są wykorzystywane w wymianie informacji pomiędzy klientem a usługodawcą transportującym.

Obecnie do realizacji różnych usług internetowych najczęściej wykorzystuje się kilka technologii:

  1. TCP/IP jest protokołem zrozumiałym dla prawie wszystkich sprzęt sieciowy, od komputerów mainframe do urządzenia przenośne i PDA.
  2. HTML to uniwersalny język znaczników używany do wyświetlania treści na urządzeniach konsumenckich.
  3. XML to uniwersalne narzędzie do obsługi wszelkiego rodzaju danych. Na jego bazie mogą działać również inne protokoły wymiany informacji: SOAP i WSDL.
  4. UDDI jest uniwersalnym źródłem rozpoznawania, integracji i opisu. Z reguły działa w sieciach prywatnych i nie znalazł jeszcze wystarczającej dystrybucji.

Uniwersalność prezentowanych technologii jest podstawą zrozumienia usług internetowych. Pracują na standardowych technologiach, które są niezależne od dostawców aplikacji i innych zasobów sieciowych. Można stosować w dowolnym system operacyjny, serwery aplikacji, języki programowania itp.

Zalety

  • Stworzenie warunków niezbędnych do interakcji komponentów oprogramowania, niezależnie od platformy.
  • Usługi sieciowe oparte są na otwartych standardach protokołów. Dzięki wprowadzeniu języka XML tworzenie i konfigurowanie usług sieciowych jest łatwe.
  • Zastosowanie protokołu HTTP gwarantuje interakcję systemów poprzez dostęp międzysieciowy.

Wady

  • Niska wydajność i duży ruch w porównaniu z systemami RMI, CORBA, DCOM, ze względu na użycie wiadomości XML w kontekście tekstowym.
  • Poziom bezpieczeństwa. Wszystkie nowoczesne usługi internetowe muszą implementować kodowanie i wymagać autoryzacji użytkownika. To, czy wystarczy tutaj HTTPS, czy też potrzebne są bardziej niezawodne protokoły, takie jak XML Encryption, SAML itp., Decyduje się podczas opracowywania.

Zadania usługi sieciowej

Usługi sieciowe mogą być wykorzystywane w wielu obszarach.

Transakcje B2B

Integracja procesów przebiega od razu, bez udziału ludzi. Na przykład aktualizacja katalogu sklepu internetowego o nowe produkty. Są one przywożone do magazynu, a magazynier zaznacza przybycie w bazie danych. Informacje są automatycznie przekazywane do sklepu internetowego. A kupujący zamiast napisu „Brak na stanie” na karcie produktu widzi jego ilość.

Integracja usług korporacyjnych

Jeśli firma korzysta z programów korporacyjnych, usługa internetowa pomoże w ustaleniu ich wspólnej pracy.

Stworzenie systemu klient-serwer

Usługi służą do dostosowania działania klienta i serwera. Daje to następujące korzyści:

  • nie może sprzedawać sam oprogramowanie, ale płatny dostęp do serwisu internetowego;
  • łatwiejsze rozwiązywanie problemów za pomocą oprogramowania innych firm;
  • łatwiej zorganizować dostęp do treści i materiałów serwera.

Usługa internetowa to aplikacja, która upraszcza techniczną konfigurację interakcji zasobów.

Mechanizm usług sieciowych 1C:Enterprise opiera się na wykorzystaniu obiektów metadanych o tej samej nazwie, tj. obiekty konfiguracyjne z gałęzi „Web services”.

1. DEFINICJE OGÓLNE

Spróbujmy podać ogólną definicję terminu „usługa internetowa”.

Sieć-praca to technologia sieciowa, która zapewnia międzyprogramowy interakcja(między różnymi aplikacjami) na podstawie standardy internetowe. Usługi sieciowe umożliwiają dostęp z jednej aplikacji do drugiej i jednocześnie wykonują określone funkcje.

Usługa sieciowa jest identyfikowana przez ciąg znaków URI (Uniform Resource Identifier) ​​– jednolity identyfikator zasobu (jest to ciąg znaków pozwalający zidentyfikować zasób).

Serwis internetowy posiada interfejs programistyczny przedstawiony w formacie WSDL(Web Services Description Language) – język opisu usług sieciowych i dostępu do nich oparty na języku XML (specyfikacja http://www.w3.org/TR/wsdl). Zaprojektowany z myślą o ujednoliconym widoku interfejsy zewnętrzne usług sieciowych i służy do poinformowania innego programu, że ten program ma taką „usługę” (tj. pierwszy program na stronie internetowej przedstawia informacje o swoich usługach w formacie pliku WSDL).

Inne systemy wchodzą w interakcję z usługą sieciową poprzez wymianę komunikatów SOAP (Simple Object Access Protocol) – protokół wymiany ustrukturyzowanych komunikatów w rozproszonym środowisku obliczeniowym (specyfikacja http://www.w3.org/TR/soap). Jak każdy protokół tekstowy, SOAP może być używany z dowolnym protokołem warstwy aplikacji: SMTP, FTP, HTTPS i innymi, ale najczęściej SOAP jest używany przez HTTP.

Rysunek 1. Koncepcja usługi sieciowej.

SOAP jest używany do przesyłania dowolnych komunikatów XML i zdalnego wywoływania procedur (RPC).

W ten sposób między serwisem WWW a aplikacją wymieniane są dokumenty XML w postaci komunikatów. Standardy usług sieciowych określają:

Format wiadomości, interfejs, do którego wysyłana jest wiadomość;

Zasady wiązania treści wiadomości z aplikacją realizującą usługę i odwrotnie;

Mechanizmy publikowania i wyszukiwania interfejsów.

Najprostszym i najbardziej oczywistym zastosowaniem usług sieciowych jest pozyskiwanie danych referencyjnych z usług publicznych dostępnych w Internecie. Na przykład Aeroflot udostępnia informacje o swoich lotach za pośrednictwem usługi internetowej, Bank Rosji - informacje o kursach walut, papierach wartościowych, organizacjach kredytowych - może być wiele opcji.

2. SIEĆ-USŁUGI W SYSTEMIE „1C: ENTERPRISE”

Rozwiązaniem aplikacyjnym 1C:Enterprise 8 może być:

Dostawca usług internetowych;

W systemie 1C:Enterprise 8 usługi sieciowe są jednym z mechanizmów platformy wykorzystywanych do integracji z innymi systemami informatycznymi i aplikacjami 1C:Enterprise 8 między sobą.

Innymi słowy, 1C:Enterprise może eksportować swoją funkcjonalność za pośrednictwem usług sieciowych. Ich definicje są ustawiane w drzewie konfiguracji i stają się dostępne dla dowolnych systemy informacyjne poprzez opublikowanie ich na serwerze WWW.

Mechanizm usług sieciowych w 1C:Enterprise jest sposobem wspierania architektury zorientowanej na usługi (SOA), co oznacza, że ​​programy używają „usług” do wymiany danych między sobą.

Aby funkcjonalność 1C:Enterprise była dostępna dla zewnętrznych konsumentów usług internetowych, musisz wykonać następujące czynności:

Utwórz wymaganą liczbę usług sieciowych w konfiguracji;

Tworzenie usługi internetowej to:

Oprócz drzewa metadanych obiektu konfiguracyjnego usługi sieci Web;

Opis operacji, które może wykonać ta usługa internetowa;

Opis parametrów pracy.

Obiekt konfiguracji usługi WWW zawiera moduł tworzący procedury we wbudowanym języku, które są wykonywane po wywołaniu określonych operacji usługi sieciowej. Typy parametrów działania usługi sieciowej są opisywane za pomocą typów XDTO i mogą być wartościami XDTO lub obiektami XDTO.

Wywołanie usługi sieci Web wygląda następująco:

Z puli połączeń wybierane jest odpowiednie połączenie z bazą danych; w przypadku braku wymaganego połączenia nawiązywane jest połączenie;

Tworzona jest nowa sesja;

Żądana metoda usługi sieci Web jest wywoływana.

Mechanizm usług sieciowych zaimplementowany w 1C:Enterprise obsługuje następujące standardy:

Profil podstawowy WS-I 1.1;

SSL 3.0/TLS 1.0.

3. UCZENIE SIĘSIEĆ-USŁUGI W SYSTEMIE „1C: ENTERPRISE”

Usługa internetowa to program, do którego inne programy mogą uzyskać dostęp przez Internet (http). Załóżmy na przykład, że masz funkcję udostępniającą tekst HTML. Celem aplikacji jest przeglądarka internetowa, która wyświetla wyniki i osoba może łatwo przeczytać ten tekst na stronie.

Z drugiej strony docelowymi odbiorcami usługi internetowej są inne programy lub inne usługi internetowe, które wykorzystują dane obsługiwane przez usługę internetową. Zazwyczaj dane wyjściowe są w standardowym języku zrozumiałym dla innych programów. Weźmy powyższy przykład, jeśli usługa internetowa generuje tekst w formacie XML, to inne usługi internetowe, które potrafią czytać lub rozumieć XML, mogą korzystać z tych danych wyjściowych.

Główną zaletą usługi internetowej jest to, że aplikacje można pisać w dowolnym języku, ale mogą one komunikować się i komunikować ze sobą za pośrednictwem usługi internetowej. Aplikacje napisane w różnych językach programowania i działające na różnych platformach mogą wykorzystywać usługi sieciowe do wymiany danych przez Internet (HTTP). Ta interakcja (na przykład między Javą a Pythonem lub aplikacje Windowsa i Linux) wiąże się z wykorzystaniem otwartych standardów (XML, SOAP, HTTP).

  • SOAP (prosty protokół dostępu do obiektów)
  • UDDI (uniwersalny opis, wykrywanie i integracja)
  • WSDL (język opisu usług sieciowych)

Ile jest różnych rodzajów usług internetowych?

Przede wszystkim istnieją dwa rodzaje usług sieciowych: protokół SOAP (Simple Object Access Protocol) i REST (Representational State Transfer).

  • Usługa WWW SOAP akceptuje żądanie XML i generuje dane wyjściowe XML.
  • Usługa internetowa REST jest bardziej ogólna i może akceptować zarówno XML, jak i JSON jako żądanie i generować dane wyjściowe w XML, a także JSON, a nawet HTML

Ten problem można zbadać bardziej szczegółowo na naszej stronie.

Przeanalizowaliśmy Pojęcia ogólne mechanizm « Sieć-usługi". Odświeżmy nieco wiedzę.

Usługi sieciowe służą do wymiany danych między serwerem a klientem; format XML służy do „pakowania” danych w celu wzajemnego zrozumienia między obydwoma uczestnikami komunikacji.

ROZDZIAŁI

PRZYKŁAD REALIZACJISIEĆ-SERWIS W SYSTEMIE „1C: ENTERPRISE”

ZADANIE: Konieczne jest stworzenie serwisu internetowego, w którym klienci będą mogli ustalić wszystkie niezbędne informacje dla swoich aplikacji.

Zadanie ma charakter demonstracyjny i służy jedynie jako przykład do zrozumienia i nauczenia się mechanizmusieć-usługi.

ROZWIĄZANIE:

Krok 1. Stwórzmy nowy baza informacji bez konfiguracji, aby opracować nową konfigurację.

Krok 2 Dodajmy kilka nowych obiektów do konfiguracji

Katalog „Klienci”;

Dokument „Aplikacja”;

Wyliczenie „Statusy wniosków”.

Krok 3 Stwórzmy nowy pakiet XDTO.

Dlaczego i po co tworzymy pakiet XDTO? Więcej o korzystaniu z mechanizmu XDTO przeczytasz w „Rozdziale 16. Podręcznik programisty” oraz.

Zaznaczmy pokrótce tylko, że mechanizm XDTO jest uniwersalny sposób reprezentacje danych do interakcji z różnymi zewnętrznymi źródłami danych i systemami oprogramowania.

W naszym przypadku tworzony jest pakiet XDTO opisujący wartość zwracaną przez usługę internetową.

Rozwiń gałąź „Ogólne” → „Pakiety XDTO” → Dodaj…

Podaj nazwę pakietu XDTO " DokumentyDane' i jego przestrzeń nazw http://localhost/request lub http://192.168.1.76/request (dla ułatwienia zrozumienia i nauki podajemy lokalny adres IP komputer, na którym jest zainstalowany serwer WWW (obsługiwane serwery WWW: IIS lub Apache)). Każda usługa sieci Web może być jednoznacznie identyfikowana na podstawie jej nazwy i identyfikatora URI przestrzeni nazw, do której należy.

Nasz pakiet zawiera dwa typy obiektów XDTO:

1) Klient- do przeniesienia danych elementu katalogu „Klienci”.

- Nazwa ;

2) dokument- do przeniesienia danych dokumentu „Wniosek”

Ten typ obiektu XDTO będzie zawierał następujące właściwości:

- Klient- Typ klienta z przestrzeni nazw http://192.168.1.76/request; jest odniesieniem do obiektu XDTO, który zdefiniowaliśmy powyżej;

- Status- typ string z przestrzeni nazw http://www.w3.org/2001/XMLSchema;

- Liczba- typ string z przestrzeni nazw http://www.w3.org/2001/XMLSchema.

Krok 4 Dodaj nową usługę internetową do konfiguracji

Rozwiń gałąź „Ogólne” → „Usługi sieciowe” → Dodaj ...

W przypadku usługi sieci Web określ następujące wartości właściwości:

Nazwa - DokumentyDane

Przestrzenie nazw URI — http://192.168.1.76/request

Pakiety XDTO - DokumentyDaneLubhttp://192.168.1.76/request

Nazwa pliku publikacji - żądanie.1cws

Krok 5 Dla utworzonej usługi internetowej definiujemy operację „ otrzymać dane»

Wartości właściwości operacji:

Typ zwrotu - Dokument (http://192.168.1.76/request)

Prawdopodobnie pusta wartość - PRAWDA

Nazwa procedury - otrzymać dane.

Krok 6 Operacja otrzymać dane zdefiniuj parametr Customer z następującymi wartościami właściwości:

Typ wartości - typ strunowy z przestrzeni nazw http://www.w3.org/2001/XMLSchema;

Kierunek transferu - wejście.

Krok 7 Otwórzmy moduł utworzonego serwisu WWW i umieśćmy w nim funkcję Get(), która zostanie wykonana w momencie wywołania tego serwisu WWW.

Funkcja GetData(Customer) // Pobierz typy obiektów XDTO ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Dokument"); // Pobierz klienta ClientReference = Directories.Clients.FindByName(Customer); If Not ValueFilled(ClientReference) Then Return Undefined; KoniecJeżeli; Żądanie = Nowe żądanie; Request.Text = "WYBIERZ PIERWSZY 1 | Odnośnik biletu, | REPREZENTACJA (Status biletu) AS Status, | Numer biletu | OD | Dokument. Bilet AS Bilet | GDZIE | Klient biletu = &Klient"; Request.SetParameter("Klient", ClientReference); QueryResult = Query.Execute(); Jeśli QueryResult.Empty() to zwróć niezdefiniowane; KoniecJeżeli; Wybór = QueryResult.Select(); Wybór.Następny(); Document = Selection.Reference.GetObject(); // Utwórz obiekt biletu XDTO Ticket = FactoryXDTO.Create(TicketType); Numer.Aplikacji = Numer.Próbki; Klient = FactoryXDTO.Create(ClientType); Client.Name = ClientReference.Name; Aplikacja.Klient = Klient; Aplikacja.Status = Wybór.Status; // Żądanie zwrotu Żądanie zwrotu; Funkcje końcowe

Krok 8 Opublikujmy utworzoną usługę sieci Web na serwerze sieci Web.

Pozycja menu konfiguratora: „Administracja” → „Publikowanie na serwerze WWW”.

Na karcie „Usługi sieciowe” ustaw flagę „Publikuj usługi sieciowe”, a także zaznacz pole obok naszej nowej usługi sieciowej.

ROZDZIAŁII

PRZYKŁAD ODNIESIENIA DOSIEĆ- 1C: USŁUGI DLA PRZEDSIĘBIORSTW ZA POMOCĄ APLIKACJI OSÓB TRZECICH

Głównym celem mechanizmu usług sieciowych w 1C:Enterprise jest przesyłanie niezbędnych danych do aplikacji innych firm.

Rozważmy przykład tworzenia aplikacji w Delphi wywołującej nasz serwis internetowy z pierwszej części tego artykułu.

Krok 1. Utwórzmy nowy projekt i umieśćmy kilka kontrolek na formularzu

Pole tekstowe – służy do wyświetlenia informacji otrzymanych z serwisu internetowego;

Dwa przyciski - wyczyszczenie pola tekstowego i dostęp do serwisu internetowego;

Pole wejściowe jest parametrem przekazywanym do usługi sieciowej.

Krok 2 Importowanie pliku WSDL

W rezultacie otrzymujemy nowy moduł wniosek(zdefiniowaliśmy taką nazwę bezpośrednio w 1C). Ten moduł zawiera wszystkie niezbędne informacje o serwisie internetowym.

Krok 3 Napisz program obsługi wywołań usługi sieciowej

Zmienna DocumentDataPortType jest już zdefiniowana w module wniosek

Krok 4 Uruchom aplikację i sprawdź.

ROZDZIAŁIII

PRZYKŁAD ODNIESIENIA DOSIEĆ-SERWIS W SYSTEMIE „1C: ENTERPRISE”

Krok 1. Stwórzmy nowe zewnętrzne przetwarzanie o nazwie „WEB_Service”

Krok 2 Do przetwarzania definiujemy Nowa forma

Krok 3 Określ kilka szczegółów formularza

Klient - wpisz „String”

ClientReturn - wpisz „String”

NumberReturn - wpisz „String”

StatusReturn — typ „String”.

Szczegóły wyświetlimy w formularzu.

Krok 4 Dodajmy polecenie formularza „ Aby uzyskać dane»

Określ procedurę obsługi poleceń

&OnClient Procedura GetData(Command) GetDataOnServer(Client); Koniec procedury Procedura GetDataOnServer(Client) // Utwórz proxy WS na podstawie linku i wykonaj operację Get() Definicja = New WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proxy = New WSProxy(Definition, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); RequestData = Proxy.GetData(Client); If OrderData = Undefined Then ClientReturn = "Nieokreślony"; StatusReturn = "Nieokreślony"; ReturnNumber = "Nieokreślony"; Powrót; KoniecJeżeli; KlientZwrot = ŻądanieDane.Klient.Nazwa; StatusReturn = Żądanie danych.Status; ReturnNumber = RequestData.Numder; Procedura końcowa

1C:Enterprise może korzystać z usług internetowych innych dostawców na dwa sposoby:

Używając statyczny linki utworzone w drzewie konfiguracji;

"plus": duża szybkość pracy;

"minus": ponowny import opisu WSDL za pomocą konfiguratora i zapisanie zmienionej konfiguracji.

Używając dynamiczny linki utworzone za pomocą wbudowanego języka

(odpowiednio „minusami” statycznych dla dynamicznych są „plusy”)

ROZDZIAŁIV

DEBUGOWANIE USŁUG SIECIOWYCH W SYSTEMIE 1C:ENTERPRISE

W przypadku lokalnej usługi internetowej potrzebujesz:

Krok 1. Umieść plik klienta, w którym uruchamiany jest system 1C webservicecfg.xml z następującą treścią

Krok 2 Do pliku domyślny. wrd opublikuj linię dodaj konfigurację

Krok 3 W konfiguratorze wybierz pozycję menu

„Debugowanie” → „Połączenie” → „Połączenie automatyczne” → „Usługi sieciowe na serwerze”

Krok 4 Kliknij przycisk „OK”.

W przypadku wersji serwerowej należy również uruchomić serwer 1c w trybie debugowania za pomocą klucza /odpluskwić