Einführung

Bei der Arbeit mit CORBA (Common Object Request Broker Architecture) stehen Entwickler oft vor Herausforderungen, wenn es darum geht, die Schnittstellen ihrer Anwendung zu warten und zu aktualisieren. Eine häufige Frage ist: „Wenn ich eine Methode zu der bestehenden CORBA-Schnittstelle meines Servers hinzufügen möchte, muss ich dann alle meine Clients neu kompilieren?“ Diese Frage spricht viele Entwickler an, die nach effizienten Möglichkeiten suchen, ihr System zu verbessern, ohne umfangreiche Ausfallzeiten oder Neugestaltungen.

In diesem Blogbeitrag werden wir die Lösung untersuchen, die es Ihnen ermöglicht, Ihre CORBA-Schnittstelle zu ändern, ohne dass eine Neukompilierung erforderlich ist, und wir werden erklären, warum Sie dies besonders reibungslos erreichen können, insbesondere bei der Arbeit mit TAO (The ACE ORB).

Verständnis von CORBA und TAO

CORBA ist ein Standard, der von der Object Management Group (OMG) definiert wurde, um die Kommunikation zwischen verschiedenen Systemen unabhängig von deren Standort oder den verwendeten Programmiersprachen zu ermöglichen. TAO ist eine Implementierung von CORBA, die für Echtzeit- und hochleistungsfähige Systeme entwickelt wurde.

Wenn wir über Schnittstellen in CORBA sprechen, beziehen wir uns auf die Spezifikationen, die Clients verwenden, um mit Servern zu kommunizieren, die in einer Interface Definition Language (IDL) definiert sind.

Das Problem: Methoden zu CORBA-Schnittstellen hinzufügen

In einer typischen CORBA-Anwendung kommuniziert Ihr Server über seine definierten Schnittstellen mit verschiedenen Clients. Eine Situation kann entstehen, in der Sie die Funktionalität Ihres Servers erweitern möchten, indem Sie eine neue Methode oder Operation zu seiner Schnittstelle hinzufügen.

Die Hauptsorge der Entwickler besteht darin, ob diese Änderung erfordert, dass alle bestehenden Clients neu kompiliert werden. Die Neukompilierung kann zu erhöhten Arbeitslasten, potenziellen Störungen und Risiken führen, wenn sie nicht richtig gehandhabt wird.

Die Lösung: Keine Neukompilierung erforderlich

Basierend auf den Erkenntnissen, die aus der Arbeit mit ACE/TAO-basierten Systemen gewonnen wurden, ist eine Neukompilierung der Clients nicht erforderlich, wenn Sie neue Methoden zu einer CORBA-Schnittstelle hinzufügen. Hier ist der Grund:

Nachschlagen nach Betriebsnamen

  • Textvergleich: CORBA führt Nachschläge für Methoden basierend auf den Betriebsnamen durch, und zwar durch einen einfachen Textvergleichsmechanismus. Das bedeutet, dass, wenn eine neue Methode zum Server hinzugefügt wird, bestehende Clients ihren Code nicht ändern müssen, solange sie nicht versuchen, die neue Methode aufzurufen.

Anwendung in der Praxis

  • Viele Entwickler haben ihre ACE/TAO-Systeme erfolgreich modifiziert, ohne auf Probleme zu stoßen, selbst wenn ihre Clients in unterschiedlichen Programmiersprachen erstellt wurden (z. B. C++, C#, Python).
  • Zum Beispiel haben Clients, die C#, Borlands Janeva oder OmniORBPy verwenden, weiterhin funktioniert, ohne dass eine Neukompilierung erforderlich war, während sie mit verbesserten Server-Schnittstellen interagierten.

Fazit

Zusammenfassend lässt sich sagen, dass bei der Arbeit mit CORBA und insbesondere mit TAO Anpassungen an der Schnittstelle Ihres Servers – wie das Hinzufügen neuer Methoden – nicht die Neukompilierung aller Clients erfordert. Die Möglichkeit, nach Betriebsnamen nachzuschlagen, ermöglicht eine größere Flexibilität und Einfachheit bei der Wartung Ihrer Software.

Diese Effizienz kann Ihnen Zeit und Mühe sparen, sodass Sie sich auf die Entwicklung neuer Funktionen konzentrieren können, anstatt bestehenden Code zu kompilieren, der weiterhin mit aktualisierten Schnittstellen kompatibel ist.

Wenn Ihnen dieser Beitrag hilfreich war, teilen Sie ihn gerne mit Ihren Kollegen, die ähnliche Anfragen zu CORBA-Schnittstellen haben könnten!