Heim >php教程 >PHP开发 >Wie Webdienste funktionieren

Wie Webdienste funktionieren

高洛峰
高洛峰Original
2016-12-15 14:50:321390Durchsuche

Grundlegende Konzepte von Web Service

Web Service wird auch XML Web Service genannt und ist eine leichte, unabhängige Kommunikationstechnologie, die Anfragen empfangen kann, die aus dem Internet oder anderen Systemen im Intranet weitergeleitet werden. Ja: Ein Softwaredienst, der über SOAP über das Web bereitgestellt, mithilfe einer WSDL-Datei beschrieben und über UDDI registriert wird.

XML: (Extensible Markup Language) Erweiterbare Markup-Sprache. Für die kurzfristige temporäre Datenverarbeitung und das World Wide Web ist es die Grundlage von Soap.

Soap: (Simple Object Access Protocol) Simple Object Access Protocol. Es ist das Kommunikationsprotokoll des XML-Webdienstes. Wenn der Benutzer Ihr WSDL-Beschreibungsdokument über UDDI findet, kann er einen oder mehrere Vorgänge in dem Webdienst aufrufen, den Sie über SOAP erstellt haben. SOAP ist eine Spezifikation zum Aufrufen von Methoden in Form von XML-Dokumenten. Es kann verschiedene zugrunde liegende Schnittstellen wie HTTP(S) oder SMTP unterstützen.

WSDL: (Web Services Description Language) Eine WSDL-Datei ist ein XML-Dokument, das eine Reihe von SOAP-Nachrichten und deren Austausch beschreibt. In den meisten Fällen automatisch von der Software generiert und verwendet.

UDDI (Universal Description, Discovery, and Integration) ist ein neues Projekt, das sich hauptsächlich an Webdienstanbieter und Benutzer richtet. Bevor Benutzer einen Webdienst aufrufen können, müssen sie feststellen, welche Geschäftsmethoden im Dienst enthalten sind, die aufgerufene Schnittstellendefinition finden und Software auf der Serverseite kompilieren. UDDI ist ein Mechanismus, der das System anleitet, den entsprechenden Dienst basierend auf zu finden Beschreibungsdokument. UDDI verwendet den SOAP-Messaging-Mechanismus (Standard-XML/HTTP), um Registrierungsinformationen zu veröffentlichen, zu bearbeiten, zu durchsuchen und zu finden. Es verwendet das XML-Format, um verschiedene Datentypen zu kapseln und an das Registrierungszentrum zu senden, oder das Registrierungszentrum gibt die erforderlichen Daten zurück.

Aufrufprinzip:

Webdienst hat zwei Bedeutungen: 1. Er bezieht sich auf eine Sammlung von Funktionen, die in einer einzigen Entität gekapselt und im Netzwerk veröffentlicht werden . Die Dienste, die nach dem Aufruf des Funktionsaggregats bereitgestellt werden. Einfach ausgedrückt ist ein Webdienst eine URL-Ressource, und der Client kann seinen Dienst programmgesteuert anfordern, ohne zu wissen, wie der angeforderte Dienst implementiert wird. Dies unterscheidet sich vom herkömmlichen verteilten Komponentenobjektmodell.

Die Architektur von Webdiensten basiert auf den drei Rollen Webdienstanbieter, Webdienstanforderer und Webdienstvermittler sowie den drei Aktionen Veröffentlichung, Erkennung und Bindung. Einfach ausgedrückt ist der Webdienstanbieter der Eigentümer des Webdiensts und wartet geduldig darauf, anderen Diensten und Benutzern seine eigenen Funktionen bereitzustellen. Der Webdienstanforderer ist der Benutzer der Webdienstfunktion und verwendet SOAP-Nachrichten zur Bereitstellung Webdienste. Ein Anforderer sendet eine Anfrage, um einen Dienst zu erhalten. Die Rolle des Webdienstvermittlers besteht darin, einen Webdienstanforderer mit einem geeigneten Webdienstanbieter zu verbinden. Diese drei Rollen werden auf der Grundlage logischer Beziehungen unterteilt. In tatsächlichen Anwendungen kann es zu Überschneidungen zwischen den Rollen kommen: Ein Webdienst kann entweder ein Webdienstanbieter, ein Webdienstanforderer oder beides sein. Zeigt die Beziehung zwischen Webdienstrollen: Unter ihnen dient „Veröffentlichen“ dazu, Benutzern oder anderen Diensten die Existenz eines bestimmten Webdiensts mitzuteilen, und „Suchen (Erkennen)“ bedeutet, den entsprechenden Webdienst zu finden. ” besteht darin, eine Art Verbindung zwischen dem Anbieter und dem Anforderer herzustellen.

