Welche Webdienste gibt es? Was ist ein Webdienst? Technische Umsetzung von Webdiensten

Ein Webdienst (Dienst) ist ein Programm, das die Interaktion zwischen Websites organisiert. Informationen von einem Portal werden an ein anderes übertragen.

Es gibt zum Beispiel eine Fluggesellschaft. Sie hat viele Flüge, was bedeutet, dass sie viele Tickets hat. Es überträgt Informationen über einen Webdienst an eine Reiseaggregator-Site. Ein Benutzer, der auf den Aggregator zugreift, kann dort direkt Tickets für diese Fluggesellschaft kaufen.

Ein weiteres Beispiel für Webdienste ist eine Wetterverfolgungsseite, die Informationen über die Wetterbedingungen in einer bestimmten Stadt oder einem bestimmten Land als Ganzes enthält. Diese Informationen werden häufig auch von Dritten genutzt.

Die Informationen im Internet sind vielfältig. Websites werden verwaltet verschiedene Systeme. Dabei kommen unterschiedliche Übertragungs- und Verschlüsselungsprotokolle zum Einsatz. Webdienste vereinfachen den Informationsaustausch zwischen verschiedenen Standorten.

Architektur und Protokolle von Webdiensten

Sie können 3 Autoritäten definieren, die miteinander interagieren: Katalog, Auftragnehmer und Kunde. Nach der Erstellung der Leistung trägt der Auftragnehmer diese in den Katalog ein und der Kunde findet die Leistung dort.

Der Datenaustauschmechanismus wird in der Web-Services-Beschreibung gebildet. Hierbei handelt es sich um eine Spezifikation, die Weiterleitungsformate, Inhaltstypen und Transportprotokolle abdeckt, die im Prozess des Informationsaustauschs zwischen dem Kunden und dem Diensttransporteur verwendet werden.

Heutzutage werden am häufigsten mehrere Technologien zur Implementierung verschiedener Webdienste verwendet:

  1. TCP/IP ist ein Protokoll, das fast jeder versteht Netzwerkausrüstung, von Großrechnern bis tragbare Geräte und PDA.
  2. HTML ist eine universelle Auszeichnungssprache, die zur Anzeige von Inhalten auf Verbrauchergeräten verwendet wird.
  3. XML ist ein universelles Werkzeug zur Verarbeitung aller Arten von Daten. Andere Informationsaustauschprotokolle können auf dieser Basis arbeiten: SOAP und WSDL.
  4. UDDI ist eine universelle Quelle für Erkennung, Integration und Beschreibung. Es funktioniert in der Regel in privaten Netzwerken und hat bisher keine ausreichende Verbreitung gefunden.

Die Vielseitigkeit der vorgestellten Technologien ist die Grundlage für das Verständnis von Webdiensten. Sie arbeiten mit Standardtechnologien, die unabhängig von Anwendungsanbietern und anderen Netzwerkressourcen sind. Kann in jedem verwendet werden Betriebssysteme, Anwendungsserver, Programmiersprachen usw.

Vorteile

  • Schaffung der notwendigen Voraussetzungen für das Zusammenspiel von Softwarekomponenten, unabhängig von der Plattform.
  • Webdienste basieren auf offenen Standardprotokollen. Durch die Einführung von XML wird die Erstellung und Konfiguration von Webdiensten vereinfacht.
  • Der Einsatz von HTTP gewährleistet die Interaktion von Systemen durch Internetwork-Zugriffe.

Mängel

  • Geringe Leistung und großes Verkehrsaufkommen im Vergleich zu RMI-, CORBA- und DCOM-Systemen aufgrund der Verwendung von XML-Nachrichten im Textkontext.
  • Sicherheitsstufe. Alle modernen Webdienste müssen Codierung implementieren und eine Benutzerautorisierung erfordern. Ob HTTPS hier ausreicht oder zuverlässigere Protokolle wie XML-Verschlüsselung, SAML usw. benötigt werden, wird während der Entwicklung entschieden.

