2011-01-12 30 views

Antwort

7

Sie nicht so populär heute als moderne Java- oder .NET-Architekturen sind normalerweise tun diese Art der Sache HTTP-basierte Web-Dienste.

Allerdings verwenden viele Systeme diese Architekturen und sie sind effizienter als Web-Service-Architekturen, da sie normalerweise UDP-basierte Kommunikationsprotokolle verwenden. Während diese Architekturen heute noch verwendet werden, sind sie in der Praxis meist auf Legacy- und Nischenmarktsysteme beschränkt.

In einigen Fällen wird RMI hinter den Kulissen in Java-App-Servern verwendet. Ein Bean-Container kann beispielsweise von einem Webanwendungsserver auf einen separaten Server verschoben werden. Java-App-Server machen dies ziemlich transparent - der Bean-Container kann sich auf demselben Server über lokale Aufrufe oder auf einem anderen Server über RMI befinden. Mit der richtigen Anwendungsarchitektur ist es nur ein Konfigurationselement, und der Anwendungsserver kann alle Remoting-Vorgänge hinter den Kulissen ausführen.

DCOM wird ähnlich mit COM + -Apps verwendet. COM + ist jedoch größtenteils eine Legacy-Architektur unter Windows. Es war beliebt bei VB6, aber das ist alles andere als veraltet.

CORBA hatte aufgrund seiner Design-by-Committee-Wurzeln einen etwas verdienten Ruf für Komplexität. Es taucht jedoch an vielen unerwarteten Orten auf. Zum Beispiel verwendeten frühere Versionen von GNOME ein auf CORBA basierendes Komponentenmodell namens Bonobo, das jedoch in den aktuellen Versionen weitgehend durch D-BUS ersetzt wurde. Abgesehen von der alten Systeminfrastruktur hat es einige Nischenmärkte (meist Anwendungen mit geringer Latenz), die von seinen Eigenschaften wie dem UDP-basierten Transportmechanismus profitieren.

+3

AFAIK CORBA IIOP verwendet TCP und nicht UDP. –

+0

Viele CORBA-Implementierungen lassen Sie den Transport aus dem Standard-TCP auslagern. Auf diese Weise können Sie UDP, Shared Memory oder einen anderen betriebssystemspezifischen Mechanismus als zugrunde liegenden Transport verwenden. Ein Grund, warum CORBA noch heute verwendet wird, ist, dass es sowohl ein Objektmodell als auch einen binären Over-the-Wire-Transport bietet, was Effizienzgewinne ermöglicht, die Sie nicht mit einem Web-Service erhalten. –

+0

@Brian - Wäre interessant * welche * CORBA-Implementierungen lassen Sie den Transport von TCP wechseln. In der Tat, ich habe gerade eine Frage dazu hinzugefügt: http://StackOverflow.com/Questions/4886243/What-Transport-Schichten-other-than-tcp-support-von-existing-Corba-Implementati –

1

Java EE EJBs noch RMI und CORBA als Wire-Protokoll verwenden.

Vielleicht ein Grund ist, warum HTTP Web-Services, sie SOAP auf RPC-XML, basieren oder REST sind aufsteigend. Einfach und offen gewinnen normalerweise.