comunicación dde

Upload: cristhian-guerron

Post on 05-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Comunicación DDE

    1/3

    Comunicación DDEEn Windows cualquier aplicación cliente puede comunicarse con cualquierservidor, usando el protocolo DDE. La transferencia dinámica de datos(DDE ) es la técnica de comunicación que utilian los pro!ramas."na conversación DDE se inicia con el pro!rama que act#a como cliente, éste

    trans$ere un mensa%e a todos los pro!ramas que se están e%ecutando en esemomento en Windows. Dic&o mensa%e indica una cate!or'a !eneral de datosque el cliente necesita. "n servidor DDE que posee dic&os datos puederesponder a este mensa%e, en ese instante comiena la conversación. "n #nicopro!rama puede ser cliente para un pro!rama, servidor para otro, pero estorequiere dos conversaciones DDE distintas. "n servidor puede entre!ar datos am#ltiples clientes un cliente puede otener datos desde m#ltiples servidores,pero esto requiere m#ltiples conversaciones DDE.

    Las aplicaciones DDE están clasi$cadas en cuatro categorías* cliente,servidor, cliente+servidor monitor. "na comunicación DDE siempre tienelu!ar entre una aplicación cliente, que la inicia, una servidor . Laaplicación cliente solicita datos o servicios a una servidor ésta responde,positiva o ne!ativamente, a la petición. En unaaplicación cliente/servidor coeisten amas cualidades, es decir solicita suministra información. "na aplicación monitor es capa de interceptarmensa%es diri!idos a otras aplicaciones, aunque no puede acceder a ellos.Este tipo es particularmente #til en tareas de depuración. 

    En comunicaciones de -C+/, las aplicaciones aren una l'nea de comunicación entonces trans$eren datos crudos. DDE traa%a a un nivel más alto, donde lasaplicaciones env'an mensa%es para intercamiar información. "n mensa%e simplees enviar un comando a otra aplicación. La maor'a de los mensa%es setrans$eren como datos, donde los datos son referenciados por nomre.

     0mas aplicaciones deen estar e%ecutándose las dos deen dar a Windowsuna dirección a sus funciones de llamada antes de que la comunicación de DDEpueda comenar. La función de llamada acepta cualquier mensa%e de DDE queWindows env'a a la aplicación.

    "n cliente de DDE comiena una conversación con otra aplicación (un servidorde DDE) enviando un mensa%e de coneión. Después de estalecer unaconeión, el cliente puede enviar órdenes o datos al servidor a camio puedepedir el valor de datos que el servidor mane%a. Cuando la comunicación DDE escompletada, el cliente env'a un mensa%e de cerrar la conversación al servidor.

    "na aplicación DDE puede sostener varias conversacionessimultáneamente. 1erá el protocolo el que especi$que que mensa%es deuna conversación deen tratarse sincroniadamente. -amién puedeconmutar as'ncronamente entre varias, un e%emplo ser'a el de unaaplicación que reciiese cuatro mensa%es para las dos conversaciones que

    tiene estalecidas. De manera que los mensa%es n#mero uno, dos cuatroser'an para la primera el n#mero tres para la se!unda. Los de la primera

  • 8/16/2019 Comunicación DDE

    2/3

    conversación deen procesarse secuencialmente. La aplicación puedeprocesar el tercer mensa%e, cuando lo recia, antes o después que elresto.

     

    Las aplicaciones DDE &an de tener de$nidas un'vocamente todas susconversaciones, mediante pare%as de handles de ventana para lasaplicaciones cliente servidor. 0s', un cliente podrá sostener variasconversaciones con varios servidores, conversaciones que !estionamediante las correspondientes pare%as de handles. 0&ora ien, 2es posileque una aplicación cliente manten!a varias conversaciones con un soloservidor3. 1i solamente eiste una pare%a dehandles , la respuesta es no.4o crea que al!#n proceso etra5o lo realiará por nosotros, &a que crearuna nueva ventana para cada nueva conversación. 1i se &ace de estamanera se ase!urará la propiedad de una #nica pare%a de &andles paracada conversación.

    Las aplicaciones DDE utilian un sistema de identifcación que tiene unaestructura de árol. El nomre de aplicación es el nivel más alto de la %erarqu'a de$ne a la aplicación servidor. Cada nomre de aplicación controla uno o variostemas, identi$cados por sus nomres de tema (topic name), nomres quetamién se re$eren a la aplicación servidor que, a su ve, tienen uno o másnomres de identi$cador (item name), con los detalles de cada tema.0demás de procesar los mensa%es en el orden correcto, es primordial que lasaplicaciones los env'en, o recian, a su deido tiempo. "na conversación DDEcomiena cuando una aplicación cliente env'a un mensa%e W67DDE7/4/-/0-E conlos nomres de la aplicación tema, se completa cuando la aplicación servidorresponde al mensa%e. ara que pueda &acerlo, la aplicación cliente deeproporcionar información complementaria acerca de ella misma qué servidorusca. or eso la aplicación cliente, cuando env'a el mensa%e de inicio, inclueademás el handle de ventana propio especi$ca la aplicación el tema de laconversación."na aplicación DDE correctamente dise5ada dee resolver todas las situacionesque se producen por el &ec&o de enviar un mensa%e de inicialiación. La másproale es que el mensa%e no oten!a respuesta, en cuo caso la aplicacióncliente deer avisar al usuario para que inicialice la aplicación servidor, de otra

    manera la aplicación cliente no podrá continuar su tarea. La se!unda situaciónmás proale es que se recian varias respuestas, la aplicación cliente deeentonces $naliar las conversaciones innecesarias mediante el env'o de loscorrespondientes mensa%es WM_DDE_TERMINTE.Estalecida la conversación, las aplicaciones cliente servidor comienan eltraa%o real* la transferencia de información la prestación de servicios. Latransferencia de información parece lo más apropiado para una aplicación detransferencia dinámica de datos, pero una aplicación servidor tamiénpresta servicios. "n servicio puede ser arir un $c&ero o conectarse a otroordenador para enviarle un $c&ero. "na aplicación cliente informa a unaservidora con un mensa%e WM_DDE_E!E"#TE el tipo de servicio que desea. Estemensa%e contiene en una serie de caracteres el comando a e%ecutar por la

    aplicación servidora. El protocolo DDE de$ne el formato de la serie decaracteres, aunque no su contenido.

  • 8/16/2019 Comunicación DDE

    3/3

    Los sistemas de transferencia de datos están asociados altérmino vinc$lo (lin8). "n v'nculo de$ne la manera en que seintercamiará la información. 1i un cliente solicita información elservidor responde inmediatamente se dice que se &a estalecidoun vínc$lo %río (cold lin8). or contra, un vínc$lo templado (warm lin8) es

    el estalecido cuando el servidor avisa que &a camiado el valor de unidenti$cador, pero no env'a el nuevo valor. "n v'nculo caliente (&ot lin8) seestalece cuando el servidor env'a además el nuevo valor.Los mensajes son la base del protocolo DDE, el cual detalla cuando, cómo y dónde utilizarlos. Un

    mensaje DDE siempre tiene un parámetro wParam con el handle de la ventana de la aplicación

    servidor llamante y un parámetrolParam formado por dos palabras con información específica del

    mensaje. e utilizan las funciones SendMessage() para el envío del mensaje de

    inicio WM_DDE_INITIATE y del de respuesta WM_DDE_ACK , y PostMessage() para el resto de

    mensajes. El handle contenido en wParam es el de la aplicación !cliente o servidor" una vez

    establecida la conversación, empleando wParam el valor -l  cuando se intenta iniciarla. Este #ltimo

    valor en la funciónSendMessage() hace $ue el mensaje lle%ue a todas las ventanas no hijas de un

    sistema.&asta ahora nos hemos basado en la comunicación entre aplicaciones dentro de una misma má$uina,

    sin embar%o DDE permite es establecimiento de conversaciones entre clientes y servidores $ue se

    están ejecutando en diferentes estaciones de una red de computadoras. 'ara conse%uir el objetivo de

    e(plicar como se realiza esta comunicación remota supondremos la e(istencia de dos pro%ramas, los

    cuales se ejecutarán en las diferentes estaciones. ) estos los denominaremos *+DULE L-E/

    !*" y *+DULE E01E0 !*".

    Los dos módulos llevan a cabo funciones similares2

    0eciben los mensajes DDE %enerados por las aplicaciones cliente3servidor $ue se ejecutan en sus

    respectivas estaciones y las envían a trav4s de la red al correspondiente * o *.

    0eciben los pa$uetes enviados por los módulos correspondientes y los envían como mensajes DDE, a

    las aplicaciones cliente3servidor a las cuales sirven, tal y como se muestra en la fi%ura.

    /odas las operaciones realizadas por *3* para enviar los mensajes al cliente3servidor en laestación remota y para obtener las respuestas a estos mensajes, son transparentes a las aplicaciones

    DDE de las estaciones en las cuales los módulos se ejecutan. )sí, para las aplicaciones clientes, en su

    comunicación con un *, 4ste act#a como un servidor DDE. De i%ual forma, para las aplicaciones

    servidoras, * se comporta como un cliente DDE.

    La %ran ventaja de esta apro(imación consiste en $ue se permite a la misma aplicación cliente o

    servidora comunicarse con varias aplicaciones en estaciones remotas. La comunicación entre

    diferentes estaciones no re$uiere $ue los pro%ramas DDE sufran cambios, lo #nico $ue se necesita es

    $ue los módulos * y * est4n activos en las diferentes estaciones.

    'ara e(plicar como trabajan los módulos * y *, consideraremos $ue están activos en dos

    estaciones diferentes. * se ejecuta en la estación 5 !local" y * en la estación 6 !remota". Una

    aplicación cliente en la estación 5, intentando inicializar una conversación, envía el mensaje

    7*8DDD8--/-)/E a todas las aplicaciones $ue están siendo ejecutadas en su estación, incluyendo*. En este caso, la recepción de un mensaje de inicialización obli%a a * a la creación de dos

    ventanas $ue se %obiernan por la relación padre 9 hija.