Wie Webdienste funktionieren

Abbildung 2-1 Architektur des Webdienstes

Die Implementierung eines vollständigen Webdienstes umfasst die folgenden Schritte:

◆ Bereitstellung des Webdienstes Der Entwickler entwirft und implementiert Webdienste, veröffentlicht die korrekt debuggten Webdienste über den Webdienstvermittler und registriert sie im UDDI-Registrierungszentrum (Veröffentlichen)

◆ Der Webdienstanforderer fordert spezifische Informationen vom Webdienstvermittler an Dienst: Der Vermittler fragt das UDDI-Registrierungszentrum entsprechend der Anforderung ab und findet Dienste, die die Anforderung des Anforderers erfüllen (Erkennung).

◆ Der Webdienstvermittler gibt die Webdienstbeschreibungsinformationen zurück, die die Bedingungen erfüllen der Webdienst-Anforderer. Die Beschreibung ist in WSDL geschrieben und kann von verschiedenen Maschinen gelesen werden, die Webdienste unterstützen (Discovery).

◆ Verwenden Sie die vom Webdienst-Vermittler zurückgegebenen Beschreibungsinformationen, um den entsprechenden SOAP zu generieren Nachricht und senden Sie sie an den Webdienstanbieter, um den Aufruf von Webdiensten zu implementieren. (Bindung)

◆ Der Webdienstanbieter führt den entsprechenden Webdienst gemäß der SOAP-Nachricht aus und gibt das Dienstergebnis an den Webdienst zurück Anforderer. (Bindung)

Aufrufmethode:

1. Eine einfache und flexible Methode zum dynamischen Aufrufen von WebService mit GET/POST/SOAP unter Net (C#)

Der Aufruf von Webservice Es gibt drei Möglichkeiten:

1). httpget
3). zwei können nicht.
Übrigens nutzt Soap letztlich HTTP, um XM zu übertragen

Sicherheit:

Webservice wird in den unterschiedlichsten Bereichen als komfortabler Dienst eingesetzt und ist auch für Hacker zu einer Delikatesse geworden. In diesem Artikel werden die aktuellen Verbesserungen, die an der Webservice-Sicherheit vorgenommen werden können, kurz vorgestellt.

Sicherheit im Webservice wird hauptsächlich in die folgenden drei Aspekte unterteilt.

Übertragung SSL/HTTPS verschlüsselt die Verbindung, überträgt die Daten nicht

Nachrichtendatenverschlüsselung (XML-Verschlüsselung) Digitale Signatur (XML-DSIG)

Zugrunde liegende Architektur Nutzen Sie den Anwendungsdienst-Sicherheitsmechanismus

Übertragungssicherheit lässt sich am einfachsten zu Ihrer Webservice-Anwendung hinzufügen Mit den vorhandenen SSL- und HTTPS-Protokollen können Sie während des Verbindungsvorgangs problemlos Sicherheit erreichen.

Diese Sicherheitsimplementierungsmethode weist jedoch zwei Schwächen auf. Erstens kann es nur die Sicherheit der Datenübertragung gewährleisten, nicht die Sicherheit der Daten selbst. Sobald die Daten einen bestimmten Ort erreichen, können sie von jedem eingesehen werden. Im Webservice kann ein Datenelement mehrere Stellen erreichen, diese Daten sollten jedoch nicht von allen Empfängern eingesehen werden. Zweitens bietet es einen Alles-oder-Nichts-Schutz. Sie können nicht auswählen, welcher Teil der Daten geschützt werden soll, und diese Selektivität wird auch häufig in Webservices verwendet.

Die zweite Schutzebene ist der Schutz der Nachricht selbst. Sie können vorhandene XML-Sicherheitserweiterungsstandards verwenden, um Funktionen für digitale Signaturen zu implementieren und so sicherzustellen, dass Ihre Nachricht von einer bestimmten Partei stammt und nicht geändert wurde. Die Verschlüsselungstechnologie von XML-Dateien erhöht die Sicherheit von Webservices weiter. Sie kann individuell anpassen, ob die Daten nach der Übertragung vom Empfänger eingesehen werden können, wodurch die Sicherheit nach der Übertragung weiter verbessert wird . , wie SAML und WS-Security.

