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
Application number
MX2008011909A
Other languages
English (en)
Inventor
Mayank Mehta
Akash J Sagar
Dharma Shukla
Bob Schmidt
Karthik Raman
Nathan Talbert
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2008011909A publication Critical patent/MX2008011909A/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/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow 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)

REIVINDICACIONES
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).
MX2008011909A 2006-03-30 2007-02-21 Estructura de trabajo para modelar cancelacion para programas centricos de procedimiento. MX2008011909A (es)

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)

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

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

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