ES2372956T3 - Transferencia de forma flexible de datos de aplicación tipeados. - Google Patents

Transferencia de forma flexible de datos de aplicación tipeados. Download PDF

Info

Publication number
ES2372956T3
ES2372956T3 ES05110545T ES05110545T ES2372956T3 ES 2372956 T3 ES2372956 T3 ES 2372956T3 ES 05110545 T ES05110545 T ES 05110545T ES 05110545 T ES05110545 T ES 05110545T ES 2372956 T3 ES2372956 T3 ES 2372956T3
Authority
ES
Spain
Prior art keywords
soap
act
parameters
typed
typed object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES05110545T
Other languages
English (en)
Inventor
David Wortendyke
Stefan Harrington Pharies
Vaithialingam B. Balayoghan
Douglas M. Purdy
Erik Bo Christensen
Kenneth David Wolf
Michael James Coulson
Michael Jon Marucheck
Michael Steven Vernal
Natasha Harish Jethanandani
Ryan Thomas Sturgell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2372956T3 publication Critical patent/ES2372956T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un procedimiento de envío de forma flexible de datos de aplicación tipeados (131) para un sistema de ordenador (101) que es una red (161) conectable junto con uno o más sistemas de ordenador a una red, comprendiendo el procedimiento: un acto (201) de acceder a los parámetros del objeto tipeado correspondiente a un objeto tipeado, estando anotado el objeto tipeado con uno o más atributos de declaración del mensaje (171) de un modelo de declaración del mensaje (191), definiendo el uno o más atributos de declaración del mensaje un mapeo entre los parámetros del objeto tipeado y los elementos del SOAP correspondientes; un acto (202) del mapeo de los parámetros del objeto tipeado accedido en un elemento del SOAP de acuerdo con el uno o más atributos de declaración del mensaje; y un acto (203) de referirse a uno o más atributos de declaración del mensaje para identificar una localización dentro de la envolvente del SOAP; un acto (204) que inserta el elemento del SOAP en la localización identificada dentro de la envolvente del SOAP (132).

Description

