Servidor de transacciones de Microsoft
Microsoft Transaction Server (MTS) era un software que proporcionaba servicios a componentes de software del Modelo de objetos componentes (COM), para facilitar la creación de grandes aplicaciones distribuidas. Los principales servicios proporcionados por MTS fueron la gestión automatizada de transacciones, la gestión de instancias (o activación justo a tiempo) y la seguridad basada en roles. Se considera que MTS es el primer software importante que implementa la programación orientada a aspectos.
MTS se ofreció por primera vez en el Option Pack de Windows NT 4.0. En Windows 2000, MTS se mejoró y se integró mejor con el sistema operativo y COM, y pasó a llamarse COM+. COM+ agregó agrupación de objetos, eventos débilmente acoplados y transacciones simples definidas por el usuario (administradores de recursos de compensación) a las características de MTS.
COM+ todavía se proporciona con Windows Server 2003 y Windows Server 2008, y Microsoft.NET Framework proporciona un contenedor para COM+ en el espacio de nombres EnterpriseServices. Windows Communication Foundation (WCF) proporciona una forma de llamar a aplicaciones COM+ con servicios web. Sin embargo, COM+ se basa en COM, y la arquitectura de software estratégica de Microsoft ahora son servicios web y.NET, no COM. Existen alternativas basadas en Pure.NET para muchas de las funciones proporcionadas por COM+ y, a largo plazo, es probable que COM+ desaparezca progresivamente.
Arquitectura
Una arquitectura MTS básica comprende:
- the MTS Executive (mtxex.dll)
- las Fábricas de Acoplamientos y Acoplamientos de Contexto para cada componente
- MTS Server Component
- MTS clients
- sistemas auxiliares como:
- Servicios de horas de funcionamiento COM
- the Service Control Manager (SCM)
- Microsoft Distributed Transaction Coordinator (MS-DTC)
- Microsoft Message Queue (MSMQ)
- COM-Transaction Integrator (COM-TI)
- etc.
Los componentes COM que se ejecutan bajo el control del Ejecutivo MTS se denominan componentes MTS. En COM+, se les denomina COM+ Aplicaciones. Los componentes de MTS son DLL en proceso. Los componentes de MTS se despliegan y se ejecutan en el Ejecutivo de MTS que los gestiona. Al igual que con otros componentes COM, un objeto que implementa la interfaz IClassFactory sirve como objeto de fábrica para crear nuevas instancias de estos componentes.
MTS inserta un objeto Factory Wrapper y un objeto Wrapper entre el objeto MTS real y su cliente. Esta interposición de envoltorios se llama intercepción. Cada vez que el cliente realiza una llamada al componente MTS, los contenedores (Factory y Object) interceptan la llamada e inyectan su propio algoritmo de administración de instancias llamado Activación Justo a Tiempo (JITA) en la llamada. Luego, el contenedor realiza esta llamada en el componente MTS real. La interceptación se consideró difícil en ese momento debido a la falta de metadatos extensibles.
Además, según la información de las propiedades de implementación del componente, la lógica de transacción y las comprobaciones de seguridad también se llevan a cabo en estos objetos contenedores.
Para cada objeto alojado en MTS, también existe un objeto de contexto, que implementa la interfaz IObjectContext. El objeto de contexto mantiene información específica sobre ese objeto, como su información transaccional, información de seguridad e información de implementación. Los métodos del componente MTS llaman al objeto de contexto a través de su interfaz IObjectContext.
MTS no crea el objeto MTS de nivel medio real hasta que la llamada de un cliente llega al contenedor. Dado que el objeto no se ejecuta todo el tiempo, no consume muchos recursos del sistema (aunque persisten un contenedor de objeto y un esqueleto para el objeto).
Tan pronto como llega la llamada del cliente, el proceso contenedor de MTS activa su algoritmo de gestión de instancias llamado JITA. El objeto MTS real se crea "justo a tiempo" para atender la solicitud desde el contenedor. Y cuando se atiende la solicitud y se envía la respuesta al cliente, el componente llama a SetComplete()/SetAbort(), o su transacción finaliza, o el cliente llama a Release() en la referencia al objeto, y el valor real El objeto MTS está destruido. En resumen, MTS utiliza un modelo de componentes sin estado.
Generalmente, cuando un cliente solicita servicios de un componente típico de MTS, se produce la siguiente secuencia en el servidor:
- adquirir una conexión de base de datos
- leer el estado del componente desde el Administrador de Bienes Compartidos o desde un objeto ya existente o desde el cliente
- realizar la lógica de negocio
- escribir el estado cambiado del componente, si lo hay, volver a la base de datos
- cerrar y soltar la conexión de la base de datos
- votación sobre el resultado de la transacción. Los componentes de MTS no comprometen directamente las transacciones, sino que comunican su éxito o fracaso al MTS.
Por lo tanto, es posible implementar recursos de alta latencia como grupos de recursos asíncronos, que deberían aprovechar la activación JIT sin estado que ofrece el servidor de middleware.
Enlaces externos y referencias
- Tour rápido de Microsoft Transaction Server
Contenido relacionado
Spl (Unix)
Tabla de métodos virtuales
Hacer bucle while
ALGOL Y
Datosflex