U4 COM/DOM
TECNOLÓGICO NACIONAL
DE MÉXICO
INSTITUTO TECNOLÓGICO DE IGUALA
MATERIA:
PROGRAMACION AMBIENTE CLIENTE/SERVIDOR
NOMBRE DEL DOCENTE:
M. C VICTOR MANUEL JACOBO ADÀN
NOMBRE DE LA ALUMNA
EVA YARITZELL LOPEZ MILLAN
TEMA:
COM/DCOM.
CARRERA:
INGENIERÍA INFORMÁTICA
7° SEMESTRE
INTRODUCCIÓN
Para poder ver la introduccion de este tema clic en el siguiente video
¿QUE ES COM/DCOM?
- COM
Component Object Model (COM) es una plataforma de Microsoft para para
desarrollar compontes de software, introducida en 1993. Esta plataforma
es utilizada para permitir la comunicación entre procesos y la creación
dinámica de objetos, en cualquier lenguaje de programación que soporte dicha
tecnología.
El término COM es a menudo usado en el mundo
del desarrollo de software como un término que abarca las tecnologías OLE, OLE
Automation, ActiveX, COM+ y DCOM. Si bien COM fue introducido en 1993,
Microsoft no hizo énfasis en el nombre COM hasta 1997.
Esencialmente COM es una manera de implementar
objetos neutrales con respecto al lenguaje, de manera que pueden ser usados en
entornos distintos de aquel en que fueron creados, a través de fronteras entre
máquinas. Para componentes bien creados, COM permite la reutilización de
objetos sin conocimiento de su implementación interna, porque fuerza a los
implementadores de componentes a proveer interfaces bien definidas que están
separados de la implementación.
Las diferentes semánticas de reserva de
memoria están acomodadas haciendo a los objetos responsables de su propia
creación y destrucción por medio del contador de referencias. Se puede hacer casting
entre distintas interfaces de un objeto por medio de la función QueryInterface().
El método preferido de herencia en COM es la creación de sub-objetos a los que
se delegan las llamadas a métodos (llamado agregación).
- DCOM
El Modelo de Objetos de
Componentes Distribuidos (Distributed Component Object Model, DCOM) es una
tecnología propetaria de Microsoft para desarrollar componte de software
distribuidos sobre varias computadoras y que se comunican entre sí.
Extiende el modelo Component
Object Model (COM) de Microsoft y proporciona el sustrato de comunicación
entre la infraestructura del servidor de aplicaciones COM+ de Microsoft.
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).
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
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.
4.2 CREACIÓN DEL CLIENTE
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.
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 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.
ATL incluye muchas clases RAII para simplificar la
gestión de los tipos COM. Las clases más usadas incluyen:
- CComPtr<T> puntero inteligente de uso general,
- CComBSTR envoltura BSTR,
- CComVariant envoltura VARIANT, y
- CComSafeArray<T> SAFEARRAY envoltura.
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).
CONCLUSIÓN
Para poder ver la conclusiòn de este tema clic en el siguiente video.
REFERENCIAS
Cambios ATL y MFC y correcciones en Visual Studio 2013 http://blogs.msdn.com/b/vcblog/archive/2013/08/20/atl-and-mfc-changes-and-fixes-in-visual-studio
-2013.asp
COM/DCOM disponible en: https://translate.google.com.mx/translate?hl=es&sl=en&u=https://en.wikipedia.org/wiki/Active_Template_Library&prev=search
consultado el dia 15/07/17
Grabriela Range, 01/2016, U4COM/DCOM, blogspot.mx,Disponible en: http://u4comdcom.blogspot.mx/.
consultado el dia 15/07/17
Microsoft Corp. (2006). «Component Object Model». Archivado desde el original el 26 de noviembre de 2015. Consultado el 6 de febrero de 2006.
https://es.wikipedia.org/wiki/Component_Object_Model






Comentarios
Publicar un comentario