Skip to main content
Summary Is it possible to derive the implementation language from an IOR?
Article Number 15666
Environment All Supported Operating Systems Orbix
Question/Problem Description Is it possible to derive the implementation language from an IOR?
Can the ORB implementation be derived from an IOR?
What kind of information about the implementation is available from an IOR?
Is it possible to find the real endpoint location from an IOR?
Clarifying Information
Error Message
Defect/Enhancement Number
Cause
Resolution Ideally it should not be possible to derive any of this information from an IOR as one of the goals of CORBA was always transparency of ORB implementation.

 

That said there is one minor place where you can get some information. Using iordump it does look into the object key and is able to guess what the IOR might be from:

 

>> 84 [25][00][00][00]
                Object Key length: 37 bytes (including any trailing null)
>> 88 [3a][3e][02][33][31][17][52][65][70][6c][69][63][61][74][65][64][53][69][6e][67][6c][65][74][6f][6e][50][4f][41][00][07][4c][6f][63][61][74][6f][72]
                Object key data: ':>.31.ReplicatedSingletonPOA..Locator'
                * no null character at end (warning)
                (looks like an Orbix ART Direct Persistent key)

The iordump utility should be added to the PATH environment when the Orbix domain script is source. 
This utility can be run on a file that contains an IOR or directly on the IOR itself.

Other useful information that can be sourced from the IOR is the host and port that client requests are directed to. If the POA which generated the IOR is indirect persistent then this will be the host and port of the locator and not that of the real server endpoint. For some IORs it may be possible to derive the POA from the Object Key which will look something like:

                Object Key length: 54 bytes (including any trailing null)
>> 92 [3a][3e][02][32][31][12][6c][6f][63][6e][6f][64][65][6e][73][2e][6c][6f][
63][61][74][69][6f][6e][14][49][54][5f][4e][61][6d][69][6e][67][43][6f][6e][74][
65][78][74][45][78][74][00][08][00][00][00][00][00][00][02][00]
                Object key data: ':>.21.locnodens.location.IT_NamingContextExt..........'

Note the object key is vendor specific and it will depend on what ORB implementation generated the IOR. In this case the Object Key was generated by Orbix 6 and we can tell this is from the Naming Service and the POA name is IT_NamingContextExt. We can then lookup the associated POA, ORB and process to find out where this is running:

>itadmin poa list
IT_NamingContextExt
IT_ObjectGroupFactory
IT_ObjectGroup
IT_NamingServiceAdmin_iona_services.naming.NBDUBMMURPHY02
IT_MasterNamingContextExt_iona_services.naming.NBDUBMMURPHY02
IT_MasterObjectGroupFactory_iona_services.naming.NBDUBMMURPHY02
IT_MasterObjectGroup_iona_services.naming.NBDUBMMURPHY02
 
>itadmin poa show IT_NamingContextExt
FQPN: IT_NamingContextExt
  Active: yes (in iona_services.naming.NBDUBMMURPHY02)
  Lifespan: persistent
  ORB Names:
    iona_services.naming.NBDUBMMURPHY02
  Allow Replicas outside this list: yes
  Load Balancing Algorithm:  <NONE>
  Allow Dynamic Registration: no
  Parent FQPN: <NONE>
  Children FQPN: <NONE>
 
>itadmin orbname show iona_services.naming.NBDUBMMURPHY02
ORB Name:       iona_services.naming.NBDUBMMURPHY02
  Process Name: iona_services.naming.NBDUBMMURPHY02
  Active:       yes
 
>itadmin process show iona_services.naming.NBDUBMMURPHY02
Process Name: iona_services.naming.NBDUBMMURPHY02
Active: yes
  PID: 50936
  Start time: Wed, 11 Jul 2012 13:01:19.8430000
  Activated: yes
Description: iona_services.naming.NBDUBMMURPHY02
Startup Mode: on_demand
Usually Monitored By: iona_services.node_daemon.NBDUBMMURPHY02
Startup Information:
  Node Daemon Name: iona_services.node_daemon.NBDUBMMURPHY02
    Path Name: C:\\apps\\Orbix\\6.3.5-VC10-x64\\asp\\6.3\\bin\\itnaming.exe
    Arguments: -ORBdomain_name locnodens -ORBname iona_services.naming.NBDUBMMUR
PHY02 -ORBconfig_domains_dir "C:\\apps\\Orbix\\6.3.5-VC10-x64\\etc\\domains"
    Environment Variables: Inherited from Activation daemon
    File Access Permissions:
      User:  mamurphy
      Group: nobody
    File Creation Permissions:
      Umask: 022
    Current Directory: C:\\Windows
    Resource Limits: 
Workaround
Notes Here is some sample output:

 
iordump IOR:01...snip...c00
 
Stringified IOR is: ([string/coded data] length: 432 / 214 bytes)
 
>> IOR:01...snip...c00
----------------------------------------------------------
>> 0 [01]
        Byte order of IOR: (1) Little Endian
>> 1 [00][00][00]
        (padding)
>> 4 [28][00][00][00]
        TypeId length: 40 bytes (including null)
>> 8 [49][44][4c][3a][6f][6d][67][2e][6f][72][67][2f][43][6f][73][4e][61][6d][6
9][6e][67][2f][4e][61][6d][69][6e][67][43][6f][6e][74][65][78][74][3a][31][2e][3
0][00]
        TypeId value: 'IDL:omg.org/CosNaming/NamingContext:1.0.'
>> 48 [01][00][00][00]
        Number of tagged profiles: 1
 
        Profile 1:
>> 52 [00][00][00][00]
                Tag: (0) TAG_INTERNET_IOP
>> 56 [9a][00][00][00]
                Profile length: 154 bytes
>> 60 [01]
                Byte Order: (1) Little Endian
>> 61 [01][02]
                Version: 1.2
>> 64 [0f][00][00][00]
                Host length: 15 bytes (including null)
>> 68 [4e][42][44][55][42][4d][4d][55][52][50][48][59][30][32][00]
                Host string: 'NBDUBMMURPHY02.'
                (host name lookup succeeded, maps to IP address 10.2.9.7)
>> 83 [00]
        (padding)
>> 84 [03][0c]
                Port: 3075
                (IANA allocated vendor IIOP port for: Progress Orbix ART Locator)
>> 86 [00][00]
        (padding)
>> 88 [36][00][00][00]
                Object Key length: 54 bytes (including any trailing null)
>> 92 [3a][3e][02][32][31][12][6c][6f][63][6e][6f][64][65][6e][73][2e][6c][6f][
63][61][74][69][6f][6e][14][49][54][5f][4e][61][6d][69][6e][67][43][6f][6e][74][
65][78][74][45][78][74][00][08][00][00][00][00][00][00][02][00]
                Object key data: ':>.21.locnodens.location.IT_NamingContextExt..........'
                (looks like an Orbix ART Indirect Persistent key)
>> 146 [00][00]
        (padding)
>> 148 [03][00][00][00]
                Number of tagged components: 3
 
                Component 1:
>> 152 [00][00][00][00]
                        Tag: (0) ORB_TYPE
>> 156 [08][00][00][00]
                        Component length: 8 bytes
>> 160 [01]
                        Component Byte Order: (1) Little Endian
>> 161 [00][00][00]
        (padding)
>> 164 [41][5f][54][49]
                        Vendor ID: 0x49545f41, prefix: 'IT_', vendor: Micro Focus Software, ORB: Orbix ART 1.0
 
 
                Component 2:
>> 168 [01][00][00][00]
                        Tag: (1) CODE_SETS
>> 172 [18][00][00][00]
                        Component length: 24 bytes
>> 176 [01]
                        Component Byte Order: (1) Little Endian
>> 177 [00][00][00]
        (padding)
>> 180 [01][00][01][00]
                        Native CodeSet id (for char): 65537
                        (ISO 8859-1:1987; Latin Alphabet No. 1)
>> 184 [00][00][00][00]
                        Number of conversion code sets (CCS): 0
>> 188 [00][01][01][00]
                        Native CodeSet id (for wchar): 65792
                        (ISO/IEC 10646-1:1993; UCS-2, Level 1)
>> 192 [01][00][00][00]
                        Number of conversion code sets (CCS): 1
>> 196 [09][01][01][00]
                        CCS(1) CodeSet Id 65801
                        (ISO/IEC 10646-1:1993; UTF-16, UCS Transformation Format
 16-bit form)
 
 
                Component 3:
>> 200 [06][00][00][00]
                        Tag: (6) ENDPOINT_ID_POSITION
>> 204 [06][00][00][00]
                        Component length: 6 bytes
>> 208 [01]
                        Component Byte Order: (1) Little Endian
>> 209 [00]
        (padding)
>> 210 [00][00]
                        EndpointId begin (index): 0
>> 212 [2c][00]
                        EndpointId end (index): 44
 
 
Attachment
Created date: 06 September 2011
Last Modified: 13 February 2013
Last Published: 11 July 2012
First Published date: 10 September 2011

#Orbix
#KnowledgeDocs