Web-Services-Aufgaben

Webservices können in vielen Bereichen eingesetzt werden.

B2B-Transaktionen

Die Integration von Prozessen erfolgt sofort, ohne Beteiligung von Menschen. Zum Beispiel die Aktualisierung des Online-Shop-Katalogs mit neuen Produkten. Sie werden ins Lager gebracht und der Lagerhalter vermerkt die Ankunft in der Datenbank. Die Informationen werden automatisch an den Online-Shop übertragen. Und anstatt auf der Produktkarte „Ausverkauft“ zu vermerken, sieht der Käufer die Menge.

Integration von Unternehmensdiensten

Wenn das Unternehmen Unternehmensprogramme nutzt, hilft der Webservice bei der Einrichtung der gemeinsamen Arbeit.

Erstellen eines Client-Server-Systems

Dienste werden verwendet, um den Betrieb des Clients und Servers zu konfigurieren. Dies bietet Vorteile:

  • Du kannst es nicht selbst verkaufen Software, aber machen Sie den Zugang zum Webdienst kostenpflichtig;
  • Es ist einfacher, Probleme mit Software von Drittanbietern zu lösen.
  • Es ist einfacher, den Zugriff auf die Inhalte und Materialien des Servers zu organisieren.

Ein Webservice ist eine Anwendung, die die technische Einrichtung der Ressourceninteraktion vereinfacht.

Der Mechanismus der Webdienste des 1C:Enterprise-Systems basiert auf der Verwendung gleichnamiger Metadatenobjekte, d.h. Konfigurationsobjekte aus dem Zweig „Webdienste“.

1. ALLGEMEINE DEFINITIONEN

Versuchen wir, den Begriff „Webdienst“ allgemein zu definieren.

Netz-Service ist eine Netzwerktechnologie, die Folgendes bietet programmübergreifend Interaktion(zwischen verschiedenen Anwendungen) basierend auf Webstandards. Webdienste ermöglichen es, von einer Anwendung auf eine andere zuzugreifen und gleichzeitig bestimmte Funktionen auszuführen.

Ein Webdienst wird durch eine URI-Zeichenfolge (Uniform Resource Identifier) ​​identifiziert – eine einheitliche Ressourcenkennung (dies ist eine Zeichenfolge, mit der Sie eine Ressource identifizieren können).

