Diferencia entre revisiones de «Servidor Proxy de Sockets»

De Wiki~eWa
Ir a la navegaciónIr a la búsqueda
m
Línea 113: Línea 113:
 
[[Categoría:SeRViCios]]
 
[[Categoría:SeRViCios]]
 
[[Categoría:Protocolos]]
 
[[Categoría:Protocolos]]
 +
[[Categoría:Aplicaciones]]

Revisión del 00:28 27 abr 2009

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 de 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.

Usos del SPS

Dentro del Paradigma eWa

Véase también: XPX

El SPS es, dentro del SOM uno de las Aplicaciones más importantes pertenecientes a la parte de la Red y la interconexión entre pares, y en general el uso de Sockets. No pertenece al Estándar, ya que el Paradigma 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 usado tanto dentro como fuera del Paradigma eWa, normalmente se usa en otras aplicaciones que, sin necesidad de que sean estándares, puedan funcionar tanto dentro del Paradigma eWa como fuera de él. La implementación Estándar del SPS en el Paradigma eWa para SOMs se realiza utilizando el Estándar de comunicación, por lo tanto, aunque es estándar y por eso se considera un SeRViCio dentro del el SOM que así lo implemente, aunque sea através de una conexión camuflada.

Normalmente a la implementación con pares se le denomina XPX.

En la programación Flash

Dentro de la programación Flash el uso del SPS revolucionó el panorama del Action Script 3.0 dotándolo de conexión a Sockets tanto 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 o programa 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 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.

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 Paquetes SPS

Tras el desarrollo más en profundidad del Sistema de Paquetes 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.