Unidad 4 COM/DCOM



TECNOLOGICO NACIONAL DE MEXICO



 INSTITUTO TECNOLOGICO DE IGUALA




MAESTRO: M.C. VÍCTOR MANUEL JACOBO ADÁN



MATERIA: PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR


ALUMNO: JAVIER AGUSTIN MARTINEZ AVILEZ

Introducción:
 Que es COM y DCOM
Primero COM en microsoft es la comunicación entre objetos para la comunicación de ordenadores distintos en una red LAN , WAN incluso en internet ahora con DCOM una aplicación puede ser distribuida en lugares donde  dan más sentido al cliente como vemos DCOM es la evolución por así decirlo de COM y al hacer una aplicación en DCOM esta maneja bajos protocolos de red .

Contenido:


4.1 Creación de servidores 

DCOM es una extensión de COM, y éste define como los componentes y sus clientes interactúan entre sí. Esta interacción es definida de tal manera que el cliente y el componente pueden conectar sin la necesidad de un sistema intermedio. El cliente llama a los métodos del componente sin tener que preocuparse de niveles más complejos.
DCOM es una evolución lógica de COM, se pueden utilizar los componentes creados en aplicaciones basadas en COM, y trasladarlas a entornos distribuidos. DCOM maneja detales muy bajos de protocolos de red, por lo que uno se puede centrar en la realidad de los negocios: proporcionar soluciones a clientes.
La arquitectura DCOM
DCOM es una extensión de COM, y éste define como los componentes y sus clientes interactúan entre sí. Esta interacción es definida de tal manera que el cliente y el componente pueden conectar sin la necesidad de un sistema intermedio. El cliente llama a los métodos del componente sin tener que preocuparse de niveles más complejos. La Figura 1 ilustra esto en la notación de COM
Los Componentes y su reutilización
Muchas aplicaciones distribuidas no están desarrolladas
Al existir infraestructuras de hardware, software, componentes, al igual que herramientas, se necesita poder integrarlas y nivelarlas para reducir el desarrollo y el tiempo de trabajo y coste. DCOM toma ventaja de forma directa y transparente de los componentes COM y herramientas ya existentes. Un gran mercado de todos los componentes disponibles haría posible reducir el tiempo de desarrollo integrando soluciones estandarizadas en las aplicaciones de usuario. Muchos desarrolladores están familiarizados con COM y pueden aplicar fácilmente sus conocimientos a las aplicaciones distribuidas basadas en DCOM.
Cualquier componente que sea desarrollado como una parte de una aplicación distribuida es un candidato para ser reutilizado. Organizando los procesos de desarrollo alrededor del paradigma de los componentes permite continuar aumentando el nivel de funcionalidad en las nuevas aplicaciones y reducir el tiempo de desarrollo.
Diseñando para COM y DCOM se asegura que los componentes creados serán útiles ahora y en el futuro.



 Resultado de imagen para COM DCOM
 


4.2 Creación del cliente


COM
El cliente debe realizar las siguientes tareas:
Iniciar la librería COM
Obtener la interfaz
Manipular el objeto a través de su interfaz
Liberar las interfaces
Finalizar la librería COM
Para iniciar la librería COM hay que llamar al método del API COM CoInitialize:
            hr = CoInitialize(NULL);
            if ( SUCCEEDED(hr) )
            {
                        ...
            }
  • El método CoInitialize inicializa la librería en el thread de ejecución desde el que se invoque. Es necesario llamar a CoInitialize desde cada thread de la aplicación que quiera acceder a objetos COM.

OBTENER LA INTERFAZ
Para obtener la interfaz inicial llamamos al método CoCreateInstance, este creará una nueva instancia de un objeto COM y nos devolverá un puntero a su interfaz.
            IUnknown *pIUnknown = NULL;
            hr = CoCreateInstance(CLSID_UserInfo, NULL,
                                   CLSCTX_INPROC_SERVER, IID_IUnknown,
                                   (LPVOID *)&pIUnknown);
            if (SUCCEEDED(hr))
            {....}

A través del puntero a IUnknow obtener el puntero a la interfaz IUserInfo
                        hr = pIUnknown->QueryInterface(IID-IUserInfo,
                                   (LPVOID *)&pIUserInfo);
                                   if (SUCCEEDED(hr))
                                               {\\manipulación del objeto}



LIBERAR LAS INTERFACES
para liberar las interfaces hay que llamar al método Release, si el objeto COM no tiene más interfaces referenciadas se borrara automaticamente:

            pIUserInfo->Release();
            pIUnknown->Release();

