SOAP – Corba – XML RPC – RMI

Dieses ist bereits der zweite Beitrag vom elancer-team mit Bezug zu Remote Procedure Calls, wobei wir diesmal das Thema RPC unter dem Gesichtspunkt der Entscheidungshilfe aufgreifen möchten und die bisherige Entwicklung innerhalb der RPC Technologie rund um SOAP, CORBA oder auch XML RPC betrachten. Wie bereits aufgezeigt, geht es bei den Remote Procedure Calls um die Kommunikation zwischen verteilten Rechnern und eine Form des Datenaustauschs, bei dem lokale Anwendungen entfernten Code über das Internet auf einem Server ausführen lassen. RPC versteht sich dabei nicht als browsergebundene Online Applikation, sondern viel eher als eine in Java, C++ oder CSharp geschriebene Client-Server Anwendung, die entfernte Datenbanken abruft, Berechnungen outsourct oder aber auch Updates für das lokale Client Programm nachlädt. Warum aber mit CORBA, RMI, XML-RPC und SOAP gleich mehrere Standards bezüglich RPC bestehen und worin die Vorteile hinsichtlich der Kontrolle von Datenfluss und Transaktion bestehen, möchte Ihnen das elancer-team im Folgenden aufzeigen.

CORBA (COMMON OBJECT REQUEST BROKER ARCHITECTURE)

Bei CORBA handelt es sich um einen der ältesten RPC Mechanismen für verteilte Anwendungen und eine allgemeine Architektur für die Vermittlung von Objekt-Anforderungen. CORBA ermöglicht damit erstmalig eine objektorientierte Programmierung von Middleware und Netzwerken, die sprach- und plattformübergreifend funktioniert. Im Kern steht dabei mit dem ORB (Objekt Broker Request) eine Komponente, die seitens der Software Hersteller oder Communities  als Implementierungen zu ihren Produkten bereitgestellt wird und von dem Programmierer, mittels einer IDL (Interface und Definition Language) für die Spezifizierung der Daten-Schnittstellen seiner Anwendung verwendet wird. Diese Besonderheit von CORBA erlaubt es dem Webentwickler, Abstrakte und Infrastrukturen jeglicher Art miteinander zu verbinden und gestattet darüber hinaus die Codegenerierung von Stub- und Skeletton Vermittler Pattern, um hintergründige Komplexität zu verbergen.

Seine Interoperabilität machte Corba Mitte der 90er zum Star der Internetarchitekturen und bildet ebenfalls die Basis für den Erfolg von JAVA und seiner RMI Implementierung1. Das, was den allgemeinen Erfolg von der Common Object Request Broker Architektur vorläufig stoppte, war die rasante und stark fragmentierte Entwicklung des Webs und die darin begründete Tatsache, dass viele Hersteller einem Support von CORBA nicht mehr gewachsen waren. Obwohl seinerzeit  Einzellösungen, basierend auf  Browser, HTTP, CGI, Java und EJB (Enterprise Java Beans) den Markt für CORBA schwächten, sind ORB, IDL und RMI heute nach wie vor im Gespräch und Bestandteil vieler, auch aktueller Lösungen.

Du brauchst Hilfe?

  • Wir sind erfahrene Web-Entwickler und Web-Designer aus Köln. Seit Gründung im Jahr 2011 arbeiten wir für unsere Kunden regelmäßig mit PHP, Ruby on Rails in der Softwareentwicklung und WordPress.

  • Du musst nicht länger suchen, wir vermitteln dir bezahlbare Agentur-Leistungen. Gerne arbeiten unsere Webentwickler auch als Teil deines Teams.

  • Beschreibe uns doch kurz deinen Bedarf. Wir rufen dich zurück, wann immer du Zeit hast. Fragen zu Aufwand und Komplexität eines Projektes beantworten wir natürlich kostenlos.

Neugierig geworden?

