La complejidad es el archienemigo de la fiabilidad. Esa es la regla más importante que puedes aprender en programación.
Por lo tanto, dependerá del robot, de alguna manera. Si el robot necesita un control confiable en todo momento, entonces el cliente debe estar absolutamente en el teléfono porque no puede permitirse perder la conexión ni por un momento.
Sin embargo, si le asigna tareas al robot (por lo que es semiautónomo en lugar de ser controlado a distancia) Y el robot está operando en condiciones en las que no completar una tarea es un problema grave (como sería el caso en un UAV, un equivalente sumergible, un go-kart controlado por robot, etc.) pero no conseguir una nueva tarea es menos complicado, entonces el robot DEBE tener el software más simple. No puede permitirse que el controlador del robot entre en un bucle infinito, se bloquee o se inmovilice debido a una llamada del sistema de bloqueo. En estos casos, puede permitirse un problema técnico ocasional en el teléfono, pero no puede permitirse ni siquiera un problema técnico en el robot.
- ¿Por qué la dirección IP generada por el enrutador comienza con 192?
- ¿Cómo debo tratar con una contraseña predeterminada para un Switch Catalyst 2960-C Layer 3?
- ¿Cómo se puede entender si su IP de internet es real o no?
- Si publicaste algo anónimamente, ¿es posible que un hacker aún obtenga tu dirección IP?
- ¿Hay algún escenario en el que podamos quedarnos sin direcciones IPv6?
Si ambos deben ser razonablemente confiables, desea equilibrar la carga de trabajo para minimizar los riesgos de falla en ambos lados. En ese caso, estás viendo un cliente pesado (una ruta que nunca ha funcionado bien) o tienes algún software de servidor y otro software de cliente en ambos lados. O tal vez abandonar la estrategia cliente-servidor y optar por un sistema distribuido. En ese caso, el sistema no está en capas. En estas condiciones, es mejor usar canales en lugar de métodos de red convencionales, que están diseñados realmente para métodos cliente-servidor.
Comunicando procesos secuenciales
El beneficio de CSP en este tipo de problemas es que puede barajar dónde están los procesos. Debido a que este estilo de programación involucra un proceso que hace bien una cosa, ha reducido la complejidad de cada parte. Cada parte puede estar en cualquier lugar, puedes hacer malabarismos todo lo que quieras.