architecture - software - Definir tiempo real en la web para negocios
architecture traduccion (8)
Me vuelve loco escuchar a los defensores del negocio usar el término en tiempo real para sistemas basados en la web. Me estoy volviendo loco en la sala, gritando: "¡No existe el tiempo real en la web! ¡Estamos en la banca, no en el lanzamiento de cohetes / navegación del barco / negocio de piloto automático de avión!"
¿Alguien tiene algo mejor para las especificaciones de rendimiento que en tiempo real, o su horrible híbrido, casi en tiempo real?
¿En línea? Al igual que en las acciones suceden en línea con sus acciones en lugar de trabajos por lotes fuera de banda o al final del día.
¿Inmediato? ¿Instante? En vivo (no, espera, Microsoft posee esa palabra en estos días, ¿no?)?
Más en serio, "en tiempo real" probablemente no sea confuso para cualquiera que no tenga un fondo de control de procesos / sistema integrado. Tenga una bebida reconfortante y preocúpese por otras cosas.
En la industria bancaria, la mayoría de las veces "tiempo real" significa lo opuesto a "fin de día".
Como en el pasado no existía Internet / Intranet / LAN / WAN, todo el equilibrio se realiza al "final del día". Las transacciones realizadas en una sucursal con una cierta cuenta bancaria son ajenas a las transacciones realizadas en otra; toda la resolución de equilibrio ocurrirá al final del día. Cuando los mainframes entraron en la misma regla aplicada: las resoluciones se hacen por computadora mediante un proceso de larga ejecución que generalmente se ejecuta entre las 9 p.m. y las 12 p.m. de la medianoche.
Esta es la razón detrás de términos como "saldo actual" y "saldo disponible", por ejemplo, el saldo disponible es lo que ha sido determinado por el proceso de fin de día como el saldo de la cuenta del día anterior; el saldo actual es lo que se supone que es, pero no puede tocarlo todavía, ya que el banco no está seguro de haber realizado alguna transacción en otro lugar.
Con el advenimiento de los cajeros automáticos, Internet y otras tecnologías de interconexión, la resolución del saldo en "tiempo real" ahora es posible: un retiro, una transacción en línea, un débito de compra, etc. se reflejarán inmediatamente en las cuentas bancarias de los clientes sin la necesidad de espere el procesamiento al final del día.
En tiempo real significa una cosa para un programador incorporado. Significa algo más para una persona normal. Si mi saldo en línea siempre coincide con el saldo de mi cajero automático / cajero automático, lo llamaría bastante en tiempo real. Si puedo transferir dinero entre cuentas, actualizar la pantalla e inmediatamente ver la transferencia completa, la llamaría en tiempo real.
Si el backend web solo imprime pedidos de intervención humana o elimina comandos de usuario en un archivo para el procesamiento por lotes sin conexión, eso no sería en tiempo real.
El tiempo real significa que, como tiene un conjunto de tareas que se ejecuta para ejecutar una tarea, si una tarea tarda más que el tiempo definido para finalizar, todo el proceso falla y es probable que el sistema falle. Por ejemplo, la aplicación utilizada para controlar el vehículo exploratorio de Marte se considera una aplicación en tiempo real, incluso si un comando desencadenado en la Tierra necesita 8 minutos para alcanzar el vehículo y las imágenes de las cámaras del vehículo requieren más 8 minutos para alcanzar el tierra. Entonces, incluso con una latencia de 16 minutos entre tomar la acción y ver el resultado, se puede definir como en tiempo real, porque si se demora más de los 16 minutos planificados, existe un gran riesgo de que el vehículo choque con una roca o caer en una depresión.
Volviendo a su ejemplo, no veo un cajero automático, o los balances mencionados anteriormente como en tiempo real, podrían estar en línea o actualizados, pero no en tiempo real, ya que el sistema no se cuelga si toma más tiempo del esperado para completar un retirarse en un cajero automático.
¿Cómo se define "en tiempo real" para los sistemas integrados? Yo diría que una definición decente es "un sistema que puede procesar y responder a las entradas más rápido que el tiempo promedio entre las entradas". En otras palabras, un sistema que nunca se quedará atrás en el procesamiento en comparación con los sistemas que lo están alimentando. Al usar esta definición, todo en la web es un sistema en tiempo real, ya que los servidores web que se quedan atrás tienden a ser inaccesibles (es decir, el efecto slashdot).
Es un término de marketing que significa "muy rápido", como quizás <1 segundo.
Obviamente, no puede significar lo mismo que cuando la gente habla de sistemas incorporados en tiempo real, sistemas operativos en tiempo real, etc. La red es demasiado grande y heterogénea para eso.
Una definición de sistema en tiempo real (del mundo de sistemas críticos de seguridad) es un sistema cuya corrección depende de la puntualidad de sus respuestas.
Eso se aplicaría igual de bien para un sistema de comercio en línea en tiempo real: los valores de las acciones se quedan obsoletos en segundos como en el caso de un sistema de aviónica integrado por avión con requisitos de corrección en milisegundos.