// Einfachstes beispiel für Corba interface Hallo { void gruss(in string name,in short mal); void test(); };Der Hallo-Server wird mit
./hallo-server -ORBIIOPIPv4=1 -ORBIIOPv6=0 -ORBIIOPUSock=0gestartet, d.h er hat nur eine IIOP-IPv4-Adresse.
Die IOR-Adresse (gibt er mit object_to_string auf stdio aus), ist sowohl mit dem iordump bon MICO als auch dem ior-decode von ORBit interpretierbar.
Mit Corba-Script (hier mit einer auf MICO-basierender Version) können wir den Server ansprechen:
bash-2.03$ cssh CorbaScript 1.3.4 (Apr 7 2001) for MICO 2.3.5 for C++ Copyright 1996-2001 LIFL, France >>> hallo=Hallo("IOR:010000000e00000049444c3a48616c6c6f3a312e30000000010000000000000034000000010100000b0000007277732e696e7465726e000027060000180000000000000039d6743b4009d23f01000000efa5c6b799e4d815"); >>> hallo._type < OMG-IDL interface Hallo { void gruss (in string name, in short mal); void test (); }; > >>> hallo.test(); >>> hallo.gruss("Kippenhausen",1); >>>Und siehe, es geht ....
orbit-name-server -ORBIIOPIPv4=1 > /tmp/orbit_ns_iorgestartet.
bash-2.03$ nsadmin -ORBNamingIOR=`cat /tmp/orbit_ns_ior ` CosNaming administration tool for MICO(tm) nsadmin> ls nsadmin> cat hallo IOR:010000000e00000049444c3a48616c6c6f3a312e30000000010000000000000034000000010100000b0000007277732e696e7465726e000027060000180000000000000039d6743b4009d23f01000000efa5c6b799e4d815 nsadmin> repoid hallo IDL:Hallo:1.0 nsadmin> url hallo we aren't talking to an Interoperable Naming Service nsadmin> locurl hallo corbaloc::rws.intern:1575/%00%00%00%009%d6t;@%09%d2?%01%00%00%00%ef%a5%c6%b7%99%e4%d8%15 nsadmin> iordump hallo Repo Id: IDL:Hallo:1.0 IIOP Profile Version: 1.0 Address: inet:rws.intern:1575 Location: corbaloc::rws.intern:1575/%00%00%00%009%d6t;@%09%d2?%01%00%00%00%ef%a5%c6%b7%99%e4%d8%15 Key: 00 00 00 00 39 d6 74 3b 40 09 d2 3f 01 00 00 00 ....9Öt;@.Ò?.... ef a5 c6 b7 99 e4 d8 15 ï¥Æ·.äØ. nsadmin>Die Kommandos ls und url gehen also nicht ...
Das Einhängen des orbit-NamingKontexts in einem MICO-nameserver klappt:
bash-2.03$ nsadmin bind_context orbit `cat /tmp/orbit_ns_ior ` bash-2.03$ nsadmin CosNaming administration tool for MICO(tm) nsadmin> cat orbit/hallo IOR:010000000e00000049444c3a48616c6c6f3a312e30000000010000000000000034000000010100000b0000007277732e696e7465726e000027060000180000000000000039d6743b4009d23f01000000efa5c6b799e4d815
name-client `cat /tmp/orbit_ns_ior ` list /funktioniert.
name-client `cat /tmp/orbit_ns_ior ` bind_context mico `cat /tmp/mico_ns_ior `Funktioniert auch:
rw@rws:/exp/corba/ORBit2/hello > name-client `cat /tmp/orbit_ns_ior ` list / mico/ hallo rw@rws:/exp/corba/ORBit2/hello > name-client `cat /tmp/orbit_ns_ior ` list /mico orbit/ rels/ syslogTest:
bash-2.03$ cssh CorbaScript 1.3.4 (Apr 7 2001) for MICO 2.3.5 for C++ Copyright 1996-2001 LIFL, France >>> NS=CORBA.ORB.resolve_initial_references("NameService"); >>> import NSTools >>> n=NSTools.StringToName("orbit/hallo"); >>> hallo=NS.resolve(n); >>> hallo._type < OMG-IDL interface Hallo { void gruss (in string name, in short mal); void test (); }; > >>> hallo.test < OMG-IDL operation void Hallo::test (); > >>> hallo.test(); >>> hallo.gruss("Ravensburg",1000); >>>... ist erfolgreich