Heim > Java > javaLernprogramm > Wie Webservice Schnittstellenaufrufe und Objektübertragungen zwischen Springboot-Projekten implementiert

Wie Webservice Schnittstellenaufrufe und Objektübertragungen zwischen Springboot-Projekten implementiert

WBOY
Freigeben: 2023-06-03 12:09:06
nach vorne
1794 Leute haben es durchsucht

1. Baidu Encyclopedia

Web Service ist eine plattformunabhängige, niedrig gekoppelte, eigenständige, programmierbare webbasierte Anwendung, die den offenen XML-Standard (eine Teilmenge der Standard Universal Markup Language) verwenden kann. Entdecken, koordinieren und konfigurieren Sie diese Anwendungen, um verteilte, interoperable Anwendungen zu entwickeln.

Web-Service-Technologie ermöglicht es verschiedenen Anwendungen, die auf unterschiedlichen Maschinen laufen, Daten auszutauschen oder miteinander zu integrieren, ohne dass zusätzliche, spezialisierte Software oder Hardware von Drittanbietern erforderlich ist. Nach Web-Service-Spezifikationen implementierte Anwendungen können Daten untereinander austauschen, unabhängig von der verwendeten Sprache, Plattform oder dem internen Protokoll. Web Service ist ein eigenständiges, selbstbeschreibendes Modul, das im Netzwerk verwendet werden kann und bestimmte Geschäftsfunktionen ausführen kann. Webdienste lassen sich auch einfach bereitstellen, da sie auf einigen herkömmlichen Industriestandards und vorhandenen Technologien wie XML und HTTP basieren, einer Teilmenge der standardmäßigen universellen Auszeichnungssprache. Web Services reduzieren die Kosten für Anwendungsschnittstellen. Webdienste bieten einen gemeinsamen Mechanismus zur Integration von Geschäftsprozessen in einem Unternehmen oder sogar zwischen mehreren Organisationen.

2. Technischer Support für Webservice

Um die Erstellung verteilter Anwendungen zu realisieren, muss die Webservice-Plattform eine Reihe von Protokollen übernehmen. Jede Plattform verfügt über eine eigene Datendarstellungsmethode und ein eigenes Typsystem. Um Interoperabilität zu erreichen, muss die Web-Service-Plattform ein Standardtypsystem für die Kommunikation verschiedener Typsysteme in verschiedenen Plattformen, Programmiersprachen und Komponentenmodellen bereitstellen. Diese Protokolle sind:

1, XML und XSD

XML ist eine Auszeichnungssprache, die zum Markieren elektronischer Dokumente verwendet wird, um sie strukturell zu gestalten, und das Grundformat für die Darstellung von Daten in der Web-Service-Plattform. Neben der einfachen Erstellung und Analyse besteht der Hauptvorteil von XML darin, dass es sowohl plattform- als auch herstellerunabhängig ist. XML folgt den grammatikalischen Anforderungen der W3C-Spezifikation, trennt Form und Inhalt, verfügt über eine gute Selbstbeschreibung, ist leicht zu erweitern und verfügt über eine umfangreiche Entwicklungsbibliothek von Drittanbietern, wodurch es sich sehr gut für die Informationsübertragung zwischen Systemen unterschiedlicher Architektur eignet. Mit der zunehmenden Verbreitung von XML hat sich XML aufgrund seiner Vorteile in vielen Anwendungsszenarien zum De-facto-Standard für den Datenaustausch entwickelt. XML wurde vom World Wide Web Consortium (W3C) erstellt. Das vom W3C entwickelte XML SchemaXSD definiert eine Reihe von Standarddatentypen und stellt eine Sprache zur Erweiterung dieser Datentypen bereit.
Die Web-Service-Plattform verwendet XSD als Datentypsystem. Wenn Sie eine Sprache wie VB. NET oder C# verwenden, um einen Webdienst zu erstellen, müssen alle von Ihnen verwendeten Datentypen in XSD-Typen konvertiert werden, um dem Webdienststandard zu entsprechen. Wenn Sie möchten, dass es zwischen verschiedenen Organisationen auf unterschiedlichen Plattformen und unterschiedlicher Software bereitgestellt wird, müssen Sie es auch in etwas verpacken. Dieses Ding ist ein Protokoll, wie SOAP.

2. SOAP

SOAP ist ein einfaches Protokoll zum Austausch von XML-codierten Informationen (eine Teilmenge der Standard Universal Markup Language). zwischen Benutzern ist eine gängige Implementierungsform von Webdiensten. Es besteht aus drei Hauptaspekten: Der XML-Umschlag definiert einen Rahmen zur Beschreibung des Informationsinhalts und zur Verarbeitung des Inhalts, Regeln für die Kodierung von Programmobjekten in XML-Objekte und Konventionen für die Ausführung von Remote Procedure Calls (RPC). SOAP kann über jedes andere Transportprotokoll ausgeführt werden.

SOAP definiert ein auf dem HTTP-Protokoll basierendes Framework, das beschreibt, was in der Nachricht enthalten ist, wer sie gesendet hat, wer sie annehmen und verarbeiten soll und wie sie verarbeitet werden soll. Es standardisiert Datenformate durch die Definition von SOAP-Umschlägen (Envelops), kapselt XML-Daten in Umschlägen für den Informationsaustausch und ermöglicht die Interoperabilität zwischen heterogenen Systemen.
Web Service hofft zu erkennen, dass verschiedene Systeme sich durch „Software-Software-Dialog“ gegenseitig anrufen können, um die Inkompatibilität zwischen Softwareanwendungen, Websites und verschiedenen Geräten zu beseitigen und das Ziel einer „nahtlosen Integration basierend auf dem Web“ zu erreichen.

3. WSDL

Web Service Description Language WSDL ist ein formales Beschreibungsdokument, das auf maschinenlesbare Weise bereitgestellt wird und auf XML (einer Teilmenge der Standard Universal Markup Language) basiert. Es wird zur Beschreibung von Webdiensten und ihren Funktionen verwendet . , Parameter und Rückgabewerte. Da WSDL auf XML basiert, ist es sowohl maschinenlesbar als auch menschenlesbar.

4. UDDI

Der Zweck von UDDI besteht darin, Standards für den E-Commerce zu etablieren; Unternehmen können den von Ihnen bereitgestellten Webdienst registrieren, damit andere Unternehmen die Implementierungsstandards des Zugriffsprotokolls entdecken können.

5. Aufrufen von RPC und Messaging

Der Webdienst selbst implementiert tatsächlich die Kommunikation zwischen Anwendungen. Wir können die Kommunikation zwischen Anwendungen auf zwei Arten erreichen: Remote Procedure Calls (RPC) und Message Passing. Bei der Verwendung von RPC besteht das Konzept eines Clients darin, eine Remote-Prozedur auf dem Server aufzurufen, normalerweise durch Instanziieren eines Remote-Objekts und Aufrufen seiner Methoden und Eigenschaften. Das RPC-System versucht, eine Art Positionstransparenz zu erreichen: Der Server legt die Schnittstelle des Remote-Objekts offen und der Client verhält sich so, als ob die Schnittstelle dieser Objekte lokal verwendet würde. Dadurch werden die zugrunde liegenden Informationen ausgeblendet und der Client benötigt sie nicht alle. Wissen Sie, auf welcher Maschine sich das Objekt befindet.

3. Anwendungsszenarien und Nachteile von Webservices ein heikles Problem sein. Denn zwischen Client und Server befindet sich in der Regel eine Firewall oder ein Proxyserver. In diesem Fall ist die Verwendung von DCOM nicht so einfach und es ist normalerweise nicht bequem, das Clientprogramm für eine so große Anzahl von Benutzern zu veröffentlichen. Der traditionelle Ansatz besteht darin, den Browser als Client zu verwenden, viele ASP-Seiten zu schreiben und die mittlere Schicht der Anwendung dem Endbenutzer zugänglich zu machen. Dies hat zur Folge, dass die Entwicklung schwierig ist und das Programm nur schwer aufrechtzuerhalten ist.

