[omniORB] question about object method multiplexor's Implementation & desing

Juan_M_Casillas@sinvest.es Juan_M_Casillas@sinvest.es
Fri, 25 Feb 2000 08:36:03 +0100


--openmail-part-0001bbc9-00000001
Content-Type: text/plain; charset=ISO-8859-1
Content-Disposition: inline; filename="BDY.RTF"
	;Creation-Date="Fri, 25 Feb 2000 08:36:03 +0100"
Content-Transfer-Encoding: quoted-printable

      Hello=20
     =20
         Im trying to write a object that multiplex calls to methods in
      other objects.
         the idea is that one object calls a method in the multiplexor
      (this object
         servers methods usign DSI) and then the multiplexor looks for
      the objects
         that have this method (usign internal mechanisms) and then
      calls these
         methods in the objects.
     =20
         But I have some problems, first, when usign DSI, I need to know=

      the exact
         number of parameters, their type, and so on, so I can't do
      blind calls to=20
         methods in other objects, because I don't know the interface
      definition.
         How can I do that ? the ORB expects a list (NVList) defined
      with the=20
         right values for the objects when I call
      request->parameters(myNVlist),
         but I don't know the method's arguments, neither their type.
     =20
         So we can do this ?=20
         See some basic Example:
         Objects S1,S2,S3 servers the method test()
         Object A wants to call method test() in S1,S2,S3
         Object M is the multiplexor.
        =20
         So A calls test() in the M interface usign DSI/DII, and says M
      that wants
         to call test() over S1,S2,S3 (this is done calling another
      method on M)
         M process the request, look up S1,S2,S3 usign its internal
         mechanisms to find the object (based in a get/set properties
      scheme)
         and then M calls test() on S1, then on S2, then on S3.=20
     =20
         My problem are:
                I need to know the number of arguments, the return type
      and
                the type of the arguments before call
      request->params(NVList)
                so I can use DSI to do the remote method invocation, Is
      this
                possible ? If not, Anybody knows a workarround to do
      this ?
        =20
            Anybody knows who can I do this usign Vainilla CORBA (that
      is
            without using Interface Repository mainly, I want that runs
      with
            the standard distribution omniORB)  ?
        =20
      Thanks for all.
      Kind Regards
     =20
      Juan Manuel Casillas
      Santander Investment
      (systems/technology)=20
      mail: jcasilla.madrid@sinvest.es
     =20
     =20
      
--openmail-part-0001bbc9-00000001
Content-Type: application/ms-tnef
Content-Disposition: attachment; filename="WINMAIL.DAT"
Content-Transfer-Encoding: base64