Nimm jetzt Kontakt mit uns auf. Wir freuen uns auf dich.

XML RPC (KEINE KOMPROMISSE MEHR)

Eine Strategie für RPC auf Basis von XML (Extensible Markup Language) vereinigt in etwa das, was CORBA  fehlte. Dank XML liegt in den späten 90er ein Format vor, mit dem alle Entwickler auf ein einheitliches Verständnis orientieren können. Ohnehin als Metasprache konzipiert, schafft XML innerhalb von XML RPC somit klare und allgemein saubere Verhältnisse. Statt einer Kommunikation gebunden an Binärdaten und spezielle Übertragungskontrolle, gelingt es nun, Definitionen durch das universelle XML auszudrücken und das ohnehin vorhandene Hypertext Transfer Protocol (HTTP) für den Datenaustausch zu nutzen. Mit XML RPC existiert eine schlanke Lösung für die Realisierung von verteilten Systemen, die durch die vergleichbar einfache Lesbarkeit von XML weiterhin sprachliche und systemgebundene Unabhängigkeit bietet und mit den Annehmlichkeiten von Stubs und Skelettons vereint.

SOAP – (SIMPLE) OBJECT ACCESS PROTOCOL

1998 von Mircosoft entwickelt und ab 2000 durch IBM unterstützt, wurde SOAP 1.2 im Jahr 2003 vom W3C offiziell anerkannt. Seitdem wird auch auf das ursprüngliche Akronym verzichtet – als Framework zur Übertragung von beliebigen applikationsspezifischen Informationen2 ist SOAP inzwischen zu gewachsen und ausprägt.  Damit etabliert sich mit SOAP ein weiteres Netzwerkprotokoll, das ganz ähnlich wie CORBA den Datenaustausch zwischen unterschiedlichsten Systemen erlaubt und Remote Procedure Calls ausführt. Als unmittelbarer Nachfolger von XML-RPC basiert auch SOAP auf eine Nachrichtenversand mit XML, regelt darüber hinaus aber lediglich das Design der Abbildungen und Interpretation der Daten. Vorzüge einer Verwendung von SOAP sind etwa die Regulierbarkeit von Methodenaufrufen oder die Vergabe partieller Zugriffsrechte, z.B. Datenbankausschnitten. Technisch setzt SOAP dabei auf die bereits bewährte Kombination aus HTTP und TCP, kann neben einfachen Prozeduraufrufen aber auch für einen generellen Datenaustausch genutzt werden und ist zusammen mit Transportprotokollen wie FTP, SMTP oder JMS anwendbar.

SOAP, CORBA, XML-RPC ODER RMI ?

Eine eindeutige Beantwortung dieser Frage ist wahrlich nicht leicht und auch Skalierbarkeit, Wartbarkeit, Wandlungs- und Anpassungsfähigkeit sind hierbei nur einige Designfaktoren. SOAP liegt klar im Trend und ist die Standard Internetarchitektur der Gegenwart, der unter anderem auch Amazon und Ebay bei Ihren Suchanfragen das Vertrauen schenken. Die inzwischen zu verzeichnenden Sicherheitsanforderungen im Zusammenhang mit Firewalls, HTTP(S) und SSL tragen allerdings zu einem nicht ganz unwesentlichen Entwicklungsaufwand bei.XML-RPC als Ursprung von SOAP ist aber keineswegs als obsolet zu betrachten und kann sich in einem seiner zahlreichen Derivate (z.B. JSON-RPC) als durchaus praktikabel erweisen. Ob CORBA für die interne Systemlandschaft oder JAVA RMI für ein schnelles Prototyping – insgesamt und richtig angepackt – ist für alle etwas dabei.

Quellen

1 The Rise and Fall of CORBA
Wikipedia – SOAP
3 Sicherheit für SOAP mit Tomcat und AXIS
4 OMG – Object Management Group (Stand November 2011 – CORBA v.3.2)