FINALIZAR LAS LIBRERIAS
La librería COM se finaliza a través del método CoUninitialize, una vez llamado a este método no se podrá seguir llamando a funciones de la librería COM ni manipulando objetos COM.

DCOM
En el menú Archivo , seleccione la opción Nuevo proyecto, seleccione EXE estándar y, a continuación, haga clic en Aceptar. De forma predeterminada, se crea Form1.
En el menú Proyecto, haga clic en la opción Propiedades del proyecto y, a continuación, seleccione la ficha General.
En el campo Nombre de proyecto, escriba DCOMDemo_Cli.
En el campo Descripción del proyecto, escriba DCOMDemo_Cli Proyecto - Cliente.
En el menú Proyecto, haga clic en Referencias. En la lista de referencias disponibles, seleccione DCOMDemo_Svr - Servidor.
Coloque un botón de comando en Form1 y cambie el título del botón por Ejecutar.
Coloque el código siguiente en el evento de clic del botón
En el menú Archivo, seleccione Guardar como y, a continuación, guarde el proyecto en la carpeta c:\DCOMDemo\Client del cliente.
Presione la tecla F5 para ejecutar el cliente en el IDE y probarlo.
En el menú Archivo, seleccione Generar DCOMDemo_Cli para compilar el cliente y, a continuación, cierre Visual Basic.


 Resultado de imagen para COM DCOM

 4.3 Automatización:

Basado en la Biblioteca de plantillas estándar (STL), ATL amplía el entorno de desarrollo de Visual Studio con asistentes utilizados para la automatización objeto COM. ATL facilita la programación de objetos COM para la invocación guión de páginas Active Server (ASP). ATL se puede utilizar para crear una variedad de objetos, incluyendo cuadros de diálogo y los controles de Internet Explorer. ATL soporta características de COM clave, como los controles ActiveX, interfaces duales y puntos de conexión.















4.4 ATL (Active Template Library)

Active (ATL) Template Library es un conjunto de clases de C++ basadas en plantillas que permiten crear objetos pequeños, rápidos (COM) del modelo de objetos componentes. Tiene compatibilidad especial para características COM clave, incluidas las implementaciones comunes, interfaces duales, interfaces COM estándar de enumeradores, puntos de conexión, rasga interfaces, y controles ActiveX.


Si tiene muchos programación ATL, deseará obtener más información sobre atributos, una característica nueva de Visual C++ .NET que está diseñado para simplificar la programación COM. Para obtener más información, vea Programación con atributos.
Resultado de imagen para COM DCOM

4.5 DCOM

Distributed Component Object Model (DCOM), en español Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. Ha sido abandonada en favor del framework .NET.1 2
La adición de la "D" a COM fue debido al uso extensivo de DCE/RPC, o más específicamente la versión mejorada de Microsoft, conocida como MSRPC.
En términos de las extensiones que añade a COM, DCOM tenía que resolver los problemas de
    Aplanamiento - Serializar y deserializar los argumentos y valores de retorno de las llamadas a los métodos "sobre el cable".
    Recolección de basura distribuida, asegurándose que las referencias mantenidas por clientes de las interfaces sean liberadas cuando, por ejemplo, el proceso cliente ha caído o la conexión de red se pierde.
Uno de los factores clave para resolver estos problemas es el uso de DCE/RPC como el mecanismo RPC subyacente bajo DCOM. DCE/RPC define reglas estrictas en cuanto al aplanamiento y a quién es responsable de liberar la memoria.
DCOM fue uno de los mayores competidores de CORBA. Los defensores de ambas tecnologías sostenían que algún día serían el modelo de código y servicios sobre Internet. Sin embargo, las dificultades que suponía conseguir que estas tecnologías funcionasen a través de cortafuegos y sobre máquinas inseguras o desconocidas, significó que las peticiones HTTP normales, combinadas con los navegadores web les ganasen la partida. Microsoft, en su momento intentó y fracasó anticiparse a esto añadiendo un transporte extra HTTP a DCE/RPC denominado "ncacn_http" (Connection-based, over HTTP).




Resultado de imagen para COM DCOM 

Conclusión:


 En conclusión COM/DCOM para poder usarlo necesitamos una licencia para poder utilizarlo ya que  es Microsoft y tiene restringido poder piratearlo para finalizar COM Y DCOM  son Modelos de Objetos de Componentes soportan comunicación entre ordenadores claro solo usando el sistema operativo de Windows DCOM es la evolución de COM  solo que esta maneja ciertos protocolos un poco muy bajo que COM.




No hay comentarios:

Publicar un comentario