ES2372956T3 - Transferencia de forma flexible de datos de aplicación tipeados. - Google Patents
Transferencia de forma flexible de datos de aplicación tipeados. Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols 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
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.
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.
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)
- REIVINDICACIONES1. 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 acuerdo10 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.
- 3. El procedimiento segun la reivindicacion 2, en el que el acto (201) de acceder a una clase que representaparametros 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.
-
- 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.
-
- 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. - 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.
- 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 del35 objeto tipeado se incluira en una cabecera de la envolvente (132) del SOAP.
- 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 debe45 entenderse un parametro del objeto tipeado, si puede retransmitirse el parametro del objeto tipeado, y un actor para el parametro del objeto tipeado.
- 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.
- 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.
- 15. El procedimiento segun la reivindicacion 1, en el que el acto (204) de insertar el elemento del SOAP en la10 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.
- 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).
- 18. El procedimiento segun la reivindicacion 17, en el que el acto de codificar la envolvente del SOAP (132) enoctetos 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.
-
- 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.
-
- 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. -
- 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.
-
- 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. - 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 el40 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 objeto45 tipeado identificado.
- 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).
- 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.
-
- 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. -
- 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. - 30. El procedimiento segun la reivindicacion 25, en el que el acto de decodificar los octetos puros (134) en el interior10 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.
- 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.
- 33. El procedimiento segun la reivindicacion 24, en el que el acto (302) de identificar un objeto tipeado quecorresponde 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.
-
- 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.
-
- 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. -
- 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.
-
- 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. - 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.
- 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 procesador45 (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 unaenvolvente del SOAP; insertar (204) el elemento del SOAP en la localizacion identificada dentro de la envolvente del SOAP.
- 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 objeto5 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.
- 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 objeto10 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.
- 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 objeto15 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.
- 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 de20 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.
- 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 de25 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.
- 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 del30 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.
- 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 del35 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.
- 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 ordenador40 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 mas50 atributos de declaracion del mensaje, presentandose los parametros del objeto tipeado al objeto tipeado identificado.
- 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 cuando55 se ejecutan, causan que el sistema de ordenador acceda a elementos de XML de una porcion de la cabecera de la envolvente del SOAP.
- 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 la5 envolvente del SOAP.
- 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.
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)
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)
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 |
-
2004
- 2004-12-03 US US11/003,099 patent/US8296354B2/en active Active
-
2005
- 2005-10-14 KR KR1020050096867A patent/KR101213873B1/ko active IP Right Grant
- 2005-11-03 CN CNA2005101188771A patent/CN1783882A/zh active Pending
- 2005-11-09 ES ES05110545T patent/ES2372956T3/es active Active
- 2005-11-09 EP EP05110545A patent/EP1667399B1/en active Active
- 2005-11-09 AT AT05110545T patent/ATE529994T1/de not_active IP Right Cessation
- 2005-11-16 JP JP2005332027A patent/JP5242887B2/ja active Active
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) | 一种调用方法、装置、网络设备及可读存储介质 |