Der Webdienst verfügt über eine Softwareschnittstelle, die im Format dargestellt wird WSDL(Web Services Description Language) – eine Sprache zur Beschreibung von Webdiensten und zum Zugriff darauf, basierend auf der XML-Sprache (Spezifikation http://www.w3.org/TR/wsdl). Entwickelt für eine einheitliche Präsentation externe Schnittstellen Webdienste und wird verwendet, um einem anderen Programm mitzuteilen, dass dieses Programm über einen solchen „Dienst“ verfügt (d. h. das erste Programm auf der Website veröffentlicht Informationen über seine Dienste im WSDL-Dateiformat).

Andere Systeme interagieren mit dem Webdienst, indem sie SOAP-Nachrichten (Simple Object Access Protocol) austauschen – ein Protokoll zum Austausch strukturierter Nachrichten in einer verteilten Computerumgebung (Spezifikation http://www.w3.org/TR/soap). Wie jedes Textprotokoll kann SOAP mit jedem Protokoll der Anwendungsschicht verwendet werden: SMTP, FTP, HTTPS und anderen, aber am häufigsten wird SOAP über HTTP verwendet.

Abbildung 1. Webservice-Konzept.

SOAP dient dem Austausch beliebiger Nachrichten im XML-Format und Remote Procedure Calls (RPC).

Somit werden als Nachrichten formatierte XML-Dokumente zwischen dem Webdienst und der Anwendung ausgetauscht. Web-Services-Standards definieren:

Nachrichtenformat, Schnittstelle, an die die Nachricht gesendet wird;

Regeln für die Verknüpfung von Nachrichteninhalten mit der Anwendung, die den Dienst implementiert, und umgekehrt;

Mechanismen zum Veröffentlichen und Durchsuchen von Schnittstellen.

Das einfachste und offensichtlichste Beispiel für die Nutzung von Webdiensten ist die Beschaffung von Referenzdaten von im Internet verfügbaren öffentlichen Diensten. Beispielsweise stellt Aeroflot Informationen über seine Flüge über einen Webdienst bereit, die Bank von Russland stellt Informationen über Wechselkurse bereit, Wertpapiere, Kreditinstitute – da kann es viele Möglichkeiten geben.

2. NETZ- DIENSTLEISTUNGEN IM 1C:ENTERPRISE-SYSTEM

Die Anwendungslösung 1C:Enterprise 8 kann sein:

Webdienstanbieter;

Im 1C:Enterprise 8-System sind Webdienste einer der Plattformmechanismen, die für die Integration mit anderen Informationssystemen und 1C:Enterprise 8-Anwendungen verwendet werden.

Mit anderen Worten: Das 1C:Enterprise-System kann seine Funktionalität über Webdienste exportieren. Ihre Definitionen werden im Konfigurationsbaum angegeben und stehen jedem zur Verfügung Informationssysteme durch Veröffentlichung auf einem Webserver.

Der Webservices-Mechanismus im 1C:Enterprise-System ist ein Mittel zur Unterstützung der serviceorientierten Architektur (SOA), was bedeutet, dass Programme „Dienste“ verwenden, um Daten untereinander auszutauschen.

Damit die Funktionalität des 1C:Enterprise-Systems externen Verbrauchern von Webdiensten zur Verfügung steht, müssen Sie die folgenden Schritte ausführen:

Erstellen Sie in der Konfiguration die erforderliche Anzahl an Webdiensten;

Das Erstellen eines Webdienstes besteht aus:

Beim Hinzufügen eines Webdienst-Konfigurationsobjekts zum Metadatenbaum;

Beschreibungen der Vorgänge, die dieser Webdienst ausführen kann;

Beschreibung der Betriebsparameter.

Das Webdienst-Konfigurationsobjekt enthält ein Modul, in dem Prozeduren in der integrierten Sprache erstellt werden, die ausgeführt werden, wenn bestimmte Webdienstvorgänge aufgerufen werden. Parametertypen für Webdienstoperationen werden mithilfe von XDTO-Typen beschrieben und können entweder XDTO-Werte oder XDTO-Objekte sein.

Der Webservice wird wie folgt aufgerufen:

Aus dem Verbindungspool wird eine passende Verbindung zur Infobase ausgewählt; Wenn keine erforderliche Verbindung besteht, wird eine Verbindung erstellt.

Eine neue Sitzung wird erstellt;

Die angeforderte Webservice-Methode wird aufgerufen.

Der im 1C:Enterprise-System implementierte Webservices-Mechanismus unterstützt die folgenden Standards:

WS-I Basisprofil 1.1;

SSL 3.0/TLS 1.0.

3. STUDIERENNETZ- DIENSTLEISTUNGEN IM 1C:ENTERPRISE-SYSTEM

Ein Webdienst ist ein Programm, auf das andere Programme über das Internet (http) zugreifen können. Angenommen, Sie haben eine Funktion, die Text im HTML-Format bereitstellt. Der Zweck der Anwendung besteht darin, dass der Webbrowser die Ergebnisse anzeigt und eine Person diesen Text auf der Seite leicht lesen kann.

Andererseits sind die Zielgruppe eines Webdienstes andere Programme oder andere Webdienste, die die vom Webdienst bereitgestellten Daten konsumieren. Typischerweise erfolgt die Ausgabe in einer Standardsprache, die von anderen Programmen verstanden werden kann. Nehmen Sie das obige Beispiel: Wenn ein Webdienst Text im XML-Format ausgibt, können andere Webdienste, die XML lesen oder verstehen können, diese Ausgabe verwenden.

Der Hauptvorteil eines Webdienstes besteht darin, dass Anwendungen in jeder Sprache geschrieben werden können, sie jedoch über den Webdienst miteinander kommunizieren und kommunizieren können. Softwareanwendungen, die in verschiedenen Programmiersprachen geschrieben sind und auf verschiedenen Plattformen laufen, können Webdienste nutzen, um über das Internet (HTTP) zu kommunizieren. Dabei handelt es sich um eine Interaktion (beispielsweise zwischen Java und Python, bzw Windows-Anwendungen und Linux) ist mit der Verwendung offener Standards (XML, SOAP, HTTP) verbunden.

  • SOAP (Simple Object Access Protocol)
  • UDDI (Universelle Beschreibung, Entdeckung und Integration)
  • WSDL (Web Services Description Language)

Wie viele verschiedene Arten von Webdiensten gibt es?

Im Wesentlichen gibt es zwei Arten von Webdiensten: Simple Object Access Protocol (SOAP) und Representational State Transfer (REST).

  • Der SOAP-Webdienst akzeptiert eine Anfrage im XML-Format und generiert eine Ausgabe im XML-Format.
  • Der REST-Webdienst ist vielseitiger und kann sowohl XML als auch JSON als Anfrage akzeptieren und generiert Ausgaben sowohl in XML als auch in JSON oder sogar HTML

Dieses Problem kann bei uns genauer untersucht werden.

Wir haben überprüft allgemeine Konzepte Verwendung des Mechanismus « Netz-Dienstleistungen". Lassen Sie uns etwas Wissen auffrischen.

Webdienste dienen dem Datenaustausch zwischen einem Server und einem Client; Das XML-Format wird zum „Verpacken“ von Daten zum gegenseitigen Verständnis beider Kommunikationsparteien verwendet.

KAPITELICH

BEISPIEL FÜR DIE UMSETZUNGNETZ- SERVICE IM 1C:ENTERPRISE-SYSTEM

AUFGABE: Es ist notwendig, einen Webdienst zu erstellen, über den Kunden alle notwendigen Informationen zu ihren Anwendungen abrufen können.

Die Aufgabe ist eine Demonstration und dient nur als Beispiel zum Verständnis und zur Vermittlung des MechanismusNetz-Dienstleistungen.

LÖSUNG:

Schritt 1. Lassen Sie uns ein neues erstellen Informationsbasis ohne Konfiguration, um eine neue Konfiguration zu entwickeln.

Schritt 2. Fügen wir der Konfiguration mehrere neue Objekte hinzu

Verzeichnis „Kunden“;

Dokument „Antrag“;

Aufzählung „Bewerbungsstatus“.

Schritt 3. Lassen Sie uns ein neues XDTO-Paket erstellen.

Warum und zu welchem ​​Zweck erstellen wir ein XDTO-Paket? Weitere Informationen zur Verwendung des XDTO-Mechanismus finden Sie in „Kapitel 16. Entwicklerhandbuch“ und .

Lassen Sie uns kurz darauf hinweisen, dass es sich um den XDTO-Mechanismus handelt auf universelle Weise Präsentation von Daten zur Interaktion mit verschiedenen externen Datenquellen und Softwaresystemen.

In unserem Fall wird ein XDTO-Paket erstellt, um den Rückgabewert des Webservices zu beschreiben.

Erweitern wir den Zweig „Allgemein“ → „XDTO-Pakete“ → Hinzufügen…

Geben wir den Namen des XDTO-Pakets an. DokumenteDaten" und sein Namespace http://localhost/request oder http://192.168.1.76/request (um das Verständnis und den Lernprozess zu erleichtern, geben wir an lokale IP-Adresse Computer, auf dem der Webserver installiert ist (unterstützte Webserver: IIS oder Apache)). Jeder Webdienst kann anhand seines Namens und der URI des Namespace, zu dem er gehört, eindeutig identifiziert werden.

Unser Paket enthält zwei Arten von XDTO-Objekten:

1) Kunde- um Daten aus dem Verzeichniselement „Clients“ zu übertragen.

- Name ;

2) Dokumentieren- um Daten aus dem Dokument „Bewerbung“ zu übernehmen

