expo com y dcom

28
COM/DCOM COM/DCOM Sistemas Distribuidos Julio Cesar C´ ardenas Narv´ aez Oscar Garc´ ıa Florez Pedro Guti´ errez Silvano Luis Miguel Cruz Perez Instituto Tecnol´ ogico Superior de los R´ ıos 16 de abril de 2013 Equipo 3 COM/DCOM

Upload: oskar-garcia

Post on 01-Dec-2015

381 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Expo COM Y DCOM

COM/DCOM

COM/DCOMSistemas Distribuidos

Julio Cesar Cardenas NarvaezOscar Garcıa Florez

Pedro Gutierrez SilvanoLuis Miguel Cruz Perez

Instituto Tecnologico Superior de los Rıos

16 de abril de 2013

Equipo 3 COM/DCOM

Page 2: Expo COM Y DCOM

COM/DCOM

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 3: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 4: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 5: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Introduccion

COM (Component Object Model) es la tecnologıa de definicion ymanipulacion de componentes de Microsoft que proporciona unmodelo de programacion y un estandar binario para los mismos.DCOM (de Distributed COM) es la tecnologıa que extiende COMpara permitir a los objetos componentes residir en maquinasremotas y esta disponible desde la aparicion de Windows NT 4.0. ACuando en 1993 surge COM, tecnologıa de Microsoft, seavanzo en la posibilidad de comunicar aplicaciones escritas endistintos lenguajes.

Equipo 3 COM/DCOM

Page 6: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 7: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

COM

¿Que es COM?

es una especificacion.

es una porcion de codigo que forma parte de varios sistemasoperativos.

es una filosofıa para el desarrollo de aplicaciones.

es un estandar binario para la construccion de componentes.

Equipo 3 COM/DCOM

Page 8: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 9: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Objetivo principal de COM

El objetivo principal de COM es proporcionar un medio por el quelos clientes pueden hacer uso de los objetos servidores, sin tener encuenta que pueden haber sido desarrollados por diferentescompanıas utilizando diferentes lenguajes de programacion.

Con el fin de lograr este nivel de interoperabilidad, COM define unestandar binario, que especifica como se dispone un objeto enmemoria principal en tiempo de ejecucion. Cualquier lenguaje quepueda reproducir dicha disposicion en memoria podra crear objetosCOM.

Equipo 3 COM/DCOM

Page 10: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 11: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Modelo Cliente/Servidor

El uso de los componentes COM es un claro ejemplo de laarquitectura Cliente/Servidor. El objeto COM en sı es el servidor, yes usado por un programa que hace de cliente. Existen variasformas de realizar la comunicacion.Podemos encontrar los componentes como partes de un ejecutable( como el caso de los productos de Microsoft Office, o siimplementamos nuestro propio componente y lo incluimos con unprograma que los use ), dentro de una librerıa de enlace dinamico (DLL ) o incluso en otra maquina ( DCOM ).

Equipo 3 COM/DCOM

Page 12: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 13: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Modelo COM

En el modelo clasico de programacion orientada a objetos se sueleidentificar al objeto con su interfaz. De hecho, esta tan unida lainterfaz al objeto que se puede decir que tal objeto es el que tienetales funciones. Sin embargo, el modelo COM realiza la distincionentre el objeto y las interfaces que implementan. Ası, para COMuna interfaz es un conjunto de declaraciones de funciones quepuede o no implementar un objeto. La definicion de Interfaz es :conjunto de funciones que se ponen a disposicion del publico.Suelen tener relacion entre sı. Las interfaces tambien tiene unGUID ( denominado IID, o identificador de interfaz ). Un mismoobjeto puede implementar ( y de hecho lo hace siempre ) variasinterfaces.

Equipo 3 COM/DCOM

Page 14: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Ejemplo:

Equipo 3 COM/DCOM

Page 15: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 16: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Modelo de programacion

En el modelo de programacion COM, los clientes COM se conectana uno o mas objetos COM. Cada objeto COM expone sus serviciosa traves de una o mas interfaces, que no son mas que agrupacionesde funciones relacionadas semanticamente.

La implementacion compilada de cada objeto COM esta contenidaen un modulo binario (exe o dll) denominado servidor COM. Ununico servidor COM es capaz de contener la implementacioncompilada de varios objetos COM.

Equipo 3 COM/DCOM

