COM+
Estudiantes:
Fernando Xavier Choque Triguero
Alex Adrian Choquehuanca Yujra
Andrés David Marca Llusco
Jesus Ario Soto Mercado
Izai Alejandro Zalles Merino
Component Object Model Plus
ANTECEDENTES
Los primeros servicios de componentes como COM
permitieron a los desarrolladores crear aplicaciones
modulares, seguidos por extensiones como DCOM y
Microsoft Transaction Server que agregaron
capacidades distribuidas y transaccionales. Sin
embargo, estas soluciones presentaban limitaciones
al estar construidas sobre COM convencional,
creando la necesidad de una plataforma integral que
culminó con COM+, una suite completa integrada en
Windows 2000.
Component Object Model Plus
OBJETIVO
Proporcionar una suite integral de servicios de componentes integrada directamente
en el núcleo del sistema operativo Windows, permitiendo a los desarrolladores
concentrarse exclusivamente en la lógica de negocio mientras el sistema se encarga
automáticamente de la infraestructura de servicios de bajo nivel.
COM+ busca eliminar las limitaciones de sus predecesores (COM, DCOM y MTS)
ofreciendo un modelo de programación declarativo donde los desarrolladores
simplemente especifican qué servicios requiere un componente a través de
herramientas administrativas, y COM+ proporciona automáticamente el entorno de
ejecución apropiado con servicios.
Component Object Model Plus
OBJETIVO
Simplifica la tarea de compilar aplicaciones distribuidas basadas en componentes y
proporciona un marco que ayuda a proteger la integridad del sistema y los datos.
Para cumplir este propósito general, COM+ se enfoca en los siguientes objetivos
específicos a través de sus servicios:
GARANTIZAR LA COHERENCIA DE LOS DATOS
Su principal objetivo es proporcionar un mecanismo para garantizar que los cambios
en el estado que realizan estos objetos se realicen de forma coherente.
Esto significa que una operación o se completa en su totalidad o se revierte por
completo, evitando estados inconsistentes en los datos.
Component Object Model Plus
OPTIMIZAR EL RENDIMIENTO Y LA ESCALABILIDAD
Para optimizar el rendimiento, el objetivo es gestionar eficientemente los recursos
costosos, como las conexiones a bases de datos. Esto se logra mediante el
agrupamiento de objetos, un servicio que permite reutilizarlos.
FACILITAR LA FLEXIBILIDAD Y EL MANTENIMIENTO
Otro objetivo es hacer que las aplicaciones sean más flexibles.
Esto se logra a través de un modelo de publicador-suscriptor, donde los componentes
que generan eventos no necesitan conocer a los componentes que los reciben.
Component Object Model Plus
SIMPLIFICAR LA ADMINISTRACIÓN CENTRALIZADA
Para que toda esta infraestructura sea manejable, COM+ busca centralizar y simplificar
la configuración y el despliegue.
Component Object Model Plus
PROCESOS DEL
COM+
COM+ es una tecnología de Microsoft que facilita la
creación de aplicaciones distribuidas, añadiendo
automáticamente servicios como seguridad,
transacciones y administración de recursos.
Component Object Model Plus REGISTRO DE COMPONENTES
FASE DE INICIALIZACIÓN Se registran interfaces, clases
y configuraciones (seguridad,
transacciones).
CONFIGURACIÓN DE APLICACIONES
Tipo Server: ejecuta en proceso
separado ([Link]).
Tipo Library: ejecuta dentro del
cliente.
Se definen niveles de seguridad y
sincronización.
Component Object Model Plus SOLICITUD DEL CLIENTE
FASE DE ACTIVACIÓN Usa CoCreateInstance() para
pedir el objeto.
RESOLUCIÓN DEL CONTEXTO
COM+ decide el contexto ideal (seguridad,
transacción). Si ya existe uno compatible, lo
reutiliza; si no, crea uno nuevo.
CREACIÓN DE LA INSTANCIA
Ejecuta el componente en el proceso
adecuado.
Aplica interceptores para gestionar
servicios automáticos.
FASE DE EJECUCIÓN
INTERCEPTACIÓN DE LLAMADAS
Se controlan transacciones, seguridad,
estado y reutilización.
GESTIÓN DE TRANSACCIONES
Disabled (Sin transacción), Not Supported, (Ejecuta sin
transacción) Supported (Adaptativo) , Required (Siempre
transaccional), Requires New (Nueva transacción siempre)
CONTROL DE SEGURIDAD
Verifica permisos, roles y certificados
antes de ejecutar.
OBJECT POOLING
Reutilización de objetos para ahorrar
tiempo.
FASE DE GESTIÓN
JIT ACTIVATION DE RECURSOS
Activación "justo a tiempo", libera
recursos tras uso.
CONNECTION POOLING
Reutilización de conexiones a base de
datos.
SERVICIOS AUTOMÁTICOS
TRANSACCIONES
Se gestiona el flujo completo con MSDTC (Microsoft
Distributed Transaction Coordinator) commit o rollback.
SEGURIDAD
Verificación automática de identidad y
permisos.
SINCRONIZACIÓN
Control de acceso a métodos por hilos
para evitar errores.
FASE DE FINALIZACIÓN
LIMPIEZA DE TRANSACCIONES
Finaliza o revierte cualquier transacción.
DESACTIVACIÓN DE OBJETOS
Limpia memoria y recursos, o devuelve al
pool.
TERMINACIÓN DEL PROCESO
Finaliza [Link], cierra conexiones y
actualiza logs.
Component Object Model Plus COMPONENT SERVICES (MMC)
MONITOREO Y Interfaz visual para configurar
y monitorear.
ADMINISTRACIÓN CATÁLOGO COM+
Base de datos con toda la configuración
de los componentes.
LOGS Y AUDITORÍA
Registra fallos, rendimiento y actividad
para control.
TAREAS DE LOS
PROCESOS
HERRAMIENTA ADMINISTRATIVA
Component Object Model Plus
"SERVICIOS DE COMPONENTES”
FASE DE INICIALIZACIÓN Permite la creación de aplicaciones COM+ (conocidas
como paquetes).
Facilita la adición de componentes a estas
aplicaciones.
Configura atributos a nivel de componente,
incluyendo el soporte transaccional, las
comprobaciones de acceso y la asignación
declarativa de roles.
APLICACIÓN DEL SISTEMA COM+ (SERVICIO).
Gestiona la configuración y el
despliegue de las aplicaciones COM+.
Proporciona funciones administrativas
y de seguridad para los Servicios de
Componentes.
RPCSS (SERVICIO DE LLAMADA A PROCEDIMIENTO
REMOTO) Component Object Model Plus
Realiza solicitudes de activación de objetos.
Resuelve la ubicación y los detalles de los objetos FASE DE ACTIVACIÓN DE
COM y sus exportadores.
[Link] (PROCESO DE ALOJAMIENTO
COMPONENTES
PRINCIPAL)
Aloja componentes de aplicaciones de servidor
COM+ (DLLs) en su propio proceso dedicado.
Proporciona aislamiento de fallos para las DLLs
COM, asegurando que un fallo en un componente no
afecte a otros procesos.
DCOM (MODELO DE OBJETOS COMPONENTES
DISTRIBUIDOS)
Permite la comunicación entre componentes de
software en equipos en red.
Maneja el marshalling (empaquetado de datos para
la transmisión), la recolección de basura distribuida y
la seguridad a través de los límites de la red.
COMPONENTES EN COLA (QC)
Permite a los clientes invocar métodos en
Component Object Model Plus
componentes COM de forma asíncrona.
FASE DE EJECUCIÓN
Aprovecha Microsoft Message Queue (MSMQ) para
registrar las invocaciones de métodos como
mensajes en una cola.
EVENTOS DE ACOPLAMIENTO DÉBIL (LCE)
Proporciona un mecanismo de eventos de
publicación y suscripción dentro de COM+.
Permite que múltiples clientes (suscriptores) se
registren para eventos publicados por componentes,
recibiendo notificaciones cuando esos eventos
ocurren.
[Link] (PARA COM+ EVENT SYSTEM)
Aloja el servicio "COM+ Event System".
Soporta el Servicio de Notificación de Eventos del
Sistema (SENS), que distribuye automáticamente
eventos a los componentes COM suscriptores.
ACTIVACIÓN JUSTO A TIEMPO (JITA)
Activa los componentes solo cuando un cliente Component Object Model Plus
FASE DE GESTIÓN DE
realiza una llamada a un método.
Desactiva los objetos inmediatamente después de
RECURSOS
que se atiende la llamada, liberando recursos
rápidamente.
AGRUPACIÓN DE OBJETOS
Reutiliza objetos preasignados para reducir la
sobrecarga asociada con la creación y destrucción
frecuente de objetos.
Recicla los objetos de vuelta al pool en lugar de
destruirlos cuando un cliente los libera.
Permite la inicialización específica por cliente
(Activate()) y la limpieza (Deactivate()).
INTERCEPCIÓN Y OBJETOS DE CONTEXTO
Los objetos envoltorio (Factory Wrapper Object y
Object Wrapper) interceptan las llamadas de los
clientes para inyectar servicios de forma
transparente (como JITA, gestión de transacciones y
comprobaciones de seguridad) sin modificar el
código del componente.
Identificar todas las aplicaciones existentes,
especialmente las obsoletas, en desuso o
Component Object Model Plus redundantes.
FASE DE FINALIZACIÓN
Evaluar su contribución a las operaciones
comerciales y su impacto en el negocio.
Realizar una auditoría técnica del entorno actual para
identificar cuellos de botella, requisitos del sistema y
dependencias.
Confirmar que la aplicación no tiene dependencias
restantes de personas, procesos o sistemas, y
resolver cualquier dependencia identificada antes de
continuar.
Revisar los contratos de licencia existentes,
establecer las fechas de vencimiento de los pagos y
los períodos de notificación de terminación, y
notificar a los proveedores para detener las facturas
futuras.
Realizar una copia de seguridad de todos los datos
necesarios para fines legales o históricos.
AGRUPACIÓN DE APLICACIONES
Permite ejecutar múltiples instancias de una Component Object Model Plus
FASE DE MONITORIO Y
aplicación COM+ de servidor para aumentar el
rendimiento de las transacciones y el número de
ADMINISTRACIÓN
usuarios concurrentes.
Se configura el "Pool Size" (tamaño del pool) para
determinar el número de instancias de [Link]
que alojarán la aplicación.
RECICLAJE DE APLICACIONES
Apaga y reinicia (recicla) de forma transparente
instancias individuales de la aplicación para
mantenerlas "frescas" y mitigar problemas como
fugas de memoria o recursos.
Se configura a través de la pestaña "Pooling &
Recycling" en las propiedades de la aplicación.
APAGADO DEL PROCESO DEL SERVIDOR
·Configura el apagado de un proceso de servidor
COM+ después de un período de inactividad
especificado.
DOCUMENTACIÓN DEL
PROCESO EN COM+
EL CATÁLOGO
COM+
Es el repositorio central de toda la información
de configuración.
Actúa como la base de datos que describe el
comportamiento del sistema en tiempo de
ejecución.
Es la fuente definitiva de cómo se comportan
los componentes.
EXPLORADOR DE SERVICIOS DE
COMPONENTES (MMC)
REPRESENTACIÓN VISUAL
Muestra un mapa jerárquico claro de la arquitectura (Aplicaciones >
Componentes > Interfaces).
AJUSTES DECLARATIVOS:
Las opciones seleccionadas en las pestañas (Transactions, Activation)
definen el comportamiento sin necesidad de manuales.
CAMPOS DE DESCRIPCIÓN:
Permiten añadir notas textuales explícitas
sobre el propósito de cada elemento.
ATRIBUTOS EN EL
La documentación de la
configuración se incrusta
CÓDIGO FUENTE
directamente en el código.
Une la intención del diseño con la
implementación real.
(PARA .NET)
Al registrar el componente, los
atributos configuran el Catálogo
COM+.
Son una "instantánea" empaquetada
ARCHIVOS MSI DE de la configuración.
DESPLIEGUE
Garantizan un despliegue
consistente y repetible.
SCRIPTS DE AUDITORÍA
HERRAMIENTAS
Permiten generar informes
automatizados del estado de la
PROGRAMÁTICAS
configuración.
LOGS DE TRAZABILIDAD:
Documentan la ejecución en tiempo real
para depuración y análisis de
Y LOGS
rendimiento.
EJEMPLO DETALLADO
DEL PROCESO EN COM+
ESCENARIO DEL SISTEMA:
Component Object Model Plus
ESCENARIO Y OBJETIVO Sistema bancario distribuido.
Operaciones de débito y crédito en cuentas SQL
Server.
Requisitos:
Transaccionalidad garantizada (todo o nada).
Seguridad por roles.
Alto rendimiento (pooling).
COMPONENTE: CUENTAMANAGER
Implementado en VB6 o C++ con ATL.
Registrado con regsvr32 y
configurado en COM+.
INICIALIZACIÓN Y CONFIGURACIÓN
REGISTRO EN COM+:
Crear aplicación COM+ tipo Server.
Importar [Link] al catálogo.
COM+ extrae:
Interfaces (ej. ICuentaManager)
Clases (CCuentaManager)
Atributos: transacciones, seguridad, sincronización.
CONFIGURACIÓN CLAVE:
Transacción: Required
Object Pooling: min. 5 / máx. 50
instancias
JIT Activation habilitado
Roles: Cajero, Supervisor, Auditor
ACTIVACIÓN Y
EJECUCIÓN DEL MÉTODO:
BEGIN TRAN
EJECUCIÓN UPDATE Cuentas SET Saldo -= 1500 WHERE
Numero = ‘1234’
UPDATE Cuentas SET Saldo += 1500 WHERE
LLAMADA DEL CLIENTE:
Numero = ‘5678’
Dim obj As Object COMMIT TRAN
Set obj =
CreateObject(“[Link]”)
Rollback automático si falla algo.
[Link] “1234”, “5678”, 1500
ACTIVACIÓN POR COM+:
Se carga en [Link].
Se evalúan:
Seguridad (rol del usuario)
Transacción (crear/reutilizar)
Sincronización
GESTIÓN DE RECURSOS Y FINALIZACIÓN
RECURSOS EN COM+:
Object Pooling: reutilización de instancias.
JIT Activation: activa al llamar, desactiva al terminar.
Connection Pooling: conexiones SQL eficientes.
FINALIZACIÓN:
Cierre de transacciones.
Desactivación y liberación (o regreso
al pool).
Finalización de [Link] si no hay
instancias activas.
ADMINISTRACIÓN Y
CONCLUSIÓN:
COM+ aporta:
CONCLUSIÓN Transacciones distribuidas confiables.
Seguridad basada en roles.
Optimización de recursos.
MONITOREO CON MMC:
Escalabilidad y mantenimiento
Ver instancias activas. centralizado.
Forzar reciclaje del pool.
Auditar accesos, errores y
transacciones.
AUDITORÍA AUTOMÁTICA EN VISOR
DE EVENTOS:
Fallos de seguridad, transacciones y
rendimiento.
MUCHAS
GRACIAS