Dieser XDTO-Objekttyp enthält die folgenden Eigenschaften:

- Kunde- Kundentyp aus dem Namensraum http://192.168.1.76/request ; stellt einen Verweis auf das XDTO-Objekt dar, das wir oben definiert haben;

- Status- String-Typ aus dem Namespace http://www.w3.org/2001/XMLSchema;

- Anzahl- String-Typ aus dem Namespace http://www.w3.org/2001/XMLSchema.

Schritt 4. Fügen wir der Konfiguration einen neuen Webdienst hinzu

Erweitern wir den Zweig „Allgemein“ → „Webdienste“ → Hinzufügen…

Für den Webdienst geben wir die folgenden Eigenschaftswerte an:

Name - DokumenteDaten

Namespace-URI - http://192.168.1.76/request

XDTO-Pakete - DokumenteDatenoderhttp://192.168.1.76/request

Name der Veröffentlichungsdatei - Anfrage.1cws

Schritt 5. Für den erstellten Webdienst definieren wir die Operation „ Daten bekommen»

Werte der Operationseigenschaften:

Rückgabetyp - Dokument (http://192.168.1.76/request)

Möglicherweise leerer Wert - WAHR

Verfahrensname - Daten bekommen.

Schritt 6. Bei der Operation Daten bekommen Definieren wir den Parameter „Customer“ mit den folgenden Eigenschaftswerten:

Werttyp - Typ Zeichenfolge aus dem Namensraum http://www.w3.org/2001/XMLSchema;

Übertragungsrichtung - Eingang.

Schritt 7Öffnen wir das Modul des erstellten Webdienstes und platzieren darin die Funktion Get(), die beim Aufruf dieses Webdienstes ausgeführt wird.

Function GetData(Customer) // Typen von XDTO-Objekten abrufen ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Document"); // Holen Sie sich den Client ClientLink = Directories.Clients.FindByName(Customer); Wenn nicht ValueFilled(ClientRef), dann Return Undefiniert; endIf; Anfrage = Neue Anfrage; Request.Text = "SELECT TOP 1 | Application.Link, | REPRESENTATION(Application.Status) AS Status, | Application.Number |FROM | Document.Request AS Application |WHERE | Application.Client = &Client"; Request.SetParameter("Client", ClientLink); RequestResult = Request.Execute(); If QueryResult.Empty() Then Return Undefiniert; endIf; Selection = Abfrageergebnis.Select(); Selection.Next(); Document = Selection.Link.GetObject(); // Ein XDTO-Objekt einer Bestellung erstellen Order = FactoryXDTO.Create(OrderType); Application.Numder = Sample.Number; Client = FactoryXDTO.Create(ClientType); Client.Name = ClientLink.Name; Application.Customer = Kunde; Application.Status = Selection.Status; // Die Anfrage zurücksenden Return Application; EndFunction

Schritt 8 Lassen Sie uns den erstellten Webdienst auf dem Webserver veröffentlichen.

Menüpunkt Konfigurator: „Administration“ → „Veröffentlichung auf einem Webserver“.

Aktivieren Sie auf der Registerkarte „Webdienste“ das Kontrollkästchen „Webdienste veröffentlichen“ und aktivieren Sie außerdem das Kontrollkästchen neben unserem neuen Webdienst.

KAPITELII

BEISPIEL FÜR EINEN AUFRUF ANNETZ- ZUM 1C:ENTERPRISE SYSTEM-SERVICE AUS EINER DRITTANWENDUNG

Der Hauptzweck des Webservices-Mechanismus im 1C:Enterprise-System besteht darin, die erforderlichen Daten an Drittanwendungen zu übertragen.

Schauen wir uns ein Beispiel für die Entwicklung einer Anwendung in Delphi an, die unseren Webdienst aus dem ersten Abschnitt dieses Artikels aufruft.

Schritt 1. Lassen Sie uns ein neues Projekt erstellen und mehrere Steuerelemente im Formular platzieren

Textfeld – wird zur Anzeige der vom Webdienst empfangenen Informationen verwendet;

Zwei Schaltflächen – Löschen des Textfelds und Zugriff auf den Webdienst;

Ein Eingabefeld ist ein Parameter, der an den Webdienst übergeben wird.

Schritt 2. Importieren einer WSDL-Datei

Als Ergebnis erhalten wir ein neues Modul Anfrage(Wir haben diesen Namen direkt in 1C definiert). Dieses Modul enthält alle notwendigen Informationen zum Webservice.

Schritt 3. Schreiben wir einen Webservice-Aufrufhandler

Die Variable DocumentDataPortType ist bereits im Modul definiert Anfrage

Schritt 4. Starten Sie die Anwendung und führen Sie den Test durch.

KAPITELIII

BEISPIEL FÜR EINEN AUFRUF ANNETZ-SERVICE IM 1C:ENTERPRISE-SYSTEM

Schritt 1. Erstellen wir eine neue externe Verarbeitung mit dem Namen „WEB_Service“.

Schritt 2. Für die Verarbeitung definieren wir neue Uniform

Schritt 3. Auf dem Formular geben wir einige Details an

Client – ​​Typ „String“

ClientReturn – Typ „String“

NumberReturn – Typ „String“

StatusReturn – Typ „String“.

Wir zeigen die Details im Formular an.

Schritt 4. Fügen wir einen Formularbefehl hinzu „ Um Daten zu erhalten»

Lassen Sie uns den Befehlshandler angeben

&OnClient-Prozedur GetData(Command) GetDataOnServer(Client); Ende der Prozedur Prozedur GetDataOnServer(Client) // Erstellen Sie einen WS-Proxy basierend auf dem Link und führen Sie die Get()-Operation aus Definition = 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“); Anwendungsdaten = Proxy.GetData(Client); Wenn Anwendungsdaten = Undefiniert, dann ClientReturn = "Undefiniert"; StatusReturn = "Undefiniert"; ReturnNumber = "Undefiniert"; Zurückkehren; endIf; CustomerReturn = Anwendungsdaten.Customer.Name; StatusReturn = Anwendungsdaten.Status; Rückgabenummer = Application Data.Numder; Ende des Verfahrens

Das 1C:Enterprise-System kann Webdienste anderer Anbieter auf zwei Arten nutzen:

Mit Hilfe statisch im Konfigurationsbaum erstellte Links;

"Plus": hohe Geschwindigkeit;

"Minus": erneutes Importieren der WSDL-Beschreibung mit dem Konfigurator und Speichern der geänderten Konfiguration.

Mit Hilfe dynamisch Links, die von integrierten Sprachtools erstellt wurden

(Entsprechend sind die „Nachteile“ statischer gegenüber dynamischen „Vorteile“)

KAPITELIV

Debuggen von Webdiensten im 1C:Enterprise-System

Für einen lokalen Webdienst benötigen Sie:

Schritt 1. Platzieren Sie die Datei auf dem Client, auf dem das 1C-System läuft webservicecfg.xml mit folgendem Inhalt

Schritt 2. Einordnen Standard. vrd Zeile zum Veröffentlichen der Konfiguration hinzufügen

Schritt 3. Wählen Sie im Konfigurator den Menüpunkt aus

„Debug“ → „Verbindung“ → „Automatische Verbindung“ → „Webdienste auf dem Server“

Schritt 4. Klicken Sie auf die Schaltfläche „OK“.

Für die Serveroption müssen Sie außerdem den 1c-Server im Debugging-Modus mit dem Schlüssel ausführen /debuggen