Diferencia entre revisiones de «Servidor Proxy de Sockets»
Línea 11: | Línea 11: | ||
=== En la programación Flash === | === En la programación Flash === | ||
− | Dentro de la programación nativa para [[Adobe Flash Player|Flash]] (y por tanto fuera de la [[Arquitectura eWa]]) el uso del '''SPS''' revolucionó el panorama del [[Action Script 3.0]] dotándolo de conexión a Sockets | + | Dentro de la programación nativa para [[Adobe Flash Player|Flash]] (y por tanto fuera de la [[Arquitectura eWa]]) el uso del '''SPS''' revolucionó el panorama del [[Action Script 3.0]] dotándolo de conexión a tanto '''Sockets de Clientes''' (sin restricciones de seguridad) como de conexión a '''Sockets de Servidor'''. Esta última característica es de las más importantes, ya que permite crear aplicaciones Web en [[Adobe Flash Player|Flash]] de conexión (entre otras de pares) como, por ejemplo: |
* Chats con videoconferencia. | * Chats con videoconferencia. | ||
Línea 19: | Línea 19: | ||
* Videojuegos. | * Videojuegos. | ||
− | También permite conexiones de | + | También permite conexiones de '''Servidor''' como, por ejemplo, de: |
* Páginas Web dinámicas. | * Páginas Web dinámicas. | ||
Línea 28: | Línea 28: | ||
* Transmisión de Audio y Vídeo por streaming. | * Transmisión de Audio y Vídeo por streaming. | ||
− | Pero no hay que olvidar del resto de funcionalidades traducidas a Sockets que realiza el '''SPS''' que permiten acceder a recursos locales de la misma forma que a los externos. Normalmente estos accesos se hacen en entornos limitados o tras algún tipo de verificación formal. Las aplicaciones que logran tener esos permisos, pueden implementar, por ejemplo: | + | Pero no hay que olvidar del resto de funcionalidades traducidas a '''Sockets''' que realiza el '''SPS''' que permiten acceder a '''recursos locales''' de la misma forma que a los externos. Normalmente estos accesos se hacen en entornos limitados o tras algún tipo de verificación formal. Las aplicaciones que logran tener esos permisos, pueden implementar, por ejemplo: |
* Tratamiento de Imagénes. | * Tratamiento de Imagénes. |
Revisión del 15:46 18 jun 2010
El SPS o Servidor Proxy de Sockets es un Protocolo, Servicio, SeRViCio y Aplicación que se desarrolló durante finales de Septiembre de 2008 y el mes de Octubre de ese mismo año, y abrió en el Proyecto eWa una gran puerta a compatibilizar progresivamente la RedeWa al Paradigma eWa y el SIM. Permite controlar el sistema local (archivos, puertos, dispositivos), software a nivel de operativo (ventanas del sistema, avisos, control de hardware), ejecución remota de código, y la red de forma completa, sin las restricciones de seguridad Adobe Flash 9 y posteriores. Implementa políticas de seguridad eWa que garantizan un grado de seguridad extremo fácil de configurar.
Sumario
Usos del SPS
Dentro del Paradigma eWa
El SPS es, fuera de la Arquitectura eWa uno de los protocolos más importantes pertenecientes a la parte de la Red y la interconexión entre pares de máquinas, y en general el uso de Sockets. No pertenece al Estándar, ya que la Arquitectura eWa no se conecta nativamente por Sockets, si no por pares (XPX), aunque sí se considera uno de los protocolos de comunicación por red más importantes.
Como SeRViCio, normalmente se usa en conjunción de otras soluciones que, sin necesidad de que sean estándares, puedan funcionar fácilmente dentro del Paradigma eWa como fuera de él. Cuando se programa el SPS usando el Paradigma eWa tal y como lo marca el estandar, la implementación para SOMs por ejemplo, se denomina XPX. Son compatibles entre sí a nivel de red ya que el diseño del XPX es muy similar al SPS.
En la programación Flash
Dentro de la programación nativa para Flash (y por tanto fuera de la Arquitectura eWa) el uso del SPS revolucionó el panorama del Action Script 3.0 dotándolo de conexión a tanto Sockets de Clientes (sin restricciones de seguridad) como de conexión a Sockets de Servidor. Esta última característica es de las más importantes, ya que permite crear aplicaciones Web en Flash de conexión (entre otras de pares) como, por ejemplo:
- Chats con videoconferencia.
- Envío de archivos dinámicos.
- Sincronización.
- Acceso remoto.
- Videojuegos.
También permite conexiones de Servidor como, por ejemplo, de:
- Páginas Web dinámicas.
- Juegos multijugador.
- Correo electrónico.
- Canal de Chat.
- Multivideoconferencias.
- Transmisión de Audio y Vídeo por streaming.
Pero no hay que olvidar del resto de funcionalidades traducidas a Sockets que realiza el SPS que permiten acceder a recursos locales de la misma forma que a los externos. Normalmente estos accesos se hacen en entornos limitados o tras algún tipo de verificación formal. Las aplicaciones que logran tener esos permisos, pueden implementar, por ejemplo:
- Tratamiento de Imagénes.
- Envío o publicación de archivos locales.
- Acceso a los puertos Serie y Paralelo.
- Guardar estados (partidas, documentos) en forma local.
En el resto de paradigmas de programación
Ya que el SPS de forma local se ejecuta en el puerto 9999 del localhost sin ningún ámbito de seguridad, es accesible desde cualquier aplicación que, si es necesario, entienda el protocolo y valide la conexión correctamente. De esta forma, cualquier aplicación que soporte acceso a Sockets locales en el puerto 9999 podrá comunicarse con el SPS y realizar las conexiones Sockets propias del problema que quieran resolver.
Seguridad en el SPS
Una de las mayores preocupaciones que se han tenido a la hora de desarrollar el SPS ha sido el tema de la Seguridad. Por ese motivo, el SPS cuenta con varias políticas de seguridad configurables desde un entorno de seguridad y jerarquía limitado al ordenador local: ninguna otra conexión podra suplantar la identidad local que, en cualquier caso, siempre tendrá la máxima autoridad para la toma de control absoluta y completa del SPS.
Además, se han incluido diversos métodos de seguridad para acceder a las diferentes personalidades y funcionalidades que ofrece el SPS para el acceso de recursos tanto locales (sistema de archivos, puertos, control...) como externos (ancho de banda, conexión,...) y asegurar el perfecto funcionamiento de la Máquina donde se está ejecutando.
La suit del SPS
recopilando
El iSPS
recopilando
El rSPS
recopilando
Protocolo del SPS
En ocasiones llamado PSPS, el Protocolo del SPS es un protocolo de red para la transferencia de información entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para solicitar, enviar y recibir información desde él.
El protocolo divide las instrucciones, junto con sus argumentos si los necesitan, en los siguientes bloques funcionales:
Apertura de Sockets en el SPS
El SPS nace inicialmente para permitir la conexión entre Sockets (la forma común de enviar información de ordenador a ordenador) con un conjunto de instrucciones muy básico:
- "O host puerto" para abrir una conexión con el host (un dominio o una IP) por el puerto indicado.
- "S [longitud] array_de_bytes" para enviar por la conexión activa un array_de_bytes que representan un comando o información.
- "R [longitud] array_de_bytes" al recibir por la conexión activa un array_de_bytes que representan un comando o información.
Después, puesto que había muchas más posibilidades, se añadieron:
- "K" para desconectar la conexión activa.
- "X" o "X host puerto" para convertir la conexión activa en directa: esto permitía evitar tener que poner 'S' para mandar y tener un 'R' cuando se reciben los datos.
- "T numero" para establecer el tamaño de los paquetes de datos.
Sistema de Archivos en el SPS
Aun así, se vio que las posibilidades de esta aplicación podrían ser mayores. Para eso se usó el mismo concepto de Socket para trabajar con el sistema de archivos locales:
- "A nombre" para solicitar la apertura un archivo local.
- "B" para borrar un archivo local.
- "C nombre [atributos]" para crear un archivo local.
- "D pos=0 [hasta=fin [long=hasta-pos]]" para colocar la cabeza lectora y tamaño de la misma.
Sistema de Mensajes en el SPS
Tras el desarrollo más en profundidad del Sistema de Mensajes eWa, el SPS incluyó las funcionalidades básicas para este tipo de protocolo. Para eso se usó el mismo concepto de búsqueda y apertura de Paquetes que usa el Paradigma eWa:
- "U [niveles*]" para realizar búsquedas de claves de paquetes.
- "V clave" para solicitar la apertura de un paquete concreto.
Control del SPS
Para profundizar en la gestión de Red, se añadieron dos comandos para el control de escucha de puertos y del propio SPS:
- "P [desafío]" para hacer ping con o sin desafío.
- "Q [clave]" para tener control del SPS y recibir todo lo que escucha.
- "L puerto" para crear un servidor Socket escuchando por el puerto indicado.
Además, se añadió una forma de tratamiento de errores:
- "E error [solución]" para informar o solucionar un error.
Comandos eWa para Sistemas Operativos que los soporten
Se usan los comandos Z: "Z [*]" que permiten, entre otras cosas:
- Crear iconos en el Área de Notificación.
- Crear ventanas simples a nivel de bits o con textos.
- Maximizar, restaurar, minimizar ventanas.
- Apagar, reiniciar, y demás acciones en el equipo.
Todas estas acciones se pueden configurar para que se necesiten algunos privilegios para llevarlas a cabo.
Comandos eWa del SPS
Y por último una serie de comandos propios para conectarse al Proyecto eWa: "W [*]".
Código fuente del SPS
El código fuente del SPS est(ar)á liberalizado para compilar sobre Windows (wx-DevCpp) y sobre cualquier compilador/enlazador C++ para Windows o Linux. Podrá obtenerse aquí para aplicación con ventana Windows configurable (híbrido de archivos de preconfiguración y cambios durante la ejecución) o para terminal de consola Windows preconfigurable (sólo archivos de preconfiguración).