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
Application number
MXPA01012818A
Other languages
English (en)
Inventor
Andrew F Roberts
Original Assignee
Bow Street Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bow Street Software Inc filed Critical Bow Street Software Inc
Publication of MXPA01012818A publication Critical patent/MXPA01012818A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access 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)

  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.
MXPA01012818A 1999-06-10 2000-06-09 Metodo y aparato para crear servicios de red. MXPA01012818A (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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