3 Stimmen

Webdienste oder benutzerdefiniertes Protokoll?

Ich habe keine Erfahrung mit Web-Services. Historisch gesehen habe ich Client-Server-Systeme mit proprietären Kommunikationsprotokollen aufgebaut (auch wenn sie zufällig XML verwenden). Gerade habe ich ein paar Stunden damit verbracht, Axis2 zu untersuchen, und mir lief ein Schauer über den Rücken. Die Lernkurve von WS macht mir Angst, und wenn ich all dieses XML um so wenig Funktionalität herum sehe, frage ich mich, ob es die Mühe wert ist.

Wie entscheiden Sie, ob Sie Web-Services oder ein benutzerdefiniertes Kommunikationsprotokoll verwenden müssen? Was sind die Vor- und Nachteile jeder Herangehensweise und für welche Anwendungsfälle eignen sie sich am besten?

Bitte veröffentlichen Sie eine klare Richtlinie, keine Meinungsäußerung :)

4voto

pjz Punkte 39845

Erstellen Sie RESTful Web-APIs; dann erhalten Sie viele automatische Caching- und andere Vorteile, die Sie nicht erhalten, wenn Sie andere Methoden verwenden (SOAP, XML-RPC usw.)

Sehen Sie sich diesen Beitrag für weitere Details an

Ein weiterer Vorteil ist, dass Sie, wenn Sie eine RESTful-API für Ihren Code erstellen, Ihren Benutzern möglicherweise ebenfalls die Vorteile ermöglichen können - sie haben oft Verwendungen für Ihr Produkt, an die Sie nie gedacht haben.

1voto

dirtside Punkte 7926

„Web Services“, wie vom W3C definiert, bedeutet die Verwendung von SOAP über HTTP. SOAP ist in den meisten Fällen übertrieben; es ist wirklich nur angemessen (meiner Meinung nach), wenn Sie einen öffentlichen Dienst für die Welt verfügbar machen, wie z.B. eine API zur Interaktion mit Ihrer Website.

Alles andere (insbesondere interne, private Kommunikation) benötigt selten etwas Komplexeres als XML-RPC. Nur wenn die Leistung ein Problem ist, sollten Sie ein komprimierteres Protokoll in Betracht ziehen; XML-RPC ist so einfach und weit verbreitet, dass der Entwicklungsaufwand und das Debugging mehr als den Leistungsverlust durch die Verwendung von aufgeblähtem alten XML ausgleichen.

1voto

Dr8k Punkte 1088

Denken Sie daran, dass es viele Frameworks gibt, die die Programmierung von Webservices zu einer sehr trivialen Angelegenheit machen. In der VB / C# Welt macht .Net es zu einer Freude. Ich bin mir nicht wirklich sicher über spezifische Frameworks für andere Sprachen, aber ich bin sicher, dass die meisten zumindest eins haben.

Die Standardisierung und Einfachheit der Implementierung und Wiederverwendung von Webservices machen sie sehr attraktiv. Wie bereits erwähnt - ja, sie machen die Kommunikation sehr umfangreich. Wenn Sie sich darüber Sorgen machen, warum berechnen Sie nicht, wie viele Daten Sie tatsächlich übertragen werden. Wahrscheinlich wird es mit den aktuellen Netzwerk- und Internetgeschwindigkeiten trivial sein - auch mit dem XML-Overhead.

1voto

Mark Nold Punkte 5482

Ich würde die benutzerdefinierten Datenformate immer als letzten Ausweg und nicht als ersten verwenden. Welche weit verbreitete Methode Sie verwenden, liegt bei Ihnen, aber es ist unwahrscheinlich, dass Sie mit dem Web Services-Modell falsch liegen.

Wartbarkeit und Erweiterbarkeit sind die Hauptvorteile. Durch die Verwendung weit verbreiteter Technologien wird Ihre Lösung für andere einfacher zu verstehen sein, zusätzlich können Sie einsatzbereite Bibliotheken als Verbraucher und Anbieter verwenden.

0voto

Adam Pierce Punkte 32051

Ich habe kürzlich meine Angewohnheit gebrochen, benutzerdefinierte Protokolle zu verwenden. Ich verwende jetzt Apache auf der Server-Seite und libCurl sowie libxml2, um das XML auf der Client-Seite zu laden und zu analysieren, das in C++ geschrieben ist.

Die Server-Seite kann entweder PHP oder ein CGI sein, das in einer ernsthafteren Sprache geschrieben ist. Es kommt darauf an, was du machen möchtest.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X