BRPI0709182A2 - estrutura para modelagem de cancelamento para programas centralizados em processo - Google Patents

estrutura para modelagem de cancelamento para programas centralizados em processo Download PDF

Info

Publication number
BRPI0709182A2
BRPI0709182A2 BRPI0709182-6A BRPI0709182A BRPI0709182A2 BR PI0709182 A2 BRPI0709182 A2 BR PI0709182A2 BR PI0709182 A BRPI0709182 A BR PI0709182A BR PI0709182 A2 BRPI0709182 A2 BR PI0709182A2
Authority
BR
Brazil
Prior art keywords
state
activity
execution
work items
cancellation
Prior art date
Application number
BRPI0709182-6A
Other languages
English (en)
Inventor
Dharma Shukla
Bob Schmidt
Mayank Mehta
Karthik Reman
Nathan Talbert
Akash J Sagar
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 BRPI0709182A2 publication Critical patent/BRPI0709182A2/pt

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

ESTRUTURA PARA MODELAGEM DE CANCELAMENTO PARA PROGRAMAS CENTRALIZADOS EM PROCESSO. é divulgado o cancelamento declarativo da execução de uma atividade. é definido um autómato de estado para uma atividade, e o autómato de estado inclui um estado de execução, um estado de cancelamento e um estado encerrado, e classifica uma vida útil de execução da atividade. A atividade inclui itens de trabalho e organiza os itens de trabalho em uma estrutura hierárquica de execução. Os itens de trabalho são transicionados do estado de execução até o estado encerrado indicando uma conclusão da execução de cada item de trabalho da atividade. Mediante um dos itens de trabalho ser transicionado até o estado encerrado, uma solicitação de cancelamento é transmitida até os itens de trabalho atualmente no estado de execução. Os itens de trabalho em execução são identificados em função da solicitação de cancelamento transmitida e da estrutura hierárquica de execução da atividade definida. A vida útil de execução da atividade é cancelada pela transição dos itens de trabalho identificados do estado de execução até o estado de cancelamento.

Description

