MX2008011909A - Estructura de trabajo para modelar cancelacion para programas centricos de procedimiento. - Google Patents
Estructura de trabajo para modelar cancelacion para programas centricos de procedimiento.Info
- Publication number
- MX2008011909A MX2008011909A MX2008011909A MX2008011909A MX2008011909A MX 2008011909 A MX2008011909 A MX 2008011909A MX 2008011909 A MX2008011909 A MX 2008011909A MX 2008011909 A MX2008011909 A MX 2008011909A MX 2008011909 A MX2008011909 A MX 2008011909A
- Authority
- MX
- Mexico
- Prior art keywords
- execution
- activity
- state
- work items
- cancellation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
Se describe una ejecución de cancelación declarativa de una actividad. Se define un estado autómata para una actividad, y el estado autómata incluye un estado de ejecución, un estado de cancelación, y un estado cerrado y clasifica un tiempo de vida de ejecución de la actividad. La actividad incluye artículos de trabajo y organiza los artículos de trabajo en una estructura jerárquica de ejecución. Los artículos de trabajo son transitados del estado de ejecución al estado cerrado indicando un término de ejecución de cada artículo de trabajo de la actividad. Después de que uno de los artículos de trabajo se ha pasado al estado cerrado, se transmite una solicitud de cancelación a los artículos de trabajo actualmente en el estado de ejecución. Los artículos de trabajo de ejecución son identificados como una función de la solicitud de cancelación transmitida y la estructura jerárquica de ejecución de la actividad definida. El tiempo de vida de ejecución de la actividad es cancelado al hacer transitar los artículos de trabajo identificados del estado de ejecución al estado de cancelación.
Description
ESTRUCTURA DE TRABAJO PARA MODELAR CANCELACION PARA PROGRAMAS CENTRICOS DE PROCEDI IE TO
ANTECEDENTES
Se han desarrollado programas orientados a procedimiento o céntricos de procedimiento para permitir el procesamiento de eventos de mundo real de moldeado de instrucciones complejos. Los programas céntricos de procedimiento reflejan procedimientos de mundo real e interacciones de espejo entre entidades de mundo real. Los sistemas existentes intentan delinear problemas de negocio a flujos de trabajo de nivel superior al moldear el problema de negocio. Sin embargo, los flujos de trabajo de mundo real varían en una variedad de dimensiones tales como (a) ejecución y complejidad de moldeado, (b) reconocimiento de la estructura del flujo en tiempo de diseño, (c) estáticamente definido o ad-hoc/dinámico, (d) facilidad de crear y editar el flujo en varios puntos de su ciclo de vida, y (e) asociación débil o fuerte de lógica de negocio con el procedimiento de flujo de trabajo de núcleo. Los modelos existentes fallan al acomodar todos estos factores. Además, la mayoría de los modelos de flujo de trabajo existentes se basan en aspectos basados en lenguaje (por ejemplo, BPEL4WS, XLANG/S y WSFL) o aspectos basados en aplicación. Los aspectos basados en lenguaje son lenguajes de flujo de trabajo de nivel superior con un grupo cerrado de construcciones predefinidas que ayudan a modelar el procedimiento de flujo de trabajo al usuario/programador. Los lenguajes de flujo de trabajo transportan toda la información semántica para el grupo cerrado de construcciones para permitir que el usuario construya un modelo de flujo de trabajo. Sin embargo, los lenguajes no son extensibles por los desarrolladores y representan un grupo cerrado de primitivos que constituyen el modelo de flujo de trabajo. Los lenguajes se unen a recopilador de lenguaje transportado por el vendedor de sistema de flujo de trabajo. Sólo el vendedor de producto de sistema de flujo de trabajo puede extender el modelo al extender el lenguaje con un nuevo grupo de construcciones en una versión futura del producto. Esto frecuentemente requiere mejorar el recopilador asociado con el lenguaje. Además, los lenguajes usualmente no exponen declarativamente o definen funciones u operaciones que pueden utilizarse fácil y eficientemente por otros programas. Los aspectos basados en aplicación son aplicaciones que tienen las capacidades de flujo de trabajo dentro de la aplicación para resolver un problema específico de dominio. Estas aplicaciones no son verdaderamente extensibles ni tienen un modelo programable. Además, con los aspectos existentes, los problemas de complejidad, conocimiento previo, flujos de trabajo dinámicos, facilidad de creación, y resistencia de asociaciones con una lógica de negocio y flujos de trabajo de núcleo que no se dirigen adecuadamente. No hay estructuras de diseñador de flujo de trabajo extensible, adaptables, y re-alojables disponibles para construir diseñadores de flujo de trabajo visuales para modelar diferentes clases de flujos de trabajo. Los sistemas existentes carecen de una experiencia de diseño de flujo de trabajo de estilo de desarrollo de aplicación rápido (RAD) que permiten a los usuarios diseñar gráficamente el procedimiento de flujo de trabajo y asociar la lógica de negocio en un lenguaje de programación de elección del desarrollados También, los procedimientos de flujo de trabajo tratan con asuntos ortogonales y enredados de corte que separan múltiples pasos de un modelo de procedimiento de flujo de trabajo. Por ejemplo, mientras se diseñan partes de procedimiento de flujo de trabajo para participar en transacciones de larga duración, otras partes del mismo procedimiento se diseñan para ejecución concurrente o para acceso a un recurso compartido. Debido a fallas de diseño, los sistemas existentes fallan al proporcionar espaciado de secuencias de ejecución que permiten a los usuarios diseñar ejecución sincrónica o espaciada de actividades. Incluso otras porciones del mismo procedimiento de flujo de trabajo requieren rastreo, mientras otras porciones controlan excepciones de nivel de negocio o de aplicación. No hay una necesidad de aplicar ciertos comportamientos a una o más porciones de un procedimiento de flujo de trabajo. Algunos aspectos de moldeo de flujo de trabajo son imprácticos ya que requieren una descripción basada en flujo completa de un procedimiento de negocio completo que incluye todas las excepciones e intervenciones humanas. Algunos de estos aspectos proporcionan una funcionalidad adicional mientras surgen excepciones, mientras otros aspectos emplean exclusivamente un acercamiento basado en limitación en lugar de un acercamiento basado en flujo para moldear un procedimiento en negocio. Los sistemas existentes implementan el acercamiento basado en flujo o basado en limitación. Tales sistemas son demasiado inflexibles para modelar muchas de las situaciones de negocio comunes. Estos sistemas también carecen de la capacidad de controlar asincrónicamente excepciones o cancelaciones.
BREVE DESCRIPCION DE LA INVENCION
Las modalidades de la invención proporcionan una estructura de trabajo declarativa para modelar cancelación en programas al definir un estado de cancelación en un autómata de estado. Además, con el estado de cancelación y otros aspectos de la invención, los desabolladores o programas pueden definir y proporcionar declarativamente usuarios para procesar cancelaciones de programas. Además, las modalidades de la invención permiten que actividades compuestas (por ejemplo, un grupo de actividades que tienen una estructura jerárquica) cancelen la ejecución de una o más actividades (por ejemplo, actividades hijo en un árbol de actividad). También, los aspectos que modalizan la cancelación permitir modelar el temprano término dentro de un programa y flujos de control dinámico. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe posteriormente en la Descripción Detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado. Otras características en parte serán evidentes y en parte se señalarán aquí posteriormente.
BREVE DESCRIPCION DE LOS DIBUJOS
La Figura 1 es un diagrama de bloques que ¡lustra un paradigma de programación existente. La Figura 2 es un diagrama de bloques ilustrativo que ilustra una virtualización de una estructura de trabajo de diseño de flujo de trabajo de acuerdo con una modalidad de la invención. La Figura 3 es un diagrama ilustrativo que ilustra un flujo de trabajo ilustrativo de acuerdo con una modalidad de la invención. La Figura 4 es un diagrama que ilustra un ambiente de cómputo ilustrativo de un sistema para procesar actividades de flujo de trabajo de acuerdo con una modalidad de la invención. La Figura 5 es un diagrama que ilustra una estructura jerárquica de una actividad de flujo de trabajo de acuerdo con una modalidad de la invención. La Figura 6 es un diagrama que ilustra un estado ilustrativo autómata que describe estados de procesamiento de artículos de trabajo asociados con una actividad de acuerdo con una modalidad de la invención. Las Figuras 7A a 7E son diagramas de bloques que ilustran una cancelación declarativa de artículos de trabajo de una actividad de acuerdo con una modalidad de la invención. La Figura 8 es un diagrama de flujo que ilustra un método para cancelar artículos de trabajo de una actividad de un flujo de trabajo de acuerdo con una modalidad de la invención. La Figura 9 es un diagrama de bloques que ilustra un medio legible por computadora ilustrativo en el cual pueden almacenarse aspectos de la invención. Caracteres de referencia correspondientes indican partes correspondientes a través de los dibujos.
DESCRIPCION DETALLADA
Haciendo referencia primero a la Figura 1 , un diagrama de bloques ilustra un paradigma de programación existente para diseñar programas para actividades céntricas de procedimiento, tal como un flujo de trabajo. Por ejemplo, el diagrama muestra un modelo de virtualización de nivel tres de un paradigma de programa existente con un nivel de un ambiente de ejecución manejado que es el nivel superior y una unidad de procesamiento que es el nivel inferior. En este sistema de diseño de programación, incluso en el nivel de ambiente de ejecución manejado, programas, especialmente programas céntricos de procedimiento que controlan procedimientos de flujo de trabajo, carecen de la capacidad y eficiencia para acomodar interacciones complejas entre procedimientos en un flujo de trabajo. Se sabe por aquellos expertos en la técnica que ciertas limitaciones se asocian con diseñar programas de software o aplicación. En este ejemplo, al escribir un programa de software de sistema operativo 104, los códigos de programación o rutinas son dependientes del tipo de configuración de unidades de procesamiento 102, que son especificas al tipo de arquitectura de cómputo (por ejemplo, compatible con IBM®, computadoras de APPLE®, y otros sistemas), u otras limitaciones. Además, los lenguajes de programación típicamente necesitan identificar exactamente y utilizar estructuras de datos tal como pilas, bultos, base de secuencia, u otras estructuras específicas de hardware para el sistema operativo 104 para funcionar apropiadamente. Al tratar con procedimientos de flujo de trabajo complejos, las aplicaciones existentes utilizan un concepto de un ambiente de ejecución manejado 106 (por ejemplo, un ambiente de tiempo de funcionamiento en donde los programas pueden compartir funciones o clases orientadas objeto común) en donde los programas escritos en un lenguaje de programación pueden llamar a funciones en otros programas escritos en un lenguaje de programación diferente. En tal ambiente de ejecución, estos programas en diferentes lenguajes de programación se recopilan a un lenguaje intermedio tal como el ambiente de ejecución manejado 106 puede exponer parámetros, argumentos, o esquemas o funciones a los diferentes programas para que los programas puedan interactuar unos con otros. Mientras este ambiente de ejecución 106 crea un ambiente de ejecución común entre programas, el ambiente de ejecución 106 incluye varios requerimientos estrictos que pueden no ser adecuados para controlar la complejidad y capacidad de programas céntricos de procedimiento. Por ejemplo, el ambiente de ejecución 106 requiere que los programas se confirmen a un formato de archivo específico. El ambiente de ejecución 106 también requiere que las funciones u operaciones en los programas utilicen un grupo de fijo de funciones o una clase de funciones definidas por el ambiente de ejecución 106.
Las modalidades de la invención se construyen en un fundamento extensible o estructura de trabajo 202 en la Figura 2 para superar las desventajas del modelo de programación existente. Al permitir que los programas escritos en cualquier lenguaje de programación y compuestos en cualquier formato de archivo, los aspectos de la invención permiten a los desarrolladores de programa diseñar programas con funciones específicas sin comprometer sus funcionalidades y especificaciones. Al definir actividades, tal como tareas de flujo de trabajo o procedimientos, como la clase de base para ejecutarse en la estructura de flujo de trabajo, los desarrolladores pueden fácil y eficientemente construir códigos de operación específicos de dominio (por ejemplo, ambientes de ejecución específicos tal como programas en la industria de salud, industria financiera, o similares) (denominados aquí "op-código") sin adherirse a el grupo de funciones o clases de actividades fijas rígidas, codificadas fuertemente, inflexibles en el ambiente de ejecución existente. Además, el fundamento de flujo de trabajo que representa aspectos de la invención es un tiempo de funcionamiento basado en continuación en capas en la parte superior de cualquier estructura de trabajo existente (por ejemplo, cualquier ambiente de ejecución manejado, ambiente de sistema operativo, o nivel de unidad de procesamiento de hardware). Los aspectos de la invención liberan a la limitación de definir actividades en un formato de archivo particular al permitir diseños de flujo de trabajo en cualquier forma o representación (por ejemplo, un cuadro de flujo, un diagrama, una descripción numerada, o similares) mientras las actividades en el flujo de trabajo pueden construirse de la representación de los diseños de flujo de trabajo. La Figura 3 ilustra una vista simple de un flujo de trabajo 300 de acuerdo con una modalidad de la invención. Por ejemplo, el flujo de trabajo 300 puede ser un flujo de trabajo para procesar una orden de compra, o este flujo de trabajo de orden de compra 300 puede incluir procedimientos o actividades tales como recibir una orden de compra, enviar confirmación a un cliente, aprobar la orden de compra por un administrador, o similares. Además, estas actividades pueden 1 o ser secuenciadas de manera que pueden ser realizadas al mismo tiempo que otras, mientras algunas otras pueden ser realizadas solo hasta el término de otras actividades. El flujo de trabajo 300 puede iniciar desde un punto de partida 302. Por ejemplo, el punto de partida 302 para un grupo de trabajo de orden de compra puede ser recibir una orden de un cliente. El flujo de trabajo 300 también puede incluir una declaración condicional 304 (tal como una "declaración I F " o una "declaración WHILE"), y puede subdividirse en declaraciones condicionales adicionales 306 y 308. El flujo de trabajo 300 también puede incluir una estructura paralela 310, que además incluye una o más secuencias o actividades 312. Por ejemplo, la estructura paralela 310 incluye actividades, tal como revisar el inventario y actualizar los embarques disponibles, que se procesan en paralelo. En el ejemplo mostrado, las actividades tal como "Enviar correo electrónico" y "Obtener aprobación" puede procesarse en paralelos. En "dejar caer actividades aquí" 316, un usuario además puede agregar o complementar más actividades en el flujo de trabajo 300. Para completar el flujo de trabajo 300, los procedimientos o actividades concluirán en un paso o punto completo 314. En una modalidad, las actividades puede distribuirse jerárquicamente en una estructura de árbol (ver Figura 5) 500 u otras secuencias de ejecución. Por ejemplo, una actividad puede ser una actividad compuesta en la cual la actividad incluye más de un artículo de trabajo asociado con este. En otra modalidad, una colección de actividades puede ser una actividad de compuesto. Un método de actividad u operación puede estar en un nodo de raíz 502 con dos hijos o nodos de hoja 504 y 506. Los métodos u operaciones de actividad en los nodos hijo 504 y 506 (por ejemplo, articulo de trabajo_1 y artículo de trabajo_2, respectivamente) pueden ejecutarse de acuerdo con la estructura jerárquica. Además, los nodos hijo 504 y 506 también pueden incluir otros nodos hijo que tienen artículos de trabajo respectivos para ejecutarse. En otra modalidad, las actividades incluyen uno o más de los siguientes tipos: una actividad simple, actividad de contenedor y actividad de raíz. En esta modalidad, existe una actividad de raíz en el modelo, y ninguna o cualquier cantidad de actividades simples o actividades de contenedor dentro de la actividad de raíz. Una actividad de contenedor puede incluir actividades simples o de contenedor. El procedimiento de flujo de trabajo completo puede utilizarse como una actividad para construir procedimientos de flujo de trabajo de orden superior. Además, una actividad puede ser interrumpible o no interrumpible. Una actividad compuesta no interrumpible o no interrumpible. Una actividad compuesta no interrumpible no incluye actividades ¡nterrumpibles. Una actividad no interrumpible carece de servicios que pueden causar que la actividad se bloquee. Además, al ejecutar actividades y los artículos de trabajo incluidos en las actividades, la estructura de flujo de trabajo o un contexto o ambiente de ejecución define un alcance o límite para cada uno de los artículos de trabajo. Este alcance o límite incluye y expone información (por ejemplo, en la forma de datos, metadatos, o similares) tal como los datos o recursos compartidos para accederse por los artículos de trabajo, propiedades asociadas, controladores, limitaciones e interacciones entre agentes autómatas. Estos alcances pueden ser estructurados jerárquicamente. También, cada actividad puede configurarse por un código de usuario en cualquier lenguaje de programación que soporte la estructura de trabajo manejada subyacente. Por ejemplo, el código de usuario puede representar lógica de negocio o aplicación o reglas escritas en un dominio específico o ambiente de ejecución. Cada actividad puede soportar ganchos de pre-intercepción y ganchos de pos-intercepción en la ejecución en el código de usuario. Cada actividad tiene semánticas y comportamiento de ejecución de tiempo de funcionamiento asociados (por ejemplo, manejo de estado, transacciones, control de evento y control de excepción). Las actividades pueden compartir estados o recursos con otras actividades. Además, las actividades pueden ser actividades primitivas o agrupadas en una actividad compuesta. Una actividad primitiva o básica no tiene subestructura (por ejemplo, actividades hijo), y de esa forma es un nodo de hoja en una estructura de árbol. Una actividad compuesta contiene subestructura (por ejemplo, es el padre de una o más actividades hijo). La Figura 4 es un diagrama que ilustra un sistema 400 para procesar actividades de flujo de trabajo de acuerdo con una modalidad de la invención. El sistema 400 incluye un procesador 402, que puede ser una unidad de procesamiento o una colección de unidades de procesamiento. El sistema 400 también incluye un área de almacenamiento o memoria 404 para almacenar datos accesibles por el procesador 402. En una modalidad, el sistema 400 puede ser una computadora que tiene uno o más procesadores o unidades de procesamiento (por ejemplo, procesador 402) y una memoria de sistema (por ejemplo, área de memoria 404) que tiene otros componentes para acoplar varios componentes de sistema que incluyen la memoria de sistema al procesador 402. En un ejemplo, el área de memoria 404 puede incluir medios legibles por computadora, ya sea medios volátiles, no volátiles, removibles, o no removibles, implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos. módulos de programa u otros datos. Por ejemplo, los medios de almacenamiento por computadora incluyen RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, cassettes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por el sistema 400. La memoria 404 también puede incluir medios de comunicación que representan instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluyen cualquier medio de entrega de información. Aquellos expertos en la técnica están familiarizados con la señal de datos modulada, que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. Los medios por cable, tal como red por cable o conexión por cable directa, y medios inalámbricos, tal como acústicos, RF, infrarrojos, y otros medios inalámbricos, son ejemplos de medios de comunicación. Combinaciones de cualquiera de los anteriores también se incluyen dentro del alcance de medios legibles por computadora. Por ejemplo, el área de memoria 404 almacena una pluralidad de actividades 406 para procesar en un flujo de trabajo (por ejemplo, el flujo de trabajo 300). Cada uno de la pluralidad actividades 406 incluye uno o más artículos de trabajo, y los artículos de trabajo pueden organizarse en una estructura jerárquica tal como una estructura de árbol (ver Figura 5). Al procesar la pluralidad de actividades 406, el procesador 402 accede o ejecuta un programador 408, que se configura para establecer un grupo organizado de actividades. Por ejemplo, el procesador 408 accede a los artículos de trabajo en la pluralidad actividades 406 a través de un componente o un grupo de instrucciones ejecutables por computadora tal como el programador 408 para formar o para almacenar los artículos de trabajo 422 a una fila 410. Un distribuidor 412, accesible por el procesador 402, distribuye los artículos de trabajo 422 para ejecución. Por ejemplo, un artículo de trabajo 422-1 puede incluir un método de actividad 424, rutina, o una colección de códigos para realizar una función de "solicitar entrada de un usuario". Uno o más otros métodos de actividad, rutinas, o códigos pueden incluirse en cada uno de los artículos de trabajo 422 sin apartarse del alcance de la invención. Una vez que se distribuyen los artículos de trabajo 422 por el distribuidor 412, el procesador 402 ejecuta cada uno de los métodos 424 en los artículos de trabajo 422 en 414. En el ejemplo del artículo de trabajo 422-1, el procesador 402 puede proporcionar un usuario a través de una interfase de usuario (Ul) para ingresar la información solicitada o datos. En otra modalidad, el procesador 402 puede conectarse a o acceder a una fuente de datos externa para solicitar entrada del usuario. Al término del método de actividad 424, el procesador 402 concluye la ejecución de los artículos de trabajo 422 en 416. En una modalidad, el procesador 402 pasiva el estado de ejecución de artículos de trabajo en 418 a un almacenamiento de datos 420. En otra modalidad, el procesador 402 ejecuta los artículos de trabajo 422 de acuerdo con un estado autómata mostrado tal como el autómata mostrado en la Figura 6, que es un diagrama que ilustra una autómata de estado ilustrativo 600 que describe estados de procesamiento de artículos de trabajo asociados con una actividad de acuerdo con una modalidad de la invención. En una modalidad, el autómata de estado 600 define un tiempo de vida de ejecución de una actividad. En un ejemplo, el autómata de estado 600 puede incluir un estado iniciado, un estado de ejecución, y un estado cerrado (como se muestra en la Figura 4). En otra modalidad, el autómata de estado 600 incluye un estado iniciado 602, un estado de ejecución 604, un estado de cancelación 606, un estado defectuoso 608, un estado de compensación 610, y un estado cerrado 612. Por ejemplo, el autómata de estado 600 describe un flujo de procedimiento de ejecución de artículos de trabajo (por ejemplo, artículos de trabajo 422) en una actividad de flujo de trabajo. El artículo de trabajo 422-1, como se ilustró en la Figura 4, primero se inicia cuando se forma en la fila 410. El artículo de trabajo 422-1 después se quita de la fila o se remueve de la fila 410 al distribuidor 412 antes de ejecutarse en el estado de ejecución (por ejemplo, el estado de ejecución 604 en la Figura 6). Dependiendo de los parámetros o condiciones durante la ejecución del artículo de trabajo 422-1, el artículo de trabajo 422-1 puede proceder al estado de cancelación 606 o el estado defectuoso 608. En una modalidad, el artículo de trabajo 422-1 puede proceder del estado de cancelación 606 al estado defectuoso 608. En una modalidad alternativa, el estado de compensación 610 describe un grupo de operaciones o funciones para realizarse cuando ocurrió la falla o excepción. Por ejemplo, supongamos que ocurre una excepción durante la ejecución de un artículo de trabajo (por ejemplo, artículo de trabajo 422-1 ), tal como un parámetro para una función que falta. El sistema 400 transita el artículo de trabajo 422-1 al estado defectuoso 608. Al hacer eso, el sistema 400 también realiza una colección de basura (por ejemplo, remover la porción previamente ejecutada de las operaciones de la memoria cache o memoria, valores de parámetros restablecidos, o similares) operaciones en el estado de compensación 610 antes de transitar el artículo de trabajo 422-1 al estado cerrado 612. El estado cerrado 612 indica que la ejecución de la actividad (por ejemplo, actividad 500 en la Figura 5) se completó. En una modalidad, el autómata de estado 600 establece relación entre artículos de trabajo en una actividad compuesta. Por ejemplo, una de las reglas de relación puede incluir que, antes de transitar al estado cerrado 612 los métodos o artículos de trabajo en el nodo de raíz del árbol de actividad, todos los artículos de trabajo en los nodos hijo deben estar en el estado iniciado 602 ó el estado cerrado 612. Otra regla puede requerir que, con el fin de transitar a los artículos de trabajo en el nodo hijo del árbol de actividad al estado de ejecución 604, el artículo de trabajo en el nodo de raíz ya debe estar en el estado de ejecución 604. En otra modalidad, uno o más estados adicionales pueden definirse en el autómata de estado 600 sin apartarse del alcance de las modalidades de la invención. Haciendo referencia después a las Figura 7A y 7E, los diagramas de bloques ilustran una cancelación declarativa de artículos de trabajo de una actividad de acuerdo con una modalidad de la invención. Para propósitos de simplistas solamente y sin limitaciones, la Figura 7A muestra una actividad compuesta 702 que incluye tres artículos de trabajo hijos organizados en una estructura de árbol: transacción_1 704, transacción_2 706, y transacción_3 708. Como se ilustró, la actividad de raíz 702 incluye un método para "escribir texto en la presentación y terminar la actividad después de escribir el texto". Las funciones para los artículos de trabajo anteriores también proporcionan lo siguiente: artículo de trabajo_1 704: {PAUSA 30 SEGUNDOS; ESCRIBIR T EXTO (" H O L A") ;
} artículo de trabajo_2 706: ESCRIBIR TEXTO("HOLA MUNDO"); { PAUSA 60 SEGUNDOS, } artículo de trabajo_3 708: ESCRIBIR TEXTO("HOLA MENSAJE"); { PAUSA 180 SEGUNDOS;
{ En la Figura 7B, una instantánea (es decir, 30 segundos después de que los artículos de trabajo están en el estado de ejecución 710) del estado de ejecución 710 ilustra los artículos de trabajo que actualmente están en el estado de ejecución. Se debe entender que la actividad 702 también ya está en el estado de ejecución 710 en este momento. En esta etapa, de acuerdo con la función incluida en el artículo de trabajo_1 704, el texto "Hola" se presenta en la presentación, tal como una interfase de usuario (Ul)
428 en la Figura 4. En la Figura 7C, en un tiempo de 31 segundos después de que los artículos de trabajo están en el estado de ejecución, las funciones en el artículo de trabajo_1 704 han completado la ejecución (es decir, escribiendo "Hola" en la presentación). El artículo de trabajo_1 704 es transitado a un estado cerrado 712.
Después de pasar al estado cerrado 712, se transmite una solicitud de cancelación 722 en 720 a uno o más artículos de trabajo actualmente en el estado de ejecución, tal como el artículo de trabajo_2 706 y el artículo de trabajo_3 708. De acuerdo con modalidades de la invención, todos los artículos de trabajo restantes en el árbol de actividad sin transitados al estado de cancelación porque la actividad 702 ha completado la ejecución de este método, el cual es "escribir texto en la presentación y terminar la actividad después de escribir el texto".
Como tal, la actividad 702 debe ser transitada al estado cerrado 712.
Consecuentemente, las operaciones, funciones o métodos que actualmente están en el estado de ejecución 710 podrían ser desechados o la ejecución de ellos podría no completarse. Como tal, en la Figura 7D, en un tiempo de 32 segundos después de que los artículos de trabajo están en el estado de ejecución 710, el artículo de trabajo_2 706 y el artículo de trabajo_3 708 son transitados a un estado de cancelación 716. En una modalidad, el artículo de trabajo_2 706 y el artículo de trabajo_3 708 forman una fila a una fila de programador 714 después de pasar al estado de cancelación 716 (por ejemplo, estado de cancelación 426 en la Figura 4). En la Figura 7E, el artículo de trabajo_2 706 y el articulo de trabajo_3 708 se sacan de la fila de programador 714 y son transitados al estado de cancelación 716. En esta ilustración, después de que todos los artículos de trabajo han pasado en estado cerrado (como se indica por una flecha 718), la actividad 702 transita al estado cerrado 712, indicando que la actividad 702 ha completado su ejecución. A diferencia de los sistemas existentes, cuando una excepción es activada, los aspectos de la invención declarativamente activan la cancelación proporcionando el estado de cancelación 716. Con el estado de cancelación 716, los desabolladores o programadores pueden diseñar programas céntricos de procedimiento para controlar eficientemente la cancelación de partes del programa. Después de pasar los artículos de trabajo al estado de cancelación 716, las modalidades alternativas de la invención proporcionan un grupo de operaciones de pos-cancelación a un usuario 430 en respuesta a la cancelación del tiempo de vida de ejecución de la actividad. Por ejemplo, el sistema 400 en la Figura 4 puede proporcionar un número de operaciones en una ventana de diálogo a través de la Ul 428 al usuario 430. Las operaciones pueden incluir, pero no se limitan a, un cuadro de decisión pata cancelar también artículos de trabajo restantes en el estado de ejecución 710, realizar otras operaciones, o similares. Las modalidades alternativas de la invención pueden realizar un grupo de operaciones para remover datos (por ejemplo, almacenamientos temporales, memorias intermedias, accesos a memoria, o similares) asociados con la ejecución de los artículos de trabajo como una función de la cancelación del tiempo de vida de ejecución de la actividad. En una modalidad, la Figura 6 describe un autómata que incluye seis estados (estados de I nicializado, de Ejecución, Cerrado, de Cancelación, de Falla y de Compensación) en donde una actividad (por ejemplo, un grupo de operaciones que pueden definir un grupo de op-códigos específicos para su dominio) puede estar durante su tiempo de vida de ejecución. Al incorporar aspectos o características de cancelación como se describió anteriormente, los artículos de trabajo se sacan de la fila de programador y antes de que el controlador de ejecución sea en realidad distribuido. El autómata 600 se aplica a actividades tanto primitivas como compuestas. Se debe observar también que la relación de composición entre el padre y el hijo se refuerza de acuerdo con las modalidades de la invención de manera que la actividad compuesta permite el modelado de los patrones de flujo de control. Por ejemplo, la composición de hijo dentro de la actividad de padre en una actividad de árbol requiere de lo siguiente: (1) Con el fin de que la actividad padre transite al estado cerrado, la pre-condición requerida es que el hijo debe estar en un estado ¡nicializado o en el estado cerrado. En este ejemplo, la actividad hijo o los artículos de trabajo hijo pueden no estar en el estado de ejecución, estado de cancelación, estado de falla o estado de compensación cuando el padre transita al estado cerrado. (2) Con el fin de que un hijo transite al estado de ejecución, la pre-condición requerida, es que el padre debe ya estar en el estado de ejecución, estado de cancelación, estado de falla, estado de compensación u otros estados de "<>". En una modalidad ilustrativa, la base del flujo de trabajo o el tiempo de funcionamiento de la estructura de trabajo refuerza las reglas anteriores o requerimientos en forma estricta. Además, la estructura de trabajo del flujo de trabajo proporciona un protocolo bien definido para modelar la cancelación de los escritores de actividad, basándose en las descripciones anteriores. La cancelación se propaga hacia abajo en la jerarquía de composición de actividad -empezando de una actividad compuesta padre programando la cancelación de su hijo, lo cual a su vez cancelación a su hijo y así sucesivamente. Este ejemplo es similar a cómo la señal de ejecución se propaga hacia abajo en la estructura de composición también. A diferencia de las tecnologías existentes en donde la cancelación ha sido tratada como una excepción, las modalidades de la invención modelan la cancelación como un comportamiento especial de la semántica de ejecución normal de actividades compuestas, de manera que se logran flujos de control dinámico de la ejecución de actividad. La Figura 8 es un diagrama de flujo que ilustra unmétodo para cancelar artículos de trabajo de una actividad de un flujo de trabajo de acuerdo con una modalidad de la invasión. En un ejemplo, el método o procedimiento descrito en la Figura 8 puede realizarse a través de componentes ejecutables por computadora almacenados en un medio legible por computadora, tal como un medio legible por computadora 900 ilustrado en la Figura 9. Por ejemplo, inicialmente, una máquina de estado 902 define un autómata de estado para la actividad en 802. El autómata de estado (por ejemplo, el autómata de estado 600) incluye un estado de ejecución, un estado de cancelación, y un estado cerrado. Un componente de actividad 904 define la actividad para incluir la pluralidad de artículos de trabajo en 804. La actividad definida organiza la pluralidad de artículos de trabajo en una secuencia de ejecución o una estructura jerárquica de ejecución (por ejemplo, una estructura de árbol). Cada uno de los artículos de trabajo incluye un método para ejecutar una porción de la actividad . En 806, un componente programador 906 transita los artículos de trabajo del estado de ejecución al estado cerrado, dicho estado cerrado indicando un término de la actividad de ejecución. En 808, en respuesta a uno de los artículos de trabajo que están siendo transitados al estado cerrado, un componente de mensaje 908 transmite una solicitud de cancelación a uno o más de los artículos de trabajo actualmente en el estado de ejecución. Un controlador de cancelación 910 identifica uno o más artículos de trabajo en el estado de ejecución como una función de la solicitud de cancelación transmitida y la secuencia de ejecución de la actividad definida en 810. En una modalidad, el controlador de cancelación 910 identifica los artículos de trabajo poniendo en una fila los artículos de trabajo en una fila de programador antes de transitar los artículos de trabajo al estado de cancelación. En 812, un componente de ejecución 912 cancela el tiempo de vida de la ejecución de la actividad al hacer pasar uno o más de los artículos de trabajo identificados del estado de ejecución al estado de cancelación. En otra modalidad, el medio legible por computadora 900 también incluye la Ul (por ejemplo, Ul 428) para proporcionar un grupo de operaciones de pos-cancelación al usuario 430 en la Figura 4 en respuesta a la cancelación del tiempo de vida de ejecución de la actividad. En otra modalidad más, un componente de limpieza 914 remueve los datos asociados con la ejecución de los artículos de trabajo como una función de la cancelación del tiempo de vida de ejecución de la actividad a través del componente de ejecución. Aunque se describió en conexión con un ambiente de sistema de cómputo ilustrativo, tal como el sistema 400 en la Figura 4, las modalidades de la invención son operacionales con numerosos otros ambientes o configuraciones de sistemas de cómputo de propósito general o de propósito especial. El ambiente de sistema de cómputo no pretende sugerir ninguna limitación al alcance de uso o funcionalidad de cualquier aspecto de la invención. Además, el ambiente de sistema de cómputo no debe interpretarse como teniendo ninguna dependencia o requerimiento que se relaciona con cualquiera o combinación de componentes ilustrados en la ambiente operativo ilustrativo. Ejemplos de sistemas de cómputo bien conocidos, ambientes, y/o configuraciones que pueden ser adecuados para uso con aspectos de la invención incluyen, pero no se limitan a, computadoras personales, computadoras de servidor, dispositivos móviles o portátiles, sistemas de multiprocesador, sistemas a base de microprocesador, cajas de tv por cable, electrónica de consumidor programable, teléfonos móviles, PCs de red, minicomputadoras, macrocomputadoras, ambientes de cómputo distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. Las modalidades de la invención pueden describirse en el contexto general de instrucciones ejecutables por computadora, tal como módulos de programa, ejecutados por una o más computadoras u otros dispositivos generalmente, los módulos de programa incluyen, pero no se limitan a, rutinas, programas, objetos, componentes y estructuras de datos que realizan tareas particulares o implementan tipos de datos abstractos particulares. Los aspectos de la invención también pueden practicarse en ambientes de cómputo distribuidos en donde las tareas se realizan por dispositivos de procesamiento remoto que se enlazan a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden localizarse tanto en medios de almacenamiento por computadora local y remota que incluyen dispositivos de almacenamiento de memoria.
En operación, el sistema 400 ejecuta instrucciones ejecutables por computadora tal como aquellas ilustradas en las figuras, tal como Figura 8, para implementar aspectos de la invención. Por ejemplo, suponer que un usuario desea vender un vehículo como una "actividad de venta de carro". Al formular la actividad en un archivo y en cualquier formato, las modalidades de la invención son capaces de procesar dicha actividad de flujo de trabajo. Esta "actividad de venta de carro" puede incluir uno o más artículos de trabajo tales como: anunciar la venta en línea; anunciar la venta a través de estaciones de radio; anunciar la venta a través de la sección clasificada de un periódico; y anunciar la venta poniendo un aviso o señal de "se vende" en la ventana del vehículo. La actividad también proporciona que, una vez que el usuario acepta una oferta de cualquier fuente, el usuario debe cancelar el anuncio para evitar recibir y/o aceptar múltiples ofertas. Por ejemplo, suponer que el usuario recibe y acepta una oferta de alguien que vio el anuncio colocado en línea. El articulo de trabajo de "anuncia la venta en línea" es transitado al estado cerrado, activando una notificación a todos los otros artículos de trabajo actualmente en el estado de ejecución. Las modalidades de la invención además pueden solicitar al usuario que indique si cualquiera de las operaciones de pos-cancelación pueden ser realizadas, tal como "notificar al periódico", "notificar a compradores indecisos y potenciales", "retirar el anuncio en línea", o similares Como tal, la actividad finalmente es transitada al estado cerrado, terminando la "actividad de venta de carro" en una forma declarativa.
El orden de ejecución o desempeño de las operaciones en las modalidades de la invención ilustradas y descritas aquí no es esencial, al menos que se especifique de otra forma. Es decir, las operaciones pueden realizarse en cualquier orden, a menos que se especifique de otra forma, y las modalidades de la invención pueden incluir operaciones adicionales o menores que aquellas descritas aquí. Por ejemplo, se contempla que ejecutar o realizar una operación particular antes, contemporáneamente con, o después de otra operación está dentro del alcance de aspectos de la invención. Las modalidades de la invención pueden implementarse con instrucciones ejecutables por computadora. Las instrucciones ejecutables por computadora pueden organizarse en uno o más componentes o módulos ejecutables por computadora. Los aspectos de la invención pueden implementarse con cualquier número y organización de tales componentes o módulos. Por ejemplo, los aspectos de la invención no se limitan a las instrucciones ejecutables por computadora específicas o los componentes o módulos específicos ilustrados en la figuras y descritos aquí. Otras modalidades de la invención pueden incluir diferentes instrucciones o componentes ejecutables por computadora que tienen más o menos funcionalidad que la ilustrada y descrita aquí. Cuando se introducen elementos de aspectos de la invención a las modalidades de los mismos, los artículos "un", "uno", "el", y "dicho" pretende significar que existen uno o más de los elementos.
Los términos "que comprenden", "que incluye", y "que tiene" pretenden ser inclusivos y significar que puede haber elementos adicionales diferentes a los elementos enlistados. Al haber descrito aspectos de la invención en detalle, será evidente que son posibles modificaciones y variaciones sin apartarse del alcance de aspectos de la invención como se definió en las reivindicaciones anexas. Mientras pueden hacerse varios cambios en las construcciones, productos, y métodos anteriores sin apartarse del alcance de aspectos de la invención, se pretende que todo el tema contenido en la descripción anterior y mostrado en los dibujos anexos debe interpretarse como ilustrativo y no en un sentido limitante.
Claims (16)
1.- Un método para declarati amente cancelar una actividad (406) en un programa céntrico de procedimiento, dicho método comprende: definir un autómata de estado (600) para la actividad (406), dicho autómata de estado (600) incluyendo un estado de ejecución (604), un estado de cancelación (606), y un estado cerrado (612), dicho autómata de estado (600) clasificando un tiempo de vida de ejecución de la actividad (406); definir la actividad (406) para incluir la pluralidad de artículos de trabajo (422), dicha actividad definida (406) organizando la pluralidad de artículos de trabajo (422) en una estructura jerárquica de ejecución (500), cada uno de los artículos de trabajo (422) incluyendo un método para ejecutar una porción de la actividad (406); hacer transitar la pluralidad de artículos de trabajo (422) del estado de ejecución (604) al estado cerrado (612), dicho estado cerrado (612) indicando un término de ejecución de la actividad (406); después de haber hecho transitar uno de los artículos de trabajo (422) hacia el estado cerrado (612), transmitir una solicitud de cancelación (722) a uno o más de los artículos de trabajo (422) actualmente en el estado de ejecución (604); identificar uno o más artículos de trabajo (422) en el estado de ejecución (604) como una función de la solicitud de cancelación transmitida (722) y la estructura jerárquica de ejecución (500) de la actividad definida (406); y cancelar el tiempo de vida de ejecución de la actividad (406) al hacer transitar uno o más de los artículos de trabajo identificados (422) del estado de ejecución (604) al estado de cancelación (606).
2. - El método de acuerdo con la rei indicación 1, que además comprende transitar uno o más de los artículos de trabajo (422) del estado de cancelación (606) al estado cerrado (612) en respuesta a cancelar el tiempo de vida de ejecución de la actividad (406).
3. - El método de acuerdo con la reivindicación 1, que además comprende proporcionar un grupo de operaciones de pos-cancelación a un usuario (430) en respuesta a cancelar el tiempo de vida de ejecución de la actividad (406).
4.- El método de acuerdo con la reivindicación 1. en donde la identificación de uno o más de los artículos de trabajo (422) comprende poner en una fila los artículos de trabajo (422) a una fila de programador (714).
5. - El método de acuerdo con la reivindicación 1, en donde la cancelación comprende sacar de la fila los artículos de trabajo (422) de la fila de programador (714) al estado de cancelación (606).
6. - El método de acuerdo con la reivindicación 1, en donde la estructura jerárquica de ejecución (500) comprende una estructura de árbol, y en donde la identificación de uno o más de los artículos de trabajo (422) comprende identificar uno o más de los artículos de trabajo (422) en el estado de ejecución atravesando la estructura de árbol de un nivel inferior en la estructura de árbol a un nivel superior en la estructura de árbol.
7. - El método de acuerdo con la reivindicación 1, en donde uno o más medios legibles por computadora tienen instrucciones ejecutables por computadora para realizar el método de la reivindicación 1.
8. - Un sistema (400) para cancelar declarativamente una actividad (406) en un programa céntrico de procedimiento, dicho sistema comprende: un área de memoria (404) para almacenar datos asociados con los artículos de trabajo (422) de la actividad (406), dicha actividad (406) organizando los artículos de trabajo en una secuencia de ejecución (500); un procesador (402) configurado para ejecutar instrucciones ejecutables por computadora para: definir un autómata de estado (600) para la actividad (406), dicho autómata de estado (600) incluyendo un estado de ejecución (604), un estado de cancelación (606), y un estado cerrado (612), dicho autómata de estado (600) clasificando un tiempo de vida de ejecución de la actividad (406); definir la actividad (406) para incluir los artículos de trabajo (422); hacer transitar los artículos de trabajo (422) del estado de ejecución (604) al estado cerrado (612), dicho estado cerrado (612) indicando un término de ejecución de la actividad (406); después de haber hecho transitar uno de los artículos de trabajo (422) al estado cerrado (612), transmitir una solicitud de cancelación (722) a uno o más de los artículos de trabajo (422) actualmente en el estado de ejecución (604); identificar uno o más artículos de trabajo (422) en el estado de ejecución (604) como una función de la solicitud de cancelación transmitida (722) y la secuencia de ejecución (500) de la actividad definida (406); y cancelar el tiempo de vida de ejecución de la actividad (406) haciendo transitar uno o más de los artículos de trabajo (422) del estado de ejecución (604) al estado de cancelación (606).
9. - El sistema (400) de acuerdo con la reivindicación 8, que además comprende medios para hacer transitar uno o más de los artículos de trabajo (422) del estado de cancelación (606) al estado cerrado (612) en respuesta al tiempo de vida de ejecución cancelada de la actividad (406).
10. - El sistema (400) de acuerdo con la reivindicación 8, que además comprende medios para proporcionar un grupo de operaciones de pos-cancelación a un usuario (430) en respuesta a la cancelación del tiempo de vida de ejecución de la actividad (406).
11. - El sistema (400) de acuerdo con la reivindicación 8, en donde el procesador (402) está configurado para identificar uno o más de los artículos de trabajo (422) comprende poner en una fila los artículos de trabajo (422) en una fila de programador (714) en el área de memoria (404).
12. - El sistema (400) de acuerdo con la reivindicación 8, en donde el procesador (402) está configurado para sacar de la fila los artículos de trabajo (422) de la fila de programador (714) al estado de cancelación (606) en respuesta al tiempo de vida de ejecución cancelado de la actividad (406).
13. - El sistema (400) de acuerdo con la reivindicación 8, en donde la secuencia de ejecución (500) comprende una estructura de árbol, y en donde el procesador (402) está configurado para identificar uno o más de los artículos de trabajo (422) atravesando la estructura de árbol de un nivel inferior en la estructura de árbol a un nivel superior en la estructura de árbol.
14. - El sistema (400) de acuerdo con la reivindicación 8, que además comprende medios para remover datos asociados con los artículos de trabajo (422) del área de memoria (404) como una función del tiempo de vida de ejecución cancelado de la actividad (406).
15. - Uno o más medios legibles por computadora (900) que tienen componentes ejecutables por computadora para cancelar declarativamente una actividad (406) en un programa céntrico de procedimiento, dichos componentes ejecutables por computadora comprenden : una máquina de estado (902) para definir un autómata de estado (600) para la actividad (406), dicho autómata de estado (600) incluyendo un estado de ejecución (604), un estado de cancelación (606), y un estado cerrado (612), dicho autómata de estado (600) clasificando un tiempo de vida de ejecución de la actividad (422); un componente de actividad (904) para definir la actividad (406) para incluir la pluralidad de artículos de trabajo (422), dicha actividad definida (406) organizando la pluralidad de artículos de trabajo (422) en una secuencia de ejecución (500), cada uno de los artículos (422) incluyendo un método para ejecutar una porción de la actividad (406); un componente de programador (906) para transitar los artículos de trabajo (422) del estado de ejecución (604) al estado cerrado (612), dicho estado cerrado (612) indicando un término de ejecución de la actividad (406); un componente de mensaje (908), en respuesta a uno de los artículos de trabajo (422) que se hacen transitar al estado cerrado (612), para transmitir una solicitud de cancelación (722) a uno o más de los artículos de trabajo (422) actualmente en el estado de ejecución (604) ; un controlador de cancelación (910) para identificar uno o más artículos de trabajo (422) en el estado de ejecución (604) como una función de la solicitud de cancelación transmitida (722) y la secuencia de ejecución (500) de la actividad definida poniendo en una fila los artículos de trabajo identificados (422) en una fila (714); y un componente de ejecución (912) para cancelar el tiempo de vida de ejecución de la actividad (406) al hacer transitar uno o más de los artículos de trabajo (422) del estado de ejecución (604) al estado de cancelación (606).
16.- Los medios legibles por computadora (900) de acuerdo con la reivindicación 15, en donde el componente programador (906) está configurado para la transición de uno o más de los artículos de trabajo identificados (422) del estado de cancelación (606) al estado cerrado (612). 17 - Los medios legibles por computadora (900) de acuerdo con la reivindicación 15, que además comprende una interfase de usuario (Ul) (428) para proporcionar un grupo de operaciones de pos-cancelación a un usuario (430) en respuesta a cancelar el tiempo de vida de ejecución de la actividad (406). 18. - Los medios legibles por computadora (900) de acuerdo con la reivindicación 15, en donde el controlador de cancelación (910) está configurado para sacar de la fila a los artículos de trabajo (406) de la fila (714) al estado de cancelación (606). 19. - Los medios legibles por computadora (900) de acuerdo con la reivindicación 15, en donde la secuencia de ejecución (500) comprende una estructura de árbol, y en donde el controlador de cancelación (910) está configurado para identificar uno o más de los artículos de trabajo (422) atravesando la estructura de árbol de un nivel inferior en la estructura de árbol a un nivel superior en la estructura de árbol. 20. - Los medios legibles por computadora (900) de acuerdo con la reivindicación 15, que además comprende un componente de limpieza (912) para remover datos asociados con la ejecución de los artículos de trabajo (422) como una función de la cancelación del tiempo de vida de ejecución (406) a través del componente de ejecución (910).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/393,357 US20070239498A1 (en) | 2006-03-30 | 2006-03-30 | Framework for modeling cancellation for process-centric programs |
PCT/US2007/004639 WO2007117365A1 (en) | 2006-03-30 | 2007-02-21 | Framework for modeling cancellation for process-centric programs |
Publications (1)
Publication Number | Publication Date |
---|---|
MX2008011909A true MX2008011909A (es) | 2008-09-29 |
Family
ID=38576575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MX2008011909A MX2008011909A (es) | 2006-03-30 | 2007-02-21 | Estructura de trabajo para modelar cancelacion para programas centricos de procedimiento. |
Country Status (11)
Country | Link |
---|---|
US (1) | US20070239498A1 (es) |
EP (1) | EP2013715A4 (es) |
JP (1) | JP2009532759A (es) |
KR (1) | KR20080106560A (es) |
CN (1) | CN101416158A (es) |
AU (1) | AU2007235542A1 (es) |
BR (1) | BRPI0709182A2 (es) |
CA (1) | CA2644336A1 (es) |
MX (1) | MX2008011909A (es) |
RU (1) | RU2008138715A (es) |
WO (1) | WO2007117365A1 (es) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170200228A1 (en) * | 2004-09-22 | 2017-07-13 | Fmr Llc | Multichannel Exchange Mechanism Apparatuses, Methods and Systems |
GB2423382A (en) | 2005-01-27 | 2006-08-23 | Microgen Plc | Generating business process programs using a symbolic representation of operators in a graphical interface |
US20060288332A1 (en) * | 2005-06-21 | 2006-12-21 | Microsoft Corporation | Workflow debugger |
US8849691B2 (en) | 2005-12-29 | 2014-09-30 | Microsoft Corporation | Modeling user input and interaction in workflow based applications |
US7739135B2 (en) * | 2006-03-30 | 2010-06-15 | Microsoft Corporation | Asynchronous fault handling in process-centric programs |
US20080040702A1 (en) * | 2006-04-10 | 2008-02-14 | Tibco Software Inc. | Nonlinear workflow assembly for visual programming |
US8108868B2 (en) * | 2007-12-18 | 2012-01-31 | Microsoft Corporation | Workflow execution plans through completion condition critical path analysis |
US8181155B2 (en) * | 2008-02-29 | 2012-05-15 | Microsoft Corporation | Unified expression and location framework |
US9043749B2 (en) * | 2008-06-16 | 2015-05-26 | Microsoft Technology Licensing, Llc | Unified and extensible asynchronous and synchronous cancelation |
US9354847B2 (en) | 2008-12-29 | 2016-05-31 | Microsoft Technology Licensing, Llc | Interface infrastructure for a continuation based runtime |
US8307368B2 (en) * | 2009-05-26 | 2012-11-06 | Microsoft Corporation | Locality-based scheduling in continuation-based runtimes |
US8732596B2 (en) * | 2009-12-29 | 2014-05-20 | Microgen Aptitude Limited | Transformation of hierarchical data formats using graphical rules |
US9536264B2 (en) | 2011-11-14 | 2017-01-03 | Microsoft Technology Licensing, Llc | Host agnostic messaging in a continuation based runtime |
US8869107B2 (en) * | 2012-01-12 | 2014-10-21 | Microsoft Corporation | Declarative dynamic control flow in continuation-based runtime |
US9390135B2 (en) * | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
WO2023153491A1 (ja) * | 2022-02-10 | 2023-08-17 | Ibc一番町弁理士法人 | プロセス実行システム、データ構造、およびプロセス実行プログラム |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220668A (en) * | 1990-09-21 | 1993-06-15 | Stratus Computer, Inc. | Digital data processor with maintenance and diagnostic system |
US5301320A (en) * | 1991-06-28 | 1994-04-05 | Digital Equipment Corporation | Workflow management and control system |
US5432933A (en) * | 1992-10-27 | 1995-07-11 | Bmc Software, Inc. | Method of canceling a DB2 thread |
AU6133594A (en) * | 1993-02-08 | 1994-08-29 | Action Technologies, Inc. | Method and apparatus for managing business processes |
US5734837A (en) * | 1994-01-14 | 1998-03-31 | Action Technologies, Inc. | Method and apparatus for building business process applications in terms of its workflows |
US5634127A (en) * | 1994-11-30 | 1997-05-27 | International Business Machines Corporation | Methods and apparatus for implementing a message driven processor in a client-server environment |
US5774661A (en) * | 1995-04-18 | 1998-06-30 | Network Imaging Corporation | Rule engine interface for a visual workflow builder |
US5784613A (en) * | 1995-09-12 | 1998-07-21 | International Busines Machines Corporation | Exception support mechanism for a threads-based operating system |
WO1997023837A2 (en) * | 1995-12-22 | 1997-07-03 | Xerox Corporation | Process support using system and user states |
DE19712946A1 (de) * | 1996-05-30 | 1997-12-04 | Ibm | Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells |
US20020046072A1 (en) * | 1996-06-18 | 2002-04-18 | Toshikatsu Arai | Workflow system |
US5930512A (en) * | 1996-10-18 | 1999-07-27 | International Business Machines Corporation | Method and apparatus for building and running workflow process models using a hypertext markup language |
GB9623954D0 (en) * | 1996-11-15 | 1997-01-08 | Xerox Corp | Systems and methods providing flexible representations of work |
US6014673A (en) * | 1996-12-05 | 2000-01-11 | Hewlett-Packard Company | Simultaneous use of database and durable store in work flow and process flow systems |
US6041306A (en) * | 1996-12-05 | 2000-03-21 | Hewlett-Packard Company | System and method for performing flexible workflow process execution in a distributed workflow management system |
US5870545A (en) * | 1996-12-05 | 1999-02-09 | Hewlett-Packard Company | System and method for performing flexible workflow process compensation in a distributed workflow management system |
US6158044A (en) * | 1997-05-21 | 2000-12-05 | Epropose, Inc. | Proposal based architecture system |
US6016394A (en) * | 1997-09-17 | 2000-01-18 | Tenfold Corporation | Method and system for database application software creation requiring minimal programming |
US6807583B2 (en) * | 1997-09-24 | 2004-10-19 | Carleton University | Method of determining causal connections between events recorded during process execution |
US6393465B2 (en) * | 1997-11-25 | 2002-05-21 | Nixmail Corporation | Junk electronic mail detector and eliminator |
US6225998B1 (en) * | 1997-12-02 | 2001-05-01 | Aspect Communications | Visual design of workflows for transaction processing |
US6115646A (en) * | 1997-12-18 | 2000-09-05 | Nortel Networks Limited | Dynamic and generic process automation system |
US6078982A (en) * | 1998-03-24 | 2000-06-20 | Hewlett-Packard Company | Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system |
US6430538B1 (en) * | 1998-04-30 | 2002-08-06 | Enterworks | Workflow management system, method and medium with personal subflows |
US6567783B1 (en) * | 1998-06-05 | 2003-05-20 | I2 Technologies Us, Inc. | Communication across one or more enterprise boundaries regarding the occurrence of a workflow event |
US6397192B1 (en) * | 1998-06-05 | 2002-05-28 | I2 Technologies Us, Inc. | Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic |
JP2003528358A (ja) * | 1998-08-24 | 2003-09-24 | 富士通株式会社 | ワークフローシステムおよび方法 |
US6606740B1 (en) * | 1998-10-05 | 2003-08-12 | American Management Systems, Inc. | Development framework for case and workflow systems |
US6279009B1 (en) * | 1998-12-04 | 2001-08-21 | Impresse Corporation | Dynamic creation of workflows from deterministic models of real world processes |
US6842853B1 (en) * | 1999-01-13 | 2005-01-11 | Sun Microsystems, Inc. | Thread suspension system and method |
US6519595B1 (en) * | 1999-03-02 | 2003-02-11 | Nms Communications, Inc. | Admission control, queue management, and shaping/scheduling for flows |
US6678882B1 (en) * | 1999-06-30 | 2004-01-13 | Qwest Communications International Inc. | Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse |
US6405364B1 (en) * | 1999-08-31 | 2002-06-11 | Accenture Llp | Building techniques in a development architecture framework |
US20020029248A1 (en) * | 2000-03-17 | 2002-03-07 | Cook Jon L. | Method and systems for providing a secure electronic mailbox |
US6918053B1 (en) * | 2000-04-28 | 2005-07-12 | Microsoft Corporation | Compensation framework for long running transactions |
US6799208B1 (en) * | 2000-05-02 | 2004-09-28 | Microsoft Corporation | Resource manager architecture |
US6845507B2 (en) * | 2000-05-18 | 2005-01-18 | Ss & C Technologies, Inc. | Method and system for straight through processing |
AU2001269886A1 (en) * | 2000-06-15 | 2002-01-14 | Xis Incorporated | Method and system for product lifecycle management |
US20020032692A1 (en) * | 2000-09-08 | 2002-03-14 | Atsuhito Suzuki | Workflow management method and workflow management system of controlling workflow process |
US6604104B1 (en) * | 2000-10-02 | 2003-08-05 | Sbi Scient Inc. | System and process for managing data within an operational data store |
AU2002211405A1 (en) * | 2000-10-02 | 2002-04-15 | International Projects Consultancy Services, Inc. | Object-based workflow system and method |
US7653566B2 (en) * | 2000-11-30 | 2010-01-26 | Handysoft Global Corporation | Systems and methods for automating a process of business decision making and workflow |
US20020073129A1 (en) * | 2000-12-04 | 2002-06-13 | Yu-Chung Wang | Integrated multi-component scheduler for operating systems |
US7917888B2 (en) * | 2001-01-22 | 2011-03-29 | Symbol Technologies, Inc. | System and method for building multi-modal and multi-channel applications |
US7240324B2 (en) * | 2001-02-28 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Event-based scheduling method and system for workflow activities |
US20020147606A1 (en) * | 2001-03-14 | 2002-10-10 | Norbert Hoffmann | Application development method |
US6910209B2 (en) * | 2001-04-30 | 2005-06-21 | Sun Microsystems, Inc. | Clean thread termination |
US7089561B2 (en) * | 2001-06-01 | 2006-08-08 | Microsoft Corporation | Methods and systems for creating and communicating with computer processes |
US20020188644A1 (en) * | 2001-06-08 | 2002-12-12 | Verano | Workflow automated task component manager |
US7069536B2 (en) * | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US6898604B1 (en) * | 2001-06-29 | 2005-05-24 | Microsoft Corporation | XML serialization and deserialization |
US20030018508A1 (en) * | 2001-07-19 | 2003-01-23 | Schwanke Robert W. | Data-triggered workflow processes |
WO2003014927A2 (en) * | 2001-08-08 | 2003-02-20 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
US6895573B2 (en) * | 2001-10-26 | 2005-05-17 | Resultmaker A/S | Method for generating a workflow on a computer, and a computer system adapted for performing the method |
US20030177046A1 (en) * | 2001-12-03 | 2003-09-18 | John Socha-Leialoha | Method and system for reusing components |
US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7089287B2 (en) * | 2002-01-16 | 2006-08-08 | Xerox Corporation | Message-based system having embedded information management capabilities |
US20030144891A1 (en) * | 2002-01-26 | 2003-07-31 | International Business Machines Corporation | Supervising the processing status of activities within workflow management systems |
US7865867B2 (en) * | 2002-03-08 | 2011-01-04 | Agile Software Corporation | System and method for managing and monitoring multiple workflows |
US20030233374A1 (en) * | 2002-03-14 | 2003-12-18 | Ulrich Spinola | Dynamic workflow process |
US20030195762A1 (en) * | 2002-04-12 | 2003-10-16 | David Gleason | Automated workflow |
WO2003089995A2 (en) * | 2002-04-15 | 2003-10-30 | Invensys Systems, Inc. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution |
US7519976B2 (en) * | 2002-05-01 | 2009-04-14 | Bea Systems, Inc. | Collaborative business plug-in framework |
US8924484B2 (en) * | 2002-07-16 | 2014-12-30 | Sonicwall, Inc. | Active e-mail filter with challenge-response |
US6889231B1 (en) * | 2002-08-01 | 2005-05-03 | Oracle International Corporation | Asynchronous information sharing system |
US20040078105A1 (en) * | 2002-09-03 | 2004-04-22 | Charles Moon | System and method for workflow process management |
US7398525B2 (en) * | 2002-10-21 | 2008-07-08 | International Business Machines Corporation | Resource scheduling in workflow management systems |
US20040148213A1 (en) * | 2002-11-25 | 2004-07-29 | Microsoft Corporation | Automated workflow constraints |
US7062537B2 (en) * | 2002-11-25 | 2006-06-13 | Microsoft Corporation | Workflow services architecture |
US7272820B2 (en) * | 2002-12-12 | 2007-09-18 | Extrapoles Pty Limited | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity |
US7168077B2 (en) * | 2003-01-31 | 2007-01-23 | Handysoft Corporation | System and method of executing and controlling workflow processes |
US20040162741A1 (en) * | 2003-02-07 | 2004-08-19 | David Flaxer | Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference |
CA2420479A1 (en) * | 2003-02-13 | 2004-08-13 | Ibm Canada Limited - Ibm Canada Limitee | Flow debugging software and method |
WO2004081878A1 (en) * | 2003-03-11 | 2004-09-23 | National University Of Singapore | Method and apparatus for generating morphing sequence |
US7885847B2 (en) * | 2003-05-07 | 2011-02-08 | Sap Ag | End user oriented workflow approach including structured processing of ad hoc workflows with a collaborative process engine |
US7590695B2 (en) * | 2003-05-09 | 2009-09-15 | Aol Llc | Managing electronic messages |
US7415699B2 (en) * | 2003-06-27 | 2008-08-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling execution of a child process generated by a modified parent process |
US8645420B2 (en) * | 2003-08-05 | 2014-02-04 | Accenture Global Services Limited | Methodology framework and delivery vehicle |
CA2443454A1 (en) * | 2003-09-11 | 2005-03-11 | Teamplate Inc. | Data binding method in workflow system |
US20050066149A1 (en) * | 2003-09-22 | 2005-03-24 | Codito Technologies Private Limited | Method and system for multithreaded processing using errands |
CA2442796A1 (en) * | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Binding a workflow engine to a data model |
ES2328924T3 (es) * | 2003-10-15 | 2009-11-19 | Canon Kabushiki Kaisha | Previsualizacion y revision selectiva de documentos o esquemas que contienen datos variables. |
US7548334B2 (en) * | 2003-10-15 | 2009-06-16 | Canon Kabushiki Kaisha | User interface for creation and editing of variable data documents |
US7554689B2 (en) * | 2003-10-15 | 2009-06-30 | Canon Kabushiki Kaisha | Document layout method |
US7137033B2 (en) * | 2003-11-20 | 2006-11-14 | International Business Machines Corporation | Method, system, and program for synchronizing subtasks using sequence numbers |
US20050289530A1 (en) * | 2004-06-29 | 2005-12-29 | Robison Arch D | Scheduling of instructions in program compilation |
US7890734B2 (en) * | 2004-06-30 | 2011-02-15 | Open Computing Trust I & II | Mechanism for selecting instructions for execution in a multithreaded processor |
JP4287799B2 (ja) * | 2004-07-29 | 2009-07-01 | 富士通株式会社 | プロセッサシステムおよびスレッド切り替え制御方法 |
US20060069596A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow hosting computing system using a collaborative application |
US20060069605A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow association in a collaborative application |
US7451432B2 (en) * | 2004-10-01 | 2008-11-11 | Microsoft Corporation | Transformation of componentized and extensible workflow to a declarative format |
US20060074704A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Framework to model cross-cutting behavioral concerns in the workflow domain |
US7464366B2 (en) * | 2004-10-01 | 2008-12-09 | Microsoft Corporation | Programming interface for a componentized and extensible workflow model |
GB0427133D0 (en) * | 2004-12-10 | 2005-01-12 | British Telecomm | Workflow scheduler |
US7493594B2 (en) * | 2005-03-14 | 2009-02-17 | Research In Motion | System and method for designing component based applications |
US7415049B2 (en) * | 2005-03-28 | 2008-08-19 | Axsun Technologies, Inc. | Laser with tilted multi spatial mode resonator tuning element |
US20090299766A1 (en) * | 2008-05-30 | 2009-12-03 | International Business Machines Corporation | System and method for optimizing medical treatment planning and support in difficult situations subject to multiple constraints and uncertainties |
-
2006
- 2006-03-30 US US11/393,357 patent/US20070239498A1/en not_active Abandoned
-
2007
- 2007-02-21 CN CNA2007800123635A patent/CN101416158A/zh active Pending
- 2007-02-21 AU AU2007235542A patent/AU2007235542A1/en not_active Abandoned
- 2007-02-21 MX MX2008011909A patent/MX2008011909A/es not_active Application Discontinuation
- 2007-02-21 JP JP2009502790A patent/JP2009532759A/ja active Pending
- 2007-02-21 CA CA002644336A patent/CA2644336A1/en not_active Abandoned
- 2007-02-21 WO PCT/US2007/004639 patent/WO2007117365A1/en active Application Filing
- 2007-02-21 EP EP07751405A patent/EP2013715A4/en not_active Withdrawn
- 2007-02-21 RU RU2008138715/09A patent/RU2008138715A/ru not_active Application Discontinuation
- 2007-02-21 BR BRPI0709182-6A patent/BRPI0709182A2/pt not_active Application Discontinuation
- 2007-02-21 KR KR1020087023828A patent/KR20080106560A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
AU2007235542A1 (en) | 2007-10-18 |
WO2007117365A1 (en) | 2007-10-18 |
EP2013715A4 (en) | 2009-06-24 |
JP2009532759A (ja) | 2009-09-10 |
BRPI0709182A2 (pt) | 2011-06-28 |
EP2013715A1 (en) | 2009-01-14 |
CN101416158A (zh) | 2009-04-22 |
US20070239498A1 (en) | 2007-10-11 |
RU2008138715A (ru) | 2010-04-10 |
KR20080106560A (ko) | 2008-12-08 |
CA2644336A1 (en) | 2007-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
MX2008011909A (es) | Estructura de trabajo para modelar cancelacion para programas centricos de procedimiento. | |
US7739135B2 (en) | Asynchronous fault handling in process-centric programs | |
US8069439B2 (en) | Framework for modeling continuations in workflows | |
US8024405B2 (en) | Declarative model for concurrency-control across lightweight threads | |
US20070239505A1 (en) | Abstract execution model for a continuation-based meta-runtime | |
US20060229923A1 (en) | Definition of workflow patterns using complex event processing | |
La Rosa et al. | Variability modeling for questionnaire-based system configuration | |
La Rosa et al. | Generating Interactive Questionnaires From Configuration Models | |
La Rosa et al. | Copyright 2007 the authors Accessed from http://eprints. qut. edu. au |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FA | Abandonment or withdrawal |