UTNianos

Versión completa: [Ayuda][Alternativas]Ejecutar Software desde el Explorador
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola chicos,

ya se que es un riesgo terrible ejecutar un software en el cliente desde el explorador, pero no sabia que titulo ponerle.

Lo que necesito, y estoy averiguando, es poder ejecutar ya sea un control, una Dll, Un Objeto, un binario, o algo (que principalmente me permita usar una GUI) utilizando los recursos del lado del cliente.

En realidad, por ejemplo, podria usar WebGL para algunas cosas, pero me pintaron ganas de hacer algo que maneje los perifericos de la pc, en este caso el puerto COM. (Como soy un ñoño de sistemas que se paso a Electrónica, estoy empapado de los dos ámbitos y a veces es difícil hacerlos convivir )...

Un ejemplo boludo de lo que quiero hacer, seria...

(Como si fuera el cliente)

Entro a una web, y le doy a un boton, se me abre una GUI en mi PC, que me muestra datos del puerto COM e interactua con el codigo (por ejemplo) PHP que tengo en el server...

Me suena a que no se puede, pero capaz alguno tiene/sabe/conoce/alguna vez vio una alternativa a esto.

Eso solo =)

Besitos en las pompas Feer
alguna vez habia empezado a tocar algo con esta clase yo

https://code.google.com/p/php-serial/

de todos modos, yo buscaria mas del lado de java o .net antes que php para conectarme con puertos o lo que sea desde la web..
Buenas! che, suena interesante, pero pensando 'lógicamente' dudo que se pueda hacer algo así. Pensá que si un browser permite que una web tenga acceso a tus periféricos está dando lugar a un montón de vulnerabilidades que quedan expuestas la PC cliente.
Por cuestiones como estas es que las aplicaciones RIA (tipo Silverlight, Flex y compañía) terminan corriendo en un sandbox que no da lugar a acceder a datos o partes sensibles del cliente. De hecho, algo tan simple como ejecutar una aplicación de esas en fullscreen es un problema de permisos, ni me imagino acceder a un periférico!

Se me ocurren dos cosas solamente:
- Terminar en algo desktop que consuma un servicio e interactúe a través del browser (o algo así, ya se que suena medio deforme, no se ni cómo explicarlo =P)

- Evaluar la implementación de Silverlight, limitándote a clientes Windows. Se que si bien corre en un entorno virtual controlado podés llegar a sacarle algo de jugo a la interacción con Windows. No se cómo funca esto en otras plataformas, pero seguro que te permite aunque sea un poco mas que Flex o Java inclusive (siempre sobre Windows).

No creo que pueda aportarte mucho mas, pero voy a seguir el topic a ver si sale algo copado thumbup3

Exitos!
En Java tenés JNLP.
Tocas un boton, te baja la aplicación y te la ejecuta. Solo eso. Teoricamente funciona en todo dispositivo con una JVM. Yo solo puedo decir que en linux y windows funciona =P.
Teniendo una app desktop Java, practicamente podes hacer lo que quieras, hasta consumir dlls con JNI.

Despues, la comunicación del cliente desktop hacia el server, refresco de la pagina web, etc, tendrías que hacerla vos, al igual que cualquier pagina web.

¿Te sirve?


Si no, con IE6 podes hacer una magia con objetitos ActiveX y algun certificado. Es lo que usa la botonera de los centros de atencion a clientes de Claro para imprimirte el ticket del turno.
(15-01-2014 20:58)maxenz escribió: [ -> ]alguna vez habia empezado a tocar algo con esta clase yo

https://code.google.com/p/php-serial/

de todos modos, yo buscaria mas del lado de java o .net antes que php para conectarme con puertos o lo que sea desde la web..

Si no le pifio, es server-side esa clase. Igual gracias Feer

(15-01-2014 21:12)Nimix escribió: [ -> ]Buenas! che, suena interesante, pero pensando 'lógicamente' dudo que se pueda hacer algo así. Pensá que si un browser permite que una web tenga acceso a tus periféricos está dando lugar a un montón de vulnerabilidades que quedan expuestas la PC cliente.
Por cuestiones como estas es que las aplicaciones RIA (tipo Silverlight, Flex y compañía) terminan corriendo en un sandbox que no da lugar a acceder a datos o partes sensibles del cliente. De hecho, algo tan simple como ejecutar una aplicación de esas en fullscreen es un problema de permisos, ni me imagino acceder a un periférico!

