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

Julio Vega julio.vega en urjc.es
Mie Nov 23 18:13:35 CET 2011



Julio Vega <julio.vega en urjc.es> escribió:

Genial David. Sí, en vez de tener típicamente el dummyServer por un lado y el dummyClient por otro, la idea es tener un componente intermedio tipo caché como bien dices, y ese es dummyInTheMiddle.
Yo intentaba hacer eso un poco mezclando ambas funcionalidades típicas de un cliente y un servidor y obviamente no daba resultado...

Estupendo! Gracias a los dos! Son soluciones diferentes pero igualmente válidas :)

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/20111123/75b7b5a4/attachment.htm 


More information about the Jde-developers mailing list