Frage

Gibt es für ein heute beginnendes verteiltes Computerprojekt mit 0 Legacy-Komponenten gute Gründe, sich mit CORBA zu befassen?

War es hilfreich?

Lösung

Es gibt immer noch Situationen, in denen CORBA eine gute Antwort sein könnte:

  • , wenn Sie ein bauen verteilt System mit Beteiligung mehrere Programmierung Sprachen und mehr Plattformen,
  • , wenn Ihr System bringt Senden komplexe Datenstrukturen ... und SOAP nicht es schneiden,
  • , wenn Sie hohe Raten von Messaging haben ... und HTTP ist es nicht schneiden, oder
  • , wenn Sie interagieren mit bestehende CORBA-Clients und / oder Dienstleistungen.

Aber gesagt haben, dass es Alternativen gibt, die das tun, was CORBA tut, nur besser ... oder so behaupten sie. Zum Beispiel ZeroC ICE

Bearbeiten @fnieto in Chimes zu sagen (oder impliziert), dass ICE nicht frei, aber TAO ist.

Das ist ungenau und irreführend .

  1. ICE ist GPL'ed Software und steht zum kostenlosen Download zur Verfügung. Sie benötigten nur für ICE zu zahlen, wenn Sie / Ihr Unternehmen nicht mit den Bedingungen der GPL zu leben bereit. (Oder, wenn Sie Unterstützung benötigen.)
  2. I verwendet ICE als Beispiel für eine Alternative auf CORBA. TAO ist CORBA. Die ICE-Autoren machen glaubhaft, warum sie eine bessere Leistung von nicht in der CORBA-konform zu bekommen.
  3. TAO ist keineswegs die einzige freie / Open-Source-CORBA-Implementierung. Ich kann mich drei andere, aus der Spitze von meinem Kopf.

Die Kehrseite des ICE ist der Mangel an Interoperabilität mit CORBA-Middleware-Stacks, aber nach meiner Erfahrung der Interoperabilität der verschiedenen CORBA-Implementierungen auch problematisch sein könnte. (Dinge können in diesem Bereich verbessert haben ... aber ich habe keine CORBA Arbeit seit ~ 2002 getan, also bin ich ein bisschen aus der Berührung.)

Andere Tipps

Von den vorhandenen Antworten, bekommt diese in fast einem religiösen Thema. Man kann auf CORBA suchen die gleiche Weise wie die halb leer / halb vollen Glas: auf der einen Seite, CORBA ist datiert Vermächtnis cruft, und auf der anderen Seite ist es relativ stabil mit mehreren Implementierungen zur Verfügung und die „Teufel Sie wissen“ <. / p>

In meiner Arbeit, ich CORBA sehen in Embedded-Systemen eingesetzt, Echtzeitsysteme (CORBA hat RT-Erweiterungen), und dergleichen. Es gibt nicht viele Alternativen AFAIK.

Ein weiterer „Vorteil“ von CORBA ist die Verfügbarkeit von mehreren hochwertigen Open-Source-Implementierungen, zum Beispiel TAO, MICO, JacORB usw. mit unterschiedlichen Lizenz- und Support-Modelle. Darüber hinaus gibt es noch kommerzielle Editionen erhältlich.

Im Hinblick auf „die meist“ CORBA-Anwendungen in Java implementiert werden - das ist nicht der Fall in meiner Erfahrung. Während die Sprachzuordnung für CORBA Java eine der schönsten ist es (die viel sein kann nicht sagen), hat Java bereits ein sehr schönes verteilten Computermodell, das Reichtum über CORBA bietet, und alle Java-Anwendungen verwenden, die mehr als CORBA. Die überwiegende Mehrheit der CORBA Entwicklung ich gesehen habe, ist in C ++ (das ist auch das schlechteste Sprache Mapping).

Zu guter Letzt bietet CORBA standardisiertes asynchrones clientseitige Anrufungen in Form von AMI, aber nie asynchroner Bearbeitung auf der Server-Seite angeboten. TAO bietet eine Nicht-Standard-Server-seitige Implementierung namens AMH.

Ich glaube, dass Corba Art von Original EJB-Spezifikation wiederbelebt wurde, wie EJB kann leicht durch ein wenig Konfiguration in CORBA Bohnen gedreht werden. Ich vermute, dass die meisten Corba-Implementierungen wurden in Java tatsächlich umgesetzt werden.

In Bezug auf die Popularität, glaube ich, dass es vielleicht einige High-End-Implementierungen für eine Reihe von Jahrzehnten noch sein, aber für die Mehrheit der Menschen Corba ist tot.

Es gibt eine ganze Menge sehr sexy Art und Weise das gleiche Material (mit Ausnahme des High-End oben erwähnt) zu tun.

  • Cloud Computing (Web Services, skalierbare Computing, lose Kopplung, Queuing).
  • REST-Dienste (Web-Service lite).
  • SOAP-Dienste (Web-Services schwer).
  • Grid / Cluster Computing (Queueing, Karten reduzieren und ähnliche)

Aber natürlich Ihr km-Stand variieren kann.

Natürlich hängt es von der Art des Servers und die Kommunikation zwischen Prozessen Sie erwägen. Und ich denke, Stephen C und Chris Cleeland sehr gut die Corba Pluspunkte decken.

Unsere Anwendung ist seit über 10 Jahren CORBA (Orbix) verwendet jetzt so ist Vermächtnis. Und wie es geschrieben steht CORBA ist eine gute Technik. Allerdings, wenn ich beginne über ich würde wahrscheinlich nicht CORBA verwenden:

  • Es ist kompliziert und nur eine kleine Anzahl von Menschen in meiner Organisation weiß, dass es sehr gut als ein Ergebnis alle harten Probleme auf sie fallen zu lösen.
  • Recruiting Personal kann ein Problem sein. CORBA ist einfach nicht mehr abkühlen und nicht kühler bekommen Obwohl in Irland C ++ Entwickler auch ein wenig dünn auf dem Boden sind.
  • wollen die meisten Beratungsfirmen Web-Services für die Integrationsarbeit verwenden, wenn Sie also die Integration dritte Parteien tun wollen, werden Sie wahrscheinlich eine Web-Services api ohnehin erforderlich ist.

Je nun auf die Art der Kommunikation Ich wollte würde ich wahrscheinlich betrachten:

  • Protokollpuffer für viele kleine Nachrichten (Ich weiß, dass ich den Transport zur Verfügung zu stellen würde)
  • Web-Services für weniger große Nachrichten

Dies basiert mehr auf der Suche nach Personal und Know-how, 3rd-Party-Unterstützung und nutzt Open-Source-Bibliotheken dann die technische Qualität der CORBA, die ich jeden Tag benutzen und ist stark, wenn ein wenig umständlich.

CORBA ist sicherlich altmodisch, aber es bietet auch einige High-Level-Funktionen aus der Box (siehe hier ). Diese Funktionalität alles getan werden könnte, modernen Web-Service, aber wahrscheinlich nicht auf herkömmliche Weise, und nicht ohne viele zusätzliche Arbeit.

Für 99% der verteilten Dienste, obwohl, ist CORBA unerwünscht. Es ist hässlich, komplex und schwer zu bedienen.

Eine Sache, die niemand hier erwähnt hat OPEN, offene Standards ist. Von allen Technologien, die (mit Ausnahme von SOAP) gibt, ist es der einzige wirklich offene weiße Papier Standard. Der Standard ist nicht angewiesen auf einer Organisation Technologien. RMI (Sun / Oracle), DCOM (jetzt defuncted - Microsoft). Es ist völlig Vendor und Sprache neutral. Mit Ausnahme von SOAP, keiner der anderen DOS (Distributed Object Technology) Technologien

Ich bin ein Software-Architekt und regelmäßig die Wahl zu treffen, wie sie das DOS in einem System-Design verwendet werden soll. Wenn es nicht für den religiösen Krieg ist mir jedes Mal begegnen, wäre es entweder ein MOM oder CORBA sein.

Schauen Sie sich es auf diese Weise, wenn es, dass tot, keiner der 3 / 4G-Netze funktionieren würde. 3GPP ist vollständig CORBA spezifiziert. Das Europäische Satellitensystem ist alle CORBA spezifiziert. Fragt sie, warum? Es ist, weil sie auf Hersteller- und Sprache neutral Architekturen basieren muss!

Ich würde sagen, dass der aktuelle Reifegrad von Web Services (einschließlich REST) ​​und in der Java-Welt EJBs (die unter Umständen sogar CORBA verwenden) alles abdeckt, was für verteilte Unternehmenssysteme benötigt wird.

Ich würde Ihnen raten, einen Aspekt sorgfältig zu prüfen: den Grad der asynchronen Interaktion, den Sie in Ihrem verteilten System benötigen.Ich gehe davon aus, dass jedes verteilte System nicht trivialer Größe asynchrone Kommunikation benötigt und die gewählte Infrastruktur asynchrone Verarbeitung unterstützen sollte, typischerweise bedeutet das Warteschlangen.

Das steht nicht im Widerspruch zur Verwendung von WebServices (oder auch CORBA), aber es weist auf einen Aspekt Ihrer Produktauswahl hin, der in der anfänglichen Aufregung, eine verteilte Verarbeitung in Gang zu bringen, übersehen werden kann

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top