Left Up Right Bemerkungen zum ORBit-ORB

Mico-Orbit-Kompatibilität

mico-2.3.5 und ORBIT-0.5.7

Beispiel einfacher Hallo-Server

// 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=0
gestartet, 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 ....

Nameserver

nsadmin von mico auf orbit-name-server

Der Orbit-Nameserver wird mit
orbit-name-server -ORBIIOPIPv4=1 > /tmp/orbit_ns_ior
gestartet.
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

Lesen des Mico-Nameservers mit dem orbit name-client

name-client `cat /tmp/orbit_ns_ior ` list /
funktioniert.

Einhängen des MICO-Nameservers in orbit-NS

 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/
syslog
Test:
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
Arbeitsgruppe Komponenten/CORBA Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber