Geovanni Hernndez Carranza
INSTITUTO TECNOLGICO SUPERIOR DE APATZINGN
ALUMNO: Geovanni Hernndez Carranza.
MATERIA: Programacin en Ambiente Cliente-Servido
FECHA: 26/ 11 / 2014
Docente: Hugo Alberto Torres Bez
UNIDAD 4COM/DCOM (Component Object Model/Distribuited COM)
UNIDAD 4COM/DCOM (Component Object Model/Distribuited COM 4.1
CREACION DE SERVIDORES COMCOM es el acrnimo de Component Object
Model (Modelo de Objeto Componente) con lo cual se pueden crear
objetos desde un lenguaje y poder utilizarlos en otro distinto en
que fueron creados.Entonces, en este ejemplo se muestra como crear
un objeto COM desde Python para poder utilizarlo desde VBA/Excel.
EJEMPLO DE CREACION DE UN SERVIDOR COM EN PYTHON:Creamos un archivo
llamado miservidorcom.py y escribimos en el: import sysimport
pythoncomclass interprete_python:_public_methods_ = ["Evaluar"]
#metodos a exportar por el servidor COM_public_attrs_ = ["Version"]
#atributos a exportar por el servidor COM_readonly_attrs_ =
_public_attrs_ #atributos de solo lectura_reg_progid_ =
"interprete_python" #nombre para crear el objeto COM#asignamos el
id de clase por medio de la funcion CreateGuid_reg_clsid_ =
pythoncom.CreateGuid()#constructor, seteo de atributosdef
__init__(self):self.Version = sys.version#evalua una expresion
python y devuelve su resultadodef Evaluar(self, expresion):return
eval(expresion)#Codigo para registrar el script en caso de ser
ejecutado por linea de
comando por python.exeif __name__ == "__main__":
import win32com.server.registerprint
sys.argvwin32com.server.register.UseCommandLine(interprete_python)raw_input("\nServidor
COM instalado!")Antes de poder utilizar el objeto COM en VBA/Excel,
hay que registrarlo con la siguiente instruccion desde la linea de
comando:
python miservidorcom.py --registerDespus de haber registrado el
servidor COM, ya podemos invocarlo desde VBA/Excel de la siguiente
forma:
Option ExplicitSub Main()Dim Python As ObjectDim Version As
StringDim Expresion As StringDim Resultado As String' Creo el
objeto Python exportado por el Servidor COM:Set Python =
CreateObject("interprete_python")' Obtengo un atributo del objeto
python:
Version = Python.VersionMsgBox Version, , "Versin de
Python:"DoExpresion = InputBox("Ingrese una expresin python para
ser evaluada", "Ejemplo COM", "1+2")If Expresion = "" Then Exit
Sub' Llamo al mtodo del objeto python:Resultado =
Python.Evaluar(Expresion)MsgBox Resultado, , "Resultado:"LoopEnd
Sub
4.2 Creacin de un Cliente En COM
4.3 AUTOMATIZACION Component Object Model (y derivados) se
refiere a la capacidad de poder crear componentes COM que tengan la
capacidad de ser usados sin necesidad de conocer los nombres y
parmetros de los mtodos, de antemano. Esto sirve para que lenguajes
como Visual Basic o los de scripting (VBScript, JScript) puedan
invocar estos componentes mediante un valor numrico (algo as como
"mtodo uno", "mtodo dos", etc). Esto se logra mediante los archivos
idl/odl y la implementacin de la interfaz IDispatch.
4.4 ACTIVE TEMPLATE LIBRARYActive (ATL) Template Library es un
conjunto de clases de C++ basadas en plantillas que permiten crear
objetos pequeos, rpidos (COM) del modelo de objetos
componentes.Tiene compatibilidad especial para caractersticas COM
clave, incluidas las implementaciones comunes, interfaces duales,
interfaces COM estndar de enumeradores, puntos de conexin, rasga
interfaces, y controles ActiveX.Si tiene muchos programacin ATL,
desear obtener ms informacin sobre atributos, una caracterstica
nueva de Visual C++.NET que est diseado para simplificar la
programacin COM.Para obtener ms informacin, veaProgramacin con
atributos.
4.5 DCOM (DISTRIBUITED COM) Distributed Component Object
Model(DCOM), en espaolModelo de Objetos de Componentes
Distribuidos, es una tecnologapropietariadeMicrosoftpara
desarrollarcomponentes softwaredistribuidos sobre varios
ordenadores y que se comunican entre s. Extiende el
modeloCOMdeMicrosofty proporciona el sustrato de comunicacin entre
la infraestructura del servidor de aplicaciones COM+ deMicrosoft.
Ha sido abandonada en favor del framework.NET.12La adicin de la "D"
a COM fue debido al uso extensivo deDCE/RPC, o ms especficamente la
versin mejorada de Microsoft, conocida comoMSRPC.En trminos de las
extensiones que aade a COM, DCOM tena que resolver los problemas de
Aplanamiento- Serializar y deserializar los argumentos y valores de
retorno de las llamadas a los mtodos "sobre el cable". Recoleccin
de basuradistribuida, asegurndose que las referencias mantenidas
por clientes de las interfaces sean liberadas cuando, por ejemplo,
el proceso cliente ha cado o la conexin de red se pierde.Uno de los
factores clave para resolver estos problemas es el uso de DCE/RPC
como el mecanismoRPCsubyacente bajo DCOM. DCE/RPC define reglas
estrictas en cuanto al aplanamiento y a quin es responsable de
liberar la memoria.DCOM fue uno de los mayores competidores
deCORBA. Los defensores de ambas tecnologas sostenan que algn da
seran el modelo de cdigo y servicios sobreInternet. Sin embargo,
las dificultades que supona conseguir que estas tecnologas
funcionasen a travs decortafuegosy sobre mquinas inseguras o
desconocidas, signific que las peticiones HTTP normales, combinadas
con losnavegadores webles ganasen la partida. Microsoft, en su
momento intent y fracas anticiparse a esto aadiendo un transporte
extra HTTP aDCE/RPCdenominado "ncacn_http" (Connection-based, over
HTTP).
Certificado 42274Km. 3.5 Carretera Apatzingn-Aguililla, Col.
Tenencia de Chandio C.P. 60710, A.P. 49, Apatzingn, Michoacn,
Tel./Fax (453)-534-25-13 y (453)-534-03-71 WEB
http://www.itsapatzingan.edu.mx, Email:
[email protected]