BRPI0708917A2 - tratamento de falha assÍncrona em programas centralizados em processo - Google Patents
tratamento de falha assÍncrona em programas centralizados em processo Download PDFInfo
- Publication number
- BRPI0708917A2 BRPI0708917A2 BRPI0708917-1A BRPI0708917A BRPI0708917A2 BR PI0708917 A2 BRPI0708917 A2 BR PI0708917A2 BR PI0708917 A BRPI0708917 A BR PI0708917A BR PI0708917 A2 BRPI0708917 A2 BR PI0708917A2
- Authority
- BR
- Brazil
- Prior art keywords
- work items
- state
- activity
- failed
- execution
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Operations Research (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
TRATAMENTO DE FALHA ASSINCRONA EM PROGRAMAS CENTRALIZADOS EM PROCESSO É divulgado o tratamento de falha assíncrona para um fluxo de trabalho. É definido um autômato de estado para uma atividade no fluxo de trabalho. O autômato de estado inclui pelo menos um estado de execução, um estado falho e um estado encerrado, e classifica uma vida útil de execução da atividade. A atividade é definida para incluir itens de trabalho e inclui uma hierarquia de execução para os itens de trabalho. Cada item de trabalho inclui uma operação para executar uma parte da atividade. Cada item de trabalho é transicionado ao estado de execução. A operação incluída dos itens de trabalho transicionados é executada no estado de execução. Um ou mais dos itens de trabalho transicionados são identificados em resposta ao evento falho em função da hierarquia de execução e da operação incluída. O evento falho é tratado de forma assíncrona pela transição dos um ou mais itens de trabalho identificados ao estado falho durante a execução da operação incluída dos itens de trabalho transicionados restantes.
Description
"TRATAMENTO DE FALHA ASSÍNCRONA EM PROGRAMAS CENTRALIZADOSEM 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 real.Programas centralizados em processo se espelham em processos do mundo e real e seespelham em interações entre entidades do mundo real. Sistemas existentes tentam mapearproblemas empresariais em fluxos de trabalho de alto nível pela modelagem do problemaempresarial. Entretanto, fluxos de trabalho do mundo real variam em uma multiplicidade dedimensões, tais como, (a) complexidade de execução e de modelagem, (b) conhecimentoda estrutura do fluxo no momento do projeto, (c) estaticamente definido ou ad-hoc /dinâmico, (d) facilidade da autoria e da edição do fluxo em vários pontos no seu ciclo de vidae (e) fraca ou forte associação da lógica empresarial com o processo central do fluxo detrabalho. Modelos existentes deixam de conciliar estes fatores.
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 projetadas para 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 exigem rastreamento, 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 com base 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 habilitam o tratamento de falha assíncrona ou de exceção por ter um estado falho em um autômato de estado que define a vida útil de execução deuma atividade no fluxo de trabalho. Por ter o estado falho, aspectos da invenção habilitamdesenvolvedores ou programas a projetar declarativamente programas para tratamento deexceção ou de falha, de maneira tal que partes do programa ou da atividade possam estarem tratamento de falha no estado falho, embora outras partes do programa ou da atividadepossam estar não afetados pela exceção ou pelo evento falho.
Modalidades alternativas da invenção habilitam a propagação ou a transmissão deuma notificação do tratamento de falha. Em uma ainda outra modalidade alternativa, talpropagação ou transmissão da notificação pode ser suprimida ou inibida. Além do mais,uma modalidade alternativa adicional responde à entrada de um usuário para trataroperações pós-falha ou pós-exceção.
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 a vida útil da execução de uma atividade de acordo com uma modalidade dainvenção.
As figuras 7A a 7E são diagramas de blocos que ilustram um tratamento assíncronodos eventos de falha de um fluxo de trabalho de acordo com uma modalidade da invenção.
A figura 8 é um fluxograma que ilustra um método para o tratamento assíncrono deum evento falho para uma atividade de um fluxo de trabalho de acordo com uma modalidadeda 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.
O Apêndice A ilustra uma implementação exemplar da elevação declarativa de umaexceção de acordo com uma modalidade da invenção.
Caracteres de referência correspondentes indicam partes correspondentes portodos os desenhos.
DESCRIÇÃO DETALHADAPrimeiro, 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 computadores APPLE® 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 comum entre 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.
Além do mais, a estrutura ou fundação do fluxo de trabalho pode tratar falha ouexceção elevada de um nível inferior (por exemplo, OS) ou funções de elevação de exceçãoescritas em outros formatos (por exemplo, linguagem intermediária).
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.
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. Em uma outra modalidade, uma coleção de atividadespode ser uma atividade composta. Um método ou operação de atividade pode estar em umnó raiz 502 com dois nós filhos ou folhas 504 e 506. Os métodos ou operações da atividadenos nós filhos 504 e 506 (por exemplo, work item_1 e work item_2, respectivamente) podemser executados de acordo com a estrutura hierárquica. Além do mais, os nós filhos 504 e506 também podem incluir outros nós filhos com respectivos itens de trabalho a serexecutados.
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 ou um contexto ou ambiente de execuçãodefinem um escopo ou o limite para cada um dos itens de trabalho. Este escopo ou limiteinclui e expõe informação (por exemplo, na forma de dados, metadados ou congêneres), taiscomo os dados ou recursos compartilhados a ser acessados pelos itens de trabalho,propriedades associadas, rotinas de tratamento, restrições e interações entre agentesautônomos. Também, cada atividade pode ser configurada por um código de usuário emqualquer linguagem de programação. Por exemplo, o código de usuário pode representarlógica empresarial ou de aplicação ou regras escritas em um domínio ou ambiente deexecução específico. Cada atividade pode suportar ganchos de pré-interceptação e ganchosde pós-interceptação na execução no código do usuário. Cada atividade tem semânticas ecomportamento de execução em tempo de execução associado (por exemplo,gerenciamento de estado, transações, tratamento de evento e tratamento de exceção).Atividades podem compartilhar estados ou recursos com outras atividades. Além do mais,atividades podem ser atividades primitivas ou agrupadas em uma atividade composta. Umaatividade primitiva ou básica não tem subestrutura (por exemplo, atividades filhas) e, assim,é um nó folha em uma estrutura de árvore. Uma atividade composta contém subestrutura(por exemplo, ela é o pai de uma ou mais atividades 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 um armazenamento ou área de memória 404 para armazenar dados acessíveis pelo processador 402. Em uma modalidade,o sistema 400 pode ser um computador com um ou mais processadores ou unidades deprocessamento (por exemplo, processador 402) e uma memória de sistema (por exemplo,área de memória 404) com outros componentes para acoplar vários componentes desistema, incluindo a memó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 incorpora instruçõ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.
Por exemplo, a área de memória 404 armazena uma pluralidade de atividades 406para processamento em um fluxo de trabalho (por exemplo, o fluxo de trabalho 300). Cadauma 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 ou uma operação de atividade 424, rotina ou uma coleção de códigospara realizar uma função de "solicitar entrada de um usuário". Um ou mais outros métodosde atividade, operações de atividade, rotinas ou códigos podem ser incluídos em cada umdos itens de trabalho 422 sem fugir do escopo da invençã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 (UI)1 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 ou daoperação da atividade 424, o processador 402 conclui a execução dos itens de trabalho 422em 416. Em uma modalidade, o processador 402 passiva o estado de execução dos itensde trabalho em 418 em 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 (por exemplo, o estado de cancelamento 426 na figura 4) ouaté o estado falho 608. Em uma modalidade, o item de trabalho 422-1 pode prosseguir doestado de cancelamento 606 até o estado falho 608. Em uma modalidade alternativa, o estado de compensação 610 descreve um conjunto de operações ou funções a serrealizado 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. Fazendo isto, 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. Por exemplo, itens de trabalho no estadode compensação 610 podem disparar operações, tal como a recuperação de dados que eram previamente usados para executar outros itens de trabalho. O estado encerrado 612indica que a execuçã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 7 A e 7E, diagramas de blocos ilustram o tratamentoassíncrono dos eventos de falha em um fluxo de trabalho de acordo com uma modalidadeda invenção. Com propósitos de simplificação somente, e sem limitações, a figura 7A mostrauma atividade composta 702 que inclui três itens de trabalho filhos organizados em umaestrutura de árvore: transaction_1 704, transaction_2 706 e transaction_3 708. Da formailustrada, a atividade raiz 702 inclui um método para "escrever texto na tela". Métodos ouoperações da atividade para os itens de trabalho expostos também incluem o seguinte:transaction_1 704:
{ INSERIR TEXTO ("1 E 2");
HANDLEFAULT0;
}transaction_2 706:
{ INSERIR TEXTO ("3 E 4");
HANDLEFAULT();
}
transaction_3 708:
{ INSERIR TEXTO ("5 E 6");
PAUSAR 180 SEGUNDOS;
INSERIR TEXTO("FIM");
}
Na figura 7B, o transaction_1 704, o transaction_2 706 e o transaction_3 708 sãotransicionados ao estado de execução 710. Da forma ilustrada, o transaction_1 704 executaas operações incluídas pela inserção de textos ("1 e 2") na tela (por exemplo, uma interfacede utilidade 428) até um usuário 430.
Durante o estado de execução 710, ocorreram um evento falho 722 ou umaexceção. O evento falho 722 pode incluir uma notificação de advertência para dadosausentes, uma falha de execução, um acesso impreciso a um armazenamento de dados, oucongêneres. Neste exemplo, o transaction_1 704 inclui uma função handleFault() 716 paratratar o evento falho 722. Em uma modalidade, a função handleFault() 716 é similar a umafunção de "captura" para o tratamento de falha em outros ambientes de execução, tais comoum sistema operacional ou um ambiente de execução gerenciada. Como tal, a propagaçãoou expedição da falha até a função handleFault() 716 ou até a rotina de tratamento de"captura" é assíncrona.
Mediante a ocorrência do evento falho 722, o transaction_1 704 transiciona a umestado falho 712, e o transaction_1 704 é transicionado a um estado encerrado 714. Emuma modalidade, em resposta ao evento falho 722, a função handleFaultQ 716 é chamada eé colocada em uma fila (não mostrada) para processamento.
Com este protocolo bem definido para a propagação e o tratamento de exceção,modalidades alternativas podem tratar múltiplas exceções, e múltiplas exceções podem seragendadas, embora a propagação das exceções possa ser intercalada com a execuçãonormal do programa.
Na figura 7C, o transaction_2 706 e a transação 708 estão no estado de execução710. Similar à execução do transaction_1 704, o transaction_2 706 executa as operaçõesincluídas. Neste exemplo, os textos ("3 e 4") são inseridos na tela. Além do mais, otransaction_2 706 também inclui uma função handleFault() similar como a funçãohandleFault() 716 no transaction_1 704 para tratar o evento falho 722.
Em uma modalidade alternativa, a função handleFault() 716 pode propagar outransmitir uma notificação 720 aos itens de trabalho restantes no estado de execução 710em função da hierarquia de execução ou da estrutura hierárquica de execução da atividade.Por exemplo, enquanto o transaction_1 704 estiver no estado falho 712, a funçãohandleFault() 716 pode propagar a notificação 720 (por exemplo, uma função de"arremesso") para que a função handleFault() da Activity_1 702 pai possa trata-la como se anotificação 720 fosse um evento falho ou uma exceção. Em uma modalidade, uma atividadefilha pode limitar o alvo da função de arremesso até seu pai na árvore de atividade. Em umaoutra modalidade, o tratamento de exceção pode estar altamente associado ou amarradocom a estrutura tipo árvore das atividades.
Pelo estabelecimento do estado falho 712 para tratar eventos falhos, modalidadesda invenção habilitam tratamento de falha assíncrona ou tratamento de exceção, e os itensde trabalho ou atividades restantes no estado de execução 710 continuam a ser executados.Além do mais, uma outra modalidade alternativa habilita o agendamento do tratamento doseventos falhos. Por exemplo, mediante a resposta à notificação 720, o transaction_2 706pode ser colocado em uma fila do agendador 718 antes de ser transicionado ao estado falho712. Em uma outra modalidade, a notificação 720 pode ser suprimida de maneira tal queoutros itens de trabalho ou atividades no estado de execução 710 continuem a serexecutados. Em uma modalidade, o transaction_1 704 transiciona até um estado encerrado714 depois de propagar ou transmitir a notificação 720. Em uma ainda outra modalidade, apropagação e o tratamento de falha sobrevivem aos ciclos de passivação e abarcam atravésdeles.
Na figura 7D, o transaction_3 708 está sendo executado no estado de execução710. Por exemplo, as operações incluídas do transaction_3 708 inserem os textos ("5 e 6") epausa por 180 segundos antes de inserir o texto ("FIM") na tela. Entretanto, as operaçõesincluídas não incluem funções para o tratamento de falha. Como tal, mediante a conclusãodas operações incluídas, o transaction_3 708 é transicionado ao estado encerrado 714 dafigura 7E. Além do mais, o transaction_2 706 também transiciona até o estado encerrado714 depois de ser retirado da fila do agendador 718 até o estado falho 712.
Sem limitações, o Apêndice A ilustra uma implementação exemplar da elevaçãodeclarativa de uma exceção de acordo com uma modalidade da invenção. Em umamodalidade, programadores ou desenvolvedores podem projetar uma rotina de tratamentode falha para tratar um tipo em particular de eventos de falha ou de exceções. Em umaainda outra modalidade, itens de trabalho ou atividades no fluxo de trabalho podem nãoincluir uma função ou podem ser incapazes de tratar eventos de falha. Nesta modalidade, oambiente de execução do fluxo de trabalho trata os eventos de falha. Em uma ainda outramodalidade, uma ou mais operações pós-tratamento de falha podem ser fornecidas, pormeio da Ul 428, ao usuário 430 da figura 4.
Embora as figuras 7A a 7E ilustrem instantâneos do estado de execução ou departes do autômato de estado seqüencialmente (por exemplo, transações são executadasseqüencialmente), itens de trabalho no estado de execução podem ser processadossimultaneamente ou de forma substancialmente simultânea sem fugir do escopo dainvenção.
A figura 8 é um fluxograma que ilustra um método para tratar de forma assíncronaum evento falho para uma atividade de um fluxo de trabalho de acordo com uma modalidadeda invenção. Por exemplo, o método ilustrado na figura 8 pode ser representado comoinstruções executáveis por computador a ser armazenadas em uma mídia legível porcomputador mostrada na figura 9. Por exemplo, a máquina de estado 902 define umautômato de estado (por exemplo, autômato de estado 600) para uma atividade em 902, e oautômato de estado inclui pelo menos um estado de execução, um estado falho e um estadoencerrado. Um componente de atividade 904 define a atividade a incluir uma pluralidade deitens de trabalho em 804. A atividade definida tem uma hierarquia de execução ou umaseqüência de execução (por exemplo, uma estrutura de árvore) para a pluralidade de itensde trabalho. Cada um dos itens de trabalho inclui uma operação para executar uma parte daatividade.
Um componente agendador 906 transiciona cada um dos itens de trabalho até oestado de execução em 806. Um componente de execução 908 executa a operação incluídados itens de trabalho transicionados no estado de execução em 808. Em 801, umcomponente de identificação 901 identifica um ou mais dos itens de trabalho transicionadosem resposta ao evento falho com base na hierarquia de execução e na operação incluída.Em 812, um processo para tratamento de falha 912 trata de forma assíncrona o evento falhoinvocando uma operação de tratamento de falha (por exemplo, a função handleFault() 716)nos um ou mais itens de trabalho identificados para transicionar os um ou mais itens detrabalho identificados até o estado falho, executando a operação incluída dos itens detrabalho transicionados restantes não identificados em resposta ao evento falho pelocomponente de identificação. Em uma modalidade, o processo para tratamento de falha 912trata de forma assíncrona o evento falho pela transição dos um ou mais itens de trabalhoidentificados até o estado falho. Em uma ainda outra modalidade, o processo paratratamento de falha 912 trata de forma assíncrona o evento falho enfileirando os um ou maisitens de trabalho identificados em uma fila do agendador (por exemplo, fila do agendador718).
Em uma modalidade alternativa, a mídia legível por computador 900 incluiadicionalmente um componente de propagação de falha 914 para transmitir uma notificaçãodos um ou mais itens de trabalho identificados até os itens de trabalho transicionadosrestantes em função da hierarquia de execução da atividade. A notificação 700 indica que osum ou mais itens de trabalho identificados estão no estado falho. Em uma modalidadeadicional, a mídia legível por computador 900 inclui adicionalmente um componente detransição 916 para transicionar os itens de trabalho transicionados restantes do estado deexecução até o estado falho em resposta à notificação transmitida.
A mídia legível por computador também inclui um componente de compensação918 para recuperar ou compensar dados associados com a atividade em função dotratamento assíncrono do evento de falha em uma ainda outra modalidade alternativa. Umcomponente de inibição também pode ser parte da mídia legível por computador 900 parasuprimir a transmissão da notificação aos itens de trabalho transicionados restantes.
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 do sistema de computação sugiranenhuma limitação ao escopo de 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.
A ordem de execução ou de realização das operações nas modalidades dainvenção aqui ilustradas e descritas 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.APÊNDICE A
[0066] <myActivities:Sequence x:Name="myWorkflow"x:Class="myApp .myWorkflow"
xmlns:rayActivities=''http://schemasxoIn/myActivities,'xmlns:x=,,http://schemas.microsoftxonl/winfe/2006/xaIIll,'xmlns—''http://schemasjiiicrosofl.cox33/win£íc/2006/xainl/work£low,l><myActivities:WriteLine Text="Qne7><myActivitíes:WriteLine Text="Two"/>
<ThrowActivity FaultType=" {x:Type InvalidOperationException}"/><myActívities:WriteLine Text=lTJnreachable code"/><FaultHandlersActivity>
<FaultHandlerActivity FaultType=" {x:TypeInvalidOperationException} ">
<myActivities; WriteLine Text=="Three'7></FauItHandlerActivxty><FaultHandlerActívity FaultType=" {x:TypeAppDomainUnloadedException} ">
<myActivities:WriteLine Text="Four'7></FaultHandlerActivity></FaultHandlersActivity></myActivities:Sequence>
<myActivities:Sequence x:Name-"myWorküow" x:Class="myApp.myWorkflow"xinlns:myActivities—'http://schemas.com/myActivities"
xmIns:x^'http://schemas.microsoft.com/wiII6{/2006/xaxnl,,xmlns="http://schema^.microsoft.com/win^2006/xamVworkflow''><myActivitíes:WriteLine Text=nHello World"/><ThrowActivity FaultType=" {x:Type InvaHdOperationException}" /><myActivities: WriteLrae TextssllUiireachable Code"/></myActivities:Sequence>
Claims (20)
1. Método para tratamento assíncrono de um evento de falha (722) para umaatividade de um fluxo de trabalho, CARACTERIZADO pelo fato de que o dito métodocompreende:definir um autômato de estado (600) para uma atividade (702), o dito autômato deestado (600) incluindo pelo menos um estado de execução (604), um estado falho (608) eum estado encerrado (612), o dito autômato de estado (600) classificando uma vida útil deexecução da atividade (702);definir a atividade (702) a incluir a pluralidade de itens de trabalho (422), a ditaatividade (702) definida com uma hierarquia de execução (500) para a pluralidade de itensde trabalho (422), cada um dos itens de trabalho (422) incluindo uma operação paraexecutar uma parte da atividade (702);transicionar cada um dos itens de trabalho (422) até o estado de execução (604);executar a operação incluída dos itens de trabalho transicionados (422) no estadode execução (604);identificar um ou mais dos itens de trabalho transicionados em resposta ao eventofalho (722) em função da hierarquia de execução (500) e da operação incluída; etratar de forma assíncrona o evento falho (722) pela transição dos um ou mais itensde trabalho identificados (422) ao estado falho (608) durante a execução da operaçãoincluída dos itens de trabalho transicionados restantes não identificados em resposta aoevento falho (608).
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que otratamento assíncrono do evento falho (722) compreende invocar uma operação detratamento de falha nos um ou mais itens de trabalho identificados (422).
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de queinvocar a operação de tratamento de falha compreende enfileirar os um ou mais itens detrabalho identificados em uma fila do agendador (718).
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de quecompreende adicionalmente propagar uma notificação (720) dos um ou mais itens detrabalho (422) identificados aos itens de trabalho (422) transicionados restantes em funçãoda hierarquia de execução (500) da atividade (702), a dita notificação (720) indicando que osum ou mais itens de trabalho (422) identificados estão no estado falho (608).
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de quecompreende adicionalmente transicionar os itens de trabalho (422) transicionados restantesdo estado de execução (604) ao estado falho (608) em resposta à notificação propagada(720).
6. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de quecompreende adicionalmente suprimir a propagação da notificação (720) aos itens detrabalho (422) transicionados restantes.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de quecompreende adicionalmente fornecer operações a um usuário para tratamento pós-falha emresposta aos um ou mais itens de trabalho (422) identificados que são transicionados aoestado falho (608).
8. 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.
9. Sistema (400) para o tratamento assíncrono de eventos falhos (722) em um fluxode trabalho, CARACTERIZADO pelo fato de que o dito sistema (400) compreende:um armazenamento (404) para armazenar dados associados com itens de trabalhode uma atividade (406) no fluxo de trabalho, a dita atividade (406) com uma hierarquia deexecução (500) para os itens de trabalho (422), cada um dos itens de trabalho (422)incluindo uma operação para executar uma parte da atividade (406);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 pelo menos um estado de execução (604), um estado falho (608) eum estado encerrado (612), o dito autômato de estado (600) classificando uma vida útil deexecução da atividade (406);transicionar cada um dos itens de trabalho (422) ao estado de execução (604);executar a operação incluída dos itens de trabalho (422) transicionados no estadode execução (604);identificar um ou mais dos itens de trabalho (422) transicionados em resposta a umevento falho (608) com base na hierarquia de execução (500) e na operação incluída; etratar de forma assíncrona o evento falho (722) pela transição dos um ou mais itensde trabalho (422) identificados ao estado falho (608) durante a execução da operaçãoincluída dos itens de trabalho (422) transicionados restantes não identificados em respostaao evento falho (722).
10. Sistema (400), de acordo com a reivindicação 9, CARACTERIZADO pelo fatode que o processador (402) é configurado para tratar de forma assíncrona o evento falho(722) usando um ou mais do seguinte método: invocar uma operação de tratamento de falhanos um ou mais itens de trabalho (422) identificados, e enfileirar os um ou mais itens detrabalho (422) identificados em uma fila do agendador (718).
11. Sistema (600), de acordo com a reivindicação 9, CARACTERIZADO pelo fatode que compreende adicionalmente um componente para propagar uma notificação (720)dos um ou mais itens de trabalho identificados aos itens de trabalho (422) transicionadosrestantes em função da hierarquia de execução (500) da atividade (406), a dita notificação(720) indicando que os um ou mais itens de trabalho (422) identificados estão no estadofalho (608).
12. Sistema (400), de acordo com a reivindicação 11, CARACTERIZADO pelo fatode que compreende adicionalmente um componente para transicionar os itens de trabalhotransicionados restantes do estado de execução (604) ao estado falho (608) em resposta ànotificação propagada (720).
13. Sistema (400), de acordo com a reivindicação 9, CARACTERIZADO pelo fatode que compreende adicionalmente um componente para compensar a recuperação dedados associados com a atividade do armazenamento (404) em função do tratamentoassíncrono do evento falho (722) pelo processador (402).
14. Sistema (400), de acordo com a reivindicação 9, CARACTERIZADO pelo fatode que compreende adicionalmente um componente para suprimir a propagação danotificação (720) aos itens de trabalho (422) transicionados restantes.
15. Mídia legível por computador (900) com componentes executáveis porcomputador para tratamento assíncrono de um evento falho (722) em um fluxo de trabalho,CARACTERIZADA pelo fato de que os ditos componentes executáveis por computadorcompreendem:uma máquina de estado (902) para definir um autômato de estado (600) para umaatividade (406), o dito autômato de estado (600) incluindo pelo menos um estado deexecução (604), um estado falho (608) e um estado encerrado (612), o dito autômato deestado (600) classificando um ciclo de vida de execução da atividade (406);um componente de atividade (904) para definir a atividade (406) para incluir umapluralidade de itens de trabalho (422), a dita atividade (406) definida com uma hierarquia deexecução (500) para a pluralidade de itens de trabalho (422), cada um dos itens de trabalho(422) incluindo uma operação para executar uma parte da atividade (406);um componente agendador (906) para transicionar cada um dos itens de trabalho(422) ao estado de execução (604);um componente de execução (908) para executar a operação incluída dos itens detrabalho (422) transicionados no estado de execução (604);um componente de identificação (910) para identificar um ou mais dos itens detrabalho transicionados em resposta ao evento falho (722) com base na hierarquia deexecução (500) e na operação incluída; eum processo para o tratamento de falha (912) para o tratamento assíncrono doevento falho (722) invocando uma operação de tratamento de falha nos um ou mais itens detrabalho (422) identificados para transicionar os um ou mais itens de trabalho (422)identificados ao estado falho (608) durante a execução da operação incluída dos itens detrabalho (422) transicionados restantes não identificados em resposta ao evento falho (722)pelo componente de identificação (910).
16. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que o processo para o tratamento de falha (912) enfileira osum ou mais itens de trabalho (422) identificados em uma fila do agendador (718) paratransicionar os um ou mais itens de trabalho identificados ao estado falho (608).
17. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que compreende adicionalmente um componente depropagação de falha (914) para transmitir uma notificação (720) dos um ou mais itens detrabalho (422) identificados aos itens de trabalho (422) transicionados restantes em funçãoda hierarquia de execução (500) da atividade (406), a dita notificação (720) indicando que osum ou mais itens de trabalho (422) identificados estão no estado falho (608).
18. Mídia legível por computador (900), de acordo com a reivindicação 17,CARACTERIZADA pelo fato de que compreende adicionalmente um componente detransição (916) para transicionar os itens de trabalho transicionados restantes do estado deexecução (604) ao estado falho (608) em resposta à notificação transmitida (720).
19. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que compreende adicionalmente um componente decompensação (918) para recuperar dados associados com a atividade (406) em função dotratamento assíncrono do evento falho (608).
20. Mídia legível por computador (900), de acordo com a reivindicação 15,CARACTERIZADA pelo fato de que compreende adicionalmente um componente deinibição (920) para suprimir a transmissão da notificação (720) aos itens de trabalhotransicionados restantes.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/393,093 US7739135B2 (en) | 2006-03-30 | 2006-03-30 | Asynchronous fault handling in process-centric programs |
| US11/393.093 | 2006-03-30 | ||
| PCT/US2007/004642 WO2007120391A1 (en) | 2006-03-30 | 2007-02-21 | Asynchronous fault handling in process-centric programs |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| BRPI0708917A2 true BRPI0708917A2 (pt) | 2011-06-14 |
Family
ID=38560925
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0708917-1A BRPI0708917A2 (pt) | 2006-03-30 | 2007-02-21 | tratamento de falha assÍncrona em programas centralizados em processo |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US7739135B2 (pt) |
| EP (1) | EP2013716A4 (pt) |
| JP (1) | JP5297370B2 (pt) |
| KR (1) | KR20080106567A (pt) |
| CN (1) | CN101416156B (pt) |
| BR (1) | BRPI0708917A2 (pt) |
| CA (1) | CA2644370A1 (pt) |
| MX (1) | MX2008011910A (pt) |
| RU (1) | RU2008138701A (pt) |
| WO (1) | WO2007120391A1 (pt) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8849691B2 (en) | 2005-12-29 | 2014-09-30 | Microsoft Corporation | Modeling user input and interaction in workflow based applications |
| US20080082960A1 (en) * | 2006-09-29 | 2008-04-03 | Mcdougal Monty D | Method and System For Controlling The Release of Data For Multiple-Level Security Systems |
| US8145335B2 (en) * | 2006-12-19 | 2012-03-27 | Palo Alto Research Center Incorporated | Exception handling |
| US9442620B2 (en) * | 2007-08-21 | 2016-09-13 | Oracle International Corporation | Navigation systems with event notification |
| US7827127B2 (en) * | 2007-10-26 | 2010-11-02 | Microsoft Corporation | Data scoping and data flow in a continuation based runtime |
| 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 |
| US9536264B2 (en) | 2011-11-14 | 2017-01-03 | Microsoft Technology Licensing, Llc | Host agnostic messaging in a continuation based runtime |
| US9170915B1 (en) | 2011-12-06 | 2015-10-27 | Amazon Technologies, Inc. | Replay to reconstruct program state |
| US9015533B1 (en) * | 2011-12-06 | 2015-04-21 | Amazon Technologies, Inc. | Error handling for asynchronous applications |
| US9152533B1 (en) | 2011-12-06 | 2015-10-06 | Amazon Technologies, Inc. | Asynchronous programming system |
| US8996937B2 (en) * | 2011-12-28 | 2015-03-31 | Stmicroelectronics International N.V. | Apparatus for monitoring operating conditions of a logic circuit |
| US10235209B2 (en) * | 2015-08-28 | 2019-03-19 | Vmware, Inc. | Hybrid task framework |
| US10324783B1 (en) * | 2016-09-01 | 2019-06-18 | Servicenow, Inc. | System and method for workflow error handling |
Family Cites Families (112)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4697266A (en) * | 1983-03-14 | 1987-09-29 | Unisys Corp. | Asynchronous checkpointing system for error recovery |
| US4920483A (en) * | 1985-11-15 | 1990-04-24 | Data General Corporation | A computer memory for accessing any word-sized group of contiguous bits |
| US5287537A (en) * | 1985-11-15 | 1994-02-15 | Data General Corporation | Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command |
| US5301320A (en) * | 1991-06-28 | 1994-04-05 | Digital Equipment Corporation | Workflow management and control system |
| WO1994018620A1 (en) * | 1993-02-08 | 1994-08-18 | 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 |
| US5627981A (en) * | 1994-07-01 | 1997-05-06 | Digital Equipment Corporation | Software mechanism for accurately handling exceptions generated by instructions scheduled speculatively due to branch elimination |
| EP0697652A1 (en) * | 1994-08-16 | 1996-02-21 | International Business Machines Corporation | Method for re-executing a process on a computer system for fault correction |
| 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 |
| JP3547215B2 (ja) * | 1995-01-20 | 2004-07-28 | 富士通株式会社 | 伝送障害処理装置 |
| US5774661A (en) * | 1995-04-18 | 1998-06-30 | Network Imaging Corporation | Rule engine interface for a visual workflow builder |
| DE19712946A1 (de) * | 1996-05-30 | 1997-12-04 | Ibm | Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells |
| 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 |
| 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 |
| US6621505B1 (en) * | 1997-09-30 | 2003-09-16 | Journee Software Corp. | Dynamic process-based enterprise computing system and method |
| 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 |
| US6560626B1 (en) * | 1998-04-02 | 2003-05-06 | Microsoft Corporation | Thread interruption with minimal resource usage using an asynchronous procedure call |
| 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 |
| US6308318B2 (en) * | 1998-10-07 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for handling asynchronous exceptions in a dynamic translation system |
| US7133833B1 (en) | 1998-10-27 | 2006-11-07 | Netscape Communications Corporation | Lightweight directory access protocol workflow management system |
| US7233952B1 (en) | 1999-01-15 | 2007-06-19 | Hon Hai Precision Industry, Ltd. | Apparatus for visualizing information in a data warehousing environment |
| US6411961B1 (en) * | 1999-01-15 | 2002-06-25 | Metaedge Corporation | Apparatus for providing a reverse star schema data model |
| US6412109B1 (en) * | 1999-01-29 | 2002-06-25 | Sun Microsystems, Inc. | Method for optimizing java bytecodes in the presence of try-catch blocks |
| 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 |
| US7100195B1 (en) | 1999-07-30 | 2006-08-29 | Accenture Llp | Managing user information on an e-commerce system |
| US6633878B1 (en) * | 1999-07-30 | 2003-10-14 | Accenture Llp | Initializing an ecommerce database framework |
| US6609128B1 (en) * | 1999-07-30 | 2003-08-19 | Accenture Llp | Codes table framework design in an E-commerce architecture |
| US6405364B1 (en) * | 1999-08-31 | 2002-06-11 | Accenture Llp | Building techniques in a development architecture framework |
| CA2281331A1 (en) * | 1999-09-03 | 2001-03-03 | Cognos Incorporated | Database management system |
| US7020697B1 (en) * | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
| JP3825597B2 (ja) * | 1999-11-18 | 2006-09-27 | 日本電信電話株式会社 | コンテンツ表示回数制御方法,装置およびそのプログラム記録媒体 |
| US6898790B1 (en) * | 1999-12-06 | 2005-05-24 | International Business Machines Corporation | Mapping actions to tasks within customer service processing systems |
| WO2001063446A2 (en) * | 2000-02-25 | 2001-08-30 | Ocwen Technology Xchange, Inc. | Method for workflow processing through computer network |
| AU2001242320A1 (en) | 2000-03-30 | 2001-10-15 | Ideogramic Aps | Method for gesture based modeling |
| US6964034B1 (en) * | 2000-04-20 | 2005-11-08 | International Business Machines Corporation | Application development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment |
| US6918053B1 (en) * | 2000-04-28 | 2005-07-12 | Microsoft Corporation | Compensation framework for long running transactions |
| US6845507B2 (en) * | 2000-05-18 | 2005-01-18 | Ss & C Technologies, Inc. | Method and system for straight through processing |
| US6971096B1 (en) * | 2000-05-19 | 2005-11-29 | Sun Microsystems, Inc. | Transaction data structure for process communications among network-distributed applications |
| WO2002003225A2 (en) * | 2000-06-15 | 2002-01-10 | Xis Incorporated | Method and system for product lifecycle management |
| US6708186B1 (en) * | 2000-08-14 | 2004-03-16 | Oracle International Corporation | Aggregating and manipulating dictionary metadata in a database system |
| WO2002017652A2 (en) * | 2000-08-22 | 2002-02-28 | Symbian Limited | Database for use with a wireless information device |
| US20020032692A1 (en) * | 2000-09-08 | 2002-03-14 | Atsuhito Suzuki | Workflow management method and workflow management system of controlling workflow process |
| US6886094B1 (en) * | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
| US7555459B2 (en) * | 2000-10-02 | 2009-06-30 | International Projects Consultancy Services, Inc. | Automated loan processing system and method |
| US6604104B1 (en) * | 2000-10-02 | 2003-08-05 | Sbi Scient Inc. | System and process for managing data within an operational data store |
| US7653566B2 (en) * | 2000-11-30 | 2010-01-26 | Handysoft Global Corporation | Systems and methods for automating a process of business decision making and workflow |
| 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 |
| US7120896B2 (en) * | 2001-10-31 | 2006-10-10 | Vitria Technology, Inc. | Integrated business process modeling environment and models created thereby |
| US20020188644A1 (en) * | 2001-06-08 | 2002-12-12 | Verano | Workflow automated task component manager |
| US20030018643A1 (en) * | 2001-06-19 | 2003-01-23 | Peiwei Mi | VIGIP006 - collaborative resolution and tracking of detected events |
| 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 |
| US7222334B2 (en) | 2001-07-24 | 2007-05-22 | Hewlett-Packard Development Comapny, L.P. | Modeling tool for electronic services and associated methods and businesses |
| AU2002355575A1 (en) * | 2001-08-08 | 2003-02-24 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
| US6985939B2 (en) * | 2001-09-19 | 2006-01-10 | International Business Machines Corporation | Building distributed software services as aggregations of other services |
| 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 |
| US6928582B2 (en) * | 2002-01-04 | 2005-08-09 | Intel Corporation | Method for fast exception handling |
| 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 |
| US20030233374A1 (en) * | 2002-03-14 | 2003-12-18 | Ulrich Spinola | Dynamic workflow process |
| US20040002950A1 (en) * | 2002-04-15 | 2004-01-01 | Brennan Sean F. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system using hierarchically enumerated data set |
| US7519976B2 (en) * | 2002-05-01 | 2009-04-14 | Bea Systems, Inc. | Collaborative business plug-in framework |
| US7272816B2 (en) | 2002-07-31 | 2007-09-18 | Sap Aktiengesellschaft | Transformations between private and shared workflows |
| 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 |
| US8056046B2 (en) * | 2002-10-22 | 2011-11-08 | The Boeing Company | Integrated system-of-systems modeling environment and related methods |
| 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 |
| US7114146B2 (en) * | 2003-05-02 | 2006-09-26 | International Business Machines Corporation | System and method of dynamic service composition for business process outsourcing |
| JP5154798B2 (ja) * | 2003-05-07 | 2013-02-27 | エスアーペー アーゲー | 構造化ワークフローシステム及びコンピュータプログラム |
| US8332864B2 (en) * | 2003-06-12 | 2012-12-11 | Reuters America Inc. | Business process automation |
| US8645420B2 (en) * | 2003-08-05 | 2014-02-04 | Accenture Global Services Limited | Methodology framework and delivery vehicle |
| US7693973B2 (en) * | 2003-08-28 | 2010-04-06 | International Business Machines Corporation | Pluggable state meta-data processors based on meta information modeling in a service oriented architecture |
| EP1558997A1 (en) | 2003-09-02 | 2005-08-03 | Infoglide Software Corporation | System and method for workflow process management |
| CA2442796A1 (en) * | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Binding a workflow engine to a data model |
| CA2443447A1 (en) * | 2003-09-30 | 2005-03-30 | Ibm Canada Limited-Ibm Canada Limitee | System and method for conversion between graph-based representations and structural text-based representations of business processes |
| US7278065B2 (en) * | 2003-11-17 | 2007-10-02 | Electronic Data Systems Corporation | Enterprise directory service domain controller replication alert and repair |
| US7137033B2 (en) * | 2003-11-20 | 2006-11-14 | International Business Machines Corporation | Method, system, and program for synchronizing subtasks using sequence numbers |
| US7197502B2 (en) * | 2004-02-18 | 2007-03-27 | Friendly Polynomials, Inc. | Machine-implemented activity management system using asynchronously shared activity data objects and journal data items |
| US7359909B2 (en) * | 2004-03-23 | 2008-04-15 | International Business Machines Corporation | Generating an information catalog for a business model |
| US20050246692A1 (en) * | 2004-04-28 | 2005-11-03 | Convey Development, Inc. | Asynchronous compilation |
| US20060064335A1 (en) * | 2004-08-17 | 2006-03-23 | International Business Machines Corporation | Method, system, and storage medium for performing business process modeling |
| US20060053120A1 (en) * | 2004-09-07 | 2006-03-09 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Web service registry and method of operation |
| US7464366B2 (en) * | 2004-10-01 | 2008-12-09 | Microsoft Corporation | Programming interface for a componentized and extensible workflow model |
| US7631291B2 (en) * | 2004-10-01 | 2009-12-08 | Microsoft Corporation | Declarative representation for an extensible workflow model |
| US20060074735A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Ink-enabled workflow authoring |
| US20060112122A1 (en) * | 2004-11-23 | 2006-05-25 | International Business Machines Corporation | Method, system, and storage medium for implementing business process modules |
| US7788536B1 (en) | 2004-12-21 | 2010-08-31 | Zenprise, Inc. | Automated detection of problems in software application deployments |
| US7433887B2 (en) | 2004-12-29 | 2008-10-07 | Microsoft Corporation | Method and apparatus for metadata driven business logic processing |
| JP2006215713A (ja) | 2005-02-02 | 2006-08-17 | Canon Inc | ワークフローシステムの先行業務指示及び廃止方法 |
| US7493594B2 (en) | 2005-03-14 | 2009-02-17 | Research In Motion | System and method for designing component based applications |
| US7983943B2 (en) | 2005-05-27 | 2011-07-19 | Xerox Corporation | Method and system for workflow process node synchronization |
| US7933951B2 (en) | 2006-01-20 | 2011-04-26 | Paxfire, Inc. | Systems and methods for discerning and controlling communication traffic |
| US8069439B2 (en) * | 2006-03-30 | 2011-11-29 | Microsoft Corporation | Framework for modeling continuations in workflows |
| US20070239498A1 (en) * | 2006-03-30 | 2007-10-11 | Microsoft Corporation | Framework for modeling cancellation for process-centric programs |
| US20070239505A1 (en) * | 2006-03-30 | 2007-10-11 | Microsoft Corporation | Abstract execution model for a continuation-based meta-runtime |
-
2006
- 2006-03-30 US US11/393,093 patent/US7739135B2/en active Active
-
2007
- 2007-02-21 CN CN2007800123531A patent/CN101416156B/zh not_active Expired - Fee Related
- 2007-02-21 RU RU2008138701/09A patent/RU2008138701A/ru not_active Application Discontinuation
- 2007-02-21 JP JP2009502791A patent/JP5297370B2/ja not_active Expired - Fee Related
- 2007-02-21 MX MX2008011910A patent/MX2008011910A/es not_active Application Discontinuation
- 2007-02-21 BR BRPI0708917-1A patent/BRPI0708917A2/pt not_active Application Discontinuation
- 2007-02-21 CA CA002644370A patent/CA2644370A1/en not_active Abandoned
- 2007-02-21 EP EP07751408A patent/EP2013716A4/en not_active Ceased
- 2007-02-21 KR KR1020087024029A patent/KR20080106567A/ko not_active Withdrawn
- 2007-02-21 WO PCT/US2007/004642 patent/WO2007120391A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US7739135B2 (en) | 2010-06-15 |
| US20070234129A1 (en) | 2007-10-04 |
| KR20080106567A (ko) | 2008-12-08 |
| MX2008011910A (es) | 2008-09-29 |
| CA2644370A1 (en) | 2007-10-25 |
| EP2013716A4 (en) | 2009-06-24 |
| CN101416156B (zh) | 2013-03-06 |
| CN101416156A (zh) | 2009-04-22 |
| EP2013716A1 (en) | 2009-01-14 |
| JP5297370B2 (ja) | 2013-09-25 |
| WO2007120391A1 (en) | 2007-10-25 |
| RU2008138701A (ru) | 2010-04-10 |
| JP2009532760A (ja) | 2009-09-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5297370B2 (ja) | プロセス中心型プログラムにおける非同期フォールト処理 | |
| JP5006382B2 (ja) | 軽量スレッドの並行処理制御のための宣言型モデル | |
| BRPI0709182A2 (pt) | estrutura para modelagem de cancelamento para programas centralizados em processo | |
| JP5140067B2 (ja) | ワークフローにおいて継続をモデル化するフレームワーク | |
| BRPI0709242A2 (pt) | modelo de execução abstrato para um meta-tempo de execução com base em continuação |
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] |