Diferencia entre revisiones de «Servidor Proxy de Sockets»

De Wiki~eWa
Ir a la navegaciónIr a la búsqueda
m
m
 
(No se muestran 44 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
El '''SPS''' o '''Servidor Proxy de Sockets''' 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.
+
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 [[Red eWa]] al [[Paradigma eWa]] y el [[SIM]]. Permite controlar el sistema local (archivos, puertos, dispositivos), software a nivel de [[Sistema Operativo|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 Player|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 ==
 
== Usos del SPS ==
  
=== Dentro de la Arquitectura eWa ===
+
=== Dentro del Paradigma eWa ===
 
{{VT|XPX}}
 
{{VT|XPX}}
El '''SPS''' es, dentro del [[SOM]] uno de los [[SeRViCios]] 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 la [[Arquitectura eWa]] no se conecta nativamente por Sockets, si no por [[Conexión por pares|pares]] ([[XPX]]), aunque sí se considera uno de los [[Protocolos]] de mensajería por red más importantes.
+
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 [[Comunicación eWa|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 de la [[Arquitectura eWa]], normalmente se usa en otras aplicaciones que, sin necesidad de que sean estándares, puedan funcionar tanto dentro de la [[Arquitectura eWa]] como fuera de ella. La implementación del '''SPS''' en la [[Arquitectura eWa]] para el [[SOM]] se realiza utilizando el [[Estándar]] de conexión, por lo tanto, aunque se precisa del componente no estándar como es el '''SPS''', éste sí es estándar y por eso se considera un [[SeRViCio]]. Normalmente a la implementación con [[Conexión por pares|pares]] para la [[Arquitectura eWa]] se le denomina [[XPX]].
+
Como [[SeRViCio]], normalmente se usa en conjunción de otras [[Solución Informática|soluciones]] que, sin necesidad de que sean [[estándar|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 [[estándar]], la implementación para [[SOM]]s 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 ===
 
=== En la programación Flash ===
  
Dentro de la programación [[Adobe Flash|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:
+
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 [[ActionScript 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.
 
* Envío de archivos dinámicos.
 
* Envío de archivos dinámicos.
 
* Sincronización.
 
* Sincronización.
Línea 19: Línea 19:
 
* Videojuegos.
 
* Videojuegos.
  
También permite conexiones de servidor como, por ejemplo, de:
+
También permite conexiones de '''Servidor''' como, por ejemplo, de:
  
 
* Páginas Web dinámicas.
 
* Páginas Web dinámicas.
 
* Juegos multijugador.
 
* Juegos multijugador.
 
* Correo electrónico.
 
* Correo electrónico.
* Canal de Chat.
+
* Canal de [[Chat]].
 
* Multivideoconferencias.
 
* Multivideoconferencias.
 
* 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 Imágenes.
 
* Envío o publicación de archivos locales.
 
* Envío o publicación de archivos locales.
 
* Acceso a los puertos Serie y Paralelo.
 
* Acceso a los puertos Serie y Paralelo.
Línea 37: Línea 37:
 
=== En el resto de paradigmas de programación ===
 
=== 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.
+
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 [[servicio]] que, si es necesario, entienda el [[Protocolos|protocolo]] y valide la conexión correctamente. De esta forma, cualquier [[servicio]] que soporte acceso a '''sockets TCP/IP''' en el puerto '''9999''' podrá comunicarse con el '''SPS''' y realizar las conexiones propias del problema que quieran resolver.
  
 
== Seguridad en el SPS ==
 
== 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'''.
+
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 podrá 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.
 
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 ''suite'' del SPS ==
 +
 +
'''''recopilando'''''
 +
 +
=== El iSPS ===
 +
 +
'''''recopilando'''''
 +
 +
=== El rSPS ===
 +
 +
'''''recopilando'''''
  
 
== Protocolo del SPS ==
 
== 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 ===
 
=== 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:
+
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.
 
* "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.
 
* "S [longitud] array_de_bytes" para enviar por la conexión activa un array_de_bytes que representan un comando o información.
Línea 68: Línea 84:
 
* "D pos=0 [hasta=fin [long=hasta-pos]]" para colocar la cabeza lectora y tamaño de la misma.
 
* "D pos=0 [hasta=fin [long=hasta-pos]]" para colocar la cabeza lectora y tamaño de la misma.
  
=== Sistema de Paquetes SPS ===
+
=== Sistema de Paquetería en el SPS ===
 
+
{{VT|Sistema de Paquetería eWa}}
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 la [[Arquitectura eWa]]:
+
Tras el desarrollo posterior y más en profundidad del [[Sistema de Paquetería eWa]], el '''Protocolo del SPS''' adoptó las funcionalidades básicas para este tipo de [[protocolo]]. Para eso se usó el mismo concepto de búsqueda y comunicación de '''paquetes''' que usa el [[Paradigma eWa]]:
  
 
* "U [niveles*]" para realizar búsquedas de claves de paquetes.
 
* "U [niveles*]" para realizar búsquedas de claves de paquetes.
 
* "V clave" para solicitar la apertura de un paquete concreto.
 
* "V clave" para solicitar la apertura de un paquete concreto.
  
=== Control del SPS ===
+
=== Control de la Red en el 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:
+
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.
 
* "P [desafío]" para hacer ping con o sin desafío.
Línea 100: Línea 116:
 
Y por último una serie de comandos propios para conectarse al [[Proyecto eWa]]: "W [*]".
 
Y por último una serie de comandos propios para conectarse al [[Proyecto eWa]]: "W [*]".
  
== Código fuente del SPS ===
+
== Código fuente del SPS ==
 +
 
 +
El código fuente del SPS está liberalizado para compilar sobre [[Windows]] (wx-DevCpp) y sobre cualquier compilador/enlazador C++ para [[Windows]] o Linux.
 +
Podrá obtenerse ''aquí'' para usarse sobre [[windows]] como [[servicio]] ''configurable'' en una '''ventana''' (híbrido de archivos de preconfiguración y cambios durante la ejecución) o ''preconfigurable'' para '''terminal de consola''' (sólo archivos de preconfiguración).
 +
 
 +
[[Categoría:Servicio]]
 +
[[Categoría:SeRViCio]]
 +
[[Categoría:Aplicación]]
 +
[[Categoría:Solución Informática]]
 +
[[Categoría:Solución]]
  
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.
+
[[Categoría:Protocolo]]

Revisión actual del 22:22 7 mar 2012

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 Red eWa 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.

Usos del SPS

Dentro del Paradigma eWa

Véase también: XPX

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 estándar, 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 ActionScript 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 Imágenes.
  • 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 servicio que, si es necesario, entienda el protocolo y valide la conexión correctamente. De esta forma, cualquier servicio que soporte acceso a sockets TCP/IP en el puerto 9999 podrá comunicarse con el SPS y realizar las conexiones 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 podrá 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 suite 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 Paquetería en el SPS

Véase también: Sistema de Paquetería eWa

Tras el desarrollo posterior y más en profundidad del Sistema de Paquetería eWa, el Protocolo del SPS adoptó las funcionalidades básicas para este tipo de protocolo. Para eso se usó el mismo concepto de búsqueda y comunicación 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 de la Red en el 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á liberalizado para compilar sobre Windows (wx-DevCpp) y sobre cualquier compilador/enlazador C++ para Windows o Linux. Podrá obtenerse aquí para usarse sobre windows como servicio configurable en una ventana (híbrido de archivos de preconfiguración y cambios durante la ejecución) o preconfigurable para terminal de consola (sólo archivos de preconfiguración).