Transferencia de forma flexible de datos de aplicacion tipeados
Referencias cruzadas a aplicaciones relacionadas
No aplicable
5 Antecedentes de la invención
1. El campo de la invención
La presente invencion se refiere a mensajeria electronica y, mas particularmente, a la transferencia de forma flexible de datos de aplicacion tipeados.
2. Antecedentes y técnica relevante
10 Los sistemas de ordenadores y la tecnologia relacionada afectan a muchos aspectos de la sociedad. Verdaderamente la capacidad de los sistemas de ordenadores para procesar informacion ha transformado el modo en el que vivimos y trabajamos. Los sistemas de ordenadores ahora realizan comunmente una serie de tareas (por ejemplo, el procesamiento de textos, programacion, y gestion de bases de datos) que antes del advenimiento de los sistemas de ordenadores se realizaban manualmente. Mas recientemente, los sistemas de ordenadores se han
15 acoplado a unos y otros dispositivos electronicos para formar ambas redes de ordenadores cableadas e inalambricas sobre las cuales los sistemas de ordenadores y otros dispositivos electronicos pueden transferir datos electronicos. Como resultado, muchas tareas realizadas en un sistema de ordenador (por ejemplo, la comunicacion de voz, el acceso al correo electronico, el control de dispositivos electronicos domesticos, la busqueda de paginas Web, y la impresion de documentos) incluyen el intercambio de mensajes electronicos entre varios sistemas de
20 ordenadores y/o otros dispositivos electronicos a traves de redes de ordenadores cableadas y/o inalambricas.
Las redes de hecho se han vuelto tan prolificas, que un simple sistema de computacion habilitado para la red puede comunicar con uno cualquiera de millones de otros sistemas de computacion difundidos a traves del globo sobre una conglomeracion de redes a menudo denominada como la "Internet". Tales sistemas de computacion pueden incluir ordenadores personales de sobremesa, ordenadores personales portatiles o tabletas; Asistentes Digitales
25 Personales (PDA); telefonos; o cualquier otro ordenador o dispositivo capaz de comunicar sobre una red digital.
Para comunicar sobre una red, un sistema de computacion (denominado en el presente documento como un "sistema de computacion de envio" construye o de otro modo accede a un mensaje electronico y transmite el mensaje electronico sobre una red a otro sistema de computacion (denominado en el presente documento como un "sistema de computacion receptor"). El mensaje electronico puede leerse por un usuario humano como cuando el 30 mensaje electronico es un correo electronico o un mensaje instantaneo, o puede leerse, en cambio por una aplicacion que corre sobre el sistema de computacion receptor. El mensaje electronico puede estar construido por una aplicacion que corre sobre el sistema de computacion de envio, con la posible asistencia de un usuario humano.
De este modo en algunos entornos, los mensajes se intercambian entre aplicaciones distribuidas con una pequefa interaccion directa con el usuario, si la hay. Un protocolo usado para el intercambio de mensajes entre aplicaciones 35 distribuidas (por ejemplo, los servicios Web) es el Protocolo de Acceso de Objetos Simples ("SOAP"). El SOAP es un protocolo ligero previsto para el intercambio de informacion en un entorno descentralizado, distribuido. El SOAP usa las tecnologias del Lenguaje de Marcado extensible ("XML") para definir una estructura de mensajeria extensible que proporciona construcciones de mensajes que pueden intercambiarse sobre una diversidad de protocolos subyacentes, tales como, por ejemplo el Protocolo de Transferencia de Correo Simple ("SMTP"), el Protocolo de
40 Transferencia de Hipertextos ("HTTP"), el Protocolo de Datagramas de Usuario ("UPD"), el Protocolo de Control de Transmision ("TCP") y las canalizaciones con nombre. Los mensajes del SOAP pueden definirse en un asunto abierto como un conjunto de informacion del SOAP (por ejemplo, los elementos de XML) que tienen un conjunto de cabeceras de mensajes y un cuerpo del mensaje.
Muchas aplicaciones estan disefadas usando un procedimiento y/o modelos de programacion orientados a objetos.
45 Estos modelos de programacion frecuentemente usan formatos de tipos de datos (por ejemplo, numeros enteros, cadenas de caracteres, formatos logicos o formatos de datos definidos por el usuario) para intercambiar objetos entre modulos. Por ejemplo, un procedimiento puede recibir uno o mas objetos tipeados (por ejemplo, parametros de diversos formatos de tipos de datos diferentes) como entrada. En respuesta, el procedimiento puede generar y sacar valores (potencialmente diferentes) para los objetos tipeados o puede devolver el objeto tipeado de un tipo de datos
50 diferente (por ejemplo, el tipo de datos del procedimiento). El uso de los formatos de datos tipeados es ventajoso ya que permite al desarrollador disefar aplicaciones y modulos que usan tipos de datos que son mas apropiados y/o mas eficaces en base a la aplicacion y/o funcionalidad del modulo.
De este modo en entornos de aplicacion distribuidos, puede ser que los objetos tipeados se tengan que intercambiar entre diferentes porciones de una aplicacion distribuida. Por ejemplo, para facilitar una transicion bancaria, un cliente 55 de banco distribuido puede intercambiar una estructura de datos tipeados de la transaccion bancaria con un servidor
bancario distribuido. Sin embargo, puede ser dificil disefar aplicaciones distribuidas que utilicen las ventajas de los formatos de datos tipeados junto con la flexibilidad de los mensajes del SOAP.
El SOAP es un protocolo abierto y de este modo virtualmente no establece requisitos sobre la aplicacion de mapeo y/o los datos de usuario dentro de un mensaje del SOAP o viceversa. De este modo, hay mecanismos limitados, si
5 hay alguno, para el mapeo de los objetos tipeados (por ejemplo, los tipos del Lenguaje Comun del Tiempo de ejecucion ("CLR")) para los mensajes del SOAP correspondientes y para el mapeo de los mensajes del SOAP a los objetos tipeados correspondientes. Una incapacidad para el mapeo significativo entre objetos tipeados y mensajes del SOAP puede hacer mas dificil, o incluso imposible, para las aplicaciones distribuidas el intercambio de datos de usuario y/o de aplicacion.
10 Ademas, los mecanismos tipicos para la codificacion de mensajes del SOAP dentro de octetos puros limitan el tamafo de los mensajes del SOAP y limitan los tipos de codificadores que pueden usarse. Por lo tanto los sistemas, procedimientos, y productos de programas de ordenador para la transferencia de forma flexible de datos de aplicaciones tipeados serian ventajosos.
La puesta en serie de objetos en la estructura de red .NET usando el Formateador del SOAP se describe en el 15 documento XP-002372766.
Breve sumario de la invención
Los problemas anteriores con el estado anterior de la tecnica se superan por los principios de la presente invencion, que se dirigen hacia sistemas, procedimientos y productos de programas de ordenador para la transferencia de forma flexible de datos tipeados de aplicacion. En algunas realizaciones, un sistema de ordenador configura un 20 mensaje del SOAP para transmitir datos tipeados. El codigo de aplicacion (por ejemplo, un cliente proxy) llama a un objeto tipeado (por ejemplo, un procedimiento) con parametros del objeto tipeado (por ejemplo, parametros para una invocacion de procedimiento). El sistema de ordenador accede a los parametros del objeto tipeado correspondiente al objeto tipeado. El objeto tipeado esta anotado con uno o mas de uno atributos de declaracion del mensaje de un modelo de declaracion de mensajes. El uno o mas atributos de declaracion del mensaje definen un mapeo entre los
25 parametros del objeto tipeado y los elementos del SOAP correspondientes.
El sistema de ordenador mapea los parametros del objeto tipeado accedido en elementos del SOAP de acuerdo con el uno o mas atributos de declaracion del mensaje. El sistema de ordenador se refiere al uno o mas atributos de declaracion del mensaje para identificar una localizacion (por ejemplo, una cabecera del mensaje o el cuerpo del mensaje) dentro de una envolvente del SOAP. El sistema de ordenador inserta el elemento del SOAP en la
30 localizacion identificada dentro de la envolvente del SOAP. La envolvente del SOAP puede situarse a continuacion en un canal, codificarse dentro de octetos puros, y transferir los octetos puros correspondientes a otro sistema de ordenador.
En otras realizaciones, un sistema de ordenador recupera los datos tipeados a partir del mensaje de un SOAP. El sistema de ordenador puede recibir octetos puros desde otro sistema de ordenador, decodificar los octetos puros
35 dentro de una envolvente del SOAP correspondiente, y colocar la envolvente del SOAP en un canal. El sistema de ordenador accede al elemento del SOAP incluido en la envolvente del SOAP.
El sistema de ordenador identifica el objeto tipeado que corresponde al elemento del SOAP. El objeto tipeado se anota con uno o mas atributos de declaracion del mensaje del modelo de declaracion de mensajes. El uno o mas atributos de declaracion del mensaje definen un mapeo entre los elementos del SOAP y los parametros del objeto
40 tipeado correspondiente. El sistema de ordenador mapea el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con el uno o mas atributos de declaracion del mensaje. Los parametros del objeto tipeado se presentan al codigo de la aplicacion (por ejemplo, un servicio) que incluye el objeto tipeado identificado.
Estos y otros objetos y caracteristicas de la presente invencion se haran mas completamente evidentes a partir de la siguiente descripcion y las reivindicaciones adjuntas, o pueden aprenderse por la practica de la invencion como se
45 mostrara en adelante en el presente documento.
Breve descripción de los dibujos
Para clarificar adicionalmente las anteriores y otras ventajas y caracteristicas de la presente invencion, se presentara una descripcion mas particular de la invencion por referencia a realizaciones especificas de la misma que se ilustran en los dibujos adjuntos. Se aprecia que estos dibujos representan solo realizaciones tipicas de la
50 invencion y por lo tanto, no se deben considerar como limitativas de su alcance. La invencion se describira y explicara con una especificidad adicional y detalles mediante el uso de los dibujos adjuntos en los que:
La Figura 1 ilustra un ejemplo de arquitectura de ordenador que facilita el uso del Protocolo de Acceso a Objetos Simples para objetos tipeados intercambiados.
La Figura 2 ilustra un diagrama de flujo de ejemplo de un procedimiento de envio de modo flexible de datos de 55 aplicacion tipeados.
La Figura 3 ilustra un diagrama de flujo de ejemplo de un procedimiento de recepcion de modo flexible de datos de aplicacion tipeados.
La Figura 4 ilustra un entorno de funcionamiento adecuado para los principios de la presente invencion.
Descripción detallada de las realizaciones preferidas
5 Los problemas anteriores con el estado anterior de la tecnica se superan por los principios de la presente invencion, que se dirigen hacia procedimientos, sistemas, y productos de programas de ordenador para la transferencia de modo flexible de datos tipeados de aplicacion. En algunas realizaciones, un sistema de ordenador configura un mensaje del SOAP para transmitir datos tipeados. El codigo de aplicacion (por ejemplo, un cliente proxy) llama a un objeto tipeado (por ejemplo, un procedimiento) con parametros del objeto tipeado (por ejemplo, parametros para una
10 invocacion del procedimiento). El sistema de ordenador accede a los parametros del objeto tipeado correspondiente al objeto tipeado. El objeto tipeado esta anotado con uno o mas atributos de declaracion del mensaje de un modelo de declaracion de mensajes. El uno o mas atributos de declaracion del mensaje definen un mapeo entre los parametros del objeto tipeado y los elementos del SOAP correspondientes.
El sistema de ordenador mapea los parametros del objeto tipeado accedido en elementos del SOAP de acuerdo con
15 los uno o mas atributos de declaracion del mensaje. El sistema de ordenador se refiere al uno o mas atributos de declaracion del mensaje para identificar una localizacion (por ejemplo, una cabecera del mensaje o el cuerpo del mensaje) dentro de una envolvente del SOAP. El sistema de ordenador inserta el elemento del SOAP en la localizacion identificada dentro de la envolvente del SOAP. La envolvente del SOAP puede situarse a continuacion en un canal, codificarse dentro de los octetos puros correspondientes, y transferirse los octetos puros
20 correspondientes a otro sistema de ordenador.
En otras realizaciones, un sistema de ordenador recupera los datos tipeados a partir del mensaje del SOAP. El sistema de ordenador puede recibir octetos puros desde otro sistema de ordenador, decodificar los octetos puros en una envolvente del SOAP correspondiente y colocar la envolvente del SOAP en un canal. El sistema de ordenador accede a un elemento del SOAP incluido en la envolvente del SOAP.
25 El sistema de ordenador identifica el objeto tipeado que corresponde al elemento del SOAP. El objeto tipeado se anota con uno o mas atributos de declaracion del mensaje de un modelo de declaracion de mensajes. El uno o mas atributos de declaracion del mensaje definen un mapeo entre los elementos del SOAP y los parametros del objeto tipeado correspondientes. El sistema de ordenador mapea el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con el uno o mas atributos de declaracion del mensaje. Los parametros del objeto tipeado se
30 presentan al codigo de la aplicacion (por ejemplo, un servicio) que incluye el objeto tipeado identificado.
Las realizaciones dentro del alcance de la presente invencion incluyen medios legibles por el ordenador para transportar o tener las instrucciones ejecutables por el ordenador o las estructuras de datos almacenadas en los mismos. Tales medios legibles por el ordenador pueden ser cualesquiera medios disponibles, que son accesibles por un sistema de ordenador de proposito general o de proposito especial. A modo de ejemplo, y no de limitacion, 35 tales medios legibles por ordenador pueden comprender medios de almacenamiento fisico tales como una RAM, ROM, EPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que pueda usarse para transportar o almacenar los medios del codigo de programa deseado en la forma de instrucciones ejecutables por el ordenador, instrucciones legibles por el ordenador, o estructuras de datos y que pueden accederse por un sistema de ordenador de proposito
40 general o de proposito especial.
En esta descripcion y en las siguientes reivindicaciones, se define una "red" como uno o mas enlaces de datos que posibilitan el transporte de datos electronicos entre sistemas de ordenadores y/o modulos. Cuando se transfiere la informacion o se proporciona sobre una red u otra conexion de comunicaciones (bien cableada, inalambrica o una combinacion de cableada o inalambrica) a un sistema de ordenadores, la conexion se ve propiamente como el 45 medio legible por el ordenador. De este modo, cualquiera de tales conexiones se denomina adecuadamente como un medio legible por ordenador. Tambien deberian incluirse combinaciones de las anteriores dentro del alcance de los medios legibles por ordenador. Las instrucciones ejecutables por el ordenador comprenden, por ejemplo, instrucciones y datos que causan que un sistema de ordenador de proposito general o un sistema de ordenador de proposito especial realice cierta funcion o grupo de funciones. Las instrucciones ejecutables por el ordenador
50 pueden ser por ejemplo, binarias, instrucciones de formato intermedio, tal como un lenguaje ensamblador, o incluso un codigo fuente.
En esta descripcion y en las siguientes reivindicaciones, se define un "sistema de ordenador" como uno o mas modulos software, uno o mas modulos hardware, o combinaciones de los mismos, que funcionan juntos para realizar operaciones sobre datos electronicos. Por ejemplo, la definicion de un sistema de ordenador incluye los 55 componentes hardware del ordenador personal, asi como los modulos software, tales como el sistema operativo del ordenador personal. La capa fisica de los modulos no es importante. Un sistema de ordenador puede incluir uno o mas ordenadores acoplados a traves de una red. Del mismo modo, un sistema de ordenador puede incluir un dispositivo fisico unico (tal como un telefono movil o un Asistente Digital Personal "PDA") donde modulos internos
(tales como una memoria y un procesador) funcionan juntos para realizar operaciones sobre datos electronicos.
En esta descripcion y en las siguientes reivindicaciones, se define un "objeto" como cualquier elemento que puede seleccionarse y manipularse de forma individual. El objeto se define para incluir los objetos software, tales como por ejemplo, los procedimientos y otros objetos de software, que incluyen datos y procedimientos para manipular los
5 datos. El objeto tambien se define para incluir parametros y devolver valores (por ejemplo, los parametros del procedimiento y los valores devueltos por el procedimiento) que pueden intercambiarse entre objetos software (por ejemplo, proporcionarse como entrada o salida de).
En esta descripcion y en las siguientes reivindicaciones, se define una "declaracion de mensaje" como una declaracion, tal como, por ejemplo un modelo de programacion declarativo, que describe un formato del Protocolo de 10 Acceso a Objetos Simples ("SOAP"). Una declaracion de un mensaje puede estar basada en los atributos del Lenguaje Comun del Tiempo de ejecucion que define las porciones de accion, cabeceras, y cuerpo de una envolvente del SOAP. Los atributos pueden usarse sobre un tipo para controlar el modo en el cual las envolventes del SOAP se construyen a partir de, por ejemplo, procedimientos, parametros de procedimiento, y valores devueltos por el procedimiento. Los campos y/o propiedades a incluir en una declaracion de mensaje pueden anotarse, por
15 ejemplo como, [CabeceraMensaje] o [CuerpoMensaje].
Los especialistas en la tecnica apreciaran que la invencion puede ponerse en practica en entornos de computacion de red con muchos tipos de configuraciones del sistema de ordenador, incluyendo, ordenadores personales, ordenadores portatiles, dispositivos de mano, sistemas de multi-procesador, dispositivos electronicos de usuario basados en microprocesadores o programables, PC en red, miniordenadores, ordenadores centrales, telefonos
20 moviles, PDA, buscapersonas, y similares. La invencion tambien puede ponerse en practica en entornos de sistemas distribuidos donde los sistemas de ordenadores locales y remotos, que estan enlazados (bien por enlaces de datos cableados, enlaces de datos inalambricos, o por una combinacion de enlaces inalambricos y cableados) a traves de una red, realizan ambos tareas. En un entorno de sistema distribuido, los modulos de programa pueden localizarse tanto en dispositivos de almacenamiento de memoria locales como remotos.
25 Como se ha representado en la arquitectura de ordenadores 100, los sistemas de ordenadores 101 y 111 estan conectados a la red 161. La red 161 puede ser una Red de Area Local ("LAN"), una Red de Area Ancha ("WAN"), o incluso la Internet. Los sistemas de ordenadores conectados a la red 161 pueden recibir datos de otros sistemas de ordenadores conectados a la red 161 y enviar datos a los mismos. Por consiguiente, los sistemas de ordenadores 101 y 111, asi como otros sistemas de ordenadores conectados (no mostrados), pueden crear datos relacionados
30 con el mensaje e intercambiar datos relacionados con el mensaje (por ejemplo, datagramas del Protocolo de Internet ("IP") y otros protocolos de capa superior que utilizan los datagramas de IP, tales como, el Protocolo de Control de Transmision ("TCP"), el Protocolo de Transferencia de Hipertexto ("HTTP"), el Protocolo de Transferencia de Correo Simple ("SMTP"), etc.) sobre la red 101. Por ejemplo, los sistemas de ordenadores 101 y 111 pueden crear envolventes del SOAP e intercambiar envolventes del SOAP sobre la red 161.
35 El sistema de ordenador 101 incluye un codigo de aplicacion 102, un convertidor de tipos 103, canales 106, codificadores 107, y almacenamiento 163. El codigo de aplicacion 102 puede ser una porcion de una aplicacion distribuida, tal como, por ejemplo, un cliente proxy correspondiente al codigo de aplicacion 112. El codigo de aplicacion 102 puede ser un codigo que se desarrollo de acuerdo con un procedimiento o modelo de programacion orientado a objetos. De este modo, los datos intercambiados entre los modulos de codigo de aplicacion 102, entre
40 los modulos de codigo de aplicacion 102 y los modulos del codigo de aplicacion 112, y entre los modulos del codigo de aplicacion 102 y otros codigos de aplicacion (por ejemplo, una porcion diferente de la aplicacion distribuida) pueden ser datos tipeados, tales como, por ejemplo, datos logicos, booleanos, binarios, octales, decimales, hexadecimales, enteros, de punto flotante, caracteres, cadenas de caracteres, tipos de datos definidos por el usuario, y combinaciones de estos tipos de datos usados para definir estructuras de datos.
45 El convertidor de tipos 103 esta configurado para convertir (o serializar) datos tipeados correspondientes a un objeto tipeado, tal como, por ejemplo, los parametros para una invocacion de procedimiento, en un elemento del SOAP correspondiente y para convertir (o des-serializar) los elementos del SOAP en el tipo de datos correspondiente que corresponden al objeto tipeado. Los objetos tipeados, por ejemplo, los procedimientos incluidos en el codigo de aplicacion 102 (por ejemplo de una clase), pueden anotarse con uno o mas atributos de declaracion del mensaje
50 (por ejemplo. los atributos del Lenguaje Comun del Tiempo de ejecucion ("CLR") de un modelo de declaracion del mensaje, tal como, por ejemplo, el modelo de declaracion de mensajes 191. El convertidor de tipos 103 puede procesar atributos de declaracion del mensaje para mapear los datos tipeados para el objeto tipeado a un elemento del SOAP correspondiente, tal como, por ejemplo, a instrucciones del Lenguaje de Marcado ("XML"). En algunas realizaciones, el convertidor de tipos 103 es un componente del tiempo de ejecucion, configurado para convertir
55 parametros para un procedimiento de CLR en uno o mas elementos del SOAP y para convertir un elemento del SOAP en parametros para un procedimiento de CLR de acuerdo con un modelo de declaracion del mensaje. Por consiguiente, el convertidor de tipos 103 puede usar el modelo de declaracion del mensaje 191 para convertir un objeto de CLR tipeado en una representacion de CLR de un elemento del SOAP y para convertir una representacion de CLR de un elemento del SOAP en un objeto de CLR tipeado.
60 Los canales 106 proporcionan la abstraccion de I/O para enviar y recibir envolventes del SOAP. Los canales 106 pueden proporcionar abstracciones para usar cualquiera de una diversidad de esquemas de protocolos de transporte (incluyendo HTTP, TCP, y el Protocolo de Datagramas de Usuario ("UDP")), esquemas de interfaz, y esquemas de direccionamiento. Generalmente, un canal tambien puede denominarse como una conexion.
Los codificadores 107 incluyen uno o mas codificadores para codificar un elemento del SOAP en octetos puros y
5 para decodificar los octetos puros en elementos del SOAP. De este modo, aunque los codificadores 107 se denominan como codificadores, los codificadores 107 tambien estan configurados para decodificar. En la arquitectura de ordenadores 100, el codificador 107 incluye los codificadores 127, 128, y 129. Cada uno de los codificadores 127, 128, y 129 pueden estar configurados para codificar/decodificar de forma diferente. Por ejemplo, el codificador 127 puede estar configurado para soportar el SOAP sobre XML de texto, el codificador 128 puede
10 estar configurado para soportar el SOAP sobre XML binario, y el codificador 129 puede estar configurado para soportar los Mecanismos de Optimizacion de la Transmision de Mensajes (MTOM). Los codificadores tambien pueden realizar esquemas de compresion, incluyendo pero sin limitarse a esquemas de compresion genericos como LZ o GZIP, que son codificadores por capas (codificadores construidos sobre otros codificadores mas primitivos).
La codificacion basada en el texto proporciona un mecanismo para aumentar la interoperabilidad entre aplicaciones
15 distribuidas. Por ejemplo, la codificacion basada en el texto puede soportar conjuntos de caracteres UTF8, UTF16 Big Endian, y UTF16 Little Endian. La codificacion basada en el texto puede soportar diversos Tipos de Contenidos, tal como, por ejemplo, "texto/xml" y "aplicaciones/soap + xml" (por ejemplo, correspondientes bien a SOAP 1.1 o SOAP 1.2).
La codificacion XML binaria proporciona un mecanismo para la codificacion XML en una representacion binaria que
20 puede ser mas compacta y eficiente de analizar. La codificacion basada en binario puede soportar TiposContenidos, tales como, por ejemplo, "aplicacion/soap + msbin1" y "aplicacion/soap + msbinsesion1".
La codificacion MTOM proporciona un mecanismo para codificar de forma eficaz elementos binarios XML dentro del contexto de una envolvente SOAP. MTOM representa una envolvente del SOAP como una parte (por ejemplo, una de muchas partes) de un contenedor MIME multi-parte. La localizacion de la envolvente del SOAP puede variarse
25 para hacer que bien el transmisor o el receptor almacenen cualesquiera acoplamientos correspondientes. Por ejemplo un contenedor MIME que tiene una envolvente del SOAP como el primer elemento (por ejemplo, la primera de una o mas partes) puede causar que el escritor almacene cualquier acoplamiento correspondiente posterior. Por otra parte, un contenedor MIME que tiene un SOAP como el ultimo elemento (por ejemplo, el ultimo de una o mas partes) puede causar que el lector almacene cualquier acoplamiento correspondiente anterior.
30 La codificacion MTOM incluye logicamente los acoplamientos binarios dentro de la envolvente del SOAP, La codificacion MTOM es polimorfica con otros codificadores de mensajes y no necesita cambios para un modelo de programacion del usuario final. Ademas, la codificacion MTOM facilita el acoplamiento de datos binarios en su formato natural (sin codificar) conservando por lo tanto el espacio con un mensaje del SOAP (en comparacion con los formatos codificados) y liberando recursos que de otro modo se usarian para implementar algoritmos de
35 codificacion (potencialmente caros desde el punto de vista computacional).
El almacenamiento 163 puede ser un dispositivo de almacenamiento masivo remoto o local, tal como, por ejemplo, un controlador de disco duro magnetico. El almacenamiento 163 almacena el diccionario 162. El diccionario 162 puede contener uno o mas terminos del SOAP y/o XML y los terminos sustitutos de longitud reducida correspondientes. Por ejemplo, el diccionario 162 puede almacenar el valor "1" como una sustitucion para
40 "Envolvente" o "http://www.w3.org/2003/05/soap-envelope". Por consiguiente, puede usarse la sustitucion para reducir el tamafo de la envolvente del SOAP antes de codificarlo para el transporte sobre la red 161.
El diccionario 162 puede incluir una porcion estatica de diccionario y una porcion dinamica de diccionario. La porcion estatica del diccionario 162 puede incluir terminos del SOAP y/o XML que tienen un mayor grado de concordancia entre las diversas y diferentes aplicaciones. Por ejemplo, hay un alto grado de probabilidad de que muchas
45 aplicaciones diferentes (independientemente de la funcionalidad) usen los terminos "Envolvente" y "http://www.w3.org/2003/05/soap-envelope". De este modo, estos terminos pueden incluirse en la porcion estatica del diccionario 162.
La porcion dinamica del diccionario 162 puede incluir terminos del SOAP y/o XML que son comunes entre una pluralidad mas pequefa de aplicaciones pero que no son necesariamente comunes entre todas las aplicaciones o 50 una mayor pluralidad de aplicaciones. Por ejemplo, los terminos comunes para aplicaciones bancarias pueden incluirse en una porcion dinamica de los diccionarios en los sistemas de ordenadores que utilizan aplicaciones bancarias. Sin embargo, los terminos bancarios pueden no incluirse en las porciones dinamicas de los diccionarios en los sistemas de ordenadores que no usan aplicaciones bancarias. Los terminos pueden incluirse en la porcion dinamica de un diccionario cuando los terminos se identifican como comunes entre aplicaciones. De vez en cuando 55 (por ejemplo, cuando expira un periodo sin uso), los terminos pueden eliminarse de la porcion dinamica del diccionario. Los terminos del diccionario dinamico difieren de los terminos del diccionario estatico en que los terminos del diccionario dinamico pueden transmitirse de forma incremental sobre una conexion junto con el primer mensaje enviado sobre la conexion que los referencia. Este muestreo puede limitarse en alcance a partes del mensaje que es probable que se repitan, tales como los nombres de XML y los nombres de espacios relacionados
con una estructura de datos tipeados particular o procedimiento, parametro o valor devuelto.
El sistema de ordenador 111 incluye un codigo de aplicacion 112, el convertidor de tipos 113, los canales 116, los codificadores 117, y el almacenamiento 143. El codigo de aplicacion 112 puede ser una porcion de una aplicacion distribuida, tal como, por ejemplo un servicio correspondiente a un codigo de aplicacion 102. El codigo de aplicacion 5 112 puede ser un codigo que se desarrollo de acuerdo con un procedimiento o modelo de programacion orientado a objetos. De este modo, los datos intercambiados entre los modulos del codigo de aplicacion 112, entre los modulos del codigo de aplicacion 112 y modulos del codigo de aplicacion 102, y entre modulos del codigo de aplicacion 112 y otros codigos de aplicacion (por ejemplo, una porcion diferente de la aplicacion distribuida) pueden ser datos tipeados, tales como, por ejemplo, datos logicos, binarios, octales, decimales, hexadecimales, enteros, de punto
10 flotante, caracteres, cadenas de caracteres, tipos de datos definidos por el usuario, y combinaciones de estos tipos de datos para estructuras de datos definidas.
El convertidor de tipos 113 esta configurado para convertir (o serializar) los datos tipeados correspondientes a un objeto tipeado, tales como, parametros para una invocacion de procedimiento, en un elemento del SOAP correspondiente y convertir (o des-serializar) los elementos del SOAP en los datos del tipo correspondiente que 15 correspondan a un objeto tipeado. Los objetos tipeados, por ejemplo, los procedimientos incluidos en el codigo de aplicacion 112 (por ejemplo de una clase sellada publica), pueden anotarse con uno o mas atributos de declaracion del mensaje (por ejemplo, los atributos del Lenguaje Comun del Tiempo de ejecucion ("CLR")) de un modelo de declaracion de mensaje, tal como, por ejemplo, el modelo de declaracion del mensaje 191. El convertidor de tipos 113 puede procesar los atributos de declaracion del mensaje para mapear los datos tipeados para un objeto tipeado 20 para un elemento del SOAP correspondiente, tal como, por ejemplo, en elementos de XML. En algunas realizaciones, el convertidor de tipos 113 es una componente del tiempo de ejecucion, configurada para convertir los parametros para un procedimiento de CLR en un elemento del SOAP y para convertir un elemento del SOAP en parametros para un procedimiento de CLR de acuerdo con un modelo de declaracion del mensaje. Por consiguiente, el convertidor de tipos 113 puede usar el modelo de declaracion del mensaje 191 para convertir un objeto de CLR
25 tipeado en una representacion de CLR de un elemento del SOAP y para convertir una representacion de CLR de un elemento del SOAP en un objeto de CLR tipeado.
El despachador 114 recibe los elementos del SOAP (por ejemplo, desde un canal apropiado) y despacha los elementos del SOAP a los objetos tipeados apropiados (por ejemplo, el procedimiento). Cuando el despachador 114 recibe un elemento del SOAP, el despachador 114 intenta compaginar el elemento del SOAP con un objeto tipeado 30 apropiado. En algunas realizaciones, el despachador 114 intenta compaginar las porciones de los elementos de XML (en un elemento del SOAP) con un objeto tipeado apropiado. El despachador 114 puede comparar porciones de los elementos de XML con los atributos de declaracion del mensaje que anotan objetos en objetos 141. Cuando se identifica una coincidencia, el despachador 114 despacha el elemento del SOAP para el objeto coincidente. Los mensajes pueden despacharse sobre el valor de una Accion propiedad de un atributo de declaracion del mensaje
35 que anota el objeto coincidente. Cuando no se identifica ninguna coincidencia, el despachador 114 puede despachar el elemento del SOAP para un objeto por defecto.
Los canales 116 proporcionan la abstraccion de I/O para la transmision y recepcion de envolventes del SOAP. Los canales 116 pueden proporcionar abstracciones para usar cualquiera de una diversidad de esquemas de protocolo de transporte (incluyendo HTTP, TCP, y el Protocolo de Datagramas de Usuario ("UDP")), esquemas de interfaces, y
40 esquemas de direccionamiento. Los canales 116 pueden proporcionar una abstraccion para los esquemas del protocolo de transporte, esquemas de la interfaz, y esquemas de direccionamiento que tambien se proporcionan en los canales 106.
Los codificadores 117 incluyen uno o mas codificadores para codificar un elemento del SOAP en octetos puros y para decodificar los octetos puros en un elemento del SOAP. De este modo, aunque los codificadores 117 se 45 denominen como decodificadores, los codificadores 117 estan tambien configurados para decodificar. En la arquitectura de ordenadores 100, el codificador 117 incluye los codificadores 137, 138 y 139. Cada uno de los codificadores 137, 138 y 139 pueden estar configurados para codificar/decodificar de forma diferente. Por ejemplo, el codificador 137 puede configurarse para soportar SOAP sobre XML de texto, el codificador 138 puede configurarse para soportar SOAP sobre XML binario, y el codificador 139 puede configurarse para soportar los Mecanismos de
50 Optimizacion de la Transmision de Mensajes (MTOM).
El almacenamiento 143 puede ser un dispositivo de almacenamiento masivo local o remoto, tal como, por ejemplo, un controlador de disco duro magnetico. El almacenamiento 143 almacena el diccionario 162 y los objetos 141. El diccionario 162 puede contener uno o mas terminos del SOAP y/o XML y las substituciones correspondientes que son de longitud reducida. Por ejemplo, el diccionario 162 puede almacenar el valor "2" como una substitucion para
55 "wsa". Por consiguiente, una substitucion puede usarse para reducir el tamafo de las envolventes del SOAP antes de la codificacion para el transporte sobre la red 161.
El diccionario 142 puede incluir una porcion estatica del diccionario y una porcion dinamica del diccionario. La porcion estatica puede incluir terminos del SOAP y/o de XML que tienen un mayor grado de concordancia entre las diversas y diferentes aplicaciones. La porcion dinamica del diccionario 162 puede incluir terminos del SOAP y/o XML 60 que son comunes entre una pluralidad mas pequefa de aplicaciones pero que no son necesariamente comunes
entre todas las aplicaciones o una mayor pluralidad de aplicaciones.
La Figura 2 ilustra un diagrama de flujo de ejemplo de un procedimiento 200 de envio de modo flexible de datos de aplicacion tipeados. El procedimiento 200 se describira con respecto a los modulos y los datos en la arquitectura de ordenador 100.
5 El codigo de aplicacion 102 puede generar datos tipeados 131 que estan, por ejemplo, incluidos en un mensaje tipeado. El mensaje tipeado puede configurarse de acuerdo con el modelo de declaracion de mensajes 191 para representar una envolvente SOAP como un objeto tipeado (CLR). Los datos tipeados 131 pueden incluir parametros y/o un valor de retorno para un procedimiento. Por ejemplo, el codigo de aplicacion 102 puede llamar a un procedimiento con parametros que causan que se invoque un procedimiento.
10 El procedimiento 200 incluye un acto de acceso a los parametros del objeto tipeado que corresponden a un objeto tipeado (acto 210). Por ejemplo, el convertidor de tipos 103 puede acceder a los datos tipeados 131. Los datos tipeados 131 pueden incluir parametros que corresponden al objeto tipeado (por ejemplo, parametros para invocar a un procedimiento. El objeto tipeado puede anotarse con uno o mas atributos de declaracion del mensaje del modelo de declaracion de mensajes 191, tales como, por ejemplo, los atributos 171. Por consiguiente, los atributos 171
15 definen un mapeo entre los datos tipeados 131 y un elemento del SOAP correspondiente (por ejemplo, el elemento del SOAP 172).
El procedimiento 200 incluye el acto de mapear los parametros del objeto tipeado accedido en un elemento del SOAP de acuerdo con el uno o mas atributos de declaracion del mensaje (acto 202). Por ejemplo, el convertidor de tipos 103 puede mapear datos tipeados 131 (por ejemplo parametros para la invocacion de un procedimiento) en un
20 elemento del SOAP 172 (por ejemplo, elementos de XML) de acuerdo con los atributos 171.
El procedimiento 200 incluye el acto de referirse a uno o mas atributos de declaracion del mensaje para identificar una localizacion dentro de una envolvente del SOAP (acto 203). Por ejemplo, el convertidor de tipos 103 puede referirse a atributos 171 para identificar una localizacion dentro de la envolvente 132A (creada en el sistema de ordenador 101). Los atributos 171 pueden identificar, por ejemplo, una cabecera de mensaje o un cuerpo de
25 mensaje dentro de la envolvente 132A. Atributos adicionales 171 pueden identificar posiciones especificas dentro de una cabecera de mensaje o cuerpo de mensaje. De este modo, los elementos del SOAP correspondientes pueden ordenarse dentro de una cabecera del mensaje o un cuerpo de mensaje. De este modo, los elementos del SOAP correspondientes pueden ordenarse dentro de una cabecera de mensaje o dentro de un cuerpo de mensaje.
El procedimiento 200 incluye el acto de insertar el elemento del SOAP en la localizacion identificada dentro de la
30 envolvente del SOAP (acto 204). Por ejemplo, el convertidor de tipos 103 puede insertar el elemento del SOAP 172 en (por ejemplo, una posicion especificada) una porcion de la cabecera o una porcion del cuerpo de la envolvente 132A. La envolvente 132A puede transferirse a traves de un canal de entre los canales 106, por ejemplo, de acuerdo con un transporte seleccionado, interfaz y esquema de direccionamiento. Por ejemplo, la envolvente 132A puede encapsularse en el transporte 133.
35 Un codificador de los codificadores 107, tal como, por ejemplo, el codificador 128 puede codificar la envolvente encapsulada 132A en octetos puros 134. Cuando sea apropiado, el codificador 128 se refiere al diccionario 162 para substituir terminos usados comunmente. El sistema de ordenador 101 envia octetos puros 134, a traves de la red 161, a un sistema de ordenador 111. El sistema de ordenador 111 recibe los octetos puros 134 a traves de la red 161, desde el sistema de ordenador 101.
40 La Figura 3 ilustra un diagrama de flujo de ejemplo de un procedimiento 300 para la recepcion de modo flexible de los datos de aplicacion tipeados. El procedimiento 300 se describira con respecto a los modulos y los datos en la arquitectura de ordenador 100.
Un codificador de los codificadores 117, tal como, por ejemplo, el codificador 138 puede recibir octetos puros 134. El codificador 138 puede decodificar los octetos puros 134 para revelar la envolvente 132B. Cuando sea apropiado, el 45 codificador 138 se refiere al diccionario 162 para reemplazar los terminos que se sustituyeron antes de la codificacion. La decodificacion de los octetos puros 134, puede revelar que la envolvente 132B se transfirio, por ejemplo, de acuerdo con un transporte seleccionado, interfaz y esquema de direccionamiento. Por ejemplo, la decodificacion de los octetos puros 134 puede revelar que la envolvente 132B esta encapsulada en el transporte
133.
50 En base al transporte, las interfaces, y/o el esquema de direccionamiento, la envolvente encapsulada 132B puede transferirse a traves de un canal apropiado. Como es posible para los intermediarios en la red 161 alterar las porciones de los datos en la envolvente 132A (por ejemplo, las cabeceras de encaminamiento) durante la transferencia, la envolvente 132A y la envolvente 132B pueden incluir datos diferentes. El despachador 114 recibe la envolvente 132B incluyendo el elemento del SOAP 172.
55 El procedimiento 300 incluye el acto de acceder al elemento del SOAP incluido en una envolvente del SOAP (acto 301). Por ejemplo el despachador 114 puede acceder al elemento del SOAP 172.
El procedimiento 300 incluye el acto de identificar un objeto tipeado que corresponde al elemento del SOAP (acto 302). Por ejemplo, el despachador 114 puede identificar el objeto 151 a partir de los objetos 141 (por ejemplo, una coleccion de objetos incluidos en diversos componentes de aplicacion distribuidos en el sistema de ordenador 111). El objeto 151 puede ser un objeto tipeado (por ejemplo, un procedimiento del codigo de aplicacion 112) que esta 5 anotado con los atributos 181 del modelo de declaracion del mensaje 191. Los atributos 181 pueden definir un mapeo entre el elemento del SOAP 172 y los parametros del objeto tipeado correspondiente (por ejemplo, los parametros para la invocacion de un procedimiento). El despachador 114 puede compaginar porciones del elemento del SOAP 172 (por ejemplo, porciones de elementos de XML) con atributos 181 para identificar que el elemento del SOAP 172 corresponde al objeto 151. En algunas aplicaciones, esto incluye la utilizacion de un URI (por ejemplo, un
10 URI de Accion de DireccionamientoWS) para mapear elelemento del SOAP 172 al objeto151.
El procedimiento 300 incluye el acto de mapear el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con uno o mas atributos de declaracion del mensaje (acto 303). Por ejemplo, el convertidor de tipos 113 puede mapear el elemento del SOAP 172 a un mensaje tipeado que incluye datos tipeados 131 (de acuerdo con los atributos 181). El mensaje tipeado puede configurarse de acuerdo con el modelo de declaracion de mensajes 191
15 para la representacion de una envolvente del SOAP como un objeto tipeado (CLR). Los datos tipeados 131 pueden incluir parametros y/o un valor de retorno para un procedimiento. Por ejemplo, el codigo de aplicacion 112 puede recibir una llamada a un procedimiento (iniciado en la aplicacion 102) con parametros que causan la invocacion del procedimiento.
De este modo, las realizaciones de la presente invencion posibilitan al desarrollador controlar el modo en el que los
20 parametros del procedimiento y los valores de retorno se serializan para las cabeceras del mensaje y los cuerpos del mensaje. Del mismo modo, un desarrollador puede controlar el modo en el cual los parametros del procedimiento y los valores de retorno se des-serializan a partir de las cabeceras del mensaje y los cuerpos del mensaje. Por consiguiente, las aplicaciones desarrolladas pueden retener tanto los beneficios de los datos tipeados (por ejemplo, los objetos tipeados de CLR) como la flexibilidad de la mensajeria del SOAP.
25 Las siguientes instrucciones de codigo de ejemplo representan una clase anotada en la que las propiedades y los campos de la clase anotada se anotan con atributos de declaracion del mensaje:
Linea 1: [DeclaracionMensaje (Accion � "http://createpersonrequest", Nombre � " CreatePersonRequest")] Linea 2: clase publica CreatePersonRequest � Linea 3: [CuerpoMensaje (Namespace � "http:// namespace ", Nombre � "MisDatos", Posicion � 2)]
30 Linea 4: cadena de datos publica DatosOpcionales; Linea 5: [CuerpoMensaje (Namespaceuri � "http:// namespace", Nombre � LaLista")] Linea 6: publica Ilist�int� Ids; Linea 7: [CabeceraMensaje (Namespaceuri � "http://namespace", Nombre � "Peticion")] Linea 8: Internal Guid PeticionId;
35 Linea 9: [CabeceraMensaje (Namespaceuri � "http://namespace", Nombre � "Session", DebeEntender� cierto, Relay � falso, Actor � http://actor)] Linea 10: Internal Guid SessionId;
El atributo [DeclaracionMensaje] en la Linea 1 anota la clase publlica CreatePersonRequest en la Linea 2 y define una declaracion del mensaje "CreatePersonRequest" (por ejemplo, el modelo de declaracion del mensaje 191), para
40 controlar el procesamiento y creacion de las envolventes del SOAP. Las lineas 3 y 5 anotan las lineas 4 y 6 respectivamente con [CuerpoMensaje] indicando la inclusion en un cuerpo de la envolvente SOAP. Las lineas 7 y 8 anotan las lineas 9 y 10 respectivamente con [CabeceraMensaje] indicando la inclusion en una cabecera de la envolvente del SOAP. El atributo "Posicion � 2" sobre la linea 3 indica que los datos tipeados anotados se incluiran en el segundo elemento en un cuerpo del mensaje.
45 Un convertidor de tipos, tal como, por ejemplo, el convertidor de tipos 103 o el convertidor de tipos 113 puede usar un modelo de declaracion del mensaje, tal como, por ejemplo, el modelo de declaracion del mensaje 191, para convertir las instrucciones del codigo de ejemplo en la siguiente envolvente del SOAP de ejemplo:
�soap: Envolvente� xmlns: soap � "http://schemas.xmlsoap.org/soap/envelope/" xmlns: wsa � "http://schemas.xmlsoap.org/ws/2004/03/addressing" �soap: Cabecera xmlns : x � "http://namespace"�
5 �x: Request�xc6gf83�/Request� �x: Session DebeEntender � "cierto", Relay � "falso", Actor � "http://actor"�
gg57hjfg
�/x: Session�
�wsa: Action� http://createpersonrequest �/wsa: Action�
�/soap: Cabecera�
�soap: Cuerpo xmlns: x� �http:// namespace��
�x: LaLista� �x: Elemento� 5 �/x: Elemento � �x: Elemento � 10 �/x: Elemento �
15 �x: LaLista� �x: MisDatos� aqui algunos datos �/x: MisDatos� �/soap: Cuerpo� �/soap: Envolvente�
Un convertidor de tipos, tal como, por ejemplo, el convertidor de tipos 103 o el convertidor de tipos 113, tambien pueden usar un modelo de declaracion del mensaje, tal como, el modelo de declaracion de mensajes 191, para convertir la envolvente del SOAP de ejemplo en las instrucciones de codigo de ejemplo. En el ejemplo de envolvente del SOAP, el elemento "MisDatos" esta en la segunda posicion dentro del cuerpo de la envolvente del SOAP.
En algunas realizaciones de la presente invencion, el transporte de reproduccion directa se utiliza para compensar los mensajes mas largos que no pueden representarse completamente en la memoria en un instante en el tiempo.
25 Esto es, el transporte de reproduccion directa es ventajoso para mensajes que son mas largos que la memoria disponible (por ejemplo, debido a limitaciones fisicas o limitaciones de la memoria asignada) para el servicio de procesamiento del mensaje. El transporte de reproduccion directa puede incluir una conexion de transporte dedicada (base TCP, canalizaciones con nombre (named pipe), conexion HTTP, etc.) para difundir el mensaje. Los sistemas de ordenadores que son para el uso del transporte de reproduccion directa pueden configurarse de acuerdo con una propiedad del Modo de Transferencia de una fabrica de transporte adecuado (por ejemplo FabricaCanalSuperior / FabricaOyenteSuperior, FabricaCanalCanalizacionConNombre / FabricaOyenteCanalCanalizacionConNombre y HttpFabricaCanal/ HttpFabricaOyente.
El transporte de reproduccion directa puede posibilitarse a traves de los elementos obligatorios de transporte correspondientes (por ejemplo, ElementoObligatorioTransporte, ElementoObligatorioTransporteCanalConNobre y
35 HttpElementoObligatorioTransporte) usados para anotar un objeto tipeado. Las propiedades de transporte pueden variarse en base al tipo de canal. Por ejemplo, para el TCP o CanalizacionConNombre, puede usarse ICanalSalida / ICanalEntrada o ICanalSesionDuplex (que usa un par de ICanalSalida / ICanalEntrada). Para HTTP, pueden usarse ICanalPeticion / ICanalRespuesta, ICanalSesionPeticion / ICanalSesionRespuesta, ICanalSalida / ICanalEntrada o ICanalFullDuplex. Cuando esta configurada la reproduccion directa para una declaracion de datos determinada, un canal apropiado puede facilitar la peticion y creacion de un tipo de canal adecuado (por ejemplo, en los canales 106 y/o 116).
El transporte de reproduccion directa es transparente para el lector del mensaje. Esto es, la aplicacion no necesita escribirse de forma diferente para tratar con el mensaje. La aplicacion simplemente puede leer los valores de forma secuencial usando un elemento de XML comun API (por ejemplo, XmIReader). Un elemento obligatorio de
45 transporte puede configurarse por la instanciacion del elemento obligatorio de transporte y la asignacion de un valor a la propiedad de ese elemento. Los elementos obligatorios de transporte pueden tambien configurarse a traves de la configuracion de CLR (por ejemplo, un archivo myapp.config).
La Figura 4 ilustra un entorno adecuado de operacion para los principios de la presente invencion. La Figura 4 y la siguiente discusion pretenden proporcionar una breve descripcion general de un entorno de computacion adecuado en el cual puede implementarse la invencion. Aunque no se requiere, la invencion se describira en el contexto general de instrucciones ejecutables por ordenador, tal como los modulos de programas, que se ejecutan por los sistemas de ordenadores. De forma general, los modulos de programas, incluyen rutinas, programas, objetos, componentes, estructuras de datos, y similares, que realizan las tareas particulares o implementan los tipos de datos abstractos particulares. Las instrucciones ejecutables por ordenador, estructuras de datos asociadas, y modulos de
55 programas representan ejemplos de un medio de codigo de programa para la ejecucion de actos de los procedimientos desvelados en el presente documento.
Con referencia a la Figura 4, un sistema de ejemplo para la implementacion de la invencion incluye un dispositivo de computacion de proposito general en la forma de un sistema de ordenador 420, incluyendo una unidad de procesamiento 421, una memoria del sistema 422 y un bus del sistema 423 que acopla los diversos componentes del sistema incluyendo la memoria del sistema 422 a la unidad de procesamiento 421. La unidad de procesamiento 421 puede ejecutar instrucciones ejecutables por ordenador disefadas para implementar caracteristicas del sistema de ordenador 420, incluyendo las caracteristicas de la presente invencion. El bus del sistema 423 puede ser cualquiera de varios tipos de estructuras de buses incluyendo un bus de memoria o controlador de memoria, un bus periferico, y un bus local usando cualquiera de una diversidad de arquitecturas de bus. La memoria del sistema incluye memoria de solo lectura ("ROM") 424 y memoria de acceso aleatorio ("RAM") 425. Un sistema de
5 entrada/salida basico ("BIOS") 426, que contiene las rutinas basicas que ayudan en la transferencia de informacion entre elementos dentro de un sistema de ordenador 420, tal como durante el establecimiento, puede almacenarse en la ROM 424.
El sistema de ordenador 420, puede incluir tambien un controlador de disco duro magnetico 427 para la lectura y escritura sobre el disco duro magnetico 439, el controlador de disco magnetico 428 para la lectura o escritura sobre 10 el disco magnetico extraible 429, un controlador de disco optico 430 para la lectura o escritura sobre el disco optico extraible 431, tal como, por ejemplo, un CD-ROM u otro medio optico. El controlador de disco duro magnetico 427, el controlador de disco magnetico 428, y el controlador de disco optico 430 se conectan al bus del sistema 423 por la interfaz de control del disco duro 432, la interfaz del control del disco magnetico 433, y la interfaz de control del disco optico 434, respectivamente. Los controladores y sus medios asociados legibles por el ordenador proporcionan un
15 almacenamiento no volatil de las instrucciones ejecutables por el ordenador, estructuras de datos, modulos de programas, y otros datos para el sistema de ordenador 420. Aunque el entorno de ejemplo descrito en el presente documento emplea un disco duro magnetico 439, un disco magnetico extraible 429 y un disco optico extraible 431, pueden usarse otros tipos de medios legibles por el ordenador para el almacenamiento de datos, incluyendo casetes magneticas, tarjetas de memoria flash, discos versatiles digitales, cartuchos Bernoulli, RAM, ROM, y similares.
20 El medio del codigo de programacion que comprende uno o mas modulos de programas puede almacenarse sobe el disco duro 439, el disco magnetico 429, el disco optico 431, ROM 424, o RAM 425, incluyendo un sistema operativo 435, uno o mas programas de aplicacion 436, otros modulos de programa 437, y datos de programa 438. Un usuario puede introducir comandos e informacion dentro del sistema de ordenador 420 a traves del teclado 440, un dispositivo de apuntamiento 442, u otros dispositivos de entrada (no mostrados), tales como, por ejemplo, un
25 microfono, una palanca de mando, un mando de juegos, escaner, o similares. Estos y otros dispositivos de entrada pueden conectarse a la unidad de procesamiento 421 a traves de la interfaz de entrada/salida 446 acoplada al bus del sistema 423. La interfaz de entrada/salida 446 desde el punto de vista logico representa cualquiera de una amplia variedad de interfaces diferentes, tales como, por ejemplo, una interfaz de puerto serie, una interfaz de PS/2, una interfaz de puerto paralelo, una interfaz de Bus Serie Universal ("USB"), o una interfaz del Instituto de Ingenieros
30 Electricos y Electronicos ("IEEE") 1394 (es decir una interfaz Cortafuegos), o puede incluso representar de forma logica una combinacion de las diferentes interfaces.
Un monitor 447 u otro dispositivo de pantalla tambien esta conectado al bus del sistema 423 a traves de la interfaz de video 448. Otros dispositivos de salida perifericos (no mostrados) tales como, por ejemplo, altavoces e impresoras, pueden tambien conectarse al sistema de ordenadores 420.
35 El sistema de ordenadores 420 es conectable a redes, tales como, por ejemplo, una red de ordenadores del ambito de la oficina, o del ambito de la compafia, una red domestica, una intranet, y/o la Internet. El sistema de ordenadores 420 puede intercambiar datos con fuentes externas, tales como, por ejemplo, sistemas de ordenadores remotos, aplicaciones remotas, y/o bases de datos remotas sobre tales redes.
El sistema de ordenador 420 incluye una interfaz de red 453, a traves de la cual el sistema de ordenador 420 recibe
40 datos desde fuentes externas y/o transmite datos a fuentes externas. Como se representa en la Figura 4, la interfaz de red 453 facilita el intercambio de datos con el sistema de ordenador remoto 483 a traves del enlace 451. La interfaz de red 453 puede representar de forma logica uno o mas modulos software y/o software, tales como, por ejemplo, una tarjeta de interfaz de red y la correspondiente pila de Especificaciones de Interfaz de Control de Red ("NDIS"). El enlace 451 representa una porcion de la red (por ejemplo, un segmento de Ethernet), y el sistema de
45 ordenadores remoto 483 representa un nodo de la red.
Del mismo modo, el sistema de ordenadores 420 incluye una interfaz de entrada/salida 446, a traves de la cual el sistema de ordenador 420 recibe datos desde fuentes externas y/o transmite datos a fuentes externas. La interfaz de entrada/salida 446 esta acoplada al modem 454 (por ejemplo, un modem normalizado, un modem de cable, o un modem de la linea de abonado digital ("DSL")) a traves del enlace 459, a traves del cual el sistema de ordenador
50 420 recibe datos desde las fuentes externas y/o transmite datos a las mismas. Como se representa en la Figura 4, la interfaz de entrada/salida 446 y el modem 454 facilitan el intercambio de datos con el sistema de ordenador remoto 493 a traves del enlace 452. El enlace 452 representa una porcion de una red y el sistema de ordenador remoto 493 representa un nodo de la red.
Aunque la Figura 4 representa un entorno de operacion adecuado para la presente invencion, los principios de la
55 presente invencion pueden emplearse en cualquier sistema que sea capaz, con las modificaciones adecuadas si es necesario, de implementar los principios de la presente invencion. El entorno ilustrado en la Figura 4 es solo ilustrativo y de ninguna manera representa incluso una pequefa porcion de la amplia variedad de entornos en los cuales pueden implementarse los principios de la presente invencion.
De acuerdo con la presente invencion, los modulos que incluyen el codigo de aplicacion, los proxy de cliente, los servicios, los convertidores de tipos, los canales, los codificadores/decodificadores de mensajes, y los despachadores asi como los datos asociados, incluyendo los datos tipeados, las envolventes del SOAP, los transportes, los octetos puros, los diccionarios y objetos, pueden almacenarse y accederse desde cualquiera de los medios legibles por ordenador asociados con el sistema de ordenador 420. Por ejemplo, las porciones de tales
5 modulos y porciones de los datos de programa asociados pueden incluirse en el sistema operativo 435, los programas de aplicacion 436, los modulos de programa 437, y/o los datos de programa 438, para el almacenamiento en la memoria del sistema 422.
Cuando un dispositivo de almacenamiento masivo, tal como, por ejemplo, el disco duro magnetico 439, esta acoplado al sistema de ordenador 420, tales modulos y los datos de programa asociados tambien pueden 10 almacenarse en el dispositivo de almacenamiento masivo. En un entorno de red, los modulos de programa representados con relacion al sistema de ordenador 420, o porciones del mismo, pueden almacenarse en los dispositivos de almacenamiento de memoria, tales como, la memoria del sistema y/o los dispositivos de almacenamiento masivo asociados con el sistema de ordenador remoto 483 y/o el sistema de ordenador remoto
493. La ejecucion de tales modulos puede realizarse en un entorno distribuido como se ha descrito anteriormente.
15 La presente invencion puede realizarse de otras formas especificas sin apartarse de sus caracteristicas esenciales. Las realizaciones descritas se consideraran en todos los aspectos solo como ilustrativas y no como restrictivas. El alcance de la invencion esta, por lo tanto indicado por las reivindicaciones adjuntas mas que por la descripcion anterior. Todos los cambios que caen dentro del significado y el rango de equivalencia de las reivindicaciones estan incluidas dentro de su alcance.

Claims (41)

  1. REIVINDICACIONES
    1. Un procedimiento de envio de forma flexible de datos de aplicacion tipeados (131) para un sistema de ordenador
    (101) que es una red (161) conectable junto con uno o mas sistemas de ordenador a una red, comprendiendo el procedimiento:
    5 un acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado, estando anotado el objeto tipeado con uno o mas atributos de declaracion del mensaje (171) de un modelo de declaracion del mensaje (191), definiendo el uno o mas atributos de declaracion del mensaje un mapeo entre los parametros del objeto tipeado y los elementos del SOAP correspondientes; un acto (202) del mapeo de los parametros del objeto tipeado accedido en un elemento del SOAP de acuerdo
    10 con el uno o mas atributos de declaracion del mensaje; y un acto (203) de referirse a uno o mas atributos de declaracion del mensaje para identificar una localizacion dentro de la envolvente del SOAP; un acto (204) que inserta el elemento del SOAP en la localizacion identificada dentro de la envolvente del SOAP (132).
    15 2. El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a la clase que representa parametros para el procedimiento.
  2. 3. El procedimiento segun la reivindicacion 2, en el que el acto (201) de acceder a una clase que representa
    parametros para un procedimiento comprende un acto de acceder a una clase publica que representa parametros 20 para un procedimiento del Lenguaje Comun del Tiempo de funcionamiento.
  3. 4.
    El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a un objeto tipeado que esta anotado con una Accion URI.
  4. 5.
    El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado
    25 correspondiente a un objeto tipeado comprende un acto de acceder a una clase que representa un valor de retorno del procedimiento.
  5. 6. El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a una representacion del Lenguaje Comun del Tiempo de funcionamiento de un elemento del SOAP.
    30 7. El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a un mensaje tipeado.
  6. 8. El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a un parametro del objeto tipeado anotado que esta anotado con un atributo de declaracion del mensaje indicando que la representacion XML del parametro del
    35 objeto tipeado se incluira en una cabecera de la envolvente (132) del SOAP.
  7. 9. El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a un parametro del objeto tipeado que esta anotado con un atributo de declaracion del mensaje (171) indicando que una representacion XML del parametro del objeto tipeado se incluira en el cuerpo de la envolvente del SOAP.
    40 10. El procedimiento segun la reivindicacion 1, en el que el acto (201) de acceder a los parametros del objeto tipeado correspondiente a un objeto tipeado comprende un acto de acceder a los parametros del objeto tipeado anotado, estando anotados los parametros del objeto tipeado anotado con uno o mas atributos de declaracion del mensaje (171), estando seleccionados el uno o mas atributos de declaracion del mensaje de entre los atributos que indican una posicion dentro de una envolvente del SOAP (132), un nombre, un espacio de nombre URI, si debe
    45 entenderse un parametro del objeto tipeado, si puede retransmitirse el parametro del objeto tipeado, y un actor para el parametro del objeto tipeado.
  8. 11. El procedimiento segun la reivindicacion 1, en el que el acto (202) de mapear los parametros del objeto tipeado accedido en un elemento del SOAP de acuerdo con el uno o mas de los atributos de declaracion del mensaje (171) comprende un acto de serializar los parametros del objeto tipeado accedido a un elemento del SOAP.
    50 12. El procedimiento segun la reivindicacion 1, en el que el acto (202) de mapear los parametros del objeto tipeado accedido en un elemento del SOAP de acuerdo con uno o mas atributos de declaracion del mensaje (171) comprende un acto de mapear los parametros del objeto tipeado accedido en los elementos de XML correspondientes.
  9. 13. El procedimiento segun la reivindicacion 1, en el que el acto (203) de referirse a uno o mas atributos de declaracion del mensaje (171) para identificar una localizacion dentro de una envolvente del SOAP (132) comprende un acto de referirse a un atributo de declaracion del mensaje que identifica una porcion de cabecera de una envolvente del SOAP.
    5 14. El procedimiento segun la reivindicacion 1, en el que el acto (203) de referirse a uno o mas atributos de declaracion del mensaje (171) para identificar una localizacion dentro de una envolvente del SOAP (132) comprende un acto de referirse a un atributo de declaracion del mensaje que identifica una porcion del cuerpo de una envolvente del SOAP.
  10. 15. El procedimiento segun la reivindicacion 1, en el que el acto (204) de insertar el elemento del SOAP en la
    10 localizacion identificada dentro de la envolvente del SOAP (132) comprende un acto de insertar las instrucciones XML correspondientes dentro de una porcion de cabecera de la envolvente del SOAP.
  11. 16. El procedimiento segun la reivindicacion 1, en el que el acto (204) de insertar el elemento del SOAP en la localizacion identificada dentro de la envolvente del SOAP (132) comprende un acto de insertar elementos de XML dentro de una porcion del cuerpo de la envolvente del SOAP.
    15 17. El procedimiento segun la reivindicacion 1, que comprende ademas:
    un acto de codificacion de la envolvente del SOAP (132) en octetos puros (134); y un acto de enviar los octetos puros a un sistema de ordenador receptor (111).
  12. 18. El procedimiento segun la reivindicacion 17, en el que el acto de codificar la envolvente del SOAP (132) en
    octetos puros (134) comprende un acto de codificar la envolvente del SOAP en octetos puros en el que el tamafo de 20 los octetos puros no tiene un limite predefinido.
  13. 19.
    El procedimiento segun la reivindicacion 17, en el que el acto de codificar la envolvente del SOAP (132) en octetos puros (134) comprende un acto de generar una codificacion basada en el texto de la envolvente del SOAP.
  14. 20.
    El procedimiento segun la reivindicacion 17, en el que el acto de codificar la envolvente del SOAP (132) en
    octetos puros (134) comprende un acto de usar un Mecanismo de Optimizacion de la Transmision de Mensajes para 25 codificar la envolvente del SOAP.
  15. 21.
    El procedimiento segun la reivindicacion 17, en el que el acto de codificar la envolvente del SOAP (132) en octetos puros (134) comprende el acto de generar una codificacion basada en binario de la envolvente del SOAP.
  16. 22.
    El procedimiento segun la reivindicacion 21, en el que el acto de generar una codificacion basada en binario de la envolvente del SOAP (132) comprende el acto de sustituir uno o mas terminos del SOAP y/o terminos de XML con
    30 terminos sustitutos de longitud reducida de modo que la envolvente del SOAP puede transferirse de forma mas eficaz.
  17. 23. El procedimiento segun la reivindicacion 17, en el que el acto de enviar los octetos puros (134) a un sistema de ordenador de recepcion comprende el acto de reproduccion directa de los octetos puros para el sistema de ordenador receptor (111).
    35 24. Un procedimiento de recibir de modo flexible datos de aplicacion tipeados (131), para un sistema de ordenador
    (111) que es la red (161) conectable junto con uno o mas sistemas de ordenadores a una red, comprendiendo el procedimiento:
    un acto (301) de acceso a un elemento del SOAP incluido en una envolvente del SOAP (132); un acto (302) de identificar un objeto tipeado que corresponde al elemento del SOAP, estando anotado el
    40 elemento tipeado con uno o mas atributos de declaracion del mensaje (171) de un modelo de declaracion del mensaje, definiendo el uno o mas atributos de declaracion del mensaje un mapeo entre los elementos del SOAP y los parametros del objeto tipeado correspondiente; y un acto (303) de mapeo del elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con el uno o mas atributos de declaracion del mensaje, presentandose los parametros del objeto tipeado al objeto
    45 tipeado identificado.
  18. 25. El procedimiento segun la reivindicacion 24, que comprende ademas:
    un acto de recibir octetos puros (134) desde un sistema de ordenador transmisor (101); y un acto de decodificar los octetos puros en el interior de la envolvente del SOAP (132).
  19. 26. El procedimiento segun la reivindicacion 25, en el que el acto de recibir los octetos puros (134) desde un sistema 50 de ordenador transmisor (101) comprende el acto de recibir octetos puros de reproduccion directa.
  20. 27.
    El procedimiento segun la reivindicacion 25, en el que el acto de decodificar los octetos puros (134) en el interior de la envolvente del SOAP (132) comprende un acto de decodificar la codificacion basada en texto de la envolvente
    del SOAP.
  21. 28.
    El procedimiento segun la reivindicacion 25, en el que el acto de decodificar los octetos puros (134) en el interior de la envolvente del SOAP (132) comprende un acto de decodificar la codificacion basada en binario de la envolvente del SOAP.
    5 29. El procedimiento segun la reivindicacion 28, en el que el acto de decodificar la codificacion basada en binario de la envolvente del SOAP (132) comprende el acto de reemplazar terminos sustitutos de longitud reducida con los terminos originales del SOAP y/o terminos de XML de modo que la envolvente del SOAP se devuelve a la configuracion anterior.
  22. 30. El procedimiento segun la reivindicacion 25, en el que el acto de decodificar los octetos puros (134) en el interior
    10 de la envolvente del SOAP (132) comprende un acto de usar un Mecanismo de Optimizacion de la Transmision de Mensajes para decodificar los octetos puros.
  23. 31. El procedimiento segun la reivindicacion 24, en el que el acto (301) de acceder a un elemento del SOAP incluido en una envolvente del SOAP comprende un acto de acceder a elementos de XML desde una porcion de la cabecera de la envolvente del SOAP.
    15 32. El procedimiento segun la reivindicacion 24, en el que el acto (301) de acceder a un elemento del SOAP incluido en una envolvente del SOAP comprende un acto de acceder a elementos XML desde una porcion del cuerpo de la envolvente del SOAP.
  24. 33. El procedimiento segun la reivindicacion 24, en el que el acto (302) de identificar un objeto tipeado que
    corresponde al elemento del SOAP comprende un acto de comparar los elementos de XML en la envolvente del 20 SOAP a atributos de la declaracion del mensaje (171) de una clase anotada.
  25. 34.
    El procedimiento segun la reivindicacion 24, en el que el acto (302) de identificar un objeto tipeado que corresponde al elemento del SOAP comprende un acto de acceder un URI correspondiente al objeto tipeado.
  26. 35.
    El procedimiento segun la reivindicacion 24, en el que el acto (302) de identificar un objeto tipeado que
    corresponde al elemento del SOAP comprende un acto de identificar una clase que representa los parametros para 25 un procedimiento.
  27. 36.
    El procedimiento segun la reivindicacion 35, en el que el acto (302) de identificar una clase que representa los parametros para un procedimiento comprende un acto de acceder una clase publica que representa parametros para un procedimiento de Lenguaje Comun del Tiempo de ejecucion.
  28. 37.
    El procedimiento segun la reivindicacion 35, en el que el acto (302) de identificar un objeto tipeado que
    30 corresponde al elemento del SOAP comprende un acto de despachar la envolvente del SOAP (132) a un procedimiento apropiado.
  29. 38. El procedimiento segun la reivindicacion 24, en el que el acto (303) de mapear el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con el uno o mas atributos de declaracion del mensaje (171) comprende un acto de des-serializar el elemento del SOAP en parametros del objeto tipeado.
    35 39. El procedimiento segun la reivindicacion 24, en el que el acto (303) de mapear el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con uno o mas atributos de declaracion del mensaje (171) comprende un acto de mapear los elementos de XML dentro de los parametros del objeto tipeado correspondiente.
  30. 40. El procedimiento segun la reivindicacion 24, que comprende ademas:
    un acto de invocar un procedimiento con los parametros del objeto tipeado.
    40 41. Un producto de programa de ordenador para su uso en un sistema de ordenador (101) que es la red (161) conectable junto con uno o mas sistemas de ordenador (111) a una red, el producto de programa de ordenador para la implementacion de un procedimiento para el envio de modo flexible de datos de la aplicacion tipeados (131), comprendiendo el producto de programa de ordenador uno o mas medios legibles por ordenador que tienen almacenadas sobre el mismo instrucciones ejecutables por ordenador, que cuando se ejecutan por un procesador
    45 (421) causan que el sistema de ordenador realice lo siguiente:
    acceder (201) a parametros del objeto tipeado correspondientes al objeto tipeado, estando anotado el objeto tipeado con uno o mas atributos de declaracion del mensaje de un modelo de declaracion del mensaje, definiendo el uno o mas atributos de declaracion del mensaje un mapeo entre los parametros del objeto tipeado y los elementos del SOAP correspondientes;
    50 mapear (202) los parametros del objeto tipeado accedido en un elemento del SOAP de acuerdo con el uno o mas atributos de declaracion del mensaje; y referirse (203) a uno o mas atributos de declaracion del mensaje para identificar una localizacion dentro de una
    envolvente del SOAP; insertar (204) el elemento del SOAP en la localizacion identificada dentro de la envolvente del SOAP.
  31. 42. El producto de programa de ordenador segun la reivindicacion 41, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador acceda (201) a los parametros del objeto
    5 tipeado correspondiente a un objeto tipeado comprende instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador acceda a una clase publica que representa parametros para un procedimiento de Lenguaje Comun del Tiempo de ejecucion.
  32. 43. El producto de programa de ordenador segun la reivindicacion 41, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador acceda (201) a los parametros del objeto
    10 tipeado correspondiente a un objeto tipeado comprende instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador acceda a una clase publica que representa un valor de retorno del procedimiento de Lenguaje Comun del Tiempo de ejecucion.
  33. 44. El producto de programa de ordenador segun la reivindicacion 41, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador mapee (202) los parametros del objeto
    15 tipeado accedido en un elemento del SOAP de acuerdo con uno o mas atributos de declaracion del mensaje comprende instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador serialice el acceso a los parametros del objeto tipeado para un elemento del SOAP.
  34. 45. El producto de programa de ordenador segun la reivindicacion 41, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador se refiera (203) a uno o mas atributos de
    20 declaracion del mensaje para identificar una localizacion dentro de una envolvente del SOAP comprenden instrucciones ejecutables por el ordenador, que cuando se ejecutan, causan que el sistema de ordenador se refiera a un atributo de declaracion del mensaje que identifica una porcion de cabecera de la envolvente del SOAP.
  35. 46. El producto de programa de ordenador segun la reivindicacion 41, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador se refiera (203) a uno o mas atributos de
    25 declaracion del mensaje para identificar una localizacion dentro de una envolvente del SOAP comprenden instrucciones ejecutables por el ordenador, que cuando se ejecutan, causan que el sistema de ordenador se refiera a un atributo de declaracion del mensaje que identifica una porcion del cuerpo de la envolvente del SOAP.
  36. 47. El producto de programa de ordenador segun la reivindicacion 41, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador se refiera a insertar (204) el elemento del
    30 SOAP en la localizacion identificada dentro de la envolvente del SOAP comprenden instrucciones ejecutables por el ordenador, que cuando se ejecutan, causan que el sistema de ordenador inserte el elemento del SOAP en una porcion de cabecera de la envolvente del SOAP.
  37. 48. El producto de programa de ordenador segun la reivindicacion 41 en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador se refiera a insertar (204) el elemento del
    35 SOAP en la localizacion identificada dentro de la envolvente del SOAP comprenden instrucciones ejecutables por el ordenador, que cuando se ejecutan, causan que el sistema de ordenador inserte el elemento del SOAP en una porcion del cuerpo de la envolvente del SOAP.
  38. 49. Un producto de programa de ordenador para su uso en un sistema de ordenador (111) que es la red (161) conectable junto con otros uno o mas sistemas de ordenador (101) a una red, el producto de programa de ordenador
    40 para implementar un procedimiento para recibir de modo flexible datos de aplicacion tipeados (131), comprendiendo el producto de programa de ordenador uno o mas medios legibles por el ordenador que tienen almacenados en el mismo instrucciones ejecutables por el ordenador, que cuando se ejecutan por un procesador (421), causan que el sistema de ordenador realice lo siguiente:
    acceder (301) a un elemento del SOAP incluido en una envolvente del SOAP;
    45 identificar (302) un objeto tipeado que corresponde al elemento del SOAP, estando anotado el objeto tipeado con uno o mas atributos de declaracion del mensaje de un modelo de declaracion del mensaje, definiendo el uno o mas atributos de declaracion del mensaje un mapeo entre elementos del SOAP y los parametros del objeto tipeado correspondiente; y mapear (303) el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con uno o mas
    50 atributos de declaracion del mensaje, presentandose los parametros del objeto tipeado al objeto tipeado identificado.
  39. 50. El producto de programa de ordenador segun la reivindicacion 49, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan causan que el sistema de ordenador se refiera al acceso (301) de un elemento del SOAP incluido en una envolvente del SOAP comprenden instrucciones ejecutables por el ordenador, que cuando
    55 se ejecutan, causan que el sistema de ordenador acceda a elementos de XML de una porcion de la cabecera de la envolvente del SOAP.
  40. 51. El producto de programa de ordenador segun la reivindicacion 49, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan causan que el sistema de ordenador se refiera al acceso (301) de un elemento del SOAP incluido en una envolvente del SOAP comprenden instrucciones ejecutables por el ordenador, que cuando se ejecutan, causan que el sistema de ordenador acceda a elementos de XML de una porcion del cuerpo de la
    5 envolvente del SOAP.
  41. 52. El producto de programa de ordenador segun la reivindicacion 49, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan causan que el sistema de ordenador se refiera a la identificacion (302) de un objeto tipeado que corresponde al elemento del SOAP comprenden instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador acceda a un URI correspondiente al objeto tipeado.
    10 53. El producto de programa de ordenador segun la reivindicacion 49, en el que las instrucciones ejecutables por ordenador, que cuando se ejecutan causan que el sistema de ordenador mapee (303) el elemento del SOAP accedido en parametros del objeto tipeado de acuerdo con el uno o mas atributos de declaracion del mensaje comprenden instrucciones ejecutables por ordenador, que cuando se ejecutan, causan que el sistema de ordenador des-serialice el elemento del SOAP en los parametros del objeto tipeado.
ES05110545T 2004-12-03 2005-11-09 Transferencia de forma flexible de datos de aplicación tipeados. Active ES2372956T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3099 2004-12-03
US11/003,099 US8296354B2 (en) 2004-12-03 2004-12-03 Flexibly transferring typed application data

Publications (1)

Publication Number Publication Date
ES2372956T3 true ES2372956T3 (es) 2012-01-30

Family

ID=35999441

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05110545T Active ES2372956T3 (es) 2004-12-03 2005-11-09 Transferencia de forma flexible de datos de aplicación tipeados.

Country Status (7)

Country Link
US (1) US8296354B2 (es)
EP (1) EP1667399B1 (es)
JP (1) JP5242887B2 (es)
KR (1) KR101213873B1 (es)
CN (1) CN1783882A (es)
AT (1) ATE529994T1 (es)
ES (1) ES2372956T3 (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100455817B1 (ko) * 1996-08-14 2005-04-06 니혼 엔바이로 케미카루즈 가부시키가이샤 이온흡착제
FR2882164A1 (fr) * 2005-02-11 2006-08-18 Canon Kk Procede et dispositif de transfert de donnees numeriques a format progressif
US7738887B2 (en) * 2005-10-31 2010-06-15 Microsoft Corporation Voice instant messaging between mobile and computing devices
US20070115917A1 (en) * 2005-10-31 2007-05-24 Microsoft Corporation MTOM data transfer via TCP
US7808975B2 (en) * 2005-12-05 2010-10-05 International Business Machines Corporation System and method for history driven optimization of web services communication
EP1909191B1 (en) * 2006-10-02 2011-09-14 Sun Microsystems France S.A. Method and system for transmitting data over a network
US7746250B2 (en) * 2008-01-31 2010-06-29 Microsoft Corporation Message encoding/decoding using templated parameters
JP5014212B2 (ja) * 2008-03-14 2012-08-29 キヤノン株式会社 メッセージ通信装置及びその制御方法及びコンピュータプログラム
FI123499B (fi) * 2008-05-05 2013-06-14 Sensinode Oy Menetelmä ja laite viestien prosessoimiseksi
US8108540B2 (en) 2008-12-12 2012-01-31 Microsoft Corporation Envelope attachment for message context
CN101459674A (zh) * 2008-12-30 2009-06-17 国家电网公司 一种服务访问方法及***
JP5538742B2 (ja) * 2009-04-01 2014-07-02 キヤノン株式会社 メッセージ通信装置及びその処理方法
CN102111437A (zh) * 2010-12-30 2011-06-29 浪潮集团山东通用软件有限公司 一种基于soap扩展的web服务传输压缩方法
CN104094249B (zh) * 2012-04-25 2018-09-28 企业服务发展公司有限责任合伙企业 使用xml的文件传输
CN103843275B (zh) * 2013-11-25 2017-02-22 华为技术有限公司 比特流的处理设备、处理方法和通信***
CN105827441A (zh) * 2016-03-14 2016-08-03 上海斐讯数据通信技术有限公司 一种soap报文传输方法及***

Family Cites Families (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583859A (en) 1994-08-30 1996-12-10 Bell Communications Research, Inc. Data labeling technique for high performance protocol processing
US5923846A (en) * 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
US5774695A (en) * 1996-03-22 1998-06-30 Ericsson Inc. Protocol interface gateway and method of connecting an emulator to a network
US5838927A (en) 1996-11-22 1998-11-17 Webtv Networks Method and apparatus for compressing a continuous, indistinct data stream
US6286033B1 (en) 2000-04-28 2001-09-04 Genesys Telecommunications Laboratories, Inc. Method and apparatus for distributing computer integrated telephony (CTI) scripts using extensible mark-up language (XML) for mixed platform distribution and third party manipulation
US6457066B1 (en) 1997-11-10 2002-09-24 Microsoft Corporation Simple object access protocol
US6178504B1 (en) * 1998-03-12 2001-01-23 Cheyenne Property Trust C/O Data Securities International, Inc. Host system elements for an international cryptography framework
US6321252B1 (en) 1998-07-17 2001-11-20 International Business Machines Corporation System and method for data streaming and synchronization in multimedia groupware applications
US20020062451A1 (en) * 1998-09-01 2002-05-23 Scheidt Edward M. System and method of providing communication security
US6910068B2 (en) 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US7069335B1 (en) * 1999-08-10 2006-06-27 Microsoft Corporation Method and system for exchanging messages between entities on a network comprising an actor attribute and a mandatory attribute in the header data structure
US6907564B1 (en) * 1999-08-30 2005-06-14 International Business Machines Corporation Representing IMS messages as XML documents
US7325076B1 (en) * 1999-11-10 2008-01-29 Navimedix, Inc. System for dynamic information exchange
FR2805425B1 (fr) * 2000-02-21 2003-09-19 Schneider Automation Systeme de communication entre un automate programmable serveur et une machine cliente
US7114147B2 (en) 2000-03-09 2006-09-26 Electronic Data Systems Corporation Method and system for reporting XML data based on precomputed context and a document object model
US7051032B2 (en) * 2000-03-17 2006-05-23 International Business Machines Corporation System and method for providing post HOC access to legacy applications and data
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US6748431B1 (en) * 2000-05-26 2004-06-08 Microsoft Corporation Systems and methods for monitoring network exchanges between a client and a server
US7136913B2 (en) * 2000-05-31 2006-11-14 Lab 7 Networks, Inc. Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US20010049702A1 (en) 2000-06-05 2001-12-06 Sun Microsystems, Inc. Service side filtering XML messages in a distributed network
US6904600B1 (en) * 2000-06-29 2005-06-07 Microsoft Corporation Application programming interface to the simple object access protocol
US7188158B1 (en) * 2000-07-15 2007-03-06 Hewlett-Packard Development Company, L.P. System and method for component-based software development
FR2813471B1 (fr) * 2000-08-31 2002-12-20 Schneider Automation Systeme de communication d'un equipement d'automatisme base sur le protocole soap
WO2002023336A1 (en) * 2000-09-14 2002-03-21 Bea Systems, Inc. Xml-based graphical user interface application development toolkit
EP1195677A1 (en) * 2000-10-06 2002-04-10 Abb Research Ltd. Dynamic class loading
US20050223392A1 (en) * 2000-12-01 2005-10-06 Cox Burke D Method and system for integration of software applications
GB2370450B (en) 2000-12-19 2004-07-07 Voxsurf Ltd Messaging protocol
US7296226B2 (en) 2001-02-15 2007-11-13 Accenture Gmbh XML-based multi-format business services design pattern
TW586069B (en) * 2001-03-01 2004-05-01 Ibm A method and a bridge for coupling a server and a client of different object types
US7124299B2 (en) 2001-05-18 2006-10-17 Claymore Systems, Inc. System, method and computer program product for auditing XML messages in a network-based message stream
FR2826753B1 (fr) * 2001-06-29 2003-12-05 Canon Kk Procede et dispositif de traitement d'un document informatique dans un systeme informatique
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
WO2003005672A2 (en) * 2001-07-06 2003-01-16 Livedevices Limited Improvements relating to reduction of resource usage in tcp/ip implementation
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
US7089533B2 (en) 2001-08-01 2006-08-08 Oic Acquisition I Corp Method and system for mapping between markup language document and an object model
US7065706B1 (en) * 2001-08-06 2006-06-20 Cisco Technology, Inc. Network router configured for executing network operations based on parsing XML tags in a received XML document
DE10138710A1 (de) * 2001-08-07 2003-02-20 Siemens Ag Erweiterung des OPC-Protokolls
US20030061405A1 (en) * 2001-08-15 2003-03-27 Open Technologies Group, Inc. System, method and computer program product for protocol-independent processing of information in an enterprise integration application
US8296400B2 (en) * 2001-08-29 2012-10-23 International Business Machines Corporation System and method for generating a configuration schema
WO2003029963A2 (en) * 2001-09-28 2003-04-10 Codagen Technologies Corp. A system and method for managing architectural layers within a software model
US20030093551A1 (en) * 2001-10-17 2003-05-15 Graham Taylor Adaptive software interface
US7516198B1 (en) * 2001-10-30 2009-04-07 Cisco Technology, Inc. Arrangement for providing content-based quality of service for a service flow based on parsing XML tags detected from a server response to a client request
US7281206B2 (en) 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7389335B2 (en) * 2001-11-26 2008-06-17 Microsoft Corporation Workflow management based on an integrated view of resource identity
US7610390B2 (en) * 2001-12-04 2009-10-27 Sun Microsystems, Inc. Distributed network identity
KR100426307B1 (ko) 2001-12-12 2004-04-08 한국전자통신연구원 에스오에이피-엑스엠엘을 이용한 데이터 액세스 장치 및방법
US20030217096A1 (en) 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
US7668908B2 (en) * 2001-12-14 2010-02-23 Microsoft Corporation System and method for generalized and distributed scalable eventing system
US6829606B2 (en) * 2002-02-14 2004-12-07 Infoglide Software Corporation Similarity search engine for use with relational databases
US20040015578A1 (en) * 2002-02-22 2004-01-22 Todd Karakashian Web services runtime architecture
US7130999B2 (en) 2002-03-27 2006-10-31 Intel Corporation Using authentication certificates for authorization
US7159224B2 (en) * 2002-04-09 2007-01-02 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
US7302492B1 (en) * 2002-04-09 2007-11-27 Cisco Technology, Inc. Method and apparatus for matching web service in applications using a data object exchange protocol
US7246358B2 (en) * 2002-04-09 2007-07-17 Sun Microsystems, Inc. Methods, system and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment
US7475248B2 (en) 2002-04-29 2009-01-06 International Business Machines Corporation Enhanced message security
US7289498B2 (en) 2002-06-04 2007-10-30 Lucent Technologies Inc. Classifying and distributing traffic at a network node
CA2391733A1 (en) 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Framework to access a remote system from an integrated development environment
AU2002950435A0 (en) 2002-07-29 2002-09-12 Trade Wind Communications Ltd A Bulk Communications Process Using Multiple Delivery Media
US7237014B2 (en) * 2002-08-01 2007-06-26 Drummond Group System and method for in situ, real-time, supply chain, interoperability verification
US20040030947A1 (en) * 2002-08-12 2004-02-12 Al Aghili Method and apparatus for testing simple object access protocol servers
US7464097B2 (en) 2002-08-16 2008-12-09 Sap Ag Managing data integrity using a filter condition
US7150004B2 (en) * 2002-08-21 2006-12-12 International Business Machines Corporation Programmatically serializing complex objects using self-healing techniques
US7213227B2 (en) * 2002-08-29 2007-05-01 Sap Aktiengesellschaft Rapid application integration using an integrated development environment
US7257818B2 (en) * 2002-08-29 2007-08-14 Sap Aktiengesellschaft Rapid application integration using functional atoms
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7512972B2 (en) * 2002-09-13 2009-03-31 Sun Microsystems, Inc. Synchronizing for digital content access control
US7797450B2 (en) * 2002-10-04 2010-09-14 Oracle International Corporation Techniques for managing interaction of web services and applications
US20040088395A1 (en) * 2002-10-30 2004-05-06 O'konski Timothy Method for probing a server
US7191186B1 (en) * 2002-11-27 2007-03-13 Microsoft Corporation Method and computer-readable medium for importing and exporting hierarchically structured data
US7359945B2 (en) * 2002-12-05 2008-04-15 Microsoft Corporation Using conditional statements in electronic messages to prevent overuse of resources or time when delivering the electronic message
US7774831B2 (en) 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US20040148612A1 (en) * 2003-01-27 2004-07-29 Jesse Olsen System and method for generating an application programming interface from a schema
CA2514831A1 (en) 2003-02-14 2004-08-26 Research In Motion Limited System and method of compact messaging in network communications
JP3969654B2 (ja) * 2003-03-07 2007-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Soapメッセージ作成方法並びに処理方法、情報処理方法、情報処理装置及びプログラム
US20040205216A1 (en) 2003-03-19 2004-10-14 Ballinger Keith W. Efficient message packaging for transport
EP1611525A4 (en) * 2003-03-25 2007-01-03 Unisys Corp PUBLICATION SYSTEM INCLUDING LINKS TO TOP CLIENTS FOR ROUTING ENGINE DIAGRAMS AND COMMUNICATION PROTOCOLS
US7185060B2 (en) 2003-03-26 2007-02-27 Microsoft Corporation Message processing pipeline for streams
US7457815B2 (en) 2003-03-27 2008-11-25 Apple Inc. Method and apparatus for automatically providing network services
US7305677B2 (en) 2003-03-27 2007-12-04 Intel Corporation Transfer of runtime-based application code
US7418485B2 (en) 2003-04-24 2008-08-26 Nokia Corporation System and method for addressing networked terminals via pseudonym translation
US7509651B2 (en) * 2003-05-23 2009-03-24 Hewlett-Packard Development Company, L.P. System and method for providing event notifications to information technology resource managers
GB2402578A (en) 2003-06-04 2004-12-08 Research In Motion Ltd Selection of message transport in a communication device
US7685288B2 (en) 2003-06-30 2010-03-23 Microsoft Corporation Ad-hoc service discovery protocol
US20050038708A1 (en) * 2003-08-10 2005-02-17 Gmorpher Incorporated Consuming Web Services on Demand
US7533264B2 (en) * 2003-08-20 2009-05-12 Microsoft Corporation Custom security tokens
US7519574B2 (en) * 2003-08-25 2009-04-14 International Business Machines Corporation Associating information related to components in structured documents stored in their native format in a database
US7631314B2 (en) * 2003-08-26 2009-12-08 International Business Machines Corporation Method and system for dynamically associating type information and creating and processing meta-data in a service oriented architecture
US20050055629A1 (en) * 2003-09-05 2005-03-10 Oracle International Corporation Method and mechanism for efficient access to nodes in XML data
US20050060431A1 (en) * 2003-09-12 2005-03-17 Lewontin Stephen Paul System, apparatus, and method for using reduced web service messages
WO2005027455A1 (en) 2003-09-17 2005-03-24 Research In Motion Ltd. System and method for asynchronous wireless services using reverse service schema generation
US20050097545A1 (en) * 2003-09-29 2005-05-05 Lawrence Tarbox System and method for deployment of configuration and analysis software
US20050086594A1 (en) * 2003-10-15 2005-04-21 Schlimmer Jeffrey C. Mixed content includes and encodes
US7328403B2 (en) * 2003-10-22 2008-02-05 Intel Corporation Device for structured data transformation
US20050091231A1 (en) * 2003-10-24 2005-04-28 Shankar Pal System and method for storing and retrieving XML data encapsulated as an object in a database store
US7861228B2 (en) * 2003-12-03 2010-12-28 Hewlett-Packard Development Company, L.P. Variable delay instruction for implementation of temporal redundancy
US7698348B2 (en) * 2003-12-19 2010-04-13 Kinaxis Holdings Inc. Extended database engine providing versioning and embedded analytics
KR100576722B1 (ko) * 2003-12-26 2006-05-03 한국전자통신연구원 웹서비스에 대한 메시지 보안 처리 시스템 및 방법
US8516123B2 (en) 2004-02-12 2013-08-20 Oracle International Corporation Runtime validation of messages for enhanced web service processing
US20050240555A1 (en) 2004-02-12 2005-10-27 Lockheed Martin Corporation Interactive electronic technical manual system integrated with the system under test
US7454429B2 (en) * 2004-02-14 2008-11-18 Alan S Rojer Declarative Dispatch
JP4114873B2 (ja) * 2004-02-17 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ装置、サービス方法、プログラム及び記録媒体
US7603658B2 (en) 2004-02-19 2009-10-13 Oracle International Corporation Application functionality for a test tool for application programming interfaces
JP4313703B2 (ja) * 2004-03-12 2009-08-12 彼方株式会社 情報処理装置、システム、方法及びプログラム
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
JP4061288B2 (ja) * 2004-04-08 2008-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーション Webサービス・システム、リクエスタ、soapメッセージ用中間処理装置、リクエスタのリクエスト用soapメッセージ処理方法、リクエスタのレスポンス用soapメッセージ処理方法、soapメッセージ用中間処理装置のリクエスト用soapメッセージ処理方法、soapメッセージ用中間処理装置のレスポンス用soapメッセージ処理方法、及びプログラム
US20050262049A1 (en) 2004-05-05 2005-11-24 Nokia Corporation System, method, device, and computer code product for implementing an XML template
US7539982B2 (en) * 2004-05-07 2009-05-26 International Business Machines Corporation XML based scripting language
US20050257193A1 (en) 2004-05-13 2005-11-17 Alexander Falk Method and system for visual data mapping and code generation to support data integration
US7802007B2 (en) * 2004-05-19 2010-09-21 Salesforce.Com, Inc. Techniques for providing connections to services in a network environment
US7526490B2 (en) 2004-06-08 2009-04-28 Oracle International Corporation Method of and system for providing positional based object to XML mapping
JP4716709B2 (ja) * 2004-06-10 2011-07-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、構造化文書処理方法、及びプログラム
US7870188B2 (en) * 2004-07-30 2011-01-11 Hewlett-Packard Development Company, L.P. Systems and methods for exposing web services
US9286275B2 (en) * 2004-08-23 2016-03-15 Oracle America, Inc. System and method for automatically generating XML schema for validating XML input documents
US7512953B1 (en) * 2004-08-31 2009-03-31 Sap Ag System and method for smart proxy creation and management within a distributed object-oriented architecture
US20060064667A1 (en) * 2004-09-20 2006-03-23 Freitas Jose D System and method of model-driven development using a transformation model
US7483994B1 (en) * 2004-11-01 2009-01-27 Ameriprise Financial, Inc. System and method for creating a standard envelope structure
US7844956B2 (en) * 2004-11-24 2010-11-30 Rojer Alan S Object-oriented processing of markup
US7694284B2 (en) * 2004-11-30 2010-04-06 International Business Machines Corporation Shareable, bidirectional mechanism for conversion between object model and XML
US7827197B2 (en) * 2004-12-02 2010-11-02 International Business Machines Corporation Method for providing a pluggable custom data binding system
US7512957B2 (en) * 2004-12-03 2009-03-31 Microsoft Corporation Interface infrastructure for creating and interacting with web services
US20060168511A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation Method of passing information from a preprocessor to a parser
US7492771B2 (en) 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
EP1764972B1 (en) * 2005-09-20 2017-07-19 Accenture Global Services Limited Authentication and authorization architecture for an access gateway
US8700681B2 (en) * 2005-09-28 2014-04-15 Sap Ag Method and system for generating schema to java mapping descriptors
US7698684B2 (en) * 2005-09-28 2010-04-13 Sap Ag Method and system for generating schema to Java mapping descriptors and direct mapping of XML schema and Java interfaces
US7567586B2 (en) * 2005-10-31 2009-07-28 Microsoft Corporation Above-transport layer message partial compression
US7986685B2 (en) * 2005-11-08 2011-07-26 Avaya Inc. Real-time XML messaging protocol
US7797405B2 (en) * 2005-11-28 2010-09-14 Intel Corporation Streaming file transfer apparatus, systems, and methods
US7676473B2 (en) * 2005-12-02 2010-03-09 Qwest Communications International, Inc. Propagation of user preferences to end devices
US20070143331A1 (en) * 2005-12-14 2007-06-21 Holtz Christopher M Apparatus, system, and method for generating an IMS hierarchical database description capable of storing XML documents valid to a given XML schema
US7769821B2 (en) * 2005-12-20 2010-08-03 Sap Ag Systems and methods for enhanced meassage support using a generic client proxy
US7814060B2 (en) * 2005-12-30 2010-10-12 Sap Ag Apparatus and method for web service client deployment
US20070156872A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US20070174763A1 (en) * 2006-01-23 2007-07-26 Hung-Yang Chang System and method for developing and enabling model-driven XML transformation framework for e-business
US20070177590A1 (en) * 2006-01-31 2007-08-02 Microsoft Corporation Message contract programming model
US7644066B2 (en) * 2006-03-31 2010-01-05 Oracle International Corporation Techniques of efficient XML meta-data query using XML table index

Also Published As

Publication number Publication date
EP1667399A1 (en) 2006-06-07
JP2006164264A (ja) 2006-06-22
US20060123047A1 (en) 2006-06-08
JP5242887B2 (ja) 2013-07-24
KR20060063644A (ko) 2006-06-12
KR101213873B1 (ko) 2012-12-18
ATE529994T1 (de) 2011-11-15
CN1783882A (zh) 2006-06-07
US8296354B2 (en) 2012-10-23
EP1667399B1 (en) 2011-10-19

Similar Documents

Publication Publication Date Title
ES2372956T3 (es) Transferencia de forma flexible de datos de aplicación tipeados.
Calvert et al. TCP/IP sockets in Java: practical guide for programmers
US10666718B2 (en) Dynamic data transport between enterprise and business computing systems
US6785730B1 (en) Generic communications protocol translator
ES2326073T3 (es) Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml).
US8151003B2 (en) System and method for routing data by a server
Bromberg et al. Starlink: runtime interoperability between heterogeneous middleware protocols
US20070067779A1 (en) Data-Driven Application Integration Adapters
US20100161821A1 (en) Midleware broker
JP2006277725A (ja) サブキューを使用してローカルメッセージ処理を向上させること
CN101711467A (zh) 支持位置透明和动态部分重构的硬件通信设施
AU2007262660B2 (en) Middleware broker
Neufeld et al. An overview of ASN. 1
CN1783881B (zh) 绑定结构化数据协议至提供字节流协议的机制
US20080077601A1 (en) Method, Apparatus and System for Transforming, Converting and Processing Messages Between Multiple Systems
US7668144B2 (en) Dynamically extensible communications device
US7506068B2 (en) Method, apparatus and system for transforming, converting and processing messages between multiple systems
US8239562B2 (en) Envelope attachment for message context
US11216424B2 (en) Dynamically rendering an application programming interface for internet of things applications
KR20050031954A (ko) 데이터 객체 전송시스템 및 수신방법
CN103856396B (zh) 插件间的报文传递方法及装置、代理插件
Weise Lesson 6: Data Types and Marshalling
WO2021236785A1 (en) Dynamically rendering an application programming interface for internet of things applications
US20100013682A1 (en) Method for generic encoding, decoding and processing of protocol data units (PDUS)
CN116962319A (zh) 一种调用方法、装置、网络设备及可读存储介质