Sei sulla pagina 1di 5

1. Explique el principio de funcionamiento de COM y DCOM. Presente un ejemplo sencillo de funcionamiento.

Para explicar el funcionamiento del COM y DCOM se presenta una tabla que se muestra a continuación:

Definición Ventajas Desventajas

COM es utilizado para


permitir la comunicación
entre procesos y la creación
dinámica de objetos para  La arquitectura de los
muchos lenguajes de componentes distribuidos,
programación. Básicamente permite repartir los
COM es una manera de objetos en varias
implementar objetos neutrales computadoras de la red
con respecto al lenguaje, de LAN, WAN e Internet.
manera que pueden ser usados  Los diferentes objetos
COM
en entornos distintos de aquel componentes pueden ser
en que fueron creados. Es gestionados y presentados  No es multiplataforma,
decir, permite que los clientes por aplicaciones distintas. poco soporte para
se comuniquen con otros  Para crear los documentos plataformas no Windows.
objetos en forma transparente compuestos no  Requiere conocimientos
independientemente del lugar necesariamente se tiene previos de los métodos
donde se están ejecutando, ya que ser programador. con el fin de utilizar su
sea en el mismo proceso, la funcionalidad.
misma computadora o una  Exige modificaciones a
computadora diferente. los sistemas existentes no
Son extensiones añadidas al compatibles con los
Es la extensión COM con el fin de mejorar en estándares para poder
del Component Object ciertos puntos débiles que habilitar su
Model a los ambientes tenía el anterior como: interoperabilidad.
distribuidos, que define los
 Aplanamiento: Serializar
mecanismos de conexión y el
y deserializar los
protocolo de red necesario
argumentos y valores de
para hacer llamadas a
retorno de las llamadas a
procedimientos remotos
los métodos "sobre el
orientadas a objetos, a nivel
DCOM cable".
de aplicación, que lo vuelven
útil para sistemas distribuidos  Recolección de basura
distribuida: Asegurándose
de todo tipo basados en
que las referencias
componentes. Es decir, la
mantenidas por clientes de
interacción entre objetos
las interfaces sean
cliente y objetos servidor se
liberadas cuando, por
realiza mediante un
ejemplo, el proceso
mecanismo de comunicación
cliente ha caído o la
RPC
conexión de red se pierde.
Ejemplo
COM
El ejemplo que se mostrará a continuación es la de cómo crear un cliente.
 Nos permite iniciar la librería COM hay que llamar al método del API COM
hr = CoInitialize(NULL);
if ( SUCCEEDED(hr) )
{ ...
}
 Brinda obtener la interfaz inicial, para ello se debe llamar al 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))
{....}
 Nos permite 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}
DCOM
En este caso se dará un ejemplo de cómo conectar Virtual Basic ( lenguaje de
programación dirigido por eventos) con SAP mediante DCOM.
Primero se genera una función RFC en SAP que permite indicar un número de cliente y
que devuelva el nombre, es decir, con dos parámetros: uno input y otro output.

FUNCTION ylu_dcom_ej01.

*"--------------------------------------------------------------
--------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(I_KUNNR) TYPE KUNNR
*" EXPORTING
*" REFERENCE(E_NAME1) TYPE NAME1
*"--------------------------------------------------------------
--------

TABLES: kna1.

SELECT SINGLE name1


FROM kna1 INTO kna1-name1
WHERE kunnr EQ i_kunnr.

IF sy-subrc EQ 0.
e_name1 = kna1-name1.
ELSE.
CLEAR e_name1.
ENDIF.
Este formulario que se muestra a continuación nos permite ingresar el código del cliente,
enviarlo al SAP y que automáticamente nos devuelva el nombre. El funcionamiento de
este código es cuando ejecutamos el programa le indicamos un código de cliente nos
devolverá el nombre al hacer clic en el botón. Caso contrario, si esta vació o no existe
el cliente devuelve en blanco, esto debido a que la función SAP vacía el parámetro
de retorno.

Option Explicit

Private Sesion As DESdcom1Lib.Dcom1SessionComponent


Private Funcion As DESdcom1Lib.Prueba

Private Sub Form_Load()

On Error GoTo errSAP

Set Sesion = CreateObject("SAP.DCOM1SessionComponent.1")


Sesion.Destination = "DES" ‘ servidor
Sesion.UserID = "usuario"
Sesion.Password = "password"
Sesion.Client = "100" ‘ mandante

Exit Sub

errSAP:
MsgBox Err.Number & " " & Err.Description

End Sub

Private Sub Command1_Click()


Dim stNombre As String

Set Funcion = Sesion.CreateInstance("DES.Prueba.1")

Funcion.Z_Rfc_Prueba stNombre, Text1(0).Text


Text1(1).Text = stNombre

End Sub
Como se pudo notar cada una de las bases de arquitectura de estas tecnologías son el
cliente servidor, además utilizan un protocolo de transporte para enviar mensajes a través
de las computadoras en una red.
Es importante resaltar que el DCOM cuenta con un lenguaje independiente, las personas
que se encargan en desarrollar aplicaciones pueden elegir cualquier herramienta y
lenguaje de preferencia o que este familiarizado

Potrebbero piacerti anche