Die letzte Schutzebene basiert auf der Sicherheit der zugrunde liegenden Architektur, die eher auf dem Schutz des Betriebssystems und einiger Middleware beruht. In J2EE beispielsweise hostet der Anwendungsserver den Webservice. Viele J2EE-Anwendungsserver unterstützen derzeit den Java Authentication and Authorization Service (JAAS), der kürzlich zu J2SE 1.4 hinzugefügt wurde. Es ist selbstverständlich, einige Sicherheitsmechanismen mithilfe des Servers zu implementieren, der den Webservice hostet. Eine weitere Sicherheitsmethode, die die zugrunde liegende Architektur nutzt, besteht darin, einen unabhängigen Sicherheitsserver zu erstellen, mit dem Benutzer und Ersteller des Webdienstes Sicherheitsvertrauen gewinnen müssen.

Funktionen:

Das Hauptziel von Web Service ist die plattformübergreifende Interoperabilität. Um dieses Ziel zu erreichen, basiert Web Service vollständig auf plattformunabhängigen und softwareherstellerunabhängigen Standards wie XML (Extensible Markup Language) und XSD (XML Schema). Es handelt sich um eine neue Plattform zur Erstellung interoperabler und verteilter Anwendungen. Daher hat die Verwendung von Web Service viele Vorteile:

1. Kommunikation über Firewalls hinweg

Wenn die Anwendung Tausende von Benutzern hat und auf der ganzen Welt verteilt ist, dann gibt es eine große Lücke zwischen dem Client und Der Server wird ein heikles Thema sein. Denn zwischen Client und Server befindet sich in der Regel eine Firewall oder ein Proxyserver. Der traditionelle Ansatz besteht darin, den Browser als Client zu verwenden, viele ASP-Seiten zu schreiben und die mittlere Ebene der Anwendung dem Endbenutzer zugänglich zu machen. Dies hat zur Folge, dass die Entwicklung schwierig ist und das Programm nur schwer aufrechtzuerhalten ist. Die clientseitige Programmierung wäre viel einfacher, wenn der clientseitige Code nicht mehr so ​​stark auf HTML-Formularen basieren würde. Wenn die Middle-Tier-Komponente durch einen Webdienst ersetzt wird, kann die Middle-Tier-Komponente direkt über die Benutzeroberfläche aufgerufen werden, wodurch der Schritt der Erstellung einer ASP-Seite entfällt. Um den Webdienst aufzurufen, können Sie direkt einen SOAP-Client wie Microsoft SOAP Toolkit oder .net verwenden oder einen selbst entwickelten SOAP-Client verwenden und diesen dann mit der Anwendung verbinden. Dies verkürzt nicht nur den Entwicklungszyklus, sondern reduziert auch die Codekomplexität und verbessert die Wartbarkeit der Anwendung. Gleichzeitig muss die Anwendung nicht mehr bei jedem Aufruf der Middle-Tier-Komponente zur entsprechenden „Ergebnisseite“ springen.

2. Anwendungsintegration

Entwickler von Unternehmensanwendungen wissen alle, dass Unternehmen oft verschiedene Programme integrieren, die in verschiedenen Sprachen geschrieben sind und auf verschiedenen Plattformen laufen, und dass diese Integration viel kosten wird Entwicklungsaufwand. Anwendungen müssen häufig Daten von einem Programm abrufen, das auf einem Host ausgeführt wird, oder Daten an den Host oder andere Plattformanwendungen senden. Selbst auf derselben Plattform muss häufig verschiedene Software verschiedener Softwareanbieter integriert werden. Über Webdienste können Anwendungen Standardmethoden verwenden, um Funktionen und Daten für die Verwendung durch andere Anwendungen „offenzulegen“.

XML-Webdienste bieten die Möglichkeit, Nachrichten mithilfe von Standardprotokollen (HTTP, XML, SOAP und WSDL) in einer lose gekoppelten Umgebung auszutauschen. Nachrichten können strukturiert, typisiert oder lose definiert sein.

3. B2B-Integration

B2B bezieht sich auf Business-to-Business, wie bei Unternehmen, die mit anderen Unternehmen Geschäfte machen, Business (bezieht sich im Allgemeinen auf Business)-to-Business-E-Commerce, also Business-to-Business Unternehmen tauschen Produkte, Dienstleistungen und Informationen über das Internet aus. Laienhaft ausgedrückt bedeutet dies, dass sowohl die Angebots- als auch die Nachfrageseite von E-Commerce-Transaktionen Händler (oder Unternehmen, Unternehmen) sind und Internettechnologie oder verschiedene Unternehmensnetzwerkplattformen nutzen, um den Prozess von Geschäftstransaktionen abzuschließen.