Se me ocurren dos cosas solamente:
- Terminar en algo desktop que consuma un servicio e interactúe a través del browser (o algo así, ya se que suena medio deforme, no se ni cómo explicarlo =P)

- Evaluar la implementación de Silverlight, limitándote a clientes Windows. Se que si bien corre en un entorno virtual controlado podés llegar a sacarle algo de jugo a la interacción con Windows. No se cómo funca esto en otras plataformas, pero seguro que te permite aunque sea un poco mas que Flex o Java inclusive (siempre sobre Windows).

No creo que pueda aportarte mucho mas, pero voy a seguir el topic a ver si sale algo copado thumbup3

Exitos!

Jejeje, si suena interesante...

La opcion uno la tenia pensada, pero no se como implementarla.

(15-01-2014 21:26)Imakuni escribió: [ -> ]En Java tenés JNLP.
Tocas un boton, te baja la aplicación y te la ejecuta. Solo eso. Teoricamente funciona en todo dispositivo con una JVM. Yo solo puedo decir que en linux y windows funciona =P.
Teniendo una app desktop Java, practicamente podes hacer lo que quieras, hasta consumir dlls con JNI.

Despues, la comunicación del cliente desktop hacia el server, refresco de la pagina web, etc, tendrías que hacerla vos, al igual que cualquier pagina web.

¿Te sirve?


Si no, con IE6 podes hacer una magia con objetitos ActiveX y algun certificado. Es lo que usa la botonera de los centros de atencion a clientes de Claro para imprimirte el ticket del turno.

(IE descartado por ahora)

Podría Servir... Debería meterme en el mundo de Java xD
La cagada es el tema de bajar la App, y aca una duda, una vez que la baja, ya queda en tu sistema (salvo alguna actualización) o cada vez que la vas a usar la tiene que volver a bajar?

Es una alternativa copada.

En cuanto a la seguridad, lo que tiene de bueno esta idea, es que aunque viola o trata de salir de la sandbox, es para usuarios que asó lo necesitan. No se si me explico.

Lo voy a investigar.

Si tenes otro comentario o idea, se agradece Feer

Encontre esto, de pedo, pero voy a ver si les puedo sacar la idea.

Usan Node.js

Alguno conoce esto?


link:
http://semu.github.io/noduino/index.html
Cita:La cagada es el tema de bajar la App, y aca una duda, una vez que la baja, ya queda en tu sistema (salvo alguna actualización) o cada vez que la vas a usar la tiene que volver a bajar?

Si mal no recuerdo (hace 3 años fue la ultima vez que toqué swing), el JNLP funciona así:
1 - Le das a bajar desde tu sitio el archivo JNLP (algo asi como un .torrent)
2 - Verifica que si el programa está en su ultima versión. Si no existe, o no es la ultima versión, lo baja del sitio especificado en el jnlp.
3 - Lo ejecuta.

En el medio se pueden agregar todo el tema de los certificados para verificar que el programa sea ese. Creo (CREO) que desde una actualización de java 7, se pide que el certificado sea firmado por una entidad homologada (o sea, no podes crear el certificado vos). Pero realmente no ganás mucho usando Java 7 en vez de Java 6, a menos que quieras algo ultraespecifico de java 7.

Creo que no hay forma sencilla de ejecutar el programa en modo offline. Si o si tenes que abrirlo via el jnlp.

sebasthian777 Googleando, encontré esto. Una forma de que te funcione JNLP sin la necesidad de estar conectado. O sea, en teoria te instala el programa, y vos lo ejecutas via el JNLP, ya sea que estes conectado o no.

Realmente nunca lo usé.... la app que haciamos si o si debía ser la ultima versión, y sin conexión no tenía sentido que funcionara =P.

http://stackoverflow.com/questions/13406...-jnlp-file
gracias Ima, con eso que me pasaste y lo que encontre, creo que puedo descular algo!

Igual si alguien mas quiere tirar alguna magia, joya =P
Lo que vos necesitás es hacer un plugin para el navegador. No un add-on/extensión, sino un plugin (ver NPAPI). Ahí codeás C++ a lo macho rudo, y podés hacer lo que te pinte con la máquina.

Yo en su momento hice una prueba de concepto consistente en abrir un socket y mandar algo por ahí cuando clickeaba un botón en una página. Y andaba sin dramas. Más que eso no vi. LA PAPA está en este link: http://colonelpanic.net/2009/03/building...-part-one/

No probé ese FireBreath, habría que ver qué onda.
Excelente! lo voy a ver eso tambien! me gusto un poco mas! =P
URLs de referencia