[Jde-dev] Interfaces ICE básicos. Problema con cliente/servidor

David Lobato dav.lobato en gmail.com
Jue Nov 24 11:52:35 CET 2011


Julio,

No veo los problemas...

1. Para que necesitas argc y argv exactamente?
2. En el servidor normal declaras DummyI de la misma manera, no?



2011/11/24 Julio Vega <julio.vega en urjc.es>

> ** Bueno, tras pelearme con dummyInTheMiddle para intentar adaptarlo a lo
> que comentaba David, sigo teniendo los mismos problemas:
> - De algún modo he de pasar argc y argv a la clase DummyII para, por
> ejemplo, acceder al PropertyToProxy del Communicator.
> - No es posible reservar el interfaz dummy2, que es de tipo abstracto,
> habiéndolo declarado como un Object genérico. Cualquier posibilidad humana
> hace que el compilador te diga que él está ahí :)
>
> En resumen, joeer con Ice.
>
>
>
> David Lobato <dav.lobato en gmail.com> escribió:
>>
>> Julio,
>>
>> Ups! No vi el enlace, perdón!
>>
>> El dummyInTheMiddle es un buen lio... No entiendo que hace esa hebra por
>> ahí. Ãndate con ojo a la hora de mezclar pthreads a pelo con Ice, a veces
>> no funciona como se espera.
>> Según entiendo tu problema, lo que intentas hacer es algo tipo cache, que
>> se pone entre medias de un servidor y un cliente, no?
>> Estoy un poco oxidado con ICE, pero creo que debería ser algo como lo que
>> te paso en el adjunto. Vamos, que el propio objeto tiene un proxy al
>> servidor real, y en sus llamadas, según la lógica que tu tengas pensado,
>> llama al servidor real.
>>
>> Rober, lo pipes son muy útiles y todo lo que tu quieras, pero joder, ICE
>> debe tener algún mecanismo para lidiar con esto. Además, usando pipes la
>> solución no es portable, usando Ice si.
>>
>> Saludetes!
>>
>>
>> 2011/11/23 Roberto Calvo <rocapal en libresoft.es>
>>
>>> El mié, 23-11-2011 a las 16:05 +0000, David Lobato escribió:
>>> > Julio,
>>> >
>>> >
>>> > Por qué no pones el código con el que estás teniendo problemas?
>>> > Sin entender el problema del todo, me parece que usar pipes es una
>>> > solución un poco ñapis...
>>>
>>> Verás como te escuchen NEMO y cia! Ahhh y los que programan UNIX ;-)
>>>
>>> >
>>> >
>>> > Saludetes!
>>> >
>>> > 2011/11/23 Julio Vega <julio.vega en urjc.es>
>>> >         Eso que dices suena a solución :) me voy a poner a añadir eso
>>> >         y ya te cuento.
>>> >         Gracias Rober!
>>> >
>>> >         Roberto Calvo <rocapal en libresoft.es> escribió:
>>> >
>>> >                 En ese mismo ejemplo, yo tuve un problema similar y
>>> >                 puede que te ayude a
>>> >                 ti. Lo resolví usando pipes.
>>> >
>>> >                 Si miras "startRecording", hace de cliente, llama a un
>>> >                 Recorder con un
>>> >                 callback y espera leyendo el pipe. El callback [1],
>>> >                 que hace de
>>> >                 servidor, recibe la respuesta y escribe en el pipe.
>>> >
>>> >                 En este caso es síncrono, pero podrías hacerlo
>>> >                 asíncrono. Podrías probar
>>> >                 quitando el thread que tienes, y metiéndolo en la
>>> >                 clase servidora para
>>> >                 que haga un read del pipe. En el main, cuando recibes
>>> >                 el número haces el
>>> >                 write en el pipe. Creo que eso debería funcionarte.
>>> >
>>> >                 Un saludete!
>>> >
>>> >                 [1] class AMI_Recorder_startRecordingI : public
>>> >                 jderobot::AMI_Recorder_startRecording
>>> >
>>> >                 El mié, 23-11-2011 a las 16:06 +0100, Julio Vega
>>> >                 escribió:
>>> >                 > Ya he estado ojeando el componente que me dices y
>>> >                 sí, actúa como
>>> >                 > cliente y servidor al mismo tiempo.
>>> >                 > Ese problema lo tengo solucionado. El conflicto
>>> >                 viene cuando lo que
>>> >                 > quiero es que haga de cliente y además modifique lo
>>> >                 que pilla como
>>> >                 > cliente, y que sirva ese nuevo valor como
>>> >                 servidor... No sé como pasar
>>> >                 > ese valor, que es un float, dentro del componente
>>> >                 hasta llegar a la
>>> >                 > zona "servidora".
>>> >                 >
>>> >                 > Roberto Calvo <rocapal en libresoft.es> escribió:
>>> >                 >
>>> >                 >         Julito,
>>> >                 >
>>> >                 >         ¿Qué es lo que no te funciona, no te hace de
>>> >                 cliente, o de servidor? O
>>> >                 >         nada de nada.
>>> >                 >
>>> >                 >         Yo lo que puedo decirte es que el componente
>>> >                 RecordingServer [1] hace de
>>> >                 >         servidor y de cliente (realiza peticiones al
>>> >                 Recorder). Echale un ojo a
>>> >                 >         como configuro la Ice::Application (abajo
>>> >                 del todo del fichero cpp), que
>>> >                 >         pueden ir por ahí los tiros.
>>> >                 >
>>> >                 >         Un saludete!
>>> >                 >
>>> >                 >         [1]
>>> >                 >
>>> >
>>> http://svn.jderobot.org/jderobot/trunk/src/components/recordingserver/
>>> >                 >
>>> >                 >         El mar, 22-11-2011 a las 23:58 +0100, Julio
>>> >                 Vega escribió:
>>> >                 >         > Hola developers,
>>> >                 >         >
>>> >                 >         >    he creado unos componentes ICE en [1].
>>> >                 Estos componentes son básicos,
>>> >                 >         > así como el interfaz ICE creado. Tenemos
>>> >                 lo siguiente:
>>> >                 >         >    - dummyServer: ejemplo sencillo de
>>> >                 "servidor"
>>> >                 >         ICE.
>>> >                 >         >    - dummyClient: ejemplo sencillo de
>>> >                 "cliente" ICE.
>>> >                 >         >    - dummyInTheMiddle: ejemplo
>>> >                 no-tan-sencillo de componente que hace de
>>> >                 >         > "cliente-servidor" ICE.
>>> >                 >         >
>>> >                 >         >    El problema está en ese tercer
>>> >                 componente. No logro hacer que
>>> >                 >         > funcione como cliente y como servidor al
>>> >                 mismo tiempo. La idea es que
>>> >                 >         > tal componente sea cliente de
>>> >                 "dummyServer" (del cual recibe un número)
>>> >                 >         > y, por ejemplo, modifique ese número para
>>> >                 que "dummyClient" lo pille de
>>> >                 >         > aquí modificado.
>>> >                 >         >    Sí, ya sé que es un ejemplo tontorrón
>>> >                 (de ahí el nombre), y quizás
>>> >                 >         > sin sentido. Pero obviamente el objetivo
>>> >                 es otro componente mucho más
>>> >                 >         > complejo...
>>> >                 >         >
>>> >                 >         >    Por favor, si alguien conoce algo más
>>> >                 sobre ICE y puede echar un ojo
>>> >                 >         > a ese componente, a ver qué falla, se lo
>>> >                 agradecería.
>>> >                 >         >
>>> >                 >         >    Saludos,
>>> >                 >         >
>>> >                 >         >    Julio
>>> >                 >         >
>>> >                 >         >    [
>>> >                 >          1]
>>> >
>>> http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE
>>> >                 >         >
>>> >                 >
>>> >                 >         --
>>> >                 >         Roberto Calvo Palomino          | Libre
>>> >                 Software Engineering Lab (GSyC)
>>> >                 >         Tel: (+34) 91 488 87 73         |
>>> >                 Universidad Rey Juan Carlos
>>> >                 >         rocapal en libresoft.es            | Edif.
>>> >                 Biblioteca - Despacho B103
>>> >                 >         http://libresoft.es/            | Camino del
>>> >                 Molino s/n - 28943  (Madrid)
>>> >                 >
>>> >                 >         GPG-KEY:
>>> >                 http://gsyc.es/~rocapal/rocapal.gpg
>>> >                 >
>>> >                 ______________________________________________________
>>> >
>>> >
>>> >                 > Jde-developers mailing list
>>> >                 > Jde-developers en gsyc.es
>>> >                 >
>>> >
>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>> >
>>> >                 --
>>> >                 Roberto Calvo Palomino          | Libre Software
>>> >                 Engineering Lab (GSyC)
>>> >                 Tel: (+34) 91 488 87 73         | Universidad Rey Juan
>>> >                 Carlos
>>> >                 rocapal en libresoft.es            | Edif. Biblioteca -
>>> >                 Despacho B103
>>> >                 http://libresoft.es/            | Camino del Molino
>>> >                 s/n - 28943  (Madrid)
>>> >
>>> >                 GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>>> >
>>> >
>>> >         _______________________________________________
>>> >         Jde-developers mailing list
>>> >         Jde-developers en gsyc.es
>>> >
>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > Jde-developers mailing list
>>> > Jde-developers en gsyc.es
>>> > http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>
>>> --
>>> Roberto Calvo Palomino          | Libre Software Engineering Lab (GSyC)
>>> Tel: (+34) 91 488 87 73         | Universidad Rey Juan Carlos
>>> rocapal en libresoft.es            | Edif. Biblioteca - Despacho B103
>>> http://libresoft.es/            | Camino del Molino s/n - 28943
>>>  (Madrid)
>>>
>>> GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>>>
>>
>>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20111124/8c5b3405/attachment-0001.htm 


More information about the Jde-developers mailing list