Page 17: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Un servidor COM puede estar enlazado al proceso cliente(in-process server), puede ejecutarse en un proceso distinto delcliente pero en la misma maquina (local server) o bien, puedeejecutarse en un proceso separado en una maquina distinta, inclusoen un sistema operativo distinto (remote server).

Para la comunicacion con objetos situados en espacios dedirecciones distintos del espacio de direcciones del cliente, seutilizan intermediarios en la forma de representantes y sustitutos.

Equipo 3 COM/DCOM

Page 18: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 19: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Diferencias entre COM y C++

COM es distinto a C++. Los objetos COM son bastantes mascomplicados. Muchas de estas complicaciones vienen del hecho dela arquitectura Cliente/Servidor que se puede realizar a traves deredes. Hay cuatro consideraciones basicas que diferencian a C++ yCOM:

Equipo 3 COM/DCOM

Page 20: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Los objetos en C++ siempre se ejecutan en el mismo proceso.Los objetos COM pueden ejecutarse estando el cliente en otroproceso que el servidor, o incluso en otro ordenador.

Los metodos de los objetos COM se pueden llamar a traves deuna red.

Los nombres de los metodos de C++ deben de ser unicos enel proceso y los nombres de los metodos de COM deben de serunicos en el mundo.

Los servidores COM pueden ser escritos en variedad delenguajes y en sistemas operativos distintos, mientras que losobjetos escritos en C++ son siempre escritos en C++.

Equipo 3 COM/DCOM

Page 21: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 22: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

DCOM

En DCOM cuando el cliente necesita acceder a un objeto remoto,se crea un proxy local. A traves del SCM (Service ControlManager) local se tiene la informacion del sistema remoto.Tambien puede ofrecer esta informacion la Registry.

El SCM local contacta al SCM remoto. Este activa el objetoremoto y pasa la referencia del objeto remoto al sistema local.

Esa referencia llega al proxy del objeto y el cliente puede crearinstancias del objeto remoto. EN este punto, el cliente esta encondiciones de tratar con el objeto remoto usando el proxy y RPC.

Equipo 3 COM/DCOM

Page 23: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

DCOM usa diferentes tipos de mensajes para invocar metodosremotos. El paquete OBJREF se usa para codificar la respuesta deun sistema remoto, para identificar la instancia particular de unobjeto. El paquete ORPCTHIS es usado por el cliente para invocarun metodo.

DCOM presenta algunos problemas, pues su mecanismo degarbage collection genera mucho trafico. Para garantizar que todoslos participantes de una invocacion remota estan activos mientrasse resuelve la llamada al metodo, deben enviar apinga al servercada dos minutos.

Equipo 3 COM/DCOM

Page 24: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Cuando el sistema sospecha que se perdio una conexion con elcliente, por ejemplo ante la perdida de un ping, espera dos perıodosde time out. Si luego de ese tiempo el cliente no respondio con unping, el server destruye el objeto remoto y restituye los recursos.

En cuanto a la seguridad, DCOM permite seleccionar el grado deseguridad en la comunicacion. Se puede transmitir texto claro,encriptar el header y los datos de la llamada al metodo y otrasalternativas

Equipo 3 COM/DCOM

Page 25: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 26: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

conclusion

Distributed Component Object Model (DCOM), en espanolModelo de Objetos de Componentes Distribuidos, es unatecnologıa propietaria de Microsoft para desarrollar componentessoftware distribuidos sobre varios ordenadores y que se comunicanentre sı. Extiende el modelo COM de Microsoft y proporciona elsustrato de comunicacion entre la infraestructura del servidor deaplicaciones COM+ de Microsoft.

La adicion de la D a COM fue debido al uso extensivo deDCE/RPC, o mas especıficamente la version mejorada deMicrosoft, conocida como MSRPC.

Equipo 3 COM/DCOM

Page 27: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Contenido

1 COM/DCOMIntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Equipo 3 COM/DCOM

Page 28: Expo COM Y DCOM

COM/DCOM

IntroduccionCOMObjetivo principal de COMModelo Cliente/ServidorModelo COMModelo de programacionDiferencias entre COM y C++DCOMConclusionBibliografia

Bibliografia

http://usuarios.multimania.es/andromeda studios/paginas/tutoriales/articulo02.htm

Equipo 3 COM/DCOM