Wenn die Middle-Tier-Komponente durch WebService 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 WebService aufzurufen, können Sie direkt einen SOAP-Client wie MicrosoftSOAP 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. Die Anwendung muss nicht bei jedem Aufruf einer Middle-Tier-Komponente zur entsprechenden „Ergebnisseite“ navigieren.

Entwickler von Unternehmensanwendungen wissen alle, dass Unternehmen oft verschiedene Programme integrieren müssen, die in verschiedenen Sprachen geschrieben sind und auf verschiedenen Plattformen laufen, und dass diese Integration viel Entwicklungsaufwand kosten wird. Anwendungen müssen häufig Daten von Programmen abrufen, die auf dem IBM-Mainframe ausgeführt werden, oder Daten an den Mainframe oder UNIX-Anwendungen senden. Oftmals müssen verschiedene Softwareprogramme auf derselben Plattform integriert werden, auch wenn diese von unterschiedlichen Softwareanbietern stammen. Andere Anwendungen können Standardmethoden verwenden, um auf die über den WebService bereitgestellten Funktionen und Daten zuzugreifen.

Stärke 2: Anwendungsintegration

Anwendungsentwickler auf Unternehmensebene wissen alle, dass Unternehmen häufig verschiedene Programme integrieren, die in verschiedenen Sprachen geschrieben sind und auf verschiedenen Plattformen ausgeführt werden, und dass diese Integration einen großen Entwicklungsaufwand erfordert. Anwendungen müssen häufig Daten von Programmen abrufen, die auf dem IBM-Mainframe ausgeführt werden, oder Daten an den Mainframe oder UNIX-Anwendungen senden. Oftmals müssen verschiedene Softwareprogramme auf derselben Plattform integriert werden, auch wenn diese von unterschiedlichen Softwareanbietern stammen. Andere Anwendungen können Standardmethoden verwenden, um auf die über den WebService bereitgestellten Funktionen und Daten zuzugreifen.

Zum Beispiel gibt es ein Bestell-Login-Programm, mit dem neue Bestellungen von Kunden erfasst werden, einschließlich Kundeninformationen, Lieferadresse, Menge, Preis und Zahlungsmethode. Außerdem gibt es ein Bestellausführungsprogramm, mit dem der Versand tatsächlicher Waren verwaltet wird. Die beiden Programme stammen von unterschiedlichen Softwareanbietern. Wenn eine neue Bestellung eintrifft, benachrichtigt das Auftragseingabeprogramm das Auftragsausführungsprogramm, die Ware zu versenden. Durch das Hinzufügen einer WebService-Ebene über dem Auftragsausführungsprogramm kann das Auftragsausführungsprogramm die Funktion „AddOrder“ „offenlegen“. Auf diese Weise kann das Bestell-Login-Programm bei jedem Eingang einer neuen Bestellung diese Funktion aufrufen, um die Ware zu versenden.

Funktion 3: B2B-IntegrationDurch die Verwendung von WebService zur Integration von Anwendungen kann die unternehmensinterne Geschäftsabwicklung stärker automatisiert werden. Aber was passiert, wenn Transaktionen sich über Lieferanten und Kunden erstrecken und die Grenzen des Unternehmens überschreiten? Die unternehmensübergreifende Integration von Geschäftstransaktionen wird oft als B2B-Integration bezeichnet.

WebService ist der Schlüssel zur erfolgreichen B2B-Integration. Über WebService können Unternehmen wichtige Geschäftsanwendungen bestimmten Lieferanten und Kunden „zugänglich machen“. Durch die „Offenlegung“ des elektronischen Bestellsystems und des elektronischen Rechnungssystems können Kunden beispielsweise Bestellungen elektronisch senden und Lieferanten können Rohstoffeinkaufsrechnungen elektronisch senden. Natürlich ist das kein neues Konzept, EDI (Electronic Document Interchange) gibt es schon seit langem. Die Implementierung von WebService ist jedoch viel einfacher als bei EDI. WebService läuft im Internet und kann überall auf der Welt problemlos implementiert werden, sodass die Betriebskosten relativ niedrig sind. Allerdings ist WebService keine Komplettlösung für den Dokumentenaustausch oder die B2B-Integration wie EDI. Um die Integration zu erreichen, sind neben WebService viele weitere Komponenten erforderlich.