Webservice ist der Schlüssel zur erfolgreichen B2B-Integration. Über Web Service können Unternehmen wichtige Geschäftsanwendungen einfach bestimmten Lieferanten und Kunden „offenlegen“. Web Service läuft im Internet und kann überall auf der Welt problemlos implementiert werden, und die Betriebskosten sind relativ niedrig. Webservice ist nur ein wichtiger Teil der B2B-Integration, und viele andere Teile sind erforderlich, um die Integration zu erreichen. Der größte Vorteil der Verwendung von Webdiensten zur Implementierung der B2B-Integration besteht darin, dass Interoperabilität problemlos erreicht werden kann. Solange die Geschäftslogik „offengelegt“ ist und zu einem Webdienst wird, kann jeder designierte Partner diese Geschäftslogik aufrufen, unabhängig davon, auf welcher Plattform sein System läuft oder welche Entwicklungssprache er verwendet. Dies reduziert den Zeit- und Kostenaufwand für die B2B-Integration erheblich.

4. Wiederverwendung von Software und Daten

Der Webdienst kann die Daten hinter dem Code wiederverwenden und gleichzeitig die Wiederverwendung von Code ermöglichen. Mit Web Service müssen Sie nicht mehr wie bisher Softwarekomponenten von einem Drittanbieter kaufen und installieren und diese Komponenten dann aus der Anwendung aufrufen, sondern nur noch den Remote-Webservice direkt aufrufen. Eine weitere Situation der Software-Wiederverwendung besteht darin, die Funktionen mehrerer Anwendungen zu integrieren und sie über einen Webdienst „offenzulegen“. Sie können alle diese Funktionen problemlos in Ihre Portal-Site integrieren und Benutzern eine einheitliche, benutzerfreundliche Oberfläche bieten. Sie können die von Webdiensten Dritter bereitgestellten Funktionen in Ihrer Anwendung verwenden oder Ihre eigenen Anwendungsfunktionen über den Webdienst anderen zur Verfügung stellen. In beiden Fällen können der Code und die Daten hinter dem Code wiederverwendet werden.

Wie aus der obigen Diskussion hervorgeht, ist der Webdienst am nützlichsten, wenn Interoperationen oder Fernaufrufe über das Web durchgeführt werden. Es gibt jedoch auch Situationen, in denen Web Services überhaupt keine Vorteile bringen können:

1. Eigenständige Anwendungen

Derzeit nutzen Unternehmen und Einzelpersonen immer noch viele Desktop-Anwendungen. Einige von ihnen müssen lediglich mit anderen Programmen auf der Maschine kommunizieren. In diesem Fall ist es am besten, keinen Webdienst zu verwenden, sondern einfach die lokale API zu verwenden. COM ist für die Arbeit in dieser Situation ideal, da es klein und schnell ist. Das Gleiche gilt für Serversoftware, die auf demselben Server läuft. Natürlich kann in diesen Situationen auch Web Service eingesetzt werden, aber das würde nicht nur zu viel verbrauchen, sondern auch keinen Nutzen bringen.

2. Einige Anwendungen im LAN

In vielen Anwendungen verwenden alle Programme COM unter der Windows-Plattform und laufen im selben LAN. In diesen Programmen ist die Verwendung von DCOM wesentlich effizienter als SOAP/HTTP. Wenn ein .net-Programm eine Verbindung zu einem anderen .net-Programm im LAN herstellen möchte, sollte ebenfalls .net Remoting verwendet werden. Tatsächlich können Sie in .net Remoting auch die Verwendung von SOAP/HTTP für Webdienstaufrufe festlegen. Es ist jedoch besser, RPC-Aufrufe direkt über TCP durchzuführen, was wesentlich effizienter ist.

1.3. Anwendung des XML-Webdienstes

1. Der anfängliche XML-Webdienst ist normalerweise eine Informationsquelle, die einfach in die Anwendung integriert werden kann, wie z. B. Aktienkurse, Wettervorhersagen, Sportergebnisse , usw. .

2. Durch die Bereitstellung bestehender Anwendungen als XML-Webdienste können Sie neue, leistungsfähigere Anwendungen erstellen und XML-Webdienste als Bausteine ​​nutzen.

Benutzer können beispielsweise eine Beschaffungsanwendung entwickeln, um automatisch Preisinformationen von verschiedenen Lieferanten zu erhalten, sodass Benutzer Lieferanten auswählen, Bestellungen aufgeben und dann den Warenversand bis zum Erhalt verfolgen können. Neben der Bereitstellung von Diensten im Web kann die Anwendung des Lieferanten auch den XML-Webdienst nutzen, um die Kreditwürdigkeit des Kunden zu prüfen, Zahlungen einzuziehen und Frachtvorgänge mit dem Frachtunternehmen abzuwickeln.

SOAP-Nachrichtenformat:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
 
<soap:Header>
  <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>
 
 
<soap:Body>
  <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>
</soap:Envelope>


Weitere Artikel zum Funktionsprinzip von Webdiensten finden Sie unter die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn