Corba Idl

lernen.2007

Erfahrenes Mitglied
Hi,

ich beschäftige mich seit einigen Tagen mit CORBA. Aber an ein Problem komme ich nicht weiter.

Es gibt ja in CORBA IDL --> in(wie in Java) Parameter, out Parameter und inout Parameter. Das wird in java mit Holders realisiert. Aber so was braucht man doch ja nicht, man kann doch den Wert von Parameter als Funktions Rückgabewert liefern. Oder steckt etwas anderes dahinter?

:eek::eek::eek::eek:

Danke
 
Hallo Erkan,

das ist ein alternatives, erweitertes Feature von CORBA zum Rückgabewert.

Ein Vorteil der out-Parameter im Vergleich zum Rückgabewert ist, das es viele out-Parameter mit unterschiedlichen Typen geben kann. Hingegen gibt es nur einen einzigen Rückgabewert eines bestimmten Typen. (!) Eine (mir bekannte einzige) Javaeigene Lösung für dieses Problem wäre ein Object[] Feld als Rückgabewert zu verwenden.

inout Parameter ist so in Java garnicht gegeben.

public void quadriere (inout long x); //IDL
public int quadriere(int x); //Java

Wie du siehst kommt IDL mit einem einzigen Parameter aus, hingegen braucht Java noch zusätzlich einen Rückgabewert. (!) Jedoch könnte man sich auch hier mit einem Array behelfen.

Code:
public class InOut {

	public static void main(String[] args) {
		int[] i = { 5 };
		quadriere(i);
		System.out.println(i[0]);
	}

	public static void quadriere(int[] x) {
		x[0] = x[0] * x[0];
	}
}

Fazit: Du darfst hier nicht zu sehr fixiert auf Java sein. Das Argument das kann man anderweitig in Java lösen, also braucht man das nicht, ist nicht richtig. Wie du bestimmt schon erfahren hast ist CORBA eine sowohl plattformunabhängige, als auch programmiersprachenunabhängige Schnittstelle. Deswegen versucht IDL möglichst alle Konstrukte der unterstützten Sprachen abzudecken. Damit gibt es dann in IDL auch viele alternative Lösungsmöglichkeiten. Der Mittelpunkt von Verteilten Anwendungen ist der entfernte Methodenaufruf, welcher je nach System, Situation weitere Probleme, Herausforderungen mit sich bringt. Eben hier liegt die Notwendigkeit, der sehr vielen Datentypen und Sprachkonstrukte der IDL die zunächst sehr ähnlich zu sein scheinen, doch für den einen oder anderen spezifischen Fall wesentliche Vorteile mit sich bringen.


Vg Erdal
 
Zurück