MXPA01012818A - Metodo y aparato para crear servicios de red. - Google Patents
Metodo y aparato para crear servicios de red.Info
- Publication number
- MXPA01012818A MXPA01012818A MXPA01012818A MXPA01012818A MXPA01012818A MX PA01012818 A MXPA01012818 A MX PA01012818A MX PA01012818 A MXPA01012818 A MX PA01012818A MX PA01012818 A MXPA01012818 A MX PA01012818A MX PA01012818 A MXPA01012818 A MX PA01012818A
- Authority
- MX
- Mexico
- Prior art keywords
- feature
- model
- service
- template
- xml
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
Un método y aparato para crear servicios en red; en lugar de realizar la programacion o codificacion complicada de un servicio web completo, la invencion provee la capacidad de crear fácilmente un modulo/mecanismo (mencionado como una plantilla 100) que produce un codigo que puede utilizarse para crear un servicio web; de este modo, una plantilla 100 se forma y utiliza para crear un modelo 204 que puede generar una aplicacion 104 o servicio web; cada plantilla está comprendida de una lista de características 202, y un modelo 102 (mencionado como un modelo en tiempo de ejecucion o RTM); un RTM 102 es un documento XML que declara la estructura, funcionalidad, y comportamiento de una aplicacion de servicio web (mencionada como una WSA 304); en una o más modalidades, cada característica es responsable de generar entidades XML para emitirse en un nuevo RTM 102; cada característica puede obtener una o más entradas del usuario que se utilizan para construir una entidad XML en un nuevo RTM; además, cada característica puede procesarse secuencialmente y tiene la capacidad de modificar cualesquiera entidades XML existentes que ya han sido creadas (por ejemplo, por otras características).
Description
MÉTODO Y APARATO PARA CREAR SERVICIOS DE RED
CAMPO DE LA INVENCION
Esta invención se refiere al campo de la creación de servicios de red. Partes de la descripción de este documento de patente contienen material que está sujeto a protección de derechos. El propietario de los derechos no tiene objeción a la reproducción facsimilar del documento de patente o la descripción de patente como aparece en el archivo o los registros de la oficina de patentes y marcas, pero por lo demás se reserva cualquier otro derecho.
ANTECEDENTES DE LA INVENCIÓN.
La World Wide Web es una colección de sitios Web que proveen cada uno información, datos, y/o servicios de un tipo u otro. Un problema con los servicios actuales de Internet y Web es que cada servicio debe ser programado estáticamente o independientemente de otros servicios. Además, para modificar o cambiar una capacidad del servicio Web, un programador debe modificar el código de servicio web. Este problema puede ser entendido mejor revisando empresas y el uso que hacen de Internet.
Un gran número de empresas confían en otras empresas como parte de su funcionalidad. Por ejemplo, un distribuidor de productos confía en que todos los diversos fabricantes de productos suministren confiablemente no solo los productos mismos, sino también información acerca del precio y disponibilidad de los productos. Los fabricantes mismos también confían en los proveedores de partes para construir productos completos. Para competir en un medio comercial competitivo, es necesario que las compañías sean capaces de proveer respuestas rápidas a los clientes sobre sus productos y servicios. Esto requiere frecuentemente la interacción con muchas otras compañías. En el pasado, un cliente podría haber estado dispuesto a esperar que un representante de la compañía llamara por teléfono o suministrara catálogos para dar respuesta a las solicitudes de los clientes. Sin embargo, en la actualidad los clientes demandan un servicio más rápido, o la capacidad de obtener información por ellos mismos. En otros casos, los clientes pueden estar interaccionando, no con un representante de la compañía, sino con un sitio web de la compañía. En ese ambiente, el cliente requiere un servicio más rápido y eficiente. Una forma de que las compañías sean competitivas en el ambiente comercial de la actualidad, es desarrollar programas de aplicación (software) que les permita interaccionar con sistemas computacionales de terceras compañías para obtener información y servicios que son necesarios para operar los negocios de las compañías. Tradicionalmente, sin embargo, ha sido difícil crear estas aplicaciones. Un problema es la dificultad de interaccionar con los sistemas computacionales frecuentemente patentados de compañías diferentes. Otro problema es la dificultad al escribir y depurar las aplicaciones mismas, así como también actualizarlas cuando cambian las condiciones o cuando las terceras compañías cambian o actualizan sus propios sistemas. Este cambio en el clima comercial ha sido manejada en parte por medio de la Internet. La Internet ha hecho la información de múltiples fuentes fácilmente disponible a los individuos. Además, la Internet ha cambiado la manera en que las compañías interaccionan entre sí. La interacción de empresa a empresa es realizada frecuentemente a través de Internet. Frecuentemente la relación entre empresas (tal como entre un distribuidor y sus proveedores) es referida como una "relación de canal", o un "canal comercial". La creación de aplicaciones de software para manejar canales comerciales es compleja e inflexible usando las técnicas tradicionales. Si se crea una aplicación codificada en firme, esta puede no ser capaz de responder a nuevos canales creados o modificados con el tiempo. Pueden ser necesarios esfuerzos de recodificación repetidos. En otros casos, una compañía puede estar en una relación de canal con otra compañía sin que la otra compañía se dé cuenta. Por ejemplo, las compañías que usan Federal Express u otros fletadores para transportar artículos, lo hacen así sin relaciones formales explícitas con el fletador. Para el fletador, el mantenimiento de canales comerciales con cada compañía que lo utiliza es una tarea desalentadora, si no imposible. Las técnicas tradicionales se enfocan en la eficiencia del diseño de una aplicación en la reutilización de código mediante programación
5 orientada a objeto, por ejemplo, pero no proveen eficiencia ni adaptabilidad al cliente en tiempo de ejecución de una aplicación. Con millones de compañías i poniendo disponibles servicios en Internet, existe la necesidad de poder crear eficientemente aplicaciones personalizadas que invoquen e interconecten dinámicamente una combinación de servicios de web, y configuren ellas 10 mismas en formatos personalizados en tiempo de ejecución. A la fecha, la técnica anterior no ha provisto soluciones efectivas. Actualmente, la web es usada para proveer páginas web predefinidas para ser visualizadas por un usuario/cliente. Pero existe la necesidad de hacer más que proveer páginas web estáticas. Es conveniente 15 crear fácilmente un mecanismo/módulo que modifique o cree una página web dinámicamente mientras que al mismo tiempo tome en consideración los otros elementos o componentes de la página web. Además, existe la necesidad creciente de utilizar servicios de web que provean a los usuarios de una variedad de capacidades. Actualmente no hay mecanismos para generar o 20 modificar dinámicamente un servicio de web. Además, no hay mecanismo para modificar un servicio de web basado aspectos existentes del servicio de web.
BREVE DESCRIPCIÓN DE LA INVENCIÓN.
La presente invención provee un método y un aparato para crear servicios de red. En lugar de programar o codificar manualmente un servicio de web completo, una o más modalidades de la invención proveen la capacidad de crear fácilmente un módulo/mecanismo (referido como una plantilla) que produce un código (referido como un modelo de tiempo de ejecución) que provee las definiciones XML de una aplicación de servicio web. De esta manera, se forma y utiliza una plantilla para crear un modelo que puede generar la base de una aplicación de servicio web. Cada plantilla está comprendida de una lista de características y un modelo (referido como un modelo de tiempo de ejecución o RTM). Un RTM es un documento XML que declara la estructura, funcionalidad y reacción de una aplicación de servicio web (referido como WSA). En una o más modalidades, cada característica es responsable de generar entidades XML para ser salida en un RTM nuevo. Cada característica puede obtener una o más entradas de usuario que son utilizadas para construir una entidad XML en un RTM nuevo. Además, cada característica puede ser procesada secuencialmente y tiene la capacidad de modificar cualquier entidad XML existente que ya ha sido creada (por otras características, por ejemplo) en un RTM. Consecuentemente, las características tienen la capacidad para considerar una aplicación en conjunto para efectuar un cambio a toda la aplicación existente en lugar de solo ajustar y modificar la entidad de la que son responsables. En una o más modalidades de la invención, cuando cambia una condición que puede afectar una aplicación, la plantilla puede ser utilizada para regenerar el RTM para producir un nuevo servicio de web o documento XML.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La figura 1 ilustra el uso de una plantilla para producir una WSA de acuerdo con una o más modalidades de a invención. La figura 2 ilustra la composición (incluyendo parámetros) de una plantilla de conformidad con una o más modalidades de la invención. La figura 3 ilustra la generación de una aplicación de servicios web usando plantillas de acuerdo con una o más modalidades de la invención. La figura 4 ilustra el proceso de regeneración de acuerdo con una o más modalidades de la invención. La figura 5 ilustra el uso de características y servicios de características para crear un modelo de tiempo de ejecución transformado de acuerdo con una o más modalidades de la invención. La figura 6 ilustra la selección de una característica para usar en una plantilla de acuerdo con una o más modalidades de la invención.
La figura 7A ilustra una presentación de sistema de teléfono celular producida de acuerdo con una o más modalidades de la invención. La figura 7B ilustra la presentación resultante al oprimir un botón "details" de la figura 7A de acuerdo con una o más modalidades de la invención. La figura 8 ilustra la selección de una plantilla de catálogo de celulares de una pantalla "Open a Témplate" de una aplicación de autor de plantilla de acuerdo con una o más modalidades de la invención La figura 9 ilustra la plantilla cellcatalog abierta de acuerdo con una o más modalidades de la invención. La figura 10 ilustra la plantilla de Ul de característica Active Column de acuerdo con una o más modalidades de la invención. La figura 1 1 ilustra la creación de un servicio de acuerdo con una o más modalidades de la invención. La figura 12 ilustra la página siguiente de la plantilla de Ul de característica para especificar las entradas de un servicio de acuerdo con una o más modalidades de la invención. La figura 13 ilustra la creación de una característica de página importada de acuerdo con una o más modalidades de la invención. La figura 14 ilustra la Ul para una característica Fixed XML Text
Feature de acuerdo con una o más modalidades de la invención.
La figura 15 ilustra la Ul para una característica Button denominada "Go Back" de acuerdo con una o más modalidades de la invención. La figura 16 ilustra la Ul para agregar una característica Function de acuerdo con una o más modalidades de la invención. La figura 17 ilustra la característica Active Column Feature de la figura 10, en donde la función está siendo modificada de OnLoad a Show Details, de acuerdo con una o más modalidades de la invención.
DESCRIPCIÓN DETALLADA DE LA INVENCION
En la siguiente descripción, se señalan muchos detalles específicos para proveer una comprensión más completa de la presente invención. Sin embargo, será evidente para el experto en la materia que la presente invención puede ser practicada sin estos detalles específicos. En otros casos, no se han descrito en detalle características bien conocidas para no oscurecer innecesariamente la presente invención. La presente invención provee un método y un aparato para crear aplicaciones que utilizan servicios de web disponibles. Se están poniendo disponibles millones de servicios a través de la internet, así como también a través de APIs existentes y otras técnicas. En la internet, se tienen disponibles muchos servicios como servicios XML. El XML (lenguaje de marcación extensible) es un lenguaje usado para describir información o, mas exactamente, para hacer la información autodescribible. Tradicionalmente, las páginas web se construyen usando HTML. El HTML (lenguaje de marcación de hipertexto) describe la geometría y apariencia de una página de datos, creando en efecto huecos o ranuras en los cuales se insertan datos. Sin embargo, no hay comunicación directa de los datos que aparecen en la página en la descripción HTML. Se podría presentar a usuario una página que incluye información reconocible, tal como nombre, dirección y número telefónico. Pero para el HTML, los datos son simplemente texto para desplegar. El XML, por otra parte, provee un protocolo en donde puede ser identificado el tipo de datos usados. El XML puede hacer esto en parte usando "esquemas" predefinidos que pueden ser usados para entender el tipo de datos que se transmiten. Si se usa un esquema estándar, los datos necesitan incluir solamente una referencia al esquema, el cual no necesita viajar con los datos. Si se usa un esquema personal, este puede ser enviado antes o después de los datos, o se pueden proveer instrucciones explícitas para la localización del esquema. La presente invención puede tomar ventaja completa de los servicios basados en XML, pero también es aplicable para usarse con cualquier servicio para el cual se pueden establecer protocolos de comunicación. Una o más modalidades de la invención crean un directorio de servicios web para un negocio o empresa que contienen servicios disponibles para uso. Las interfaces están disponibles para cada servicio para convertir peticiones y respuestas en formatos apropiados para usar en la Internet y en ambientes de sistema final de regreso. Adicionalmente, las interfaces pueden ser utilizadas para definir el esquema de datos de petición pasados hacia un servicio solicitado, y para definir el esquema de datos de respuesta enviados por un servicio solicitado. La arquitectura de los servicios web (referida como el "sistema") mantiene metadatos sobre servicios web que han sido publicados para ser usados por los consumidores de servicios web. El sistema provee control de acceso, organización, definición de interfaz, manejo y operación de servicios web. La arquitectura de servicios web sirve como una localización centralizada desde la cual los consumidores del servicio web pueden tener acceso a toda la información sobre una serie de servicios web publicados. Además, la arquitectura de servicios web provee una localización central desde la cual pueden ser operados los servicios de web, a pesar del hecho que los sistemas (aplicaciones) que realizan el trabajo real de los servicios web individuales están distribuidos en toda la Internet. La arquitectura de servicios web está comprendida del directorio de servicios web y la máquina de servicios web. El directorio de servicios web es la base de datos, mientras que la máquina de servicios web es el procesador que maneja las peticiones del servicio web.
Aplicaciones de servicios web y modelos de tiempo de ejecución Una de las actividades más significativas que realiza una máquina de servicios web es la ejecución de múltiples servicios web en el contexto de una sola sesión. La arquitectura de servicios web soporta un tipo de objeto XML denominado un modelo de tiempo de ejecución que define el contexto en el cual se van a ejecutar múltiples servicios web. Cuando una máquina de servicios web recibe una petición para ejecutar el servicio corredor de modelo con un modelo de tiempo de ejecución especificado, el sistema genera algo denominado una aplicación de servicios web en la sesión. Un modelo de tiempo de ejecución es significativamente diferente a una declaración de cómo encadenar entre sí la ejecución de varios servicios web. Una o más modalidades de la invención proveen un modelo de tiempo de ejecución que declara acciones múltiples, cada una de las cuales puede ser ligada a la ejecución de funcionalidad elaborada definida en funciones. Además, un modelo de tiempo de ejecución declara múltiples parámetros que son usados como entradas y salidas de servicios web. Y finalmente, un modelo de tiempo de ejecución ocasiona el uso de varios servicios web que construyen páginas especiales de interfaz de usuario como datos de salida. La reacción de estas páginas es generar peticiones de servicios web subsecuentes a la máquina de servicios web, y solicitar la ejecución de las acciones definidas en una sesión de aplicación de servicios web. Como tal, un modelo de tiempo de ejecución, y la aplicación de servicios web que genera, es la receta de una nueva forma compleja de aplicación. Sin WSAs, la arquitectura de servicios web seria atómica, lo que significa que en algunos casos, la única actividad durante el procesamiento de una petición a la máquina de servicios web seria la ejecución de un solo servicio web. Las WSAs proveen un medio para permitir a la máquina de servicios web realizar tareas complejas que implican muchos servicios web. Además, las WSAs permiten a los solicitantes de servicios web fuera de la máquina de servicios web, interaccionar con un estado de una sola sesión, a través de peticiones.
Operación de aplicaciones de servicios web Cuando una petición a la máquina de servicios web invoca una WSA, el sistema procesa la petición y genera una respuesta. La respuesta puede estar en XML, HTML, codificada en MIME (por ejemplo, un archivo .gif), o cualquier formato soportado por protocolos de cable de Internet. En una o más modalidades, una petición de servicio web genera una respuesta que toma la forma de una interfaz gráfica de usuario para ser desplegada en un navegador. Este es el caso cuando el solicitante (consumidor de servicios web) es un navegador de la web. Las interfaces de usuario retornadas frecuentemente tienen controles incrustados en ellas que reaccionan a eventos generados subsecuentemente por el usuario, y ocasionan que el navegador genere peticiones HTTP subsecuentes de regreso a la máquina de servicios web. Estas peticiones son frecuentemente dirigidas a la misma WSA. En la arquitectura de servicios web, es posible que una sola sesión de WSA en la máquina de servicios web mantenga su estado durante varias interacciones con diferentes peticiones generadas por diferentes interfaces de usuario. Por ejemplo, es posible que una WSA genere una página inicial de Ul como la respuesta a una petición inicial. Esta Ul podría contener un botón. Cuando el usuario oprime el botón, el navegador genera una nueva petición dirigida contra la misma WSA. La máquina de servicios web invoca un servicio que permite a la WSA existente procesar la petición y generar otra página de Ul. La máquina de servicios web maneja los caches de las WSAs. El directorio de servicios web maneja las descripciones persistentes de servicios web y de plantillas usadas para construir modelos de tiempo de ejecución. La máquina de servicios web realiza la invocación de WSAs mediante el uso de un servicio web corredor de modelo. La arquitectura de servicios web mantiene un servicio web para uno o más modelos de tiempo de ejecución. Cuando un solicitante quiere correr una WSA, genera una petición HTTP para correr un tipo especial de servicios web denominado servicio web "basado en modelo". Estos servicios web tienen la responsabilidad de mantener los modelos de tiempo de ejecución para corresponder a las WSAs. Estos servicios web también hacen referencia a un controlador de servicios web común denominado el corredor de modelo, que es responsable de tomar el modelo de tiempo de ejecución como un parámetro de servicio y generar una WSA. Una vez que la máquina de servicios web ha invocado una instancia del controlador corredor de modelo, y ha generado la WSA, el controlador corredor de modelo solicita una acción invocada específica (denominada Onload en esta implementación) definida en la WSA. Una acción es una llamada a un servicio web, o una función (que define la invocación de varias acciones). Una acción es análoga a una operación realizada por un método (por ejemplo una solicitud a otro método/función, o realiza manipulación de datos simples como una asignación o concatenación). La función Onload establece el estado inicial de la WSA y realiza la unidad de trabajo que genera los datos de respuesta a la petición de servicios web. Cuando la función Onload ha terminado la operación, el controlador corredor de modelo guarda el estado de la WSA en la sesión del solicitante. Adicionalmente, el modelo de tiempo de ejecución también puede ser guardado en la sesión del solicitante. La acción Page es un tipo especial de acción usada para generar datos de respuesta en forma de una Ul interactiva. Una acción Page genera un paquete de datos de respuesta ya sea en HTML o XML, que contiene información presentable gráficamente junto con controles de interfaz de usuario (Ul). La reacción de estos controles se puede ajustar para generar peticiones subsecuentes de servicio web a la máquina de servicio web, utilizando el indicador de la sesión WSA original.
Algunas veces, una WSA hace todo su trabajo en la función Onload, envía de regreso sus datos de respuesta, y termina sin ninguna intención de que peticiones subsecuentes de servicio web establezcan contacto al final. Otras veces, una acción (o función) en una WSA genera datos de respuesta que contienen un indicador de sesión de modelo XML incluido. Estos datos permiten a un navegador, u otro sistema, generar peticiones de servicio web contra la misma sesión de WSA.
Funcionalidad de las aplicaciones de servicio web La funcionalidad de una WSA está definida completamente por declaraciones basadas en XML en el modelo de tiempo de ejecución, y la funcionalidad provista por los servicios web invocados. El modelo de tiempo de ejecución que declara la funcionalidad de la WSA es usado por el servicio Model Runner Service para ejecutar todos los servicios web involucrados, invocados por la WSA. Además, el modelo de tiempo de ejecución contiene declaraciones de lógica (funcionalidad), estructura de datos y reacción. La reacción de una WSA es definida por un grupo de enlaces de acciones a eventos que son declarados en el modelo de tiempo de ejecución. Muchos de los eventos son aquellos que serían generados por un usuario que interacciona con Pages definidas en el modelo de tiempo de ejecución. Conforme los servicios web interaccionan con una WSA, la WSA genera Pages como datos de respuesta, y estas Pages contienen la reacción que define los enlaces de eventos a acciones que solicitan servicios web adicionales. De acuerdo con una o más modalidades de la invención, al arrancar, una WSA ejecuta su funcionalidad Onload. Durante la ejecución, el controlador de servicio corredor de modelo hace llamadas internas a servicios web adicionales, lo cual da como resultado que la máquina de servicios web acople controladores de servicio adicionales. Una petición interna para ejecutar un servicio web viene de la máquina de servicios web con una serie de entradas de servicio que están presentes en la sesión de WSA. Sin embargo, las llamadas externas vienen en la forma de un post o get de HTTP, a un URL en una máquina de servicios web, con un paquete de datos de entrada. Una vez que la petición inicial de servicio web ha sido procesada, y los datos de respuesta han sido enviados de regreso, la máquina de servicios web puede manejar peticiones subsecuentes de servicio web dirigidos en la sesión de modelo de la WSA que ya está corriendo. Estas peticiones especificas de sesión contienen cada una un ID de indicador de modelo que permite a la máquina de servicios web acoplar una WSA especificada. Estas peticiones también identifican una acción para ejecutar en la WSA para realizar el trabajo de la petición de servicio web. Por ejemplo, una WSA podría haber obtenido inicialmente una lista de empleados a través de su actividad Onload y enviar esta información en una página como una respuesta hacia el navegador. Además, esta página podría contener un botón. Cuando se oprime este botón, el navegador genera una petición de servicio web para ejecutar una acción especificada en la misma sesión WSA. Esta vez la petición contiene la ID de la sesión WSA. Como resultado, el botón genera una petición para ejecutar una acción en la WSA que está corriendo, para obtener información adicional sobre un empleado cuyo estado ya está presente en la WSA. Un estado de WSAs está representado por una serie de parámetros XML (incluyendo salidas de datos de llamada de servicio web). Los parámetros son contenedores XML para datos y tienen esquemas XML que definen el tipo de datos que es soportado en los parámetros. Los datos en los parámetros cambian con el tiempo en la sesión de WSA. Por medio de lógica definida en funciones, una WSA puede asignar valores de parámetro a entradas de llamada de servicio, y también dirigir las salidas de llamadas de servicio web a los parámetros. Una WSA sirve como un sistema intermediario para mover información hacia las llamadas de servicio web y fuera de las mismas, manejadas por la máquina de servicios web. Finalmente, una WSA soporta la generación y actualización de interfaces de usuario completamente interactivas. La interfaz de usuario está comprendida de una serie de entidades XML generadas y actualizadas dinámicamente denominadas Pages. Una Page es un bloque de datos XML (siendo HTML una subserie) adecuado para ser desplegado por un navegador (pero de ninguna manera limitado a ser visto en un navegador; una Page no tiene que contener HTML).
La ¡nterfaz de usuario es una propiedad opcional de una WSA. Algunas WSAs tienen funcionalidad que realiza computación sobre entradas de datos y generan datos de salida que no contienen componentes de Ul. Estas WSAs típicamente se cierran después de la ejecución de la petición inicial de servicio web. Otras WSAs tienen funcionalidad de arranque que genera Ul en los datos de respuesta. Esta Ul generada puede contener reacción marcada que ocasiona que el navegador genere peticiones subsecuentes de servicio a la máquina de servicios web, para conectarse a la WSA en operación e invocar acciones adicionales. A su vez, estas acciones pueden dar como resultado la generación de una página nueva o actualizada que obtiene envío de regreso como una respuesta a la petición de servicio. A través de esta interacción, una WSA es capaz de manejar una interacción compleja con un usuario, mientras que al mismo tiempo realiza acciones de llamada de servicio web que acoplan servicios web que están distribuidos en toda la Internet.
Estructura de modelos de tiempo de ejecución Un modelo de tiempo de ejecución es un tipo de documento que representa cualquier dato XML (incluyendo un servicio web escrito en XML). Por ejemplo, en una o más modalidades, un modelo de tiempo de ejecución es un documento XML que declara la estructura, funcionalidad y reacción de una WSA. En otra modalidad, un modelo de tiempo de ejecución representa entidades de datos geométricos 3D, o XSL (entidades de lenguaje extensible de hoja de estilos), por ejemplo. En una o más modalidades, el controlador corredor de modelo en la máquina de servicios web interpreta el contenido de un modelo de tiempo de ejecución para producir una WSA. Sin embargo, otros tipos de servicios pueden manejar la interpretación de entidades de modelo de tiempo de ejecución usadas para nuevas aplicaciones. Una o más modalidades proveen modelos de tiempo de ejecución para seguir un esquema que está abierto y extensible. Los modelos de tiempo de ejecución soportan un arreglo amplio de entidades que describen diferentes aspectos de WSAs. Los modelos de tiempo de ejecución pueden declarar funcionalidad que da como resultado modelos de tiempo de ejecución múltiples que son invocados en WSAs que colaboran durante la operación del tiempo de ejecución. Esto se realiza teniendo llamadas de declaración de modelos de tiempo de ejecución a los servicios web que, a su vez, hacen referencias a otros modelos de tiempo de ejecución.
Modelos En una o más modalidades, el modelo de tiempo de ejecución puede tener un nodo de raíz denominado un modelo. La entidad Model [modelo] contiene una serie de subnodos. En la implementación actual, esta incluye Pages, ServiceCalls, Triggers, Parameters, y Behaviors. Como se hace referencia más adelante, la funcionalidad y uso de XML se basa en lo que se utiliza comúnmente. Además, las descripciones XML utilizadas aquí son para fines descriptivos y los datos XML pueden estar comprendidos de marcas vacías. Las marcas vacías se formatean como <tagname/>. Los datos XML pueden contener marcas llenas en la forma de datos <tag name>, que incluyen otros datos <tagged data>moredata</tagged data></tag name>.
Adicionalmente, la estructura de XML puede no estar definida en un lenguaje
de esquema, y un modelo de tiempo de ejecución puede contener cualquier dato XML, siguiendo cualquier esquema XML.
Por ejemplo, el XML siguiente describe una o más modalidades que contienen algunas entidades que pueden ser utilizadas en un modelo de
tiempo de ejecución.
<?xml version="1.0" ?> <Model xmlns :LDS= " " xmlns:LDT= " " xml:space="preserve"> <Pages/> <ServiceCalls/> <Triggers/> <Parameters/> <Behav¡ors/> </Model>
Páginas La entidad Pages [páginas] de un modelo de tiempo de ejecución contiene una serie de entidades de página individuales. Un modelo de tiempo de ejecución puede tener cualquier número de páginas. Las páginas sirven como un vehículo tanto como para contenido como para Ul que es formateado adecuadamente desplegar en un navegador.
Una vez que el controlador de servicio corredor de modelo ha producido una WSA, ejecuta un bloque de funcionalidad en la WSA (véase la sección sobre llamadas de servicio y disparadores, más adelante), que finalmente envía de regreso una respuesta al solicitante. Muchas veces, la respuesta está en la forma de una página adecuada para desplegar en un navegador. Puesto que una página es solo como otro tipo de datos XML parametrizados en la sesión de WSA, una WSA puede utilizar una página como salida a una petición de servicio, o como entrada a otro servicio web. Esto significa que una WSA puede enviar páginas como entradas a una variedad de servicios web. Por ejemplo, una WSA podría enviar una página a un servicio web de correo electrónico como el contenido de un mensaje. Una entidad Page contiene las siguientes entidades:
<Page> <UniquelD/> <UserReadableName/> <Target/> <Contents/> </Page>
La entidad Contents [Contenidos] en una Page contiene
cualquier tipo de HTML, incluyendo XML anidado. La sección Content
también contiene entidades XML que representan placeholders para datos y
controles.
Una de las acciones que puede ser solicitada en una WSA es la acción Page. Esta acción invoca un servicio web que aplica una transformación a una serie de entidades Page en preparación para enviar los datos como una respuesta a una petición de servicio. La acción Page hace que el sistema inserte datos de parámetro en los placeholders de datos declarados en las entidades Page, y escriba llamadas de vuelta en la Page para cualquier reacción declarada definida en el modelo de tiempo de ejecución para esa Page. Por ejemplo, una entidad LDT:Button declara la presencia de un botón HTML que tiene una acción de clic que invoca una petición de servicio web contra una acción en la WSA.
Llamadas de servicio La entidad ServiceCalls [llamadas de servicio] de un modelo de tiempo de ejecución contiene una serie de entidades individuales ServiceCall. Las ServiceCalls son acciones que invocan servicios web definidos en un directorio de servicios web. En una o más modalidades, una llamada de servicio puede identificar solo servicios web que están localizados en el mismo directorio de servicios web que está manejando la ejecución de la WSA. En una o más modalidades adicionales, una máquina de servicios web puede hacer peticiones de servicio web a los servicios web localizados en otro directorio de servicios web, a nombre de una WSA que está corriendo. Una llamada de servicio es una acción que solicita un servicio web en el directorio de servicios web. Una llamada de servicio también provee una representación residente de WSA de los esquemas de datos de
entrada y salida para el servicio web solicitado, así como también
placeholders para los datos. Y finalmente, una llamada de servicio puede
mantener una definición de la asignación de valores de entrada a las entradas
del servicio web. Estos valores asignados pueden ser constantes o pueden
ser referencias a valores en parámetros en el modelo de tiempo de ejecución.
Una entidad ServiceCall contiene lo siguiente:
<ServiceCall> <UniquelD/> <UserReadableName/> <ServicelD>cn=xml_file_service,ou=System Services,ou=Bow Street Services,o=BowStreet,c=US</ServicelD> <lnputDefinit¡ons/> </ServiceCall
La entidad InputDefinitions [definiciones de entrada] contiene una
serie de entidades individuales DataDefinition [definición de datos]. Estas
entidades contienen asignaciones de valores constantes para las entradas,
así como también asignaciones de parámetros en el modelo de tiempo de
ejecución como fuentes de datos para las entradas a la llamada de servicio.
En una o más modalidades, puede ser incluido efectivamente un
criterio de selección como parte de la información de ServicelD. En una o
más modalidades, una llamada de servicio identifica un servicio por su
nombre. Además, en una o más modalidades, los ServicelDs pueden utilizar un identificador único en lugar de un nombre distinguido de LDAP. En dicha modalidad, una plantilla puede ser movida fácilmente de un directorio a otro. En otra modalidad, una llamada de servicio puede identificar valores de atributo para atributos tales como "nivel de liberación" como un medio para identificar la versión correcta de un servicio. Además, una llamada de servicio puede identificar la versión de un servicio por medio de un criterio de selección.
Disparadores (también conocidos como funciones) La entidad Triggers [disparadores] de un modelo de tiempo de ejecución contiene una serie de entidades Action. Los Triggers son los equivalentes de métodos en una clase y funcionan en una página HTML manuscrita. Un disparador es un bloque de lógica de ejecución, con una acción que sirve como un indicador de identificación. Un modelo de tiempo de ejecución puede enlazar indicaciones de acción con eventos, y eso es lo que constituye la noción de reacción. La reacción en el modelo de tiempo de ejecución está definida para ser el enlace de acciones con eventos. En una o más modalidades, se define un disparador para ser una secuencia de acciones. Cuando se invoca la acción del disparador, el sistema invoca las acciones especificadas por el disparador. En otra modalidad, los disparadores soportan muchas formas de procesamiento lógico, incluyendo ramificación Una entidad Trigger contiene lo siguiente:
<Trigger> <UniquelD/> <UserReadableName/> <Actions/> </Trigger>
La entidad Actions [acciones] contiene información que describe lógica y flujos de acciones que son ejecutadas cuando es invocado el Trigger. Esto puede ser una simple lista de acciones. Las acciones son los indicadores para la funcionalidad definida
en el modelo de tiempo de ejecución. En una o más modalidades, puede
haber una acción asociada con cada llamada de servicio, disparador y página en el modelo de tiempo de ejecución.
Parámetros La entidad Parameters [parámetros] puede contener cualquier tipo y número de entidades XML. Esto significa que un parámetro puede
representar cualquier forma de datos. Un Parameter es un placeholder para datos, pero también es un
placeholder para la representación estructural de los datos. En otras
palabras, para cada parámetro, el sistema mantiene una entidad XML que
define el contenido admisible y la estructura (esto es, el esquema) para los datos en el parámetro La representación estructural de un parámetro puede ser llenada mucho antes de que haya datos asociados con un parámetro.
Reacciones Las entidades Behavioral [de reacción] definen el mapeo de eventos a acciones. En la implementación actual, la reacción está definida solamente en Pages a través de controles. Un control puede identificar la acción asociada con uno de sus eventos. En la implementación actual, estas acciones solo pueden ser peticiones de servicio web de regreso hacia la máquina de servicios web.
Plantillas En una o más modalidades, los modelos de tiempo de ejecución son codificados en firme y programados individualmente. Sin embargo, es difícil codificar y mantener tales modelos de tiempo de ejecución debido a la naturaleza constantemente cambiante de los servicios web involucrados (que pueden ser solicitados como parte del modelo de tiempo de ejecución), y a la alta cantidad de variabilidad que se requiere entre los modelos de tiempo de ejecución para diferentes usos. Como resultado, una o más modalidades de la invención proveen un sistema que registra instrucciones para construir modelos de tiempo de ejecución. Estas instrucciones se denominan características y son registradas en objetos denominados plantillas.
Las plantillas proveen un mecanismo para generar fácilmente un modelo de tiempo de ejecución que produce o declara la estructura, funcionalidad y reacción de una WSA. Además, las plantillas proveen un modelo poderoso y versátil para invocar WSAs, en lugar de expedir simplemente una petición de servicio web para un servicio basado en modelo de tiempo de ejecución codificado en firme, explícito. Las plantillas proveen la capacidad de generar dinámicamente un modelo de tiempo de ejecución en lugar de codificar en firme un modelo de tiempo de ejecución. En una o más modalidades, las plantillas son un tipo especial de modelo de tiempo de ejecución (escritos usando instrucciones de alto nivel) que proveen la construcción dinámica de un modelo de tiempo de ejecución hijo (ejecutando el modelo de tiempo de ejecución representado por la plantilla). De manera similar a los modelos de tiempo de ejecución mencionados arriba, el modelo de tiempo de ejecución hijo representa la estructura fundamental de una WSA y puede ser convertido en una WSA. Sin embargo, las plantillas y las características podrían ser puestas en práctica en conjunto en un formato diferente, no como modelos de tiempo de ejecución. Por ejemplo, en una o más modalidades, un servicio web puede recuperar el contenido de una plantilla como un bloque de datos de una base de datos relacionada. De esta manera, una plantilla es un objeto intermediario que provee el uso de una serie de instrucciones de alto nivel para construir un modelo de tiempo de ejecución.
Como se describió arriba, un modelo de tiempo de ejecución tiene parámetros que son utilizados como un placeholder para datos, o la representación estructural de los datos. Uno de los parámetros de una plantilla es un modelo de tiempo de ejecución (referido como un modelo de tiempo de ejecución hijo o anidado). De esta manera, una plantilla es un modelo de tiempo de ejecución que, cuando se transforma en una WSA y se ejecuta, produce otro modelo de tiempo de ejecución dentro del mismo, el cual puede ejecutar. La figura 1 ilustra el uso de una plantilla para producir una WSA. En la modalidad de la figura 1 , la plantilla 100 es un modelo de tiempo de ejecución. Sin embargo, la plantilla 100 puede no ser un modelo de tiempo de ejecución, en cuyo caso el modelo 102 de tiempo de ejecución no es un hijo de ningún modelo de tiempo de ejecución, sino solo un modelo de tiempo de ejecución creado por la plantilla 100. El modelo de tiempo de ejecución representado por la plantilla 100 es convertido en una WSA y ejecutado. La salida de la WSA es el modelo de 102 de tiempo de ejecución hijo. El modelo 102 de tiempo de ejecución hijo representa, y puede ser usado para producir, la aplicación 104 de servicios web. De esta manera, las plantillas automatizan la construcción de modelos de tiempo de ejecución. Como se describió arriba, la sección de parámetro de un modelo de tiempo de ejecución puede soportar varios tipos de datos XML. Consecuentemente, una o más modalidades de la invención anidan el modelo 102 de tiempo de ejecución hijo, como una especie de "mesa de trabajo" dentro de la sección de parámetros. Además, puesto que un modelo de tiempo de ejecución puede definir una funcionalidad y reacción de WSAs, una o más modalidades de la invención usan un modelo de tiempo de ejecución (esto es, la plantilla 100), para definir y construir el modelo 102 de tiempo de ejecución hijo a través de una serie de llamadas de servicio web a servicios web conocidos como servicios de características. Los servicios de característica tienen la propiedad de aceptar una referencia a un modelo de tiempo de ejecución como entrada, junto con otros parámetros, y producir un modelo de tiempo de ejecución trasformado como salida. En otra modalidad, el modelo 102 de tiempo de ejecución hijo puede ser construido usando un código referido como "creadores de características" en lugar de servicios actuales. Un creador de característica puede ser realizado como un servicio (por ejemplo el servicio de características) o como una clase Java, por ejemplo. Como se describió, la plantilla 100 es un modelo de tiempo de ejecución que tiene varios tipos especiales de datos en su sección de parámetros, así como también varias llamadas de servicio web que generan el modelo 102 de tiempo de ejecución anidado. Los tipos especiales de datos en la sección de parámetros de una plantilla pueden contener las siguientes entidades: <Parameters> <Features/> <Model/> </Parameters>
La figura 2 ilustra la composición (incluyendo parámetros) de la
plantilla 100. El modelo 102 de tiempo de ejecución es un parámetro. El
segundo parámetro es el de las listas 202 de características. La entidad/parámetro modelo es un modelo de tiempo de ejecución como se
describió arriba. De esta manera, cuando la plantilla es convertida en una WSA, uno de los parámetros usados por la WSA es un modelo de tiempo de
ejecución. Como se describirá más adelante, este modelo de tiempo de ejecución es modificado por la WSA hasta que sea producido el modelo 102 de tiempo de ejecución hijo completo. De esta manera, el modelo de tiempo de ejecución hijo es producido modificando el parámetro del modelo de tiempo de ejecución. El parámetro del modelo de tiempo de ejecución es modificado de acuerdo con especificaciones provistas por las otras características de
entidad de parámetro.
La figura 3 ilustra la generación de una aplicación de servicios web usando plantillas. En primer lugar, la máquina 300 de servicios web recibe una petición de un servicio basado en plantilla. La máquina 300 de
servicios web transmite la petición al corredor 302 de modelo. El corredor 302
de modelo está configurado para cargar un modelo de tiempo de ejecución y generar una WSA. De esta manera, el corredor 302 de modelo carga la plantilla 100 y produce la WSA 304 correspondiente. La WSA 304 contiene las características 202 que son utilizadas para modificar y crear el modelo 102 de tiempo de ejecución hijo. La WSA 304 hace llamadas a los servicios de características o creadores de características identificados por las características 202 para generar el modelo 102 de tiempo de ejecución hijo. El corredor 302 de modelo es utilizado entonces para cargar el modelo 102 de tiempo de ejecución hijo y transformarlo en la WSA 306. De esta manera, la plantilla 100 es utilizada para generar el modelo 102 de tiempo de ejecución que corresponde a una aplicación de servicios web que puede ser utilizada por el sistema.
Características La entidad/parámetro características de la plantilla 100 provee la capacidad de construir o generar entidades para producir el modelo 102 de tiempo de ejecución hijo. La entidad de características contiene una lista de características que comprende lo que se conoce como la lista de características. La lista de características es la serie de instrucciones que describen cómo un servicio web (conocido como regenerado) debe construir el modelo de tiempo de ejecución hijo, mediante el uso de una serie de servicios web "ayudantes" (llamados servicios de característica o creadores de característica), y una serie de valores de entrada (referidos como parámetros de entrada de característica).
Las características en la lista 202 de características utilizan el modelo 204 de tiempo de ejecución como entrada y son ejecutadas en el orden en el que están enumeradas las características. Cada característica á puede modificar o alterar el modelo 204 de tiempo de ejecución existente
5 usado como entrada. Este proceso de ejecución se denomina regeneración. Como una alternativa a los programas estándares, el proceso de regeneración puede estar en la forma de una WSA (descrito en detalle más abajo). El proceso de regeneración genera el contenido de modelo 102 de tiempo de ejecución anidado en base a los parámetros de entrada definidos para cada
10 característica en la lista de características. La figura 4 ilustra el proceso de regeneración de acuerdo con una o más modalidades de la invención. La regeneración de WSA 400 utiliza la lista 202 de características y el modelo 204 de tiempo de ejecución como entrada, para producir el modelo 102 de tiempo de ejecución transformado. 15 En una o más modalidades, el proceso de regeneración puede ser ejecutado inmediatamente después de la creación de una plantilla. Ejecutando el proceso de regeneración en dicho momento, el modelo de tiempo de ejecución no necesita ser generado cuando se solicita la ejecución del servicio web. Sin embargo, en este escenario, el modelo de tiempo de
20 ejecución terminado debe ser guardado en la memoria persistente. En otras modalidades, el proceso de regeneración es ejecutado dinámicamente en el momento en el que se solicita la ejecución del servicio web. Ejecutando el proceso de regeneración en dicho momento, se puede asegurar más adecuadamente al usuario que cualquier servicio web que sea referido por las características es la versión más reciente de los servicios, y que cualquier esquema utilizado de datos de entrada/salida es el más reciente. Sin embargo, al generar dinámicamente el modelo o la WSA, el tiempo de procesamiento puede alargarse. Una característica consiste de dos componentes: una plantilla de interfaz de usuario para característica y un servicio de característica. La plantilla de interfaz de usuario para característica es responsable de obtener la entrada de un usuario u otra aplicación, y de construir y mantener subsecuentemente un bloque de características en la lista de características. Las entradas provistas por el usuario a una plantilla de interfaz de usuario para característica son utilizadas en la creación de los parámetros de entrada para el servicio de característica identificado en el bloque de características. El servicio de característica realiza el trabajo de generar entidades en el modelo 102 de tiempo de ejecución en base a los parámetros de característica. En una o más modalidades, la plantilla de interfaz de usuario para característica obtiene entradas de un usuario, y entonces produce un bloque de características. Este bloque de datos es colocado en secuencia en la lista de características. El bloque de características contiene parámetros de entrada y el nombre de un servicio de característica que hace el trabajo de construir las entidades del modelo de tiempo de ejecución. En una o más modalidades, las entradas que el usuario suministra a la plantilla de Ul de característica, pueden no ser lo mismo que lo que la plantilla de Ul pone en el bloque de características. Por ejemplo, en una característica, la plantilla de Ul toma entradas del usuario acerca del nombre de una tabla de base de datos relacionada y columnas para consulta, y después escribe estas como entradas de datos SQL (lenguaje de consulta estructurado) en el bloque de características. Así, una plantilla de Ul de característica puede realizar una transformación sobre las entradas antes de colocarlas en el bloque de características. Si un usuario modifica una característica, la plantilla de Ul de característica también realiza el mapeo inverso para tomar las entradas del bloque de características y mapearlas de regreso a la Ul para que las modifique el usuario. Cada característica en una plantilla está representada por un bloque de datos XML que definen una serie de valores de parámetros de entrada para la característica, y el nombre del servicio de característica que realiza el trabajo de utilización de los valores de entrada de característica para trasformar el modelo 204 de tiempo de ejecución en el modelo 102 de tiempo de ejecución. Cada servicio de característica toma efectivamente el modelo 204 de tiempo de ejecución como una de sus entradas y produce el modelo 102 de tiempo de ejecución transformado como su salida. La figura 5 ¡lustra el uso de características y servicios de característica para crear el modelo 102 de tiempo de ejecución transformado. Una plantilla de ¡nterfaz de usuario de característica para la característica 1 puede obtener los parámetros 500 de entrada de la característica 1. El servicio 1 de característica utiliza los parámetros 500 de entrada de la característica 1 y el modelo 204 de tiempo de ejecución para producir el modelo 102 de tiempo de ejecución transformado. El servicio 2 de característica utiliza entonces el modelo 102 de tiempo de ejecución transformado y los parámetros 502 de entrada de la característica 2 como entrada para generar un nuevo modelo 102 de tiempo de ejecución transformado. El servicio de característica que corresponde a cada característica en la lista de características procesa el modelo de tiempo de ejecución transformado en combinación con los parámetros de entrada de característica para producir un modelo 102 de tiempo de ejecución hijo final. Puesto que los servicios de característica son ejecutados secuencialmente, cada servicio de característica puede modificar el modelo de tiempo de ejecución transformado completo, según se desee. De esta manera, cada característica tiene la capacidad de considerar dinámicamente un modelo de tiempo de ejecución existente y modificar el modelo en base a la presencia, ausencia o estado del modelo de tiempo de ejecución. Dicha capacidad provee una ventaja significativa sobre la programación típica, en donde un programa es codificado en firme y solo pueden ser modificadas unidades individuales independientemente del programa existente. Adicionalmente, un programa codificado en firme sólo puede ejecutarse. Durante la ejecución, un programa codificado en firme sólo puede reaccionar al ambiente como un medio para alterar su reacción. En las plantillas, las características construyen el programa antes de su ejecución. De esta manera, el programa tiene otro nivel de adaptación que es vaciado en el programa o sintetizado en el mismo antes de su ejecución. De esta manera, como una característica puede modificar cualquier aspecto de un modelo de tiempo de ejecución existente, una característica puede invertir los efectos de cualquier característica ejecutada anteriormente, si se desea. Un ejemplo de una característica simple es una característica Imported Page [página importada] (que construye el contenido de fondo HTML de una entidad Page en el modelo de tiempo de ejecución). Esta característica tiene un parámetro de entrada de característica para especificar un URL a la página que sirve como la base, o el punto de arranque, para el contenido de la página importada. Por ejemplo, una plantilla de ¡nterfaz de usuario para característica puede solicitar un URL de un usuario u otro servicio. Una vez obtenido el URL, la plantilla de interfaz de usuario para característica puede transmitir el URL al servicio de característica para procesamiento adicional. Alternativamente, la plantilla de Ul para característica puede escribir un bloque de características que contiene datos que el servicio regenerado asegurará que serán transferidos al servicio de característica. Como se describió arriba, la página localizada en el URL especificado puede ser utilizada como la entrada al servicio de característica que finalmente producirá una página para su transmisión al usuario final. La característica también tiene una entrada para especificar cuantas páginas deben ser construidas en el modelo de tiempo de ejecución que utiliza el contenido del URL importado. En base a los valores suministrados para sus dos entradas, el servicio de característica que construye Imported Pages en el modelo de tiempo de ejecución produce el número correcto de entidades de página en el modelo de tiempo de ejecución, y garantiza que todas las páginas tengan ID's únicos con respecto a las otras entidades que han sido construidas en el modelo de tiempo de ejecución (por características antes de la característica actual). En una o más modalidades, una o más características pueden tener un documento HTML estático como entrada (especificado por un URL, por ejemplo) y la salida del modelo de tiempo de ejecución es una página web de servicio habilitado. Una página web de servicio habilitado puede permitir a un usuario/observador final invocar servicios seleccionando ciertas porciones del documento. Por ejemplo, si una tabla es desplegada en una página web, un usuario puede seleccionar una columna con la cual clasificar el ítem en la tabla. Dicha acción puede invocar un servicio web que tiene la capacidad de clasificar información en base a la entrada seleccionada (por ejemplo, el valor de la columna seleccionada). Alternativamente, un usuario puede seleccionar una fila particular de una tabla y obtener información más detallada respecto de esa fila (por ejemplo, si una fila representa un empleado y el salario del empleado, haciendo clic en la fila se puede obtener información más detallada respecto al empleado). Para completar una acción deseada como parte de un servicio web o para habilitar el servicio de una página web, puede ser necesario utilizar una o más características. Cada característica está comprendida de una o más entidades. Una entidad de característica puede estar comprendida de las siguientes entidades, por ejemplo: <Feature> Featurel <FeatureServicelD>cn=create_empty_page_service, ou=System Services, ou=Bow Street Services, o=BowStreet, c=US </FeatureServicelD> <FeatureModifyTrigger>ModifyPageUI</FeatureModifyTrigger> <FeatureName>Page</FeatureName> <Featurelnputs> <PageName>inputs page</PageName> <FeatureRegenData> <UniquelD>Page1 </UniquelD> <FeatureRegenData> </Featurelnputs> </Feature>
La entidad FeatureServiceID es el nombre del servicio de
característica que realiza el trabajo de construir las entidades de tiempo de
ejecución para esta característica durante el proceso de regeneración.
La entidad FeatureModifyTrigger es el nombre de la plantilla que
provee la Ul para agrupar los valores de entrada que son suministrados al
Feature Service [servicio de característica]. Esta Ul es invocada cuando el
usuario crea inicialmente la característica en la plantilla, así como también
siempre que el usuario desee cambiar algunos de los valores de entrada
suministrados para una característica.
La entidad Featurelnputs contiene información de asignación de
valores para los parámetros de entrada de la característica. Esta información puede ser suministrada en la forma de valores constantes, o referencias a los valores de otros parámetros en el modelo de tiempo de ejecución. En una o más modalidades, una característica es solo un bloque de metadatos en una plantilla que identifican un servicio de característica, y una serie de parámetros de entrada que permiten al servicio de característica
construir entidades en el modelo de tiempo de ejecución. Alternativamente, en una o más modalidades, una entidad de
característica puede estar comprendida de las siguientes entidades, por
ejemplo:
<Feature> Feature3 <lsEnabled>true</lsEnabled> <FeatureClassname> com. bowstreet. services. PageFeatureCreator </FeatureClassname> <FeatureName>lmportedPage</FeatureName> <FeatureModifyTrigger>lnvokeFeatureTemplate </FeatureModifyTrigger> <FeatureModifyTemplate>lmportedPageFeature </Featu re Mod ifyTem plate> <Featurelnputs> <URL ID="0">demo1.htmK/URL> <PageName ID="1">Main page</PageName> </Featurelnputs> </Feature> La entidad FeatureClassname es el nombre del creador de característica que realiza el trabajo de construir las entidades de tiempo de ejecución para esta característica durante el proceso de regeneración. La entidad FeatureModifiTemplate es el nombre de la plantilla que provee la Ul para agrupar los valores de entrada que son suministrados al creador de característica. Esta Ul es invocada cuando el usuario crea inicialmente la característica en la plantilla, y también siempre que el usuario desee cambiar algunos de los valores de entrada suministrados a la característica.
Selección de característica Los usuarios pueden seleccionar características para creación en una plantilla usando una aplicación de autor de plantilla. En una o más modalidades, una aplicación de autor de plantilla puede permitir a un usuario seleccionar simplemente una característica deseada (por ejemplo, haciendo clic en el botón de un ratón mientras el cursor se localiza sobre una característica deseada), y arrastrando y soltando la característica en una plantilla. Dicha implementación puede ser provista por una WSA que genera la interfaz de usuario y las capacidades para arrastrar y soltar. La interfaz de usuario en dicha modalidad puede proveer el mecanismo a través del cual un usuario suministra parámetros de entrada de característica que son usados para colocar las características en una plantilla. La aplicación de autor de plantilla toma los valores de entrada y escribe el bloque de metadatos de característica en la sección de características de la plantilla. La figura 6 ilustra la selección de una característica para usar en una plantilla de acuerdo con una o más modalidades de la invención. Para seleccionar una característica para colocar en la plantilla 604, el usuario selecciona una característica de una lista de tipos de característica en la aplicación 602 de autor de molde. El sistema invoca un servicio web basado en plantilla diseñado para generar la Ul aplicable para interaccionar con el usuario para obtener los valores de entrada para la característica especificada. Esta Ul, conocida como Ul "Feature Editing", 600, es responsable de obtener del usuario los valores para los parámetros de entrada de característica. Estos valores pueden ser valores explícitos suministrados por el usuario (como el número "123" o un URL tal como "http://www.bowstreet.com"), o pueden ser referencias suministradas por el usuario para entidades en el modelo de tiempo de ejecución (como una referencia a un parámetro "pdq" que contiene un número como "123" o un URL). Un ejemplo del uso de referencias es con la característica Button (de botón). Uno de los parámetros de entrada a la característica Button es la serie de páginas para las cuales se añade el botón. El usuario puede referirse a páginas especificas por nombre, o puede especificar una palabra clave tal como "All". La característica Button construye el número correcto de botones en las páginas correctas, dependiendo del valor suministrado para el parámetro de entrada de característica. Una vez que el usuario ha terminado de suministrar los valores a la Ul 600 de edición de característica, la Ul WSA 600 de edición de característica escribe un bloque de datos XML en la plantilla que se edita 604, denominada el bloque de características. La Ul de edición de característica escribe este bloque de datos en la sección 606 de características de los parámetros en la plantilla que se edita 604, después de la última característica que ya existe en la plantilla 604. La forma en la que un usuario instruye a la WSA de autor de plantilla para empezar el proceso de creación de una nueva característica, es haciendo una petición de servicio web (haciendo clic en la característica en la Ul de autor de plantilla) para ejecutar una acción en la WSA. Esta acción invoca un servicio web basado en plantilla para la plantilla 600 de Ul de edición de la característica especificada. Este servicio basado en plantilla genera su propia Ul para obtener entradas del usuario y, finalmente, solicita una acción en la WSA 602 de autor de plantilla que lo instruye de los valores de entrada de característica, para que la WSA de autor de plantilla pueda construir el bloque de metadatos de característica. Después de que la plantilla de Ul de característica y la WSA de autor de plantilla escriben en conjunto el bloque de características, la WSA 602 de autor de plantilla invoca el servicio web de regeneración. Este servicio web ejecuta el servicio de característica asociado con el bloque de características que recién ha sido escrito en la plantilla (Nota: la regeneración es responsable de ejecutar todos los servicios 610 de característica que corresponden a las características en la lista 606 de características). El servicio 610 de característica utiliza sus valores de parámetros de entrada, junto con el modelo 608 de tiempo de ejecución (que puede analizar y usar como una base para tomar decisiones), para generar un modelo de tiempo de ejecución transformado. Una característica captura uno de los pasos del proceso que transforma el modelo de tiempo de ejecución. La serie de características en una plantilla definen en colaboración la secuencia completa de transformaciones que son necesarias para transformar un modelo de tiempo de ejecución vacío en uno que esté listo para ser ejecutado en una WSA por medio de la máquina de servicios web. Una propiedad de las características es que capturan y automatizan la ejecución de una serie de pasos de proceso que normalmente son realizados manualmente por un programador de aplicaciones. Las herramientas tradicionales de programación de aplicaciones soportan un enfoque de modelado explícito que no puede capturar el intento de diseño del programador, ni el proceso completo seguido en la construcción de una aplicación. Las herramientas y tradicionales, incluyendo productos de programación Java y C++, capturan datos que representan el resultado final de un proceso de diseño manual (es decir, código de fuente). Como tales, las aplicaciones tradicionales consumen mucho tiempo para construirse y son difíciles de cambiar. Los programadores deben borrar códigos y crear códigos nuevos para efectuar el cambio. El programador es responsable de asegurar que el cambio se propague completamente. Las herramientas tradicionales fl) de edición de aplicación pueden ayudar a determinar si la aplicación está
5 contaminada y puede tratar de invertir la ingeniería de la aplicación para diagnosticar el problema. Sin embargo, puesto que la receta seguida para construir la aplicación no está presente, no hay medio directo para regenerar una aplicación de su receta. De acuerdo con una o más modalidades de la invención, se
10 pueden aplicar características en la construcción de cualquier tipo de modelo XML, no solo modelos de tiempo de ejecución. Por ejemplo, se puede crear una serie de características para construir mensajes basados en XML. Una propiedad de las características es la capacidad para tener valores de entrada de característica que son referencias a entidades en el
15 modelo. Esta propiedad permite a la característica no sólo añadir entidades al modelo, sino también marcar entidades como "obsoletas". Una característica puede hacer transformaciones muy profundas al modelo al cual se aplica.
Regeneración de característica 20 Como se describió arriba, el proceso de regeneración crea una
WSA en base a las características especificadas en una plantilla. El servicio web de regeneración de característica opera en la lista de características y en el modelo de tiempo de ejecución. La regeneración completa incluye reconstruir el modelo de tiempo de ejecución desde el principio, mientras que la regeneración parcial incluye transformar el modelo de tiempo de ejecución a favor de solo algunas de las características. Por ejemplo, una o más modalidades de la invención pueden proveer el uso de algunas características en una situación y otras serie de características en otra situación (en donde ambas series de características están presentes en la misma plantilla). Cuando el servicio de regeneración ejecuta un servicio de característica, transfiere el modelo de tiempo de ejecución al servicio, de tal manera que puede hacer referencias a entidades en el modelo de tiempo de ejecución. Cada servicio de característica tiene la capacidad de añadir entidades. Una o más modalidades proveen un modelo de tiempo de ejecución para abarcar un solo documento XML. En otras modalidades, los servicios de característica construyen entidades en un modelo de tiempo de ejecución que abarca toda una colección de documentos XML. En una o más modalidades, el servicio de regeneración no mantiene una copia del modelo de tiempo de ejecución viejo mientras está construyendo el nuevo modelo. Sin embargo, en otras modalidades, el modelo de tiempo de ejecución viejo es almacenado para que si fallara el proceso de regeneración, el servicio de regeneración pueda retornar al modelo de tiempo de ejecución original. Además, una copia de respaldo del modelo de tiempo de ejecución puede habilitar la capacidad de comparar un modelo viejo con el nuevo conforme es regenerado.
En una o más modalidades, el servicio de regeneración mantiene una lista de "direcciones de despacho" de entidades XML que son eliminadas del modelo de tiempo de ejecución durante la regeneración actual, comparada con la regeneración pasada. Si un servicio de característica regenera y produce diferentes entidades que las generadas en el tiempo anterior, entonces el mapeo de las entidades viejas a las entidades nuevas, es agregado a una lista de direcciones de despacho. Los servicios de característica subsecuentes que podrían referir a las entidades eliminadas pueden ser "rescatados" por el servicio de regeneración, el cual puede usar la lista de direcciones de despacho para "dirigir" las referencias a las entidades nuevas. Una o más modalidades de la invención mantienen un mapeo de la característica que produjo cada entidad. Esto permite que varios servicios web sean más eficientes en su comunicación con el modelo de tiempo de ejecución. Por ejemplo, cuando un usuario quiere editar una característica en la mitad de la lista de características, el sistema puede encontrar inmediatamente todas las entidades que fueron producidas por características después de la característica editada. El sistema utiliza esta información para impedir que el usuario seleccione una entidad para fines de referencia en una característica que fue creada después de ella. Al impedir que ocurra esta referencia, el sistema evita fallas de regeneración innecesaria causadas por una característica que no es capaz de referir una entidad por que no ha sido creada todavía en el proceso de regeneración de característica.
Característica de tabla Una o más modalidades de la invención proveen la utilización de una variedad de características. Por ejemplo, de acuerdo con una o más modalidades, se puede utilizar una característica de tabla. La característica de tabla crea una tabla para desplegar datos
XML en una página. Dicha característica puede permitir al usuario enlazar la tabla con una entidad solicitada en la página. Esta entidad puede ser una marca vacía, o una tabla que define el formateo gráfico. En una o más modalidades, la característica de tabla utiliza una o más de las siguientes entradas: qué página, qué placeholder (marca solicitada en la página), y qué parámetro de XML desplegar. La característica construye una tabla en la página que despliega los datos XML en formato de fila, con un encabezado de rótulos para los nombres de las columnas. Cuando el usuario activa una acción "page" en esta página, los datos de la tabla serán desplegados en la tabla, de acuerdo con cualquier formateo que se haya definido en los contenidos de la marca solicitada (es decir, formateo de marcas <TD> y <TR>).
Característica de columna activa En una o más modalidades puede ser utilizada una característica denominada "característica de columna activa". La característica de columna activa transforma una columna de presentación estática (por ejemplo, producida por una característica de tabla) en una columna activa. De esta manera, el contenido de celda de la columna está bajo el control de la WSA.
La columna puede contener un botón que dispara una acción, o puede desplegar un enlace, una caja de verificación o un campo de texto, etc. El usuario especifica el control y la reacción. Por ejemplo, el usuario puede poner un botón en la columna y tener la acción de clic para activar una llamada para una función que da acceso a valores específicos de fila de la tabla, para hacer una llamada de servicio. En una o más modalidades, la característica de columna activa utiliza una o más de las siguientes entradas: qué tabla, qué nombre de columna (puede ser una nueva especificando una posición), qué entidad de columna (botón, enlace accesible por clic, oculto, caja de verificación, campo de texto etc.). La característica de columna activa transforma una columna estática en una columna controlada parametrizada. La característica puede poner un control en la columna y mapear el contenido original en alguna propiedad del control, como su nombre. La característica también construye la reacción en la columna, tal como definir la reacción de clic de un botón.
Característica de control de visibilidad/restricción de Ul Una o más modalidades proveen una característica de control de visibilidad (también referida como una característica de restricción de Ul). La característica de restricción de Ul construye una o más llamadas de servicio a un servicio web que utiliza una máquina de inferencia en un servidor. La máquina de inferencia mantiene una serie de patrones y maneja el proceso de verificar si el usuario ha hecho o no algo en la Ul para disparar una actualización para la Ul. Muchas características en una categoría de reacción serían usuarias de una máquina de inferencia. Una variedad de combinación de cambios de estado en el modelo puede ser enlazada a acciones que afectan todo, desde la visibilidad de los controles de Ul hasta la llamada de funciones. Las características que generan llamadas al servicio web basado en máquina de inferencia, toman la entrada del usuario y, como parte de la regeneración, construyen parámetros de entrada de definición de regla, que son transferidos al servicio de máquina de inferencia en carga de tiempo de ejecución de modelo. Estas características también agregan reacciones al modelo en forma de acciones de actualización ligadas a eventos. Las acciones informan a la máquina de inferencia de cambios importantes en el estado del modelo. El servicio de máquina de inferencia puede responder cambiando el estado del modelo y llamando a varias acciones. Por ejemplo, suponiendo que un usuario ha creado un control de lista desplegable permitiéndole seleccionar uno o más de los 50 estados.
Suponiendo además que el usuario ha construido un control de caja de verificación con las opciones Yes/No, y el rótulo: ¿Alguno de sus operadores es mexicano?. Enseguida, el usuario construye una característica de restricción de Ul. La característica pregunta al usuario sobre la naturaleza de la restricción. El usuario indica que cuando State = CA, o TX, debe estar visible la caja de verificación Mexican Driver Question [pregunta de operador mexicano], de otra manera no. Esta característica se encarga del resto, construyendo las entidades apropiadas en el modelo de tiempo de ejecución. La característica construye una llamada al servicio de "máquina de inferencia de carga" y agrega la acción a la función Onload [en carga]. La característica escribe la sintaxis de una nueva regla (State = CA, TX ->checkbox visible, otherwise opposite), y la anexa a la entrada a este servicio. Enseguida, la característica enlaza una llamada al servicio de "máquina de inferencia de actualización" con el evento "On Valué Change" en el Estado Desplegado. Ahora, cuando el usuario cambia el valor de estado y tabula el control, el navegador informará al servicio de máquina de inferencia del cambio, de tal manera que la máquina de inferencia puede hacer cualquier cambio en la condición de visibilidad de la caja de verificación, y realizar una acción de página. Consecuentemente, la máquina de inferencia sabría el valor de State (por ejemplo, cuando el estado ha sido cambiado de California o Texas a Minnesota). y sabría que no debe desplegar la pregunta sobre México. La característica de restricción de Ul puede proveer control sobre la visibilidad de controles individuales, controles múltiples o cosas como marcas DIV, que controlan racimos de controles. Además, esta característica puede proveer control sobre escalas de valores permisibles y listas de valores.
Característica de transformación XML Una o más modalidades de la invención proveen un servicio versátil que realiza una transformación de un objeto de datos marcados de XML, usando otro objeto de datos marcados que contiene un bloque de instrucciones XSL. El servicio envía un objeto de datos marcados transformados que representan los datos transformados. El servicio cubrirá una máquina estándar de procesamiento de XML y XSL tal como la de IBM denominada LotusXSL. Además, una o más modalidades construyen varias características que en general toman entradas del usuario, incluyendo referencias a parámetros de objeto de datos marcados, y escribe bloques de XSL, y escribe llamadas al servicio procesador de XSL. Como un ejemplo, una característica de filtración de columna podría pedir al usuario seleccionar una serie de resultados, y después pediría al usuario seleccionar una serie de columnas para filtrar (incluir) de la representación estructural (esquema) de la serie de resultados. Este servicio de característica escribe una llamada de servicio al servicio procesador de XSL, escribe un bloque de datos XSL en forma de un parámetro, como las instrucciones para la transformación, y escribe una función que asigna los datos XML como entrada y el parámetro XSL como la lógica de transformación y llama el servicio.
En regeneración, dicho servicio de característica construye dinámicamente el bloque XSL que es ejecutado en tiempo de ejecución cuando es solicitado el servicio de transformación de XML. Este servicio procesador de XSL tiene la capacidad de servir como el caballo de trabajo para varias característica que escriben bloques de XSL, hacer asignaciones y llaman a esta acción de servicio. En una o más modalidades, el servicio puede ser usado por características que sean deseadas para combinar dos objetos diferentes de datos marcados. Dicha característica podría "concatenar" dos objetos de datos marcados en un solo objeto XML de entrada, y entonces dejar que la lógica de XSL realice la combinación (empalme interno) de los datos.
Plantilla de muestra De acuerdo con la descripción de arriba, una o más modalidades de la invención pueden proveer un sistema de catálogo de teléfonos celulares. Un sistema de catálogo de teléfonos celulares puede ser útil para presentar los teléfonos disponibles de un cierto fabricante, haciendo clic en uno de los teléfonos presentados, suministrando información detallada sobre el teléfono seleccionado. Por ejemplo, se puede mostrar a un usuario la presentación 700 de la figura 7A. Seleccionando uno de los botones 702 "Details", se puede mostrar al usuario una descripción detalla del teléfono en la fila correspondiente como presentación 704 de la figura 7B. Una o más modalidades de la invención proveen la capacidad de construir la funcionalidad y desplegar los resultados ilustrados en las figuras 7A y 7B. Para fines ilustrativos, la siguiente descripción supone que parte de la plantilla "cellcatalog" (la plantilla utilizado de acuerdo con una o más modalidades de la invención) ya ha sido creada. Por ejemplo, se supone que la plantilla ya tiene un número de llamadas de servicio y características de control de Ul que presentan un catálogo de teléfonos celulares XML en una tabla sobre una página de entrada. La funcionalidad básica provista en la plantilla incluye la capacidad de abrir una fuente de datos XML de teléfono celular, y transformar la fuente de datos en un catálogo usando un servicio de transformación de XML. Además, la funcionalidad incluye la capacidad de extraer la lista de nombres comerciales de teléfonos celulares de los datos XML, y presentar la información en la lista desplegable 710 de tal manera que el usuario puede seleccionar una marca y filtrar el catálogo de teléfonos celulares por marca. De esta manera, la plantilla existente provee la presentación de una página HTML estática (con la capacidad de seleccionar y desplegar una marca específica de teléfonos celulares), sin una columna de información de producto que contiene los botones 702 Details. El objetivo de la modalidad descrita es agregar una columna activa de botones a la tabla que hace que el sistema llame un servicio de especificación de producto (por ejemplo, obtener la presentación 704 de descripción detallada del producto). Este servicio ha sido publicado en el directorio de servicios web. El servicio retorna especificaciones detalladas de producto para un producto identificado por la fila seleccionada en la tabla. Cuando un usuario oprime un botón 702 Details en una fila de la tabla, la WSA llama el servicio y pasa información específica de la fila a la llamada de servicio, y después presenta los datos 704 de salida en una página separada. De acuerdo con una o más modalidades, para editar una plantilla existente, la plantilla se abre usando una aplicación de autor de plantilla. La figura 8 ilustra la selección de la plantilla 800 cellcatalog de la pantalla 802 "Open a Témplate" de la aplicación de autor de plantilla. La figura 9 ilustra la plantilla 800 cellcatalog abierta. La presentación 700 ilustra la vista actual de la salida de la plantilla. La presentación 900 ilustra la lista actual de características en la plantilla 800 cellcatalog.
Características preexistentes Las características preexistentes (desplegadas en la presentación 900) de la plantilla 800 pueden ser construidas de acuerdo con una o más modalidades de la invención. La primera característica preexistente es una llamada de servicio a un servicio "Get User Profile". Este servicio provee varias entidades XML en sus salidas de servicio que pueden ser referidas por otras características en la plantilla. Este incluye información acerca del nombre del usuario: dsml:givenname, membership: MemberList/dsmkdn; dirección de correo, etc...
La segunda característica preexistente es una función que define la funcionalidad Onload cuando se ejecuta el modelo de tiempo de ejecución.
La característica define una secuencia de acciones de llamada de servicio y ) una acción de página al final que genera la página inicial. Otras
5 características en la plantilla son responsables de crear las acciones de llamada de servicio a que hace referencia esta característica. La secuencia es: Get User Profile, Load Transform, Load Catalog, Transform Catalog, selectBrands, selectphones, y realiza la acción de página cellphonedata, que es la página de inicio. 10 La tercera y cuarta características preexistentes son ambas llamadas de servicio a un servicio "XML File Reader". La tercera característica preexistente carga un catálogo XML de un archivo XML, mientras que la cuarta característica preexistente carga un documento XSL. La quinta característica preexistente es una llamada de servicio a 15 un servicio "XSL Transform". La característica asigna el catálogo XML y salidas de servicio de documento XSL de la tercera y cuarta características, como las entradas a esta llamada de servicio. Este servicio construye un nuevo documento XML que contiene datos específicos extraídos del catálogo de entrada. Algunos de los datos son transformados de atributos a entidades 20 y viceversa. La sexta característica preexistente es una Imported Page. Esta característica toma el nombre de un URL como entrada y construye una entidad Page en el modelo de tiempo de ejecución que contiene el contenido HTML importado. Este contenido de página es importado en tiempo de regeneración y se pone disponible para otras características para fines de referencia. fH) La séptima característica preexistente es una Table. Esta
5 característica toma una referencia a una entidad solicitada en la página importada y construye una tabla HTML. Además, la característica asigna la salida del servicio de otro servicio en el modelo de tiempo de ejecución, al cuerpo de la tabla. Lo que sucede es que el servicio XSL Transform extrae datos y los presenta en un formato de tabla, y después otro servicio filtra los
A, 10 datos de la tabla. La salida de esta llamada de servicio (característica 11 ) es lo que se coloca en la tabla. Como resultado, los datos del catálogo de teléfonos celulares, extraídos y transformados, son desplegados en la página importada. La octava característica preexistente es un Parameter que
15 contiene una lista fija de entidades que representan los encabezados de la tabla. Esta información puede ser creada automáticamente por una característica diferente que sirve como una alternativa más poderosa a la característica de llamada de servicio para el servicio XSL Transform. Dicha característica es referida como una característica de extracción de datos.
20 Esta característica no solo construiría una llamada de servicio al servicio XSL Transform, sino también escribiría los datos XSL y el esquema del parámetro de salida del servicio. Dicha característica será capaz de realizar estas acciones porque está escribiendo el XSL, así que sabe cual será la estructura de los datos de salida de XML del servicio. En este caso, la estructura de los datos de salida son los nombres de encabezado de la tabla que son codificados manualmente en la característica de parámetro. QP La novena y décima características preexistentes son controles
5 de Ul que construyen entidades en la página importada. Específicamente son el botón "Show Phones" y el rótulo "Select Manufacturer". La undécima característica preexistente es una llamada Service Cali a un servicio "Filter XML Table Data". La llamada de servicio se denomina Select Phones. Este servicio filtra una tabla XML usando una lista A 10 de campo y un valor de prueba. La característica asigna la salida del servicio XML Transform como entrada al servicio de filtro. Además, la característica asigna el valor de control de selección filterfield (característica 14) como el valor de prueba usado para encontrar teléfonos celulares de una marca específica. 15 La duodécima característica preexistente es una Function que llama la acción de seleccionar teléfonos (característica 11 ) y la acción de página de datos de teléfono celular (característica 6). El intento de esta función es agrupar las dos acciones de tal manera que puedan ser llamadas en secuencia cuando un usuario oprima el botón Show Phones. 20 La decimotercera característica preexistente es un bloque Fixed
Text que obtiene su valor de la salida de servicio dsml:cn generada por el servicio Get User Profile Data. Dependiendo del perfil del usuario, este campo de texto se actualiza para mostrar el nombre del usuario.
La decimocuarta característica preexistente es un Selection
Control. Esta característica construye un control en la página importada que despliega la lista de marcas de teléfono que son extraídas del catálogo de teléfonos XML. El artículo seleccionado en esta lista es usado por la llamada de servicio Select Phones (característica 11 ). La decimoquinta y decimosexta características preexistentes son una Service Cali y un Parameter, respectivamente. La llamada de servicio es al servicio XSL Transform. Esta característica asigna el catálogo de teléfono XML como entrada, junto con un bloque de XSL suministrado en el parámetro showBrands. La llamada de servicio genera la lista de marcas de teléfono en su salida de servicio. Estos datos de salida son referidos por el control de selección filterfield para presentar al usuario una lista de teléfonos para filtrar.
Características nuevas Para habilitar la columna de botones y la presentación resultante de la selección de uno de los botones 702 Detail, una o más modalidades de la invención proveen la creación/selección de varias características a través de varios pasos. 1. Haciendo referencia a la figura 8, el primer paso, como se describió arriba, es abrir la plantilla 800 cellcatalog en la aplicación de autor de plantilla. En la aplicación de autor de plantilla, se presenta al usuario una serie de plantillas 804 que son almacenadas en el directorio LDAP, así como también las plantillas 806 son almacenadas en archivos (.tpl).
2. Haciendo referencia a la figura 9, al seleccionar el botón 902 de vista previa, el modelo de tiempo de ejecución regenerado es desplegado en la presentación 700. El modelo de tiempo de ejecución regenerado desplegado en la figura 9 ilustra lo que será desplegado por la WSA resultante en ejecución. Observar que el usuario puede seleccionar una marca de teléfono de la lista desplegable 710 y oprimir el botón 708 Show Phones en el panel de Preview para filtrar la lista de teléfonos. 3. El siguiente paso es agregar una característica Active Column como la primera columna de la tabla por lo demás estática. En una o más modalidades, la característica de columna activa es creada seleccionando Active Column de una paleta de característica. La figura 10 ilustra la plantilla 1000 de Ul de característica Active Column una vez que es abierta. El usuario especifica entonces valores para varios arreglos. Por ejemplo, como se ilustra en la presentación 1000, el arreglo puede incluir lo siguiente: la columna va a tablel en el arreglo 1002 de nombre de tabla; la posición de la columna es identificada como columna 1 en el arreglo 1004 de posición de presentación de columna; el tipo de control (botón, caja de verificación, etc.) es puesto como un botón en el arreglo 1006; la acción al oprimir el botón es "OnLoad" en el arreglo 1008; y el nombre del botón "Details" en el arreglo 1010. 4. Después de completar la característica Active Column, los resultados pueden ser vistos previamente seleccionando el botón 902 de vista previa. La figura 7A ilustra la presentación resultante que incluye la nueva columna 712. Sin embargo, la selección (por opresión) del botón Details no hace nada todavía, aparte de ejecutar nuevamente la acción Onioad. Hay que observar como aparece la nueva característica 714 en la lista de características. 5. El siguiente paso es crear una característica Service Cali para un servicio en el directorio de servicios web denominado getProductSpecification, como se ilustra en la figura 11. Observar que el servicio getProductSpecification es un servicio basado en plantilla. La llamada de servicio es designada con un nombre local que tiene significado en el contexto del modelo de tiempo de ejecución actual. La figura 12 ilustra la siguiente página de la plantilla de Ul de característica para especificar las entradas del servicio. En este punto, la característica busca el esquema de entrada de servicio y construye una forma semejante a Ul para especificar ya sea valores constantes o referencias a las salidas y parámetros de servicio en el modelo de tiempo de ejecución. 6. En la página 1200 de especificaciones de entrada On service se pide al usuario que suministre dos valores de cadena para este servicio. Uno es una marca 1202 de teléfono, el otro es un nombre 1204 de modelo de teléfono. El usuario puede especificar valores constantes, pero en lugar de especificar constantes, las entradas pueden ser obtenidas haciendo referencia a los valores de datos de marca y modelo en la fila actual de la tabla. El usuario puede seleccionar estas referencias porque la característica de tabla provee acceso a estas entidades a las que se puede hacer referencia. El uso de este mecanismo de referencia significa que dependiendo de la fila seleccionada en la tabla, los valores específicos de la fila son alimentados a la llamada de servicio. 7. Después de crear el Service Cali para obtener datos de
• especificación de producto, se requiere una característica de página
5 importada que pueda desplegar los resultados. La figura 13 ilustra la creación de una característica de página importada en donde el usuario suministra URL 1300 a una página HTML que contiene información de formateo y color de fondo, etc. El usuario también puede determinar (colocando una marca en la caja de verificación 1302) si el sistema volverá a importar el contenido de la á i 10 página por regeneración para incorporar cualquier cambio que pudiera haberse hecho al archivo HTML. 8. El siguiente paso es crear una característica que desplegará la salida datos XML del servicio de obtención de especificación de producto, en una página de salida de detalles de catálogo. En una o más modalidades,
15 se puede utilizar una característica Fixed XML Text. La figura 14 ilustra la Ul para la característica Fixed XML Text. Para las entradas de característica, el usuario puede seleccionar un placeholder solicitado en la página como un localizador, y especificar la salida del servicio de la llamada de servicio mostrar detalles. En una o más modalidades (incluyendo el ejemplo
20 demostrado), la salida de esta característica es un bloque de datos XML que está formateado de acuerdo con HTML. 9. La página detalles de catálogo necesita un botón que regrese al usuario a la página de datos de teléfono celular. Por lo tanto, se agrega una característica de función que llama esta acción de página y después enlaza la acción de función a una característica de botón, o por simplicidad a expensas del rendimiento, puede ser usada una llamada simple a la acción Onioad cuando el botón es oprimido. La figura 15 ilustra la Ul para una característica Button, denominada "Go Back", que está pegada al placeholder al que se llamó nuevamente en la página de detalles de catálogo. 10. La figura 16 ilustra la Ul para el siguiente paso de adición de una característica Function denominada Show Details. Esta función agrupa la llamada en la llamada de servicio mostrar detalles, con la llamada a la acción de página detalles de catálogo. 11. Después, la característica Active Column debe ser modificada para cambiar la Function seleccionada de OnLoad a Show Details como se ¡lustra en la figura 17. 12. Esto completa la parte de creación de característica del ejemplo. El comando 902 de vista previa puede ser seleccionado para ver la aplicación. Cuando se oprime uno de los botones Details, la salida es la página 704 de especificación de producto que contiene datos relevantes para la fila seleccionada en la tabla de datos. De esta manera, se describe un método y un aparato para crear servicios de red, en conjunto con una o más modalidades específicas. La invención esta definida por las reivindicaciones y el alcance completo de sus equivalentes
Claims (1)
- NOVEDAD DE LA INVENCION REIVINDICACIONES 1.- Un sistema para crear un modelo XML caracterizado porque comprende: un modelo de XML; una plantilla configurada para generar dicho modelo XML, dicha plantilla está comprendida de una o más características; y una o más de dichas características están configuradas para generar una entidad en dicho modelo XML. 2.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque una o más de dichas características están configuradas para modificar una entidad en dicho modelo XML. 3.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque dicho modelo XML es un modelo de tiempo de ejecución. 4.- El sistema de conformidad con la reivindicación 3, caracterizado además porque dicho modelo de tiempo de ejecución puede ser utilizado para construir un servicio de red. 5.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque dicha plantilla está en XML. 6.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque dicha plantilla es un modelo de tiempo de ejecución. 1.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque una o más de dichas características utilizan un modelo de tiempo de ejecución como entrada. 8.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque una o más de dichas características están configuradas para obtener entrada de un usuario. 9 - El sistema de conformidad con la reivindicación 1 , caracterizado además porque cada una de dichas características (una o más) es ejecutada en un orden en el cual están enumeradas dichas características en una lista de características. 10.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque una entrada a una característica es una referencia a una entidad de dicho modelo de tiempo de ejecución. 11.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque una o más de dichas características están comprendidas de un servicio de característica y una interfaz de usuario de característica. 12.- El sistema de conformidad con la reivindicación 1 , caracterizado además porque dicho modelo XML representa mensajes basados en XML. 13.- Un método para crear un modelo XML caracterizado porque comprende: obtener una petición de un servicio basado en plantilla; obtener una plantilla comprendida de una o más características; y ejecutar una o más de dichas características para crear un modelo XML. 14.- El método de conformidad con la reivindicación 13, caracterizado además porque dicho modelo XML está comprendido de una o 5 más entidades, y dichas entidades (una o más) son creadas por una o más de dichas características. 15.- El método de conformidad con la reivindicación 13, caracterizado además porque una o más de dichas características están configuradas para modificar una entidad en dicho modelo XML. 0 16.- El método de conformidad con la reivindicación 13, caracterizado además porque dicha plantilla es un modelo de tiempo de ejecución y dicho paso de obtención de una plantilla comprende cargar una plantilla y generar una aplicación que contiene una o más características que utilizan dicha plantilla. 5 17.- El método de conformidad con la reivindicación 16, caracterizado además porque dicho modelo XML es un modelo de tiempo de ejecución, dicho método comprende además cargar dicho modelo XML y generar un servicio de red que utiliza dicho modelo XML. 18. El método de conformidad con la reivindicación 13, o caracterizado además porque comprende adicionalmente dichas características (una o más) que utilizan un modelo de tiempo de ejecución como entrada. 19.- El método de conformidad con la reivindicación 13, caracterizado además porque comprende adicionalmente dichas características (una o más) que obtienen entrada de un usuario. 20 - El método de conformidad con la reivindicación 13, caracterizado además porque cada una de dichas características (una o más) son ejecutadas en un orden en el cual están enumeradas dichas características en una lista de características. 21.- El método de conformidad con la reivindicación 13, caracterizado además porque comprende adicionalmente dichas características (una o más) que utilizan una referencia a una entidad en un modelo de tiempo de ejecución como entrada. 22.- El método de conformidad con la reivindicación 13, caracterizado además porque comprende adicionalmente una o más de dichas características que utilizan un servicio de característica y una interfaz de usuario de característica durante la ejecución. 23. El método de conformidad con la reivindicación 13, caracterizado además porque dicho modelo XML representa mensajes basados en XML. 24.- El método de conformidad con la reivindicación 13, caracterizado además porque comprende adicionalmente: la creación de un usuario de una característica nueva en un autor de plantilla; el suministro de un usuario de valores de entrada de característica a una interfaz de usuario; la creación de una plantilla de interfaz de usuario de un bloque de características que utiliza dichos valores de entrada de característica y la característica nueva.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/329,677 US6560633B1 (en) | 1999-06-10 | 1999-06-10 | Method for creating network services by transforming an XML runtime model in response to an iterative input process |
PCT/US2000/040186 WO2000077654A1 (en) | 1999-06-10 | 2000-06-09 | Method and apparatus for creating services |
Publications (1)
Publication Number | Publication Date |
---|---|
MXPA01012818A true MXPA01012818A (es) | 2003-06-24 |
Family
ID=23286519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MXPA01012818A MXPA01012818A (es) | 1999-06-10 | 2000-06-09 | Metodo y aparato para crear servicios de red. |
Country Status (7)
Country | Link |
---|---|
US (3) | US6560633B1 (es) |
EP (1) | EP1185938A4 (es) |
JP (1) | JP2004500619A (es) |
AU (1) | AU775814B2 (es) |
CA (1) | CA2376794A1 (es) |
MX (1) | MXPA01012818A (es) |
WO (1) | WO2000077654A1 (es) |
Families Citing this family (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2364468A1 (en) * | 1999-03-06 | 2000-09-14 | Coppercom, Inc. | System and method for administrating call and call feature set-up in a telecommunications network |
US6792605B1 (en) * | 1999-06-10 | 2004-09-14 | Bow Street Software, Inc. | Method and apparatus for providing web based services using an XML Runtime model to store state session data |
US6560633B1 (en) * | 1999-06-10 | 2003-05-06 | Bow Street Software, Inc. | Method for creating network services by transforming an XML runtime model in response to an iterative input process |
US6910068B2 (en) * | 1999-06-11 | 2005-06-21 | Microsoft Corporation | XML-based template language for devices and services |
US6892230B1 (en) * | 1999-06-11 | 2005-05-10 | Microsoft Corporation | Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages |
US7200809B1 (en) * | 1999-08-04 | 2007-04-03 | Oracle International Corporation | Multi-device support for mobile applications using XML |
US6907564B1 (en) * | 1999-08-30 | 2005-06-14 | International Business Machines Corporation | Representing IMS messages as XML documents |
US7266766B1 (en) * | 1999-09-30 | 2007-09-04 | International Business Machines Corporation | Method for developing a custom tagbean |
US6981212B1 (en) * | 1999-09-30 | 2005-12-27 | International Business Machines Corporation | Extensible markup language (XML) server pages having custom document object model (DOM) tags |
US6732330B1 (en) * | 1999-09-30 | 2004-05-04 | International Business Machines Corporation | Scripting language blocks to support multiple scripting languages in a single web page |
US6981211B1 (en) * | 1999-09-30 | 2005-12-27 | International Business Machines Corporation | Method for processing a document object model (DOM) tree using a tagbean |
US6961849B1 (en) * | 1999-10-21 | 2005-11-01 | International Business Machines Corporation | Selective data encryption using style sheet processing for decryption by a group clerk |
US6941459B1 (en) * | 1999-10-21 | 2005-09-06 | International Business Machines Corporation | Selective data encryption using style sheet processing for decryption by a key recovery agent |
US6978367B1 (en) * | 1999-10-21 | 2005-12-20 | International Business Machines Corporation | Selective data encryption using style sheet processing for decryption by a client proxy |
CA2389375C (en) * | 1999-11-01 | 2005-12-20 | Lockheed Martin Corporation | System and method for the storage and access of electronic data in a web-based computer system |
US6898790B1 (en) * | 1999-12-06 | 2005-05-24 | International Business Machines Corporation | Mapping actions to tasks within customer service processing systems |
US20020032706A1 (en) * | 1999-12-23 | 2002-03-14 | Jesse Perla | Method and system for building internet-based applications |
US20020035645A1 (en) * | 1999-12-30 | 2002-03-21 | Tuatini Jeffrey T. | Application Architecture |
US20010044813A1 (en) * | 2000-01-10 | 2001-11-22 | Frank Kenneth B. | Document production platform |
US7072896B2 (en) * | 2000-02-16 | 2006-07-04 | Verizon Laboratories Inc. | System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor |
US6980533B1 (en) * | 2000-04-19 | 2005-12-27 | Lucent Technologies Inc. | Load balancing technique for a wireless internet access system |
US6970869B1 (en) * | 2000-05-09 | 2005-11-29 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities |
US8082491B1 (en) * | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US7577834B1 (en) * | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
US6789077B1 (en) * | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment |
US6973493B1 (en) * | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
US6868447B1 (en) * | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
US7072967B1 (en) * | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
US7080078B1 (en) * | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US7716492B1 (en) | 2000-05-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials |
US6862594B1 (en) * | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US7013329B1 (en) | 2000-08-04 | 2006-03-14 | Oracle International Corporation | Techniques for programming event-driven transactions in mobile applications |
US7188183B1 (en) * | 2000-08-04 | 2007-03-06 | Oracle International Corporation | Maintaining state information in mobile applications |
US8600783B2 (en) | 2000-08-18 | 2013-12-03 | The Crawford Group, Inc. | Business to business computer system for communicating and processing rental car reservations using web services |
US7000223B1 (en) | 2000-09-08 | 2006-02-14 | Corel Corporation | Method and apparatus for preparing a definition to control automated data processing |
US6925593B1 (en) | 2000-09-08 | 2005-08-02 | Corel Corporation | Method and apparatus for transferring data during automated data processing |
US6944865B1 (en) * | 2000-09-08 | 2005-09-13 | Corel Corporation | Method and apparatus for saving a definition for automated data processing |
US7296238B1 (en) | 2000-09-08 | 2007-11-13 | Corel Corporation | Method and apparatus for triggering automated processing of data |
US7747673B1 (en) | 2000-09-08 | 2010-06-29 | Corel Corporation | Method and apparatus for communicating during automated data processing |
US6868193B1 (en) | 2000-09-08 | 2005-03-15 | Corel Inc. | Method and apparatus for varying automated data processing |
US6850956B1 (en) | 2000-09-08 | 2005-02-01 | Corel Inc. | Method and apparatus for obtaining and storing data during automated data processing |
US7853833B1 (en) | 2000-09-08 | 2010-12-14 | Corel Corporation | Method and apparatus for enhancing reliability of automated data processing |
US6938030B1 (en) | 2000-09-08 | 2005-08-30 | Corel Corporation | Method and apparatus for facilitating accurate automated processing of data |
US6961922B1 (en) | 2000-09-08 | 2005-11-01 | Corel Corporation | Method and apparatus for defining operations to be performed during automated data processing |
US6938087B1 (en) * | 2000-09-12 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Distributed universal communication module for facilitating delivery of network services to one or more devices communicating over multiple transport facilities |
US6718336B1 (en) * | 2000-09-29 | 2004-04-06 | Battelle Memorial Institute | Data import system for data analysis system |
US7596564B1 (en) * | 2000-09-29 | 2009-09-29 | Vignette Corporation | Method and system for cache management of a cache including dynamically-generated content |
US7321901B1 (en) * | 2000-09-29 | 2008-01-22 | Microsoft Corporation | Application service provider model for manufacturers product specification data |
US7260536B1 (en) | 2000-10-06 | 2007-08-21 | Hewlett-Packard Development Company, L.P. | Distributed voice and wireless interface modules for exposing messaging/collaboration data to voice and wireless devices |
US7043687B2 (en) * | 2000-12-27 | 2006-05-09 | G. E. Information Services, Inc. | Document/message management |
US20020129059A1 (en) * | 2000-12-29 | 2002-09-12 | Eck Jeffery R. | XML auto map generator |
US20020091733A1 (en) * | 2001-01-05 | 2002-07-11 | Chen Tong S. | System and method for dynamically generating tables of web pages |
EP1227639A3 (en) * | 2001-01-30 | 2003-10-29 | AT&T Corp. | Network service for adaptive mobile applications |
US7107336B2 (en) * | 2001-02-23 | 2006-09-12 | International Business Machines Corporation | Method and apparatus for enhanced server page execution |
US7240125B2 (en) * | 2001-03-06 | 2007-07-03 | International Business Machines Corporation | Apparatus and method for using a directory service for a user registry |
US7216095B2 (en) * | 2001-03-13 | 2007-05-08 | Sony Corporation | Method and system for distributing product information |
FI113302B (fi) * | 2001-05-25 | 2004-03-31 | Metso Automation Oy | Tilannekuvien käyttäminen teollisuusautomaatioprosessin ohjausjärjestelmässä |
US20020188703A1 (en) * | 2001-06-04 | 2002-12-12 | Mckesson Information Solutions Holdings Ltd. | Graphical tool for developing computer programs via specifications |
KR20040020933A (ko) * | 2001-06-22 | 2004-03-09 | 노사 오모이구이 | 지식 검색, 관리, 전달 및 프리젠테이션을 위한 시스템 및방법 |
US6785685B2 (en) * | 2001-08-22 | 2004-08-31 | International Business Machines Corporation | Approach for transforming XML document to and from data objects in an object oriented framework for content management applications |
US7343428B2 (en) * | 2001-09-19 | 2008-03-11 | International Business Machines Corporation | Dynamic, real-time integration of software resources through services of a content framework |
US6985939B2 (en) * | 2001-09-19 | 2006-01-10 | International Business Machines Corporation | Building distributed software services as aggregations of other services |
US7035944B2 (en) * | 2001-09-19 | 2006-04-25 | International Business Machines Corporation | Programmatic management of software resources in a content framework environment |
US8924408B2 (en) * | 2001-09-28 | 2014-12-30 | International Business Machines Corporation | Automatic generation of database invocation mechanism for external web services |
US8914807B2 (en) * | 2001-09-28 | 2014-12-16 | International Business Machines Corporation | Method, system, and program for generating a program capable of invoking a flow of operations |
US7313617B2 (en) * | 2001-09-28 | 2007-12-25 | Dale Malik | Methods and systems for a communications and information resource manager |
US8166006B2 (en) * | 2001-09-28 | 2012-04-24 | International Business Machines Corporation | Invocation of web services from a database |
US7472187B2 (en) * | 2001-09-28 | 2008-12-30 | At&T Intellectual Property I, L.P. | Communications and information resource manager |
US20030093465A1 (en) * | 2001-10-31 | 2003-05-15 | International Business Machines Corporation | Management strategies for internationalization in a distributed computer environment |
US7254614B2 (en) * | 2001-11-20 | 2007-08-07 | Nokia Corporation | Web services push gateway |
AU2002347415A1 (en) | 2001-11-20 | 2003-06-10 | Nokia Corporation | Network services broker system and method |
CA2468573A1 (en) * | 2001-11-28 | 2003-06-05 | Bow Street Software, Inc. | Method and apparatus for creating software objects |
US7251674B2 (en) * | 2002-01-08 | 2007-07-31 | International Business Machines Corporation | Internationalization of the web services infrastructure |
US20030131144A1 (en) * | 2002-01-10 | 2003-07-10 | Ncr Corporation | Data wedge |
US7603469B2 (en) * | 2002-01-15 | 2009-10-13 | International Business Machines Corporation | Provisioning aggregated services in a distributed computing environment |
US20030139917A1 (en) * | 2002-01-18 | 2003-07-24 | Microsoft Corporation | Late binding of resource allocation in a performance simulation infrastructure |
US20030145280A1 (en) * | 2002-01-25 | 2003-07-31 | James Grey | Test executive system having XML reporting capabilities |
US20030145252A1 (en) * | 2002-01-25 | 2003-07-31 | James Grey | Test executive system having XML object representation capabilities |
US7058890B2 (en) * | 2002-02-13 | 2006-06-06 | Siebel Systems, Inc. | Method and system for enabling connectivity to a data system |
US6845380B2 (en) * | 2002-03-04 | 2005-01-18 | Hewlett-Packard Development Company, L.P. | Method and system of valuing transformation between extensible markup language (XML) documents |
US20040015564A1 (en) * | 2002-03-07 | 2004-01-22 | Williams Scott Lane | Method of developing a web service and marketing products or services used in developing a web service |
RU2004135317A (ru) | 2002-05-03 | 2005-08-10 | Коко Коммьюникейшнз Корп. (Us) | Способ и устройство, обеспечивающие постоянное соединение с устройством путем использования множества физических сетевых соединений и передачи соединения между множеством полос, режимов и сетей |
CA2390348A1 (en) * | 2002-06-10 | 2003-12-10 | Ibm Canada Limited-Ibm Canada Limitee | Systems, methods and computer programs for implementing and accessing webservices |
US7149747B1 (en) * | 2002-06-27 | 2006-12-12 | Siebel Systems, Inc. | Dynamic generation of user interface components |
US7650566B1 (en) | 2002-06-28 | 2010-01-19 | Microsoft Corporation | Representing list definitions and instances in a markup language document |
US7565603B1 (en) | 2002-06-28 | 2009-07-21 | Microsoft Corporation | Representing style information in a markup language document |
US7584419B1 (en) * | 2002-06-28 | 2009-09-01 | Microsoft Corporation | Representing non-structured features in a well formed document |
US7562295B1 (en) | 2002-06-28 | 2009-07-14 | Microsoft Corporation | Representing spelling and grammatical error state in an XML document |
US7607081B1 (en) | 2002-06-28 | 2009-10-20 | Microsoft Corporation | Storing document header and footer information in a markup language document |
US7533335B1 (en) | 2002-06-28 | 2009-05-12 | Microsoft Corporation | Representing fields in a markup language document |
US7523394B2 (en) * | 2002-06-28 | 2009-04-21 | Microsoft Corporation | Word-processing document stored in a single XML file that may be manipulated by applications that understand XML |
FR2843260B1 (fr) * | 2002-07-31 | 2005-04-08 | Cit Alcatel | Systeme de gestion de reseau par regles comportant un moteur d'inference |
IL166717A0 (en) * | 2002-08-26 | 2006-01-15 | Computer Ass Think Inc | Web services apparatus and methods |
US7467391B2 (en) * | 2002-10-30 | 2008-12-16 | International Business Machines Corporation | Allowing client applications to programmatically access web sites |
US20040133633A1 (en) * | 2002-12-05 | 2004-07-08 | Neopost Inc. | Method and apparatus for adaptive client communications |
US20040207659A1 (en) * | 2003-04-02 | 2004-10-21 | International Business Machines Corporation | Program creation by combining web services using graphic user interface controls |
US7530015B2 (en) * | 2003-06-25 | 2009-05-05 | Microsoft Corporation | XSD inference |
US20040268321A1 (en) * | 2003-06-27 | 2004-12-30 | Kreiner Barrett M | System and method for cross-platform computer access |
US8069435B1 (en) * | 2003-08-18 | 2011-11-29 | Oracle America, Inc. | System and method for integration of web services |
WO2005026981A1 (en) * | 2003-09-17 | 2005-03-24 | Research In Motion Limited | System and method for dynamic generation and customization of web service client applications for terminals |
WO2005060203A1 (en) * | 2003-12-10 | 2005-06-30 | International Business Machines Corporation | Method of redirecting client requests to web services |
US7694140B1 (en) | 2003-12-30 | 2010-04-06 | Sap Ag | Web service client extensions |
US7552170B2 (en) * | 2004-02-26 | 2009-06-23 | Research In Motion Limited | Apparatus and method for aggregating web services |
US7467399B2 (en) * | 2004-03-31 | 2008-12-16 | International Business Machines Corporation | Context-sensitive confidentiality within federated environments |
US7698429B1 (en) * | 2004-04-22 | 2010-04-13 | Perot Systems Corporation | System and method for customizing a core product |
US7877726B2 (en) * | 2004-07-13 | 2011-01-25 | The Mitre Corporation | Semantic system for integrating software components |
US7823123B2 (en) * | 2004-07-13 | 2010-10-26 | The Mitre Corporation | Semantic system for integrating software components |
US8631386B2 (en) * | 2004-08-25 | 2014-01-14 | Mohit Doshi | System and method for automating the development of web services |
US8615731B2 (en) * | 2004-08-25 | 2013-12-24 | Mohit Doshi | System and method for automating the development of web services that incorporate business rules |
US7584245B2 (en) * | 2004-09-29 | 2009-09-01 | Microsoft Corporation | Web service generation |
US8032540B1 (en) | 2004-10-29 | 2011-10-04 | Foundry Networks, Inc. | Description-based user interface engine for network management applications |
US20060230339A1 (en) * | 2005-04-07 | 2006-10-12 | Achanta Phani G V | System and method for high performance pre-parsed markup language |
US20060265469A1 (en) * | 2005-05-20 | 2006-11-23 | Estrade Brett D | XML based scripting framework, and methods of providing automated interactions with remote systems |
US8078671B2 (en) | 2005-09-21 | 2011-12-13 | Sap Ag | System and method for dynamic web services descriptor generation using templates |
US20070067388A1 (en) * | 2005-09-21 | 2007-03-22 | Angelov Dimitar V | System and method for configuration to web services descriptor |
US20070067384A1 (en) * | 2005-09-21 | 2007-03-22 | Angelov Dimitar V | System and method for web services configuration creation and validation |
US7673028B2 (en) | 2005-09-28 | 2010-03-02 | Sap Ag | Method and system for container-managed configuration and administration |
US7606700B2 (en) * | 2005-11-09 | 2009-10-20 | Microsoft Corporation | Adaptive task framework |
US20070106496A1 (en) * | 2005-11-09 | 2007-05-10 | Microsoft Corporation | Adaptive task framework |
US7822699B2 (en) * | 2005-11-30 | 2010-10-26 | Microsoft Corporation | Adaptive semantic reasoning engine |
US7933914B2 (en) * | 2005-12-05 | 2011-04-26 | Microsoft Corporation | Automatic task creation and execution using browser helper objects |
US7831585B2 (en) * | 2005-12-05 | 2010-11-09 | Microsoft Corporation | Employment of task framework for advertising |
US20070130134A1 (en) * | 2005-12-05 | 2007-06-07 | Microsoft Corporation | Natural-language enabling arbitrary web forms |
US7882547B2 (en) * | 2005-12-12 | 2011-02-01 | Microsoft Corporation | Securely calling web services from macros |
US8024425B2 (en) * | 2005-12-30 | 2011-09-20 | Sap Ag | Web services deployment |
US7814060B2 (en) * | 2005-12-30 | 2010-10-12 | Sap Ag | Apparatus and method for web service client deployment |
US8010695B2 (en) * | 2005-12-30 | 2011-08-30 | Sap Ag | Web services archive |
US7996783B2 (en) | 2006-03-02 | 2011-08-09 | Microsoft Corporation | Widget searching utilizing task framework |
US20070264985A1 (en) * | 2006-04-17 | 2007-11-15 | Flextronics Software Systems | Method and system for rapid creation of applications in communication devices |
US7890478B2 (en) * | 2006-04-24 | 2011-02-15 | Sap Ag | Projected business objects |
US7900190B2 (en) * | 2006-09-21 | 2011-03-01 | Sap Ag | Business object templates |
US9178793B1 (en) * | 2006-09-29 | 2015-11-03 | Yahoo! Inc. | Engine for processing content rules associated with locations in a page |
EP2070026A4 (en) | 2006-10-06 | 2012-01-18 | Crawford Group Inc | METHOD AND SYSTEM FOR TRANSMITTING VEHICLE REPAIR INFORMATION TO A B2B COMPUTER SYSTEM FOR MANAGING RENTAL CAR RESERVATIONS |
JP4629646B2 (ja) * | 2006-11-01 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーションプログラムを生成するための装置、方法、及びプログラム |
US8160906B2 (en) | 2006-12-12 | 2012-04-17 | The Crawford Group, Inc. | System and method for improved rental vehicle reservation management |
US20080222074A1 (en) * | 2007-02-22 | 2008-09-11 | Peter Lieberwirth | Method or corresponding system employing templates for creating an organizational structure of knowledge |
US8782182B2 (en) * | 2007-05-24 | 2014-07-15 | Foundry Networks, Llc | Generating device-specific configurations |
US20090024979A1 (en) * | 2007-07-20 | 2009-01-22 | International Business Machines Corporation | Method and system for configuring a user interface |
CA2695131A1 (en) | 2007-07-25 | 2009-01-29 | The Crawford Group, Inc. | System and method for allocating replacement vehicle rental costs using a virtual bank of repair facility credits |
US9081463B2 (en) | 2007-12-05 | 2015-07-14 | Adobe Systems Incorporated | Systems and methods for run-time editing of a web page |
US8387006B1 (en) * | 2007-12-05 | 2013-02-26 | Adobe Systems Incorporated | System and method for authoring a web page to be run-time editable |
US8146110B2 (en) * | 2007-12-10 | 2012-03-27 | Microsoft Corporation | Service platform for in-context results |
US20090228804A1 (en) * | 2008-03-05 | 2009-09-10 | Microsoft Corporation | Service Preview And Access From an Application Page |
US20110029558A1 (en) * | 2008-03-31 | 2011-02-03 | Hui Na Chua | Dynamic service generation in ims network |
EP2164226B1 (en) * | 2008-09-10 | 2010-05-19 | Sap Ag | Secure composition of web services |
US8255490B1 (en) | 2008-10-22 | 2012-08-28 | Amazon Technologies, Inc. | Dynamic service-oriented architecture using customization code |
US9355469B2 (en) * | 2009-01-09 | 2016-05-31 | Adobe Systems Incorporated | Mode-based graphical editing |
US20100242064A1 (en) * | 2009-03-18 | 2010-09-23 | Tandberg Television, Inc. | Systems and methods for providing a dynamic user interface for a settop box |
US8074117B2 (en) * | 2009-09-25 | 2011-12-06 | Microsoft Corporation | Inference of contract using declarative program definition |
US20130067432A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Application development toolkit |
US20140019515A1 (en) * | 2012-07-10 | 2014-01-16 | International Business Machines Corporation | Adaptive business logic configurator |
US9231819B2 (en) * | 2012-11-30 | 2016-01-05 | Red Hat Israel, Ltd. | Abstracting restful web service HTTP between a client and a server |
US9158534B2 (en) | 2013-03-15 | 2015-10-13 | Wolters Kluwer United States Inc. | Smart endpoint architecture |
US9461936B2 (en) | 2014-02-14 | 2016-10-04 | Google Inc. | Methods and systems for providing an actionable object within a third-party content slot of an information resource of a content publisher |
US9246990B2 (en) | 2014-02-14 | 2016-01-26 | Google Inc. | Methods and systems for predicting conversion rates of content publisher and content provider pairs |
US10019238B2 (en) | 2015-06-23 | 2018-07-10 | Open Text Sa Ulc | Compositional entity modeling systems and methods |
US10262006B2 (en) | 2016-04-29 | 2019-04-16 | Microsoft Technology Licensing, Llc | Contextually triggered entry point |
US10169004B2 (en) | 2016-05-04 | 2019-01-01 | Open Text Sa Ulc | Application development and extensibility/customization using entity modeling systems and methods |
US10404549B2 (en) * | 2016-07-28 | 2019-09-03 | At&T Intellectual Property I, L.P. | Applying machine learning to heterogeneous data of existing services to generate a new service |
US10719777B2 (en) * | 2016-07-28 | 2020-07-21 | At&T Intellectual Propery I, L.P. | Optimization of multiple services via machine learning |
US10693738B2 (en) * | 2017-05-31 | 2020-06-23 | Cisco Technology, Inc. | Generating device-level logical models for a network |
US20230209359A1 (en) * | 2021-12-23 | 2023-06-29 | Rakuten Mobile, Inc. | Method and apparatus for flexibly constructing a network service |
US12012110B1 (en) | 2023-10-20 | 2024-06-18 | Crawford Group, Inc. | Systems and methods for intelligently transforming data to generate improved output data using a probabilistic multi-application network |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE514994C2 (sv) | 1993-12-03 | 2001-05-28 | Ericsson Telefon Ab L M | Sätt och anordning för utvinning av data ur en grupp av data |
US5592597A (en) | 1994-02-14 | 1997-01-07 | Parametric Technology Corporation | Real-time image generation system for simulating physical paint, drawing media, and feature modeling with 3-D graphics |
US5875331A (en) * | 1994-09-30 | 1999-02-23 | International Business Machines Corp. | System and method for generating target language code utilizing an object oriented code generator |
ATE312388T1 (de) | 1994-11-03 | 2005-12-15 | Parametric Tech Corp | Computersystem zum rekonstruieren von dreidimensionalen objekten unter verwendung von transformationen zwischen bild- und modellraum |
US5832503A (en) | 1995-02-24 | 1998-11-03 | Cabletron Systems, Inc. | Method and apparatus for configuration management in communications networks |
DE69632578T2 (de) | 1995-03-02 | 2005-06-09 | Parametric Technology Corp., Waltham | Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen |
US5701451A (en) * | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5649186A (en) | 1995-08-07 | 1997-07-15 | Silicon Graphics Incorporated | System and method for a computer-based dynamic information clipping service |
US5784562A (en) | 1995-10-10 | 1998-07-21 | U S West Advanced Technologies, Inc. | System for using a dialog session context to process electronic forms data on the world wide web |
US5754772A (en) | 1996-03-26 | 1998-05-19 | Unisys Corporation | Transaction service independent HTTP server-to-transaction gateway |
US5870737A (en) | 1996-04-15 | 1999-02-09 | International Business Machines Corporation | Dynamic prioritized replacement of language |
US5835712A (en) | 1996-05-03 | 1998-11-10 | Webmate Technologies, Inc. | Client-server system using embedded hypertext tags for application and database development |
US5802518A (en) | 1996-06-04 | 1998-09-01 | Multex Systems, Inc. | Information delivery system and method |
US5860004A (en) | 1996-07-03 | 1999-01-12 | Sun Microsystems, Inc. | Code generator for applications in distributed object systems |
US5892909A (en) | 1996-09-27 | 1999-04-06 | Diffusion, Inc. | Intranet-based system with methods for co-active delivery of information to multiple users |
US5884317A (en) | 1997-08-20 | 1999-03-16 | Bea Systems, Inc. | Service interface repository |
US5865144A (en) * | 1997-08-29 | 1999-02-02 | Semenuk; Michael | Ventilated cage for laboratory animal |
US20100049603A1 (en) * | 1997-09-11 | 2010-02-25 | Digital Delivery Networks, Inc. | Locally driven advertising system |
US5860068A (en) | 1997-12-04 | 1999-01-12 | Petabyte Corporation | Method and system for custom manufacture and delivery of a data product |
US6151624A (en) * | 1998-02-03 | 2000-11-21 | Realnames Corporation | Navigating network resources based on metadata |
US7028312B1 (en) * | 1998-03-23 | 2006-04-11 | Webmethods | XML remote procedure call (XML-RPC) |
US6067559A (en) | 1998-04-23 | 2000-05-23 | Microsoft Corporation | Server architecture for segregation of dynamic content generation applications into separate process spaces |
US6167564A (en) * | 1998-09-17 | 2000-12-26 | Unisys Corp. | Software system development framework |
US6125391A (en) | 1998-10-16 | 2000-09-26 | Commerce One, Inc. | Market makers using documents for commerce in trading partner networks |
US7937325B2 (en) * | 1998-12-08 | 2011-05-03 | Yodlee.Com, Inc. | Interactive bill payment center |
US6725425B1 (en) * | 1998-12-08 | 2004-04-20 | Yodlee.Com | Method and apparatus for retrieving information from semi-structured, web-based data sources |
US6574791B1 (en) * | 1999-01-15 | 2003-06-03 | International Business Machines Corporation | Component based designer for modifying and specializing wizards |
US7356569B1 (en) * | 1999-04-26 | 2008-04-08 | Mainstream Scientific, Llc | Apparatus and method for tracing the distribution of diversely sourced internet content |
US6560633B1 (en) * | 1999-06-10 | 2003-05-06 | Bow Street Software, Inc. | Method for creating network services by transforming an XML runtime model in response to an iterative input process |
-
1999
- 1999-06-10 US US09/329,677 patent/US6560633B1/en not_active Expired - Fee Related
-
2000
- 2000-06-09 AU AU69520/00A patent/AU775814B2/en not_active Ceased
- 2000-06-09 MX MXPA01012818A patent/MXPA01012818A/es unknown
- 2000-06-09 CA CA002376794A patent/CA2376794A1/en not_active Abandoned
- 2000-06-09 EP EP00957974A patent/EP1185938A4/en not_active Withdrawn
- 2000-06-09 WO PCT/US2000/040186 patent/WO2000077654A1/en active IP Right Grant
- 2000-06-09 JP JP2001503068A patent/JP2004500619A/ja active Pending
-
2003
- 2003-01-24 US US10/351,054 patent/US7447733B2/en not_active Expired - Fee Related
-
2008
- 2008-09-23 US US12/235,937 patent/US7783697B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090019359A1 (en) | 2009-01-15 |
EP1185938A4 (en) | 2005-09-28 |
EP1185938A1 (en) | 2002-03-13 |
AU6952000A (en) | 2001-01-02 |
AU775814B2 (en) | 2004-08-19 |
WO2000077654A9 (en) | 2002-08-01 |
CA2376794A1 (en) | 2000-12-21 |
WO2000077654A1 (en) | 2000-12-21 |
US7447733B2 (en) | 2008-11-04 |
US6560633B1 (en) | 2003-05-06 |
US20030135584A1 (en) | 2003-07-17 |
US7783697B2 (en) | 2010-08-24 |
JP2004500619A (ja) | 2004-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7447733B2 (en) | Method and apparatus creating network services | |
US7739292B2 (en) | System and method for modeling and managing enterprise architecture data and content models and their relationships | |
US7953767B2 (en) | Developing applications using configurable patterns | |
US7165073B2 (en) | Dynamic, hierarchical data exchange system | |
US7975254B2 (en) | Design-time rules mechanism for modeling systems | |
US10445411B2 (en) | Document automation systems | |
US7194683B2 (en) | Representing and managing dynamic data content for web documents | |
US8914807B2 (en) | Method, system, and program for generating a program capable of invoking a flow of operations | |
US5930512A (en) | Method and apparatus for building and running workflow process models using a hypertext markup language | |
US7159185B1 (en) | Function objects | |
US8838627B2 (en) | Systems and methods for providing template based output management | |
US20060074967A1 (en) | Visual query modeling for configurable patterns | |
US20040187140A1 (en) | Application framework | |
US20040003091A1 (en) | Accessing a remote iSeries or AS/400 computer system from an integrated development environment | |
MXPA01012817A (es) | Metodo y aparato para proveer servicios en red. | |
JP2005531083A (ja) | グラフィカルユーザインタフェースのプロトタイピング | |
US20060074942A1 (en) | Visual database modeling | |
Walderhaug et al. | Towards a generic solution for traceability in MDD | |
US20070094289A1 (en) | Dynamic, hierarchical data exchange system | |
Schwabe et al. | Design and Implementation of Semantic Web Applications. | |
Brambilla et al. | Model-driven design of service-enabled web applications | |
Yang | IFC-compliant design information modelling and sharing | |
Li et al. | A data mapping specification environment using a concrete business form-based metaphor | |
Comai et al. | Conceptual Modelling Issues in Web Applications Enhanced with Web Services | |
Ceri et al. | Examples of Web-based information systems |