"ESTRUTURA PARA MODELAGEM DE CANCELAMENTO PARA PROGRAMASCENTRALIZADOS EM PROCESSO"
ANTECEDENTES DA INVENÇÃO
Programas orientados a processo ou centralizados em processo têm evoluído parahabilitar o processamento de instruções complexas que modelam interações do mundo realentre agentes autônomos. Programas centralizados em processo se espelham emprocessos do mundo e real e se espelham em interações entre entidades do mundo real.Sistemas existentes tentam mapear problemas empresariais em fluxos de trabalho de altonível pela modelagem do problema empresarial. Entretanto, fluxos de trabalho do mundoreal variam em uma multiplicidade de dimensões, tais como, (a) complexidade de execuçãoe de modelagem, (b) conhecimento da estrutura do fluxo no momento do projeto, (c)estaticamente definido ou ad-hoc / dinâmico, (d) facilidade da autoria e da edição do fluxoem vários pontos no seu ciclo de vida e (e) fraca ou forte associação da lógica empresarialcom o processo central do fluxo de trabalho. Modelos existentes deixam de conciliar estesfatores.
Adicionalmente, a maior parte dos modelos de fluxo de trabalho existentes tembase tanto em abordagens com base em linguagem (por exemplo, BPEL4WS, XLANG/S eWSFL) quanto em abordagens com base em aplicação. Abordagens com base emlinguagem são linguagens de fluxo de trabalho de alto nível com um conjunto fechado deconstruções pré-definidas que ajudam a modelar o processo do fluxo de trabalho para ousuário / programador. As linguagens de fluxo de trabalho portam toda a informaçãosemântica para o conjunto fechado de construções para habilitar o usuário a construir ummodelo de fluxo de trabalho. Entretanto, as linguagens não são extensíveis pelosdesenvolvedores e representam um conjunto fechado de elementos básicos que constitui omodelo do fluxo de trabalho. As linguagens são amarradas ao compilador da linguagemembarcado pelo revendedor do sistema de fluxo de trabalho. Somente o revendedor doproduto do sistema de fluxo de trabalho pode estender o modelo pela extensão dalinguagem com um conjunto inédito de construções em uma versão futura do produto.Freqüentemente, isto exige atualização do compilador associado com a linguagem. Além domais, usualmente, as linguagens não expõem ou definem declarativamente funções ouoperações que podem ser usadas de forma fácil e eficiente por outros programas.
Abordagens com base em aplicação são aplicações que têm capacidades de fluxode trabalho na aplicação para resolver um problema específico de domínio. Estas aplicaçõesnão são verdadeiramente extensíveis nem têm um modelo programável.
Além do mais, com as abordagens existentes, as questões de complexidade, deconhecimento prévio, de fluxos de trabalho dinâmicos, de facilidade de autoria e de força deassociações com a lógica empresarial e com fluxos de trabalho centrais não sãoadequadamente abordadas. Não há estruturas projetistas de fluxo de trabalho extensíveis,customizáveis e ré-hospedáveis disponíveis para construir projetistas de fluxo de trabalhovisual para modelar diferentes classes de fluxos de trabalho. Sistemas existentes carecemde uma experiência de projeto de fluxo de trabalho no estilo rápido desenvolvimento deaplicação (RAD)1 que permite que usuários projetem graficamente o processo do fluxo detrabalho e associem a lógica empresarial em uma linguagem de programação da escolha dodesenvolvedor.
Também, os processos de fluxo de trabalho lidam com preocupações de atalhoortogonal e confuso que abrangem múltiplas etapas de um modelo de processo de fluxo detrabalho. Por exemplo, embora partes dos processos de fluxo de trabalho sejam projetadaspara participar de transações de longo prazo, outras partes do mesmo processo sãoprojetadas para execução concorrente ou para acessar um recurso compartilhado. Emfunção das deficiências de projeto, sistemas existentes deixam de fornecer intercalação daslinhas de execução que habilitam usuários a projetar execução síncrona ou intercalada dasatividades. Ainda outras partes do mesmo processo de fluxo de trabalho exigemrastreamento, embora outras partes tratem de exceções em nível empresarial ou daaplicação. Há uma necessidade de aplicar certos comportamentos a uma ou mais partes deum processo do fluxo de trabalho.
Algumas abordagens da modelagem do fluxo de trabalho são impraticáveis, já queelas exigem uma completa descrição com base no fluxo de todo o processo empresarial,incluindo todas as exceções e intervenções humanas. Algumas destas abordagensfornecem funcionalidade adicional à medida que as exceções surgem, embora outrasabordagens empreguem exclusivamente uma abordagem com base em restrição em vez deuma abordagem com base no fluxo para modelar um processo empresarial. Sistemasexistentes implementam tanto a abordagem com base no fluxo quanto a abordagem combase em restrição. Tais sistemas são muito inflexíveis para modelar muitas situaçõesempresariais comuns. Estes sistemas também carecem da capacidade de tratar de formaassíncrona exceções ou cancelamentos.
SUMÁRIO DA INVENÇÃO
Modalidades da invenção fornecem uma estrutura declarativa para modelar ocancelamento em programas pela definição de um estado de cancelamento em umautômato de estado. Além do mais, com o estado de cancelamento e outros aspectos dainvenção, desenvolvedores ou programas podem definir declarativamente e fornecer aosusuários o processamento de cancelamentos dos programas.
Além do mais, modalidades da invenção habilitam que atividades compostas (porexemplo, um grupo de atividades com uma estrutura hierárquica) cancelem a execução deuma ou mais atividades (por exemplo, atividades filhas em uma árvore de atividade).Também, o cancelamento que incorpora aspectos da invenção permite a modelagem deconclusão prematura em um programa e em fluxos de controle dinâmicos.
Este Sumário é fornecido para introduzir uma seleção de conceitos de uma formasimplificada que é adicionalmente descrita na seguinte Descrição Detalhada. Não pretende-se que este Sumário identifique recursos chaves ou recursos essenciais do assunto emquestão reivindicado, nem pretende-se que seja usado como um auxílio na determinação doescopo do assunto em questão reivindicado.
Outros recursos ficarão, em parte, aparentes e serão, em parte, salientados aseguir.
DESCRIÇÃO RESUMIDA DOS DESENHOS
A figura 1 é um diagrama de blocos que ilustra um paradigma de programaçãoexistente.
A figura 2 é um diagrama de blocos exemplar que ilustra uma virtualização de umaestrutura de projeto de fluxo de trabalho de acordo com uma modalidade da invenção.
A figura 3 é um diagrama exemplar que ilustra um fluxo de trabalho exemplar deacordo com uma modalidade da invenção.
A figura 4 é um diagrama que ilustra um ambiente de computação exemplar de umsistema para processar atividades de fluxo de trabalho de acordo com uma modalidade dainvenção.
A figura 5 é um diagrama que ilustra uma estrutura hierárquica de uma atividade dofluxo de trabalho de acordo com uma modalidade da invenção.
A figura 6 é um diagrama que ilustra um autômato de estado exemplar quedescreve estados de processamento dos itens de trabalho associados com uma atividadede acordo com uma modalidade da invenção.
As figuras 7A a 7E são diagramas de blocos que ilustram um cancelamentodeclarativo dos itens de trabalho de uma atividade de acordo com uma modalidade dainvenção.
A figura 8 é um fluxograma que ilustra um método para cancelar itens de trabalhode uma atividade de um fluxo de trabalho de acordo com uma modalidade da invenção.
A figura 9 é um diagrama de blocos que ilustra uma mídia legível por computadorexemplar na qual aspectos da invenção podem ser armazenados.
Caracteres de referência correspondentes indicam partes correspondentes portodos os desenhos.
DESCRIÇÃO DETALHADA
Primeiro, em relação à figura 1, um diagrama de blocos ilustra um paradigma deprogramação existente para projetar programas para atividades centralizadas em processo,tal como um fluxo de trabalho. Por exemplo, o diagrama mostra um modelo de virtualizaçãode três níveis do paradigma de programa existentecom um nível de um ambiente deexecução gerenciada sendo o nível mais superior, e uma unidade de processamento sendoo nível mais inferior. Neste sistema de projeto de programação, mesmo no nível doambiente de execução gerenciada, programas, especialmente programas centralizados emprocesso que tratam processos do fluxo de trabalho, carecem de capacidade e de eficiênciapara conciliar complexas interações entre os processos em um fluxo de trabalho.
Versados na técnica sabem que certas restrições estão associadas com softwareou programas de aplicação de projeto. Neste exemplo, na gravação de um programa desoftware do sistema operacional 104, os códigos ou rotinas de programação dependem dotipo ou da configuração das unidades de processamento 102, sendo específico, ao tipo dearquitetura computacional (por exemplo, compatível com IBM®, com computadoresAPPLE® ou com outros sistemas), ou de outras restrições. Além do mais, tipicamente,linguagens de programação precisam identificar e utilizar precisamente estruturas de dados,tais como pilhas, árvore binária, base de linha de execução ou outras estruturas específicasde hardware, para o sistema operacional 104 funcionar apropriadamente.
Ao lidar com complexos processos de fluxo de trabalho, aplicações existentes usamum conceito de um ambiente de execução gerenciada 106 (por exemplo, um ambiente detempo de execução em que programas podem compartilhar funções ou classes orientadas aobjetos comuns) nos quais programas escritos em uma linguagem de programação podemchamar funções em outros programas escritos em uma linguagem de programaçãodiferente. Em um ambiente de execução como este, estes programas em diferenteslinguagens de programação são compilados em uma linguagem intermediária de maneira talque o ambiente de execução gerenciada 106 possa expor parâmetros, argumentos ouesquemas ou funções a diferentes programas, para que os programas possam interagir unscom os outros.
Embora este ambiente de execução 106 crie um ambiente de comunicação comumentre programas, o ambiente de execução 106 inclui várias rígidas exigências que podemnão ser adequadas para tratar a complexidade e a capacidade dos programas centralizadosem processo. Por exemplo, o ambiente de execução 106 exige que programas sejamconfirmados em um formato de arquivo específico. O ambiente de execução 106 tambémexige que funções ou operações nos programas usem um conjunto fixo de funções ou umaclasse de funções definidos pelo ambiente de execução 106.
Modalidades da invenção construídas em uma fundação ou estrutura extensível202 da figura 2 superam as deficiências do modelo de programação existente. Pelapermissão de que programas sejam escritos em qualquer linguagem de programação ecompostos em qualquer formato de arquivo, aspectos da invenção habilitamdesenvolvedores de programa a projetar programas com funções específicas semcomprometer suas funcionalidades e especificidades. Pela definição das atividades, taiscomo tarefas ou processos do fluxo de trabalho, como a classe base a ser executada naestrutura do fluxo de trabalho, desenvolvedores podem construir de forma fácil e eficientecódigos de operação específicos de domínio (por exemplo, ambientes de execuçãoespecíficos, tais como programas na indústria da saúde, na indústria financeira oucongêneres) (doravante "op-code") sem se unir ao rígido, embutido em código, inflexível efixo conjunto de funções ou de classes de atividades no ambiente de execução existente.
Além do mais, a fundação do fluxo de trabalho que incorpora aspectos da invenção é umtempo de execução com base em continuação disposto em camadas no topo de todas asestruturas existentes (por exemplo, tanto um ambiente de execução gerenciada, umambiente de sistema operacional quanto um nível de unidade de processamento dehardware).
Aspectos da invenção liberam a restrição de definir atividades em um formato dearquivo em particular pela habilitação de projetos de fluxo de trabalho em qualquer maneiraou representação (por exemplo, um fluxograma, um diagrama, uma descrição numerada oucongêneres), contanto que as atividades no fluxo de trabalho possam ser construídas apartir da representação dos projetos do fluxo de trabalho.
A figura 3 ilustra uma vista simplista de um fluxo de trabalho 300 de acordo comuma modalidade da invenção. Por exemplo, o fluxo de trabalho 300 pode ser um fluxo detrabalho para processar uma ordem de compra, e este fluxo de trabalho 300 de ordem decompra pode incluir processos ou atividades tais como receber uma ordem de compra,transmitir confirmação a um cliente, aprovar a ordem de compra por um gerente oucongêneres. Adicionalmente, estas atividades podem ser seqüenciadas de maneira tal quealgumas possam ser realizadas ao mesmo tempo em que outras, embora algumas outraspossam ser realizadas somente mediante a conclusão das outras atividades.
O fluxo de trabalho 300 pode começar a partir de um ponto de início 302. Porexemplo, o ponto de início 302 para o fluxo de trabalho da ordem de compra pode serreceber uma ordem de um cliente. O fluxo de trabalho 300 também pode incluir umadeclaração condicional 304 (tais como uma "declaração SE" ou uma "declaraçãoENQUANTO"), e ele pode ser subdividido em declarações condicionais adicionais 306 e308. O fluxo de trabalho 300 também pode incluir uma estrutura paralela 310, que incluiadicionalmente uma ou mais seqüências ou atividades 312. Por exemplo, a estruturaparalela 310 inclui atividades, tais como verificar o inventário e atualizar os transportadoresdisponíveis, que podem ser processadas em paralelo. No exemplo mostrado, atividades, taiscomo "Transmitir Correio Eletrônico" e "Receber Aprovação", podem ser processadas emparalelo. Em "deixar atividades aqui" 316, um usuário pode adicionar ou complementaradicionalmente mais atividades no fluxo de trabalho 300. Para completar o fluxo de trabalho300, os processos ou atividades concluirão em uma etapa ou ponto de conclusão 314.
Em uma modalidade, as atividades podem ser hierarquicamente arranjadas emuma estrutura de árvore (veja figura 5) 500 ou em outras seqüências de execução. Porexemplo, uma atividade pode ser uma atividade composta na qual a atividade inclui mais deum item de trabalho associado a ela. Um método de atividade pode estar em um nó raiz 502com dois nós filhos ou folhas 504 e 506. Os métodos de atividade nos nós filhos 504 e 506(por exemplo, work item_1 e work item_2, respectivamente) podem ser executados deacordo com a estrutura hierárquica. Além do mais, os nós filhos 504 e 506 também podemincluir outros nós filhos com respectivos itens de trabalho a ser executados.
Em uma outra modalidade, atividades incluem um ou mais dos tipos seguintes: umaatividade simples, atividade de recipiente e atividade raiz. Nesta modalidade, há umaatividade raiz no modelo, e nenhuma ou qualquer quantidade de atividades simples ou deatividades de recipiente no interior da atividade raiz. Uma atividade de recipiente pode incluiratividades simples ou de recipiente. Todo o processo de fluxo de trabalho pode ser usadocomo uma atividade para construir processos de fluxo de trabalho de ordem superior.Adicionalmente, uma atividade pode ser interrompível ou não interrompível. Uma atividadecomposta não interrompível não inclui atividades interrompíveis. Uma atividade nãointerrompível carece de serviços que podem fazer com que a atividade seja bloqueada.
Além do mais, na execução de atividades e dos itens de trabalho incluídos nasatividades, a estrutura de fluxo de trabalho define um contexto ou ambiente de execuçãoque é um escopo ou limite inclui e expõe informação (por exemplo, na forma de dados,metadados ou congêneres), tais como os dados ou recursos compartilhados a seracessados pelos itens de trabalho, propriedades associadas, rotinas de tratamento,restrições e interações entre agentes autônomos. Estes escopos podem ser estruturadoshierarquicamente. Também, cada atividade pode ser configurada por um código de usuárioem qualquer linguagem de programação que suporte a estrutura básica gerenciada. Porexemplo, o código de usuário pode representar lógica empresarial ou de aplicação ou regrasescritas em um domínio ou ambiente de execução específico. Cada atividade pode suportarganchos de pré-interceptação e ganchos de pós-interceptação na execução no código dousuário. Cada atividade tem semânticas e comportamento de execução em tempo deexecução associado (por exemplo, gerenciamento de estado, transações, tratamento deevento e tratamento de exceção). Atividades podem compartilhar estados ou recursos comoutras atividades. Além do mais, atividades podem ser atividades primitivas ou agrupadasem uma atividade composta. Uma atividade primitiva ou básica não tem subestrutura (porexemplo, atividades filhas) e, assim, é um nó folha em uma estrutura de árvore. Umaatividade composta contém subestrutura (por exemplo, ela é o pai de uma ou maisatividades filhas).A figura 4 é um diagrama que ilustra um sistema 400 para processar atividades defluxo de trabalho de acordo com uma modalidade da invenção. O sistema 400 inclui umprocessador 402, que pode ser uma unidade de processamento ou uma coleção deunidades de processamento. O sistema 400 também inclui uma área de memória 404 paraarmazenar dados acessíveis pelo processador 402. Em uma modalidade, o sistema 400pode ser um computador com um ou mais processadores ou unidades de processamento(por exemplo, processador 402) e uma memória de sistema (por exemplo, área de memória404) com outros componentes para acoplar vários componentes de sistema, incluindo amemória do sistema, no processador 402.
Em um exemplo, a área de memória 404 pode incluir mídia legível por computador,seja mídia volátil, não volátil, removível ou não removível, implementada em qualquermétodo ou tecnologia para armazenamento de informação, tais como instruções legíveis porcomputador, estruturas de dados, módulos de programa ou outros dados. Por exemplo,mídia de armazenamento no computador inclui RAM, ROM, EEPROM, memória flash ououtra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outroarmazenamento em disco ótico, cassetes magnéticos, fita magnética, armazenamento emdisco magnético ou outro dispositivo de armazenamento magnético, ou qualquer outra mídiaque pode ser usada para armazenar a informação desejada e que pode ser acessada pelosistema 400. A memória 404 também pode incluir mídia de comunicação que incorporainstruções legíveis por computador, estruturas de dados, módulos de programa ou outrosdados em um sinal de dados modulado, tais como uma onda portadora ou outro mecanismode transporte, e inclui qualquer mídia de distribuição de informação. Versados na técnicaestão familiarizados com o sinal de dados modulado, que tem uma ou mais de suascaracterísticas ajustadas ou modificadas de uma maneira tal para codificar informação nosinal. Mídia com fios, tais como rede com fios ou conexão direta com fios, e mídia sem fios,tais como acústica, RF, infravermelho, e outras mídias sem fios, são exemplos de mídia decomunicação. Combinações de qualquer um dos expostos também estão incluídas noescopo da mídia legível por computador.
Em um exemplo, a área de memória 404 armazena uma pluralidade de atividades406 para processamento em um fluxo de trabalho (por exemplo, o fluxo de trabalho 300).Cada uma da pluralidade de atividades 406 inclui um ou mais itens de trabalho, e os itens detrabalho podem ser organizados em uma estrutura hierárquica, tal como uma estrutura deárvore (veja figura 5). No processamento da pluralidade de atividades 406, o processador402 acessa ou executa um agendador 408, que é configurado para ajustar um conjuntoorganizado de atividades.
Por exemplo, o processador 408 acessa os itens de trabalho na pluralidade deatividades 406 por meio de um componente ou de um conjunto de instruções legíveis porcomputador, tal como o agendador 408, para enfileirar ou armazenar os itens de trabalho422 em uma fila 410. Um expedidor 412, acessível pelo processador 402, expede os itensde trabalho 422 para execução. Por exemplo, um item de trabalho 422-1 pode incluir ummétodo de atividade 424, rotina ou uma coleção de códigos para realizar uma função de"solicitar entrada de um usuário". Um ou mais outros métodos de atividade, rotinas oucódigos podem ser incluídos em cada um dos itens de trabalho 422 sem fugir do escopo dainvenção.
Uma vez que os itens de trabalho 422 são expedidos pelo expedidor 412, oprocessador 402 executa cada um dos métodos 424 nos itens de trabalho 422 em 414. Noexemplo do item de trabalho 422-1, o processador 402 pode cuidar para que um usuário,por meio de uma interface de usuário (Ul), insira a informação ou dados solicitados. Em umaoutra modalidade, o processador 402 pode conectar ou acessar uma fonte de dados externapara solicitar entrada do usuário. Mediante a conclusão do método da atividade 424, oprocessador 402 conclui a execução dos itens de trabalho 422 em 416. Em umamodalidade, o processador 402 passiva o estado de execução dos itens de trabalho em 418em um armazenamento de dados 420.
Em uma outra modalidade, o processador 402 executa os itens de trabalho 422 deacordo com um autômato de estado, tal como o autômato mostrado na figura 6, que é umdiagrama que ilustra um autômato de estado exemplar 600 que descreve os estados deprocessamento dos itens de trabalho associados com uma atividade de acordo com umamodalidade da invenção. Em uma modalidade, o autômato de estado 600 define uma vidaútil de execução de uma atividade. Em um exemplo, o autômato de estado 600 pode incluirum estado inicializado, um estado de execução e um estado encerrado (da forma mostradana figura 4). Em uma outra modalidade, o autômato de estado 600 inclui um estadoinicializado 602, um estado de execução 604, um estado de cancelamento 606, um estadofalho 608, um estado de compensação 610 e um estado encerrado 612.
Por exemplo, o autômato de estado 600 descreve um fluxo de processo deexecução dos itens de trabalho (por exemplo, itens de trabalho 422) em uma atividade defluxo de trabalho. O item de trabalho 422-1, da forma ilustrada na figura 4, é inicializadoprimeiro quando ele está enfileirado na fila 410. A seguir, o item de trabalho 422-1 é retiradoou removido da fila até o expedidor 412 antes de ser executado no estado de execução (porexemplo, estado de execução 604, na figura 6). Dependendo dos parâmetros ou condiçõesdurante a execução do item de trabalho 422-1, o item de trabalho 422-1 pode prosseguir atéo estado de cancelamento 606 ou até o estado falho 608. Em uma modalidade, o item detrabalho 422-1 pode prosseguir do estado de cancelamento 606 até o estado falho 608. Emuma modalidade alternativa, o estado de compensação 610 descreve um conjunto deoperações ou funções a ser realizado quando o defeito ou exceção tiver ocorrido.Por exemplo, suponha que uma exceção ocorra durante a execução de um item detrabalho (por exemplo, item de trabalho 422-1), tal como a falta de um parâmetro para umafunção. O sistema 400 transiciona o item de trabalho 422-1 até o estado falho 608. Fazendoisto, o sistema 400 também realiza operações da coleta de lixo (por exemplo, pela remoçãoda parte previamente executada das operações do cache ou da memória, pelo reinicio dosvalores de parâmetro, ou congêneres) no estado de compensação 610 antes de transicionaro item de trabalho 422-1 ao estado encerrado 612. O estado encerrado 612 indica que aexecução da atividade (por exemplo, atividade 500 na figura 5) foi concluída.
Em uma modalidade, o autômato de estado 600 estabelece relacionamento entreitens de trabalho em uma atividade composta. Por exemplo, uma das regras derelacionamento pode incluir que, antes de transicionar métodos ou itens de trabalho no nóraiz da árvore de atividade ao estado encerrado 612, todos os itens de trabalho nos nósfilhos devem estar no estado inicializado 602 ou no estado encerrado 612. Uma outra regrapode exigir que, a fim de transicionar os itens de trabalho no nó filho da árvore de atividadeao estado de execução 604, o item de trabalho no nó raiz já deve estar no estado deexecução 604.
Em uma outra modalidade, um ou mais estados adicionais podem ser definidos noautômato de estado 600 sem fugir do escopo das modalidades da invenção.
A seguir, em relação às figuras 7A e 7E, diagramas de blocos ilustram umcancelamento declarativo dos itens de trabalho de uma atividade de acordo com umamodalidade da invenção. Com propósitos de simplificação somente, e sem limitações, afigura 7A mostra uma atividade composta 702 que inclui três itens de trabalho filhosorganizados em uma estrutura de árvore: work item_1 704, work item_2 706 e work item_3708. Da forma ilustrada, a atividade raiz 702 inclui um método para "escrever texto na tela eterminar a atividade depois de escrever o texto". Funções para os itens de trabalho expostostambém fornecem o seguinte:work item_1 704:
{PAUSA 30 SEGUNDOS;
ESCREVE TEXTO ("SAUDAÇÃO");
}
work item_2 706:
{ESCREVE TEXTO ("PALAVRA DE SAUDAÇÃO");PAUSA 60 SEGUNDOS;
}
work item_3 708:
{ESCREVE TEXTO ("MENSAGEM DE SAUDAÇÃO");PAUSA 180 SEGUNDOS;Na figura 7B, um instantâneo (isto é, 30 segundos depois que os itens de trabalhoestão no estado de execução 710) do estado de execução 710 ilustra os itens de trabalhoque estão atualmente no estado de execução. Entende-se que a atividade 702 também jáestá no estado de execução 710 neste ponto. Neste estágio, de acordo com a funçãoincluída no work item_1 704, o texto "Saudação" é exibido em uma tala, tal como umainterface de usuário (UI) 428 na figura 4.
Na figura 7C, no momento de 31 segundos depois que os itens de trabalho estãono estado de execução, as funções no work item_1 completam a execução (isto é,escreveram "Saudação" na tela). O work item_1 704 é transicionado a um estado encerrado712. Mediante a transição ao estado encerrado 712, uma solicitação de cancelamento 722 étransmitida em 720 a um ou mais dos itens de trabalho atualmente no estado de execução,tal como o work item_2 706 e o work item_3 708.
De acordo com modalidades da invenção todos os itens de trabalho restantes naárvore de atividade são transicionados ao estado de cancelamento em virtude de a atividade702 ter concluído a execução do seu método, que é "escrever texto na tela e terminar aatividade depois de escrever o texto". Como tal, a atividade 702 deve ser transicionada aoestado encerrado 712. Conseqüentemente, as operações, funções ou métodos que estãoatualmente no estado de execução 710 serão descartados, ou a execução dos mesmos nãoserá concluída.
Como tal, na figura 7D, no momento de 32 segundos depois que o itens de trabalhoestão no estado de execução 710, o work item_2 706 e o work item_3 708 sãotransicionados a um estado de cancelamento 716. Em uma modalidade, o work item_2 706e o work item_3 708 são retirados da fila do agendador 714 e estão sendo transicionados aoestado de cancelamento 716. Nesta ilustração, mediante todos os itens de trabalho sertransicionados ao estado encerrado (como indicado por uma seta 718), a atividade 702transiciona ao estado encerrado 712, indicando que a atividade 702 concluiu sua execução.
Diferente dos sistemas existentes em que uma exceção seria disparada, aspectosda invenção disparam declarativamente o cancelamento pelo fornecimento do estado decancelamento 716. Com o estado de cancelamento 716, desenvolvedores ouprogramadores podem projetar programas centralizados em processo para tratareficientemente o cancelamento de partes do programa.
Mediante a transição dos itens de trabalho ao estado de cancelamento 716,modalidades alternativas da invenção fornecem um conjunto de operações pós-cancelamento a um usuário 430 em resposta ao cancelamento da vida útil de execução daatividade. Por exemplo, o sistema 400 da figura 4 pode fornecer inúmeras operações emuma janela de diálogo, por meio da Ul 428, ao usuário 430. As operações podem incluir,mas sem limitações, uma caixa de decisão para também cancelar itens de trabalhorestantes no estado de execução 710, realizar outras operações, ou congêneres.Modalidades alternativas da invenção podem realizar um conjunto de operações pararemover dados (por exemplo, armazenamentos temporários, registros temporários, acessosde memória, ou congêneres) associados com a execução dos itens de trabalho em funçãodo cancelamento da vida útil de execução da atividade.
Em uma modalidade, a figura 6 descreve um autômato que inclui seis estados(estados Inicializado, de Execução, Encerrado, de Cancelamento, Falho e deCompensação) nos quais uma atividade (por exemplo, um conjunto de operações que podedefinir um conjunto de op-codes específico ao seu domínio) pode estar durante sua vida útilde execução. Na incorporação dos recursos de cancelamento supradescritos, os itens detrabalho são retirados da fila do agendador e antes que a rotina de tratamento da execuçãoseja realmente expedida. O autômato 600 se aplica igualmente a atividades tanto primitivasquanto compostas.
Também percebe-se que o relacionamento de composição entre o pai e o filho éimposto de acordo com modalidades da invenção de maneira tal que uma atividadecomposta habilite a modelagem dos padrões de fluxo de controle.
Por exemplo, a composição do filho em uma atividade pai na árvore de atividadeexige o seguinte:
(1). A fim de que a atividade pai transicione até o estado encerrado, a pré-condiçãoexigida é que ambos os filhos devem estar no estado inicializado ou no estado encerrado.Neste exemplo, a atividade filha ou os itens de trabalho filhos podem não estar no estado deexecução, no estado de cancelamento, no estado falho ou no estado de compensaçãoquando o pai transiciona até o estado encerrado.
(2). A fim de que um filho transicione ao estado de execução, a pré-condiçãoexigida é que o pai já deve estar em um estado de execução, em um estado decancelamento, em um estado falho, em um estado de compensação ou em outros estadosde ação.
Em uma modalidade exemplar, o tempo de execução da fundação ou da estruturade fluxo de trabalho impõe as regras ou exigências expostas estritamente. Adicionalmente, aestrutura do fluxo de trabalho fornece um protocolo bem definido para modelar ocancelamento para os autores da atividade com base nas descrições expostas. Ocancelamento se propaga para baixo na hierarquia da composição da atividade -começando a partir de uma atividade composta pai que agenda o cancelamento do seu filhoque, por sua vez, cancela seu filho e assim por diante. Este exemplo é similar a como o sinalde execução também se propaga para baixo na estrutura da composição.
Diferente de tecnologias existentes em que o cancelamento era tratado como umaexceção, modalidades da invenção modelam o cancelamento como um comportamentoespecial das semânticas de execução normal das atividades compostas para que os fluxosde controle dinâmico da execução da atividade sejam alcançados.
A figura 8 é um fluxograma que ilustra um método para cancelar itens de trabalhode uma atividade de um fluxo de trabalho de acordo com uma modalidade da invenção. Emum exemplo, o método ou processo descrito na figura 8 pode ser realizado por componentesexecutáveis por computador armazenados em uma mídia legível por computador, tal comouma mídia legível por computador 900 ilustrada na figura 9. Por exemplo, inicialmente, amáquina de estado 902 define um autômato de estado para a atividade em 802. O autômatode estado (por exemplo, autômato de estado 600) inclui um estado de execução, um estadode cancelamento e um estado encerrado. Um componente de atividade 904 define aatividade a incluir a pluralidade de itens de trabalho em 804. A atividade definida organiza apluralidade de itens de trabalho em uma seqüência de execução ou em uma estruturahierárquica de execução (por exemplo, uma estrutura de árvore). Cada um dos itens detrabalho inclui um método para executar uma parte da atividade.
Em 806, um componente agendador 906 transiciona os itens de trabalho do estadode execução até o estado encerrado, o dito estado encerrado indicando uma conclusão daexecução da atividade. Em 808, em resposta a um dos itens de trabalho que é transicionadoaté o estado encerrado, um componente de mensagem 908 transmite uma solicitação decancelamento a um ou mais dos itens de trabalho atualmente no estado de execução. Umarotina de tratamento de cancelamento 910 identifica um ou mais itens de trabalho no estadode execução em função da solicitação de cancelamento transmitida e da seqüência deexecução da atividade definida em 810. Em uma modalidade, a rotina de tratamento decancelamento 910 identifica os itens de trabalho enfileirando os itens de trabalho em umafila do agendador antes de transicionar os itens de trabalho até o estado de cancelamento.
Em 812, um componente de execução 912 cancela a vida útil de execução daatividade pela transição dos um ou mais itens de trabalho identificados do estado deexecução até o estado de cancelamento. Em uma outra modalidade, a mídia legível porcomputador 900 também inclui a (UI) (por exemplo, Ul 428) para fornecer um conjunto deoperações pós-cancelamento ao usuário 420 na figura 4 em resposta ao cancelamento davida útil de execução da atividade. Em uma ainda outra modalidade, um componente delimpeza 914 remove dados associados com a execução dos itens de trabalho em função docancelamento da vida útil de execução da atividade pelo componente de execução.
Embora descritas em conjunto com um ambiente de sistema de computaçãoexemplar, tal como o sistema 400 da figura 4, modalidades da invenção são operacionaiscom inúmeros outros ambientes ou configurações de sistema de computação de uso geralou de uso especial. Não pretende-se que o ambiente de sistema de computação sugiranenhuma limitação ao escopo do uso ou à funcionalidade de nenhum aspecto da invenção.Além do mais, o ambiente do sistema de computação não deve ser interpretado comnenhuma dependência ou exigência relacionadas a nenhum dos componentes ilustrados noambiente operacional exemplar ou de suas combinações. Exemplos dos sistemas,ambientes e/ou configurações de computação bem conhecidos que podem ser adequadospara uso com aspectos da invenção incluem, mas sem limitações, computadores pessoais,computadores servidores, dispositivos de mão ou portáteis, sistemas multiprocessadores,sistemas com base em microprocessador, conversores de sinal de freqüência, dispositivoseletrônicos programáveis pelo cliente, telefones celulares, PCs em rede, minicomputadores,computadores de grande porte, ambientes de computação distribuída que incluem qualquerum dos sistemas ou dispositivos expostos, e congêneres.
Modalidades da invenção podem ser descritas no contexto geral das instruçõesexecutáveis por computador, tais como módulos de programa, executadas por um ou maiscomputadores ou outros dispositivos. No geral, módulos de programa incluem, mas semlimitações, rotinas, programas, objetos, componentes e estruturas de dados que realizamtarefas em particular ou que implementam tipo de dados abstratos em particular. Aspectosda invenção também podem ser realizados em ambientes de computação distribuída emque tarefas são realizadas pelos dispositivos de processamento remotos que são ligadospor meio de uma rede de comunicações. Em um ambiente de computação distribuída,módulos de programa podem ficar localizados em mídia de armazenamento no computadortanto local quanto remota, incluindo dispositivo de armazenamento de memória.
Em operação, o sistema 400 executa instruções executáveis por computador, taiscomo aquelas ilustradas nas figuras, tal como a figura 8, para implementar aspectos dainvenção. Por exemplo, suponha que um usuário deseja vender um veículo como uma"atividade de venda de carro". Pela formulação da atividade em um arquivo e em qualquerformato, modalidades da invenção podem processar tal atividade do fluxo de trabalho. Esta"atividade de venda de carro" pode incluir um ou mais itens de trabalho, tais como: anunciara venda em linha, anunciar a venda por meio de estações de rádio, anunciar a venda pormeio da seção de classificados de um jornal e anunciar a venda pela postagem de umaplaca "à venda" na janela do veículo. A atividade também cuida para que, uma vez que ousuário aceitou uma oferta de qualquer fonte, o usuário cancele o esforço de anúncio paraevitar receber e/ou aceitar múltiplas ofertas.
Por exemplo, suponha que o usuário receba e aceite uma oferta de alguém queestá vendo o anúncio postado em linha. O item de trabalho "anunciar a venda em linha" étransicionado até o estado encerrado, disparando uma notificação a todos os outros itens detrabalho atualmente no estado de execução. Modalidades da invenção podem solicitaradicionalmente que o usuário indique se alguma das operações pós-cancelamento pode serrealizada, tais como "notificar jornal", "notificar compradores indecisos e em potencial","retirar anúncio em linha" ou congêneres. Como tal, a atividade é eventualmentetransicionada até o estado encerrado, terminando a "atividade de venda de carro" de umamaneira declarativa.
A ordem de execução ou de realização das operações nas modalidades dainvenção aqui ilustrada e descrita não é essencial, a menos que de outra formaespecificado. Isto é, as operações podem ser realizadas em qualquer ordem a menos quede outra forma especificado, e modalidades da invenção podem incluir operações adicionaisou menos operações do que aquelas aqui divulgadas. Por exemplo, percebe-se queexecutar ou realizar uma operação em particular antes, durante ou depois de uma outraoperação está no escopo dos aspectos da invenção.
Modalidades da invenção podem ser implementadas com instruções executáveispor computador. As instruções executáveis por computador podem ser organizadas em umou mais componentes ou módulos executáveis por computador. Aspectos da invençãopodem ser implementados com qualquer número e organização de tais componentes oumódulos. Por exemplo, aspectos da invenção não são limitados às instruções executáveispor computador específicas ou aos componentes ou módulos específicos ilustrados nasfiguras e aqui descritos. Outras modalidades da invenção podem incluir diferentes instruçõesou componentes executáveis por computador com mais ou menos funcionalidade do queaqui ilustrado e descrito.
Durante a introdução dos elementos dos aspectos da invenção ou das suasmodalidades, pretende-se que os artigos "um", "uma", "o", "a", "dito" e "dita" signifiquem quehá um ou mais dos elementos. Pretende-se que os termos "compreendendo", "incluindo" e"tendo" sejam inclusivos e signifiquem que pode haver elementos adicionais diferentes doselementos listados.
Tendo sido descritos aspectos da invenção com detalhes, ficará aparente quemodificações e variações são possíveis sem fugir do escopo dos aspectos da invençãodefinido nas reivindicações anexas. Já que várias mudanças podem ser feitas nasconstruções, produtos e métodos expostos sem fugir do escopo dos aspectos da invenção,pretende-se que todo o assunto contido na descrição exposta e mostrado nos desenhosanexos seja interpretado como ilustrativo e não em um sentido limitante.

Claims (20)

1. Método para cancelar declarativamente uma atividade (406) em um programacentralizado em processo, CARACTERIZADO pelo fato de que o dito método compreende:definir um autômato de estado (600) para a atividade (406), o dito autômato deestado (600) incluindo um estado de execução (604), um estado de cancelamento (606) eum estado encerrado (612), o dito autômato de estado (600) classificando uma vida útil deexecução da atividade (406);definir a atividade (406) a incluir a pluralidade de itens de trabalho (422), a ditaatividade definida (406) organizando a pluralidade de itens de trabalho (422) em umaestrutura hierárquica de execução (500), cada um dos itens de trabalho (422) incluindo ummétodo para executar uma parte da atividade (406);transicionar a pluralidade de itens de trabalho (422) do estado de execução (604)até o estado encerrado (612), o dito estado encerrado (612) indicando uma conclusão daexecução da atividade (406);mediante um dos itens de trabalho (422) sendo transicionado até o estadoencerrado (612), transmitir uma solicitação de cancelamento (722) a um ou mais dos itensde trabalho (422) atualmente no estado de execução (604);identificar um ou mais itens de trabalho (422) no estado de execução (604) emfunção da solicitação de cancelamento transmitida (722) e da estrutura hierárquica deexecução (500) da atividade definida (406); ecancelar a vida útil de execução da atividade (406) pela transição dos um ou maisitens de trabalho (422) identificados do estado de execução (604) até o estado decancelamento (606).
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de quecompreende adicionalmente transicionar os um ou mais itens de trabalho (422) identificadosdo estado de cancelamento (606) até o estado encerrado (612) em resposta aocancelamento da vida útil de execução da atividade (406).
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de quecompreende adicionalmente fornecer um conjunto de operações pós-cancelamento a umusuário (430) em resposta ao cancelamento da vida útil de execução da atividade (406).
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de queidentificar os um ou mais itens de trabalho (422) compreende enfileirar os itens de trabalho(422) em uma fila do agendador (714).
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que ocancelamento compreende retirar os itens de trabalho (422) da fila do agendador (714) até oestado de cancelamento (606).
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que aestrutura hierárquica de execução (500) compreende uma estrutura de árvore, e em queidentificar os um ou mais itens de trabalho (422) compreende identificar os um ou mais itensde trabalho (422) no estado de execução atravessando a estrutura de árvore de um nívelinferior na estrutura de árvore até um nível superior na estrutura de árvore.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de queuma ou mais mídias legíveis por computador têm instruções executáveis por computadorpara realizar o método da reivindicação 1.
8. Sistema (400) para cancelar declarativamente uma atividade (406) em umprograma centralizado em processo, CARACTERIZADO pelo fato de que o dito sistemacompreende:uma área de memória (404) para armazenar dados associados com os itens detrabalho (422) da atividade (406), a dita atividade (406) organizando os itens de trabalho emuma seqüência de execução (500);um processador (402) configurado para executar instruções executáveis porcomputador para:definir um autômato de estado (600) para a atividade (406), o dito autômato deestado (600) incluindo um estado de execução (604), um estado de cancelamento (606) eum estado encerrado (612), o dito autômato de estado (600) classificando uma vida útil deexecução da atividade (406);definir a atividade (406) a incluir os itens de trabalho (422);transicionar os itens de trabalho (422) do estado de execução (604) até o estadoencerrado (612), o dito estado encerrado (612) indicando uma conclusão da execução daatividade (406);mediante um dos itens de trabalho (422) ser transicionado até o estado encerrado(612), transmitir uma solicitação de cancelamento (722) a um ou mais dos itens de trabalho(422) atualmente no estado de execução (604);identificar um ou mais itens de trabalho (422) no estado de execução (604) emfunção da solicitação de cancelamento transmitida (722) e da seqüência de execução (500)da atividade (406) definida; ecancelar a vida útil de execução da atividade (406) pela transição dos um ou maisitens de trabalho (422) do estado de execução (604) até o estado de cancelamento (606).
9. Sistema (400), de acordo com a reivindicação 8, CARACTERIZADO pelo fato deque compreende adicionalmente dispositivo para transicionar os um ou mais itens detrabalho (422) identificados do estado de cancelamento (606) até o estado encerrado (612)em resposta à vida útil de execução canelada da atividade (406).
10. Sistema (400), de acordo com a reivindicação 8, CARACTERIZADO pelo fatode que compreende adicionalmente dispositivo para fornecer um conjunto de operaçõespós-cancelamento a um usuário (430) em resposta ao cancelamento da vida útil deexecução da atividade (406).
11. Sistema (400), de acordo com a reivindicação 8, CARACTERIZADO pelo fatode que o processador (402) é configurado para identificar os um ou mais itens de trabalho(422) compreendendo enfileirar os itens de trabalho (422) em uma fila do agendador (714)na área de memória (404).
12. Sistema (400), de acordo com a reivindicação 11, CARACTERIZADO pelo fatode que o processador (402) é configurado para retirar os itens de trabalho (422) da fila doagendador (714) até o estado de cancelamento (606) em resposta à vida útil de execuçãocancelada da atividade (406).
13. Sistema (400), de acordo com a reivindicação 8, CARACTERIZADO pelo fatode que a seqüência de execução (500) compreende uma estrutura de árvore, e em que oprocessador (402) é configurado para identificar os um ou mais itens de trabalho (422)atravessando a estrutura de árvore de um nível inferior na estrutura de árvore até um nívelsuperior na estrutura de árvore.
14. Sistema (400), de acordo com a reivindicação 8, CARACTERIZADO pelo fatode que compreende adicionalmente dispositivo para remover dados associados com ositens de trabalho (422) da área de memória (404) em função da vida útil de execuçãocancelada da atividade (406).
15. Mídia legível por computador (900) com componentes executáveis porcomputador para cancelar declarativamente uma atividade (406) em um programacentralizado em processo, CARACTERIZADA pelo fato de que os ditos componentesexecutáveis por computador compreendem:uma máquina de estado (902) para definir um autômato de estado (600) para aatividade (406), o dito autômato de estado (600) incluindo um estado de execução (604), umestado de cancelamento (606) e um estado encerrado (612), o dito autômato de estado(600) classificando uma vida útil de execução da atividade (422);um componente de atividade (904) para definir a atividade (406) a incluir apluralidade de itens de trabalho (422), a dita atividade (406) definida organizando apluralidade de itens de trabalho (422) em uma seqüência de execução (500), cada um dositens de trabalho (422) incluindo um método para executar uma parte da atividade (406);um componente agendador (906) para transicionar os itens de trabalho (422) doestado de execução (604) até o estado encerrado (612), o dito estado encerrado (612)indicando uma conclusão da execução da atividade (406);um componente de mensagem (908), responsivo aos um ou mais itens de trabalho(422) que são transicionados até o estado encerrado (612), para transicionar umasolicitação de cancelamento (722) até os um ou mais itens de trabalho (422) atualmente noestado de execução (604);uma rotina de tratamento de cancelamento (910) para identificar um ou mais itensde trabalho (422) no estado de execução (604) em função da solicitação de cancelamentotransmitida (722) e da seqüência de execução (500) da atividade definida enfileirando ositens de trabalho (422) identificados em uma fila (714); eum componente de execução (912) para cancelar a vida útil de execução daatividade (406) pela transição dos um ou mais itens de trabalho (422) identificados doestado de execução (604) até o estado de cancelamento (606).
16. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que o componente agendador (906) é configurado paratransicionar os um ou mais itens de trabalho (422) do estado de cancelamento (606) até oestado encerrado (612).
17. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que compreende adicionalmente uma interface de usuário(UI) (428) para fornecer um conjunto de operações pós-cancelamento a um usuário (430)em resposta ao cancelamento da vida útil de execução da atividade (406).
18. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que a rotina de tratamento de cancelamento (910) éconfigurada para retirar os itens de trabalho (406) da fila (714) até o estado decancelamento (606).
19. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que a seqüência de execução (500) compreende umaestrutura de árvore, e em que a rotina de tratamento de cancelamento (910) é configuradapara identificar os um ou mais itens de trabalho (422) atravessando a estrutura de árvore deum nível inferior na estrutura de árvore até um nível superior na estrutura de árvore.
20. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que compreende adicionalmente um componente delimpeza (912) para remover dados associados com a execução dos itens de trabalho (42)em função do cancelamento da vida útil de execução da atividade (406) pelo componente deexecução (910).
BRPI0709182-6A 2006-03-30 2007-02-21 estrutura para modelagem de cancelamento para programas centralizados em processo BRPI0709182A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/393.357 2006-03-30
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
BRPI0709182A2 true BRPI0709182A2 (pt) 2011-06-28

Family

ID=38576575

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0709182-6A BRPI0709182A2 (pt) 2006-03-30 2007-02-21 estrutura para modelagem de cancelamento para programas centralizados em processo

Country Status (11)

Country Link
US (1) US20070239498A1 (pt)
EP (1) EP2013715A4 (pt)
JP (1) JP2009532759A (pt)
KR (1) KR20080106560A (pt)
CN (1) CN101416158A (pt)
AU (1) AU2007235542A1 (pt)
BR (1) BRPI0709182A2 (pt)
CA (1) CA2644336A1 (pt)
MX (1) MX2008011909A (pt)
RU (1) RU2008138715A (pt)
WO (1) WO2007117365A1 (pt)

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
JP7429941B2 (ja) 2022-02-10 2024-02-09 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
JP2001501752A (ja) * 1995-12-22 2001-02-06 ゼロックス コーポレイション システム状態とユーザー状態を使用して処理を支援する方法
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
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
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
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
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
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
WO2000014618A2 (en) * 1998-08-24 2000-03-16 Fujitsu Limited Workflow system and method
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
US7711950B2 (en) * 2000-03-17 2010-05-04 United States Postal Services Methods and systems for establishing an electronic account for a customer
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
US20030033191A1 (en) * 2000-06-15 2003-02-13 Xis Incorporated Method and apparatus for a product lifecycle management process
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
WO2002029682A1 (en) * 2000-10-02 2002-04-11 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
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal 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
WO2003015000A1 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Workflow engine for automating business processes in scalable multiprocessor computer platforms
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
US7424717B2 (en) * 2002-05-01 2008-09-09 Bea Systems, Inc. Systems and methods for business process plug-in development
US8924484B2 (en) * 2002-07-16 2014-12-30 Sonicwall, Inc. Active e-mail filter with challenge-response
US8374966B1 (en) * 2002-08-01 2013-02-12 Oracle International Corporation In memory streaming with disk backup and recovery of messages captured from a database redo stream
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
US7062537B2 (en) * 2002-11-25 2006-06-13 Microsoft Corporation Workflow services architecture
US20040148213A1 (en) * 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow constraints
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
US7423656B2 (en) * 2003-03-11 2008-09-09 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
US20060074704A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
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
KR20080106560A (ko) 2008-12-08
US20070239498A1 (en) 2007-10-11
RU2008138715A (ru) 2010-04-10
CA2644336A1 (en) 2007-10-18
EP2013715A4 (en) 2009-06-24
MX2008011909A (es) 2008-09-29
CN101416158A (zh) 2009-04-22
JP2009532759A (ja) 2009-09-10
EP2013715A1 (en) 2009-01-14

Similar Documents

Publication Publication Date Title
BRPI0709182A2 (pt) estrutura para modelagem de cancelamento para programas centralizados em processo
JP5006382B2 (ja) 軽量スレッドの並行処理制御のための宣言型モデル
US7739135B2 (en) Asynchronous fault handling in process-centric programs
US8069439B2 (en) Framework for modeling continuations in workflows
US20070239505A1 (en) Abstract execution model for a continuation-based meta-runtime

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]