Sistema servidor + cliente / Multi-superficie
RemotePad
Sistema de control remoto compuesto por un servidor Windows, un cliente móvil y un modelo de mensajes compartido que define el protocolo entre ambos.
El problema
Controlar un equipo desde el teléfono parece un problema de interfaz, pero no lo es: es un problema de protocolo. Antes de que la pantalla táctil pueda sentirse natural, hay que decidir qué mensajes existen, quién los origina, qué pasa cuando se pierden y cómo se emparejan dos dispositivos que no se conocían.
Restricciones
- El servidor necesita permisos elevados para actuar sobre el sistema operativo
- La latencia percibida en el gesto táctil es el criterio de calidad
- Emparejamiento en red local sin configuración manual
Decisiones
Resultado
- Modelo de mensajes compartido que define el protocolo
- Cliente móvil con controles táctiles sobre patrón MVVM
- Servidor Windows con integraciones de teclado, puntero y captura de pantalla
- Flujo de emparejamiento en red local
Es un sistema, no una aplicación
La parte visible es una app en el teléfono. La parte que importa está repartida en tres piezas: el servidor que actúa sobre Windows, el cliente que captura el gesto, y el modelo de mensajes que define qué puede decirse uno a otro.
Ese tercer proyecto —el de contratos— es el que hace que las otras dos puedan evolucionar por separado. Un mensaje nuevo se agrega en un sitio y ambos extremos dejan de compilar hasta atenderlo. Es exactamente el comportamiento que se quiere de un protocolo.
Por qué está aquí
Porque el mismo patrón —dos superficies distintas comunicándose a través de un contrato explícito— es el que sostiene los sistemas grandes en los que trabajo. Aquí está en su forma más pequeña y completa, y por eso se entiende de un vistazo.