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

David Lobato dav.lobato en gmail.com
Mie Nov 23 17:58:14 CET 2011


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/20111123/f12364db/attachment-0001.htm 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : dummyIntheMiddle.cpp
Tipo       : text/x-c++src
Tamaño     : 1839 bytes
Descripción: no disponible
Url        : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20111123/f12364db/attachment-0001.cpp 


More information about the Jde-developers mailing list