Der größte Vorteil der Verwendung von WebService zur Implementierung der B2B-Integration besteht darin, dass Interoperabilität problemlos erreicht werden kann. Solange die Geschäftslogik „offengelegt“ ist und zu einem WebService 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 und ermöglicht vielen kleinen und mittleren Unternehmen, die sich EDI nicht leisten können, die B2B-Integration.

Wiederverwendung von Software und Daten„Die Wiederverwendung von Software ist ein bedeutendes Thema mit vielen Formen und unterschiedlichem Umsetzungsgrad.“ Die einfachste Form ist die Wiederverwendung von Quellcodemodulen oder Klassenebene, die andere Form ist die Wiederverwendung von binären Formularkomponenten.

Derzeit nehmen wiederverwendbare Softwarekomponenten wie Tabellensteuerelemente oder Benutzeroberflächensteuerelemente einen großen Marktanteil ein. Die Wiederverwendung dieser Art von Software ist sehr restriktiv, da sie auf Code beschränkt ist und Daten nicht wiederverwendet werden können. Der Grund dafür ist, dass es einfacher ist, Komponenten und sogar Quellcode zu veröffentlichen, aber es ist nicht so einfach, Daten zu veröffentlichen, es sei denn, es handelt sich um statische Daten, die sich nicht häufig ändern.

Während der Wiederverwendung von Code kann webService auch den Code hinter den Daten wiederverwenden. Mit WebService 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 aufrufen. Um beispielsweise die vom Benutzer in der Anwendung eingegebene Adresse zu bestätigen, müssen Sie die Adresse nur direkt an den entsprechenden WebService senden. Dieser WebService hilft Ihnen, die Straße, die Stadt, die Provinz, die Postleitzahl und andere Informationen zur Bestätigung zu überprüfen Adresse. Liegt sie im entsprechenden Postleitzahlgebiet? Der Anbieter von WebService kann den Dienst auf Basis der Zeit oder der Anzahl der Nutzungen abrechnen. Es ist unmöglich, einen solchen Dienst durch Wiederverwendung von Komponenten zu implementieren. In diesem Fall müssen Sie eine Datenbank herunterladen und installieren, die Informationen wie Straßenadressen, Städte, Provinzen und Postleitzahlen enthält. Diese Datenbank kann nicht in Echtzeit aktualisiert werden.

Eine weitere Situation der Software-Wiederverwendung besteht darin, die Funktionen mehrerer Anwendungen zu integrieren. Sie möchten beispielsweise eine Portalanwendung im LAN erstellen, damit Benutzer FedEx-Pakete überprüfen, die Börsenbedingungen überprüfen, ihre eigenen Zeitpläne verwalten und Kinokarten online kaufen können. Mittlerweile gibt es viele Anwendungsanbieter im Web, die alle diese Funktionen in ihren Anwendungen implementiert haben. Sobald sie diese Funktionen über WebService „offengelegt“ haben, können sie alle diese Funktionen problemlos in Ihre Portal-Site integrieren und den Benutzern eine einheitliche und benutzerfreundliche Oberfläche bieten.

Zukünftig werden viele Anwendungen WebService verwenden, um die aktuelle komponentenbasierte Anwendungsstruktur zu einer Komponenten/WebService-Hybridstruktur zu erweitern. Sie können die von Drittanbietern bereitgestellten WebService-Funktionen in der Anwendung verwenden oder Ihre eigene Anwendung hinzufügen Funktionen, die anderen über WebService bereitgestellt werden. In beiden Fällen können der Code und die Daten hinter dem Code wiederverwendet werden.

2. Nachteile des Webservices

Nachteil 1: Eigenständige Anwendung

Derzeit nutzen Unternehmen und Privatpersonen immer noch viele Desktop-Anwendungen. Einige von ihnen müssen lediglich mit anderen Programmen auf der Maschine kommunizieren. In diesem Fall ist es besser, die lokale API zu verwenden und die Verwendung von WebService zu vermeiden. 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. Am besten verwenden Sie COM oder andere lokale APIs direkt, um Aufrufe zwischen Anwendungen durchzuführen. Obwohl WebService auch für diese Szenarien geeignet ist, verbraucht es viele Ressourcen und bringt keine wesentlichen Vorteile.

Schwäche 2: Isomorphe Anwendungen im LAN
In vielen Anwendungen werden alle Programme mit VB oder VC entwickelt, alle verwenden COM unter der Windows-Plattform und alle laufen im selben LAN. Beispielsweise gibt es zwei Serveranwendungen, die miteinander kommunizieren müssen, oder es gibt ein Win32- oder WinForm-Clientprogramm, das eine Verbindung zu einem anderen Serverprogramm im LAN herstellen möchte. 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. Interessanterweise können Sie beim .NET-Remoting auch angeben, dass SOAP/http zum Durchführen von WebService-Aufrufen verwendet werden soll. Es ist jedoch besser, RPC-Aufrufe direkt über TCP durchzuführen, was wesentlich effizienter ist.

Kurz gesagt: Solange es andere Methoden gibt, die aus Sicht der Anwendungsstruktur effektiver und praktikabler sind als WebService, sollten Sie WebService nicht verwenden.

4. Webservice-Codebeispiele

Realisieren Sie die Schnittstellenmobilisierung zwischen verschiedenen Projekten und übertragen Sie Objektdaten über Webservice~

Serverprojektcode

1, pom

<!--webservice-->
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web-services</artifactId>
 </dependency>
 <dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-rt-frontend-jaxws</artifactId>
     <version>3.1.12</version>
 </dependency>
 <dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-rt-transports-http</artifactId>
     <version>3.1.12</version>
 </dependency>
Nach dem Login kopieren

2, Konfigurationskonfigurationsklasse

package com.guor.config;

import com.guor.service;
import com.guor.service.implImpl;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.xml.ws.Endpoint;

@Configuration
public class CxfConfig {

    @Bean
    public ServletRegistrationBean createServletRegistrationBean() {
        return new ServletRegistrationBean(new CXFServlet(), "/WebService/*");
    }

    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Bean
    public WebService myService() {
        return new WebServiceImpl();
    }

    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), myService());
        endpoint.publish("/api");
        return endpoint;
    }

}
Nach dem Login kopieren

3, Schnittstelle

package com.guor.service;

import com.guor.entity.dto.User;

import javax.jws;

@WebService(name = "WebService", // 暴露服务名称
        targetNamespace = "http://service.guor.com"// 命名空间,一般是接口的包名倒序
)
public interface WebService {

    User sendInfo(User user);
}
Nach dem Login kopieren
Nach dem Login kopieren
rrree

Client Projektcode:

1. Erstellen Sie eine identische Schnittstelle

package com.guor.service.impl;

import com.guor.entity.dto.User;
import com.guor.service;
import org.springframework.stereotype.Service;

import javax.jws;


@WebService(serviceName = "WebService", // 与接口中指定的服务name一致
        targetNamespace = "http://service.guor.com", // 与接口中的命名空间一致,一般是接口的包名倒
        endpointInterface = "com.guor.service"// 接口地址
)
@Service
public class WebServiceImpl implements WebService {

    @Override
    public User sendInfo(User user) {
        return user;
    }
}
Nach dem Login kopieren

package com.guor.service;

import com.guor.entity.dto.User;

import javax.jws;

@WebService(name = "WebService", // 暴露服务名称
        targetNamespace = "http://service.guor.com"// 命名空间,一般是接口的包名倒序
)
public interface WebService {

    User sendInfo(User user);
}
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie Webservice Schnittstellenaufrufe und Objektübertragungen zwischen Springboot-Projekten implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage