¿Qué es un objeto activo?
Significado | Concepto | Definición:
En programación e ingeniería informática, un objeto activo es un tipo de patrón de diseño que se puede utilizar para ayudar a garantizar que algún servicio esté siempre disponible en un sistema concurrente o de subprocesos múltiples. Un objeto activo es un objeto que implementa un mecanismo para que pueda recibir y procesar entradas de objetos externos sin obligar a los objetos externos a esperar a que se complete la ejecución. Este mecanismo también permite que muchos objetos que podrían estar ejecutándose simultáneamente usen objetos activos sin la posibilidad de tiempos de bloqueo prolongados en los que los procesos concurrentes deben detenerse y esperar el acceso. La mayoría de las veces, esto se logra envolviendo los objetos activos en una interfaz de acceso público, llamada proxy, y luego implementando un tipo de sistema de cola dentro de los objetos para que los mensajes se almacenen para su procesamiento posterior.
Hombre, tenencia, computadora
Fuera de un patrón de diseño de objeto activo, un objeto normal podría denominarse objeto pasivo. En un ejemplo de programa simple, un objeto pasivo podría actuar como un relé del servidor de chat, en el que los objetos remotos contactan al objeto pasivo para transmitir un mensaje a todos los demás en el servidor. Siempre que el objeto del servidor pasivo recibe un mensaje de chat de un objeto remoto, debe manejar la solicitud inmediatamente y luego enviar la salida inmediatamente, todo mientras el objeto remoto detiene su propia ejecución hasta que el proceso finaliza, un efecto conocido como bloqueo. La creación de diferentes subprocesos dentro del programa puede resolver el problema del bloqueo de ejecución, pero luego inicia problemas con la sincronización.
En un patrón de diseño de objeto activo, el mismo objeto de servidor en el ejemplo anterior se estaría ejecutando en su propio subproceso separado de los otros objetos. También estaría envuelto en algún tipo de interfaz conocida como proxy que también se ejecuta en un hilo separado, a veces el hilo principal de ejecución del programa. Cuando un objeto remoto quiere que el objeto servidor envíe un mensaje de chat, se pone en contacto con el objeto proxy, le pasa toda la información requerida y luego regresa a su estado de ejecución normal en lugar de esperar.
La interfaz de proxy luego convierte la información del objeto remoto en un mensaje que pasa a una cola para que el objeto activo lo procese. En este punto, tanto la interfaz proxy como el objeto remoto están libres para continuar ejecutándose y no están bloqueados. Mientras tanto, el objeto activo trabaja para mantener la cola vacía, procesando cada mensaje entrante. Si el objeto de llamada requiere que el objeto activo devuelva alguna información, entonces se puede usar una estructura de devolución de llamada para informar al objeto remoto de cualquier cambio de estado.
Mira estos Artículos