eJ8+Iu7DAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5N
aWNyb3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEDkAYADAAAAAEAAAADABcAAQAA
ABwAAQOQBgAMAAAAAQAAAAMANgAAAAAAOgABBIABAEQAAABxdWVzdGlvbiBhYm91dCBvYmpl
Y3QgbWV0aG9kIG11bHRpcGxleG9yJ3MgSW1wbGVtZW50YXRpb24gJiBkZXNpbmcgAFAZAQOQ
BgAMAAAAAQAAAAsAAgABAAAADwABA5AGAAwAAAABAAAACwArAAAAAAA3AAEDkAYADAAAAAEA
AAADAC4AAAAAADIAAQOQBgAQAAAAAQAAAEAAOQCAgifowF2+AWcEAQOQBgAkAAAAAQAAAB4A
QgABAAAAEQAAAEp1YW4gTS4gQ2FzaWxsYXMAAAAA6AUBA5AGABAAAAABAAAAQABIAFC32+jA
Xb4BLwUBA5AGABQAAAABAAAAHgBNAAEAAAABAAAAAAAAAG4AAQgABQAEAAAAAAAAAAAAAQOQ
BgBUAAAAAQAAAB4AcAABAAAARAAAAHF1ZXN0aW9uIGFib3V0IG9iamVjdCBtZXRob2QgbXVs
dGlwbGV4b3IncyBJbXBsZW1lbnRhdGlvbiAmIGRlc2luZyAAJBoBA5AGADAAAAABAAAAAgFx
AAEAAAAgAAAAAb5bISWWXYTdq8cNEdK4HwCAx9r/vQAwZnawAHeIYXDsDgEDkAYADAAAAAEA
AAADAAYQJOz3BygCAQOQBgAMAAAAAQAAAAMABxC7BQAA2wABA5AGAHgAAAABAAAAHgAIEAEA
AABlAAAASEVMTE9JTVRSWUlOR1RPV1JJVEVBT0JKRUNUVEhBVE1VTFRJUExFWENBTExTVE9N
RVRIT0RTSU5PVEhFUk9CSkVDVFNUSEVJREVBSVNUSEFUT05FT0JKRUNUQ0FMTFNBTUVUSAAA
AAAgHgEDkAYADAAAAAEAAAADABAQAAAAACQAAQOQBgAMAAAAAQAAAAMAERAAAAAAJQABA5AG
ABAAAAABAAAAQAAHMAAH8+DAXb4BLgQBA5AGABAAAAABAAAAQAAIMAAH8+DAXb4BLwQBA5AG
ACAAAAABAAAAAgELMAEAAAAQAAAABvkh4bLJ0hG4IACAx9r/vWQJAQOQBgAMAAAAAQAAAAMA
3j+vbwAAPwIBA5AGACQAAAABAAAAAwD8gQggBgAAAAAAwAAAAAAAAEYAAAAAEIUAAAAAAABK
AwEDkAYAJAAAAAEAAAADAP2BCCAGAAAAAADAAAAAAAAARgAAAABShQAA8BMAAJAEAQOQBgAk
AAAAAQAAAAMA/oEIIAYAAAAAAMAAAAAAAABGAAAAAAGFAAAAAAAAPQMBA5AGACwAAAABAAAA
HgD/gQggBgAAAAAAwAAAAAAAAEYAAAAAVIUAAAEAAAAEAAAAOC41AEwEAQOQBgAkAAAAAQAA
AAsAAIIIIAYAAAAAAMAAAAAAAABGAAAAAA6FAAAAAAAAVQIBA5AGACQAAAABAAAAAwABgggg
BgAAAAAAwAAAAAAAAEYAAAAAEYUAAAAAAABRAgEDkAYAJAAAAAEAAAADAAKCCCAGAAAAAADA
AAAAAAAARgAAAAAYhQAAAAAAAFkCAQOQBgAsAAAAAQAAAB4AA4IIIAYAAAAAAMAAAAAAAABG
AAAAADaFAAABAAAAAQAAAAAAAACVAgEDkAYALAAAAAEAAAAeAASCCCAGAAAAAADAAAAAAAAA
RgAAAAA3hQAAAQAAAAEAAAAAAAAAlwIBA5AGACwAAAABAAAAHgAFggggBgAAAAAAwAAAAAAA
AEYAAAAAOIUAAAEAAAABAAAAAAAAAJkCAQOQBgAkAAAAAQAAAAsABoILIAYAAAAAAMAAAAAA
AABGAAAAAACIAAAAAAAAUwIBA5AGACQAAAABAAAACwAHggsgBgAAAAAAwAAAAAAAAEYAAAAA
BYgAAAAAAABZAgEDkAYAJAAAAAEAAAALAAiCCCAGAAAAAADAAAAAAAAARgAAAAAGhQAAAAAA
AFUCAQOQBgAUAAAAAQAAAB4APQABAAAAAQAAAAAAAABeAAEJAAQAAgAAAAAAAAABA5AGAAwA
AAABAAAACwAXDAAAAAAvAAEDkAYADAAAAAEAAAADAIAQ/////5AEAQkABAACAAAAAAAAAAED
kAYADAAAAAEAAAALACMAAAAAAC8AAQOQBgAMAAAAAQAAAAsAKQAAAAAANQABBJAGAHwCAAAB
AAAAEgAAAAMAADACAAAACwAPDgAAAAACAf8PAQAAAF8AAAAAAAAAgSsfpL6jEBmdbgDdAQ9U
AgAAAQBvbW5pb3JiLWxpc3RAdWsucmVzZWFyY2guYXR0LmNvbQBTTVRQAG9tbmlvcmItbGlz
dEB1ay5yZXNlYXJjaC5hdHQuY29tAAAeAAIwAQAAAAUAAABTTVRQAAAAAB4AAzABAAAAIQAA
AG9tbmlvcmItbGlzdEB1ay5yZXNlYXJjaC5hdHQuY29tAAAAAAMAFQwBAAAAAgH5DwEAAABf
AAAAAAAAAIErH6S+oxAZnW4A3QEPVAIAAAEQb21uaW9yYi1saXN0QHVrLnJlc2VhcmNoLmF0
dC5jb20AU01UUABvbW5pb3JiLWxpc3RAdWsucmVzZWFyY2guYXR0LmNvbQAAAwD+DwYAAAAe
AAEwAQAAACMAAAAnb21uaW9yYi1saXN0QHVrLnJlc2VhcmNoLmF0dC5jb20nAAACAQswAQAA
ACYAAABTTVRQOk9NTklPUkItTElTVEBVSy5SRVNFQVJDSC5BVFQuQ09NAAAAAwAAOQAAAAAL
AEA6AAAAAAMAcToAAAAAHgD2XwEAAAAhAAAAb21uaW9yYi1saXN0QHVrLnJlc2VhcmNoLmF0
dC5jb20AAAAAAgH3XwEAAABfAAAAAAAAAIErH6S+oxAZnW4A3QEPVAIAAAEAb21uaW9yYi1s
aXN0QHVrLnJlc2VhcmNoLmF0dC5jb20AU01UUABvbW5pb3JiLWxpc3RAdWsucmVzZWFyY2gu
YXR0LmNvbQAAAwD9XwEAAAADAP9fAAAAAAIB9g8BAAAABAAAAAAAAALFnQ==

--openmail-part-0001bbc9-00000001--