BRPI0618302A2 - modelagem da entrada do usuário e interação em aplicativos baseados em fluxo de trabalho - Google Patents
modelagem da entrada do usuário e interação em aplicativos baseados em fluxo de trabalho Download PDFInfo
- Publication number
- BRPI0618302A2 BRPI0618302A2 BRPI0618302-6A BRPI0618302A BRPI0618302A2 BR PI0618302 A2 BRPI0618302 A2 BR PI0618302A2 BR PI0618302 A BRPI0618302 A BR PI0618302A BR PI0618302 A2 BRPI0618302 A2 BR PI0618302A2
- Authority
- BR
- Brazil
- Prior art keywords
- workflow
- computer
- host
- implemented method
- implemented
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
MODELAGEM DA ENTRADA DO USUáRIO E INTERAçAO EM APLICATIVOS BASEADOS EM FLUXO DE TRABALHO Trata-se de sistemas e métodos que implementam interatividade como parte do próprio fluxo de trabalho. Dados são passados para dentro e para fora do fluxo de trabalho para formar um fluxo de trabalho interativo, por meio do uso de um componente de atividade interativa. Tal componente de atividade interativa modela pontos de suspensão dentro de uma definição de fluxo de trabalho, em que a entrada do usuário e a interação associada podem ser fornecidas para o fluxo de trabalho durante vários intervalos de interatividade que exigem a entrada do usuário. Tal esquema permite uma troca de dados controlada/síncrona entre o fluxo de trabalho e um aplicativo hospedeiro associado a ele.
Description
"MODELAGEM DA ENTRADA DO USUÁRIO E INTERAÇÃO EMAPLICATIVOS BASEADOS EM FLUXO DE TRABALHO"
ANTECEDENTES DA INVENÇÃO
Em geral, "fluxo de trabalho" refere-se ao fluxode informações e controle dentro de organizações. As empre-sas empenham-se continuamente em definir, documentar e mo-dernizar tais processos a fim de competir solidamente. Emuma configuração comercial, esses processos incluem o pro-cessamento de vendas e pedidos, tarefas de compra, controlee gerenciamento de estoque, controle de fabricação e produ-ção, envio e recebimento, contas a pagar, entre outros.
Os sistemas de computadores e software associadosagora oferecem ferramentas com as quais as empresas e outrasorganizações podem aperfeiçoar seu fluxo de trabalho. Asferramentas de software podem ser usadas para moldar os pro-cessos ou programações de fluxo de trabalho comercial e i-dentificar ineficiências e possíveis aperfeiçoamentos. Alémdisso, quando um processo envolve a troca de dados entrepessoas, departamentos, instalações ou mesmo entre companhi-as separadas, sistemas e redes de computadores podem ser u-sados para aperfeiçoar essas trocas. Tais sistemas e ferra-mentas de software são capazes, ainda, de aperfeiçoar cálcu-los em grande escala e o processamento de outros dados ouinformações que costumam estar associados a informações re-lacionadas ao comércio.
Sendo assim, o gerenciamento do fluxo de trabalhoinclui o gerenciamento eficaz do fluxo e controle de infor-mações nos processos comerciais de uma organização, em que aautomação de tal processamento de informações levou a muitosaperfeiçoamentos eficazes no mundo comercial moderno. Alémdo mais, atualmente, tal automação do gerenciamento do fluxode trabalho permite ainda que empresas e outras organizaçõesaperfeiçoem ainda mais o desempenho ao executar as transa-ções de fluxo de trabalho em sistemas de computadores, in-clusive redes mundiais de computadores, tal como a Internet.
Um típico aplicativo baseado em fluxo de trabalhogeralmente requer que várias condições sejam satisfeitas.Por exemplo, uma dessas condições é a capacidade de tomardecisões com base em regras comerciais. Isso pode incluirregras simples, (por exemplo, como uma decisão entre "sim"ou "não" com base no resultado de uma verificação de crédi-to) , e regras mais complexas, (por exemplo, o conjunto pos-sivelmente grande que deve ser avaliado para tomar uma deci-são de subscrição inicial). Outra condição é a comunicaçãocom outros softwares e outros sistemas fora do fluxo de tra-balho. Por exemplo, um pedido inicial pode ser recebido apartir de uma parte do aplicativo, enquanto alguns aspectos,(por exemplo, contatar um serviço de crédito), podem exigircomunicação usando outros serviços ou tecnologias da Rede(Web). Uma condição adicional a ser satisfeita é a interaçãoapropriada do fluxo de trabalho com os usuários. Por exem-plo, o fluxo de trabalho normalmente deve ser capaz de exi-bir uma interface com o usuário própria ou interagir com se-res humanos por meio de outros softwares. Ademais, a capaci-dade de manter o estado durante todo o tempo de existênciado fluxo de trabalho é outra condição que precisa ser satis-feita. Portanto, a criação e execução de um fluxo de traba-lho em software representam desafios únicos.
Por exemplo, alguns processos comerciais podem le-var horas, dias ou semanas para serem completados, sendo ne- cessário manter informações sobre o estado atual do fluxo detrabalho durante todo esse tempo. Além disso, esse tipo defluxo de trabalho prolongado normalmente também se comunicacom outros softwares sem o uso de blocos, e uma comunicaçãoassincrona pode representar dificuldades. Ao mesmo tempo, embora a moldagem de interações fixas entre softwares sejarelativamente direta, os consumidores tendem a exigir cons-tantemente flexibilidade adicional, tal como o recurso demudar um processo comercial dinamicamente. A manipulação dediversos aplicativos pode também agravar as complexidades envolvidas na criação e no gerenciamento do fluxo de traba-lho.
Muitos aplicativos para ferramentas de fluxo detrabalho são internos a uma empresa ou organização.
Com a chegada dos computadores em rede com modems ou outros tipos de ligações de comunicação, os sistemas decomputadores em locais remotos agora podem se comunicar comfacilidade entre si. Tal comunicação avançada permite queaplicativos de fluxo de trabalho de sistemas de computadoressejam usados entre instalações remotas dentro de uma compa-nhia. Um exemplo inclui encaminhar o pedido de um cliente apartir de uma sede comercial para um escritório de vendasremoto para verificação pelo vendedor apropriado, e retornaruma verificação para a sede. Os aplicativos de fluxo de tra-balho também podem ser de especial utilidade no processamen-to de transações comerciais entre diferentes companhias. Emum aplicativo típico, duas companhias, com uma relação com-prador-vendedor, podem desejar automatizar a geração e oprocessamento de pedidos de venda, transporte de produtos,faturamento e cobrança.
Por exemplo, um aplicativo direcionado a um pro-blema específico, tal como a gestão de relacionamento com ocliente (CRM), ou a um mercado vertical específico, tal comoserviços financeiros, pode ser construído em torno de umfluxo de trabalho. Esse tipo de aplicativo normalmente im-plementa uma série de processos comerciais diferentes. Aconstrução da lógica que orienta esses processos em uma basede fluxo de trabalho comum, tal como o Windows WorkflowFoundation, pode tornar o aplicativo mais rápido de se cons-truir, mais ágil de ser alterado e mais fácil de ser perso-nalizado. Além disso, a automatização de tais processos poderesultar em melhora significativa na eficácia, que, de outraforma, não seria possível. No entanto, tal aplicativo inter-companhia de tecnologia de fluxo de trabalho requer a coope-ração das companhias, a criação de interface apropriada e aimplementação do serviço de persistência adequado dos siste-mas de computadores e aplicativos existentes em uma compa-nhia individual.
Até o presente momento, foram desenvolvidas ferra-mentas de aplicativo de fluxo de trabalho que oferecem algu-ma capacidade para automatizar o fluxo de trabalho comercialpela definição de programações de fluxo de trabalho. Por e-xemplo, um comprador pode desejar transmitir um número depedido de compra junto com uma lista de produtos sendo com-prados a um vendedor, e o vendedor pode desejar respondercom uma confirmação do pedido e uma data de envio esperada.Tal tipo de transação pode envolver um consumidor geral com-prando produtos de um revendedor, ou, como alternativa, duasgrandes pessoas jurídicas que fazem negócios regularmente.Os dados associados ao pedido e à confirmação podem ser re-lativamente pequenos e o tempo de transmissão para os dadospode ser da ordem de frações de segundo. Um aplicativo deprogramação de fluxo de trabalho em execução em um sistemade computador pode alocar recursos de sistema para a transa-ção durante sua pendência, que geralmente é muito curta.
No entanto, a modelagem de uma interação do usuá-rio dentro de um fluxo de trabalho apresenta dificuldades.Em particular, quando pessoas estão envolvidas , um fluxo detrabalho pode levar um longo tempo para ser completado, e aconstrução de sistemas escalonáveis requer a desativação dofluxo de trabalho para a interação com o usuário. Além domais, orientar uma interface com o usuário (IU) baseando-seno estado do fluxo de trabalho, independente do tipo de a-plicativo, pode aumentar ainda mais as complexidades envol-vidas .
Portanto, há a necessidade de se superar as defi-ciências exemplificativas supramencionadas associadas aossistemas e dispositivos convencionais.
SUMÁRIO
A seguir, será apresentado um sumário simplificadoa fim de oferecer uma explicação básica de alguns aspectosda matéria reivindicada. Esse sumário não se trata de umavisão geral extensiva. Não há a intenção de identificar ele-mentos chave/cruciais ou de delinear o âmbito da matériareivindicada. Sua única finalidade é a de apresentar algunsconceitos da invenção, de forma simplificada, para servir deprelúdio à descrição mais detalhada apresentada mais adian-te .
A invenção reivindicada refere-se a sistemas e mé-todos que implementam interatividade/entrada do usuário comoparte de um fluxo de trabalho em si, em que os dados sãopassados para dentro e para fora do fluxo de trabalho a fimde formar um fluxo de trabalho interativo por meio do empre-go de um componente de atividade interativa. Tal componentede atividade interativa modela pontos de suspensão dentro deuma definição do fluxo de trabalho, e não depende de um tipode aplicativo com o intuito de abranger aplicativos de ser-viço de Rede, de console, de área de trabalho, serviços deRede, entre outros. Sendo assim, a entrada do usuário e ainteração associada podem ser fornecidas ao fluxo de traba-lho durante vários intervalos de interatividade que solici-tam a entrada de usuário para permitir uma troca de dadoscontrolada/sincrona entre o fluxo de trabalho e um aplicati-vo hospedeiro associado ao fluxo de trabalho. Desse modo, emmomentos definidos dentro da execução do fluxo de trabalho,o contexto do usuário pode ser associado a uma instância dofluxo de trabalho.
Em um aspecto relacionado, o componente de ativi-dade interativa e os pontos de suspensão podem relacionar-seà alternância dos usuários do fluxo de trabalho. Por exem-plo, o fluxo de trabalho pode orientar a Interface com o U-suário (IU) com base no estado do fluxo de trabalho durantea suspensão, tal como informações relacionadas ao usuário dofluxo de trabalho. Dessa forma, um fluxo de trabalho intera-tivo é apresentado, que executa até pontos específicos, eenvia uma resposta ao aplicativo hospedeiro. Ademais, o a-plicativo hospedeiro pode alterar a aparência do fluxo detrabalho com base no estado de suspensão. Um tipo de fluxode trabalho pode ser definido (por exemplo, por meio de pro-gramação ou de uma ferramenta visual), e o aplicativo hospe-deiro pode inscrever-se em eventos de suspensão para ofere-cer um gancho dentro da execução do fluxo de trabalho. 0(s)evento(s) de suspensão pode(m) então ser construído(s) e ba-seado (s) nas informações de tal(is) evento(s) (por exemplo,informações com respeito ao usuário atual do fluxo de tra-balho) ; a aparência da IU pode ser alterada. Sendo assim, osdados podem ser passados para dentro e para fora de umaclasse do fluxo de trabalho, e aspectos personalizados podemser definidos para interação durante o tempo de execução(por exemplo, fluxo de trabalho fortemente tipificado).
Por exemplo, no contexto de um relatório de despe-sas, um usuário inicial pode iniciar um fluxo de trabalho derelatório de despesas, e um usuário responsável pela aprova-ção pode então aprovar tal relatório de despesas. Sendo as-sim, um processo pode ser abstraído na classe do fluxo detrabalho, em que o processo e a classe do fluxo de trabalhoestão sendo executados até um ponto em que se deve envolverum responsável pela aprovação. Nesse ponto, a interação dousuário inicial é interrompida. 0 responsável pela aprovaçãoentão abre o aplicativo (por exemplo, a partir de uma máqui-na diferente) para executar o fluxo de trabalho e retomar ainstância do fluxo de trabalho com a ação especificada peloresponsável pela aprovação (por exemplo, aprovar, desapro-var, entre outros). Desse modo, é possível passar os dadospara dentro e para fora da instância do fluxo de trabalho empontos de suspensão durante o tempo de existência da instân-cia do fluxo de trabalho.
De acordo com uma metodologia da presente inven-ção, é possível analisar uma ação no fluxo de trabalho paraverificar se ele corresponde a uma atividade interativa. Ca-so corresponda, o fluxo de trabalho é suspenso. Logo após,um evento de suspensão é criado e comunicado ao hospedeiro.Como tal, e enquanto a instância do fluxo de trabalho esti-ver suspensa, os dados são obtidos do hospedeiro e passadospara dentro e/ou para fora do fluxo de trabalho. Além disso,se os dados obtidos do hospedeiro indicarem um evento reto-mado, então o fluxo de trabalho pode ser retomado. O fluxode trabalho também pode ser carregado com base em uma iden-tificação da instância do fluxo de trabalho (por exemplo,por meio de um componente de consulta). O evento retomadopode ser recebido pelo fluxo de trabalho e executado paraalcançar a próxima etapa do processo.
Para a realização dos fins citados e relacionados,certos aspectos ilustrativos da matéria reivindicada sãodescritos neste documento em relação à descrição seguinte eaos desenhos anexos. Esses aspectos indicam várias formas emque a matéria reivindicada pode ser praticada, todas asquais devem estar dentro do âmbito da matéria reivindicada.
Outras vantagens e aspectos novos irão transparecer na des-crição detalhada seguinte, ao ser considerada em combinaçãocom os desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
A Fig. 1 ilustra um diagrama de sistema exemplifi-cativo de um aplicativo hospedeiro que interage com um fluxode trabalho, por meio de um componente de atividade intera-tiva .
A Fig. 2 ilustra a execução de um fluxo de traba-lho com vários pontos de suspensão que solicitam interaçãocom um usuário e/ou hospedeiro.
As Figs. 3 e 4 ilustram um fluxograma especificopara um relatório de despesas com pontos de suspensão, deacordo com um aspecto exemplificativo da presente invenção.
A Fig. 5 ilustra uma interface gráfica exemplifi-cativa empregada para a apresentação de várias ações execu-tadas durante a execução do fluxo de trabalho.
A Fig. 6 ilustra uma troca de dados entre uma ins-tância do fluxo de trabalho e o aplicativo hospedeiro, deacordo com um aspecto da presente invenção.
As Figs. 7 a 9 ilustram uma metodologia exemplifi-cativa do fluxo de execução do fluxo de trabalho, de acordocom um aspecto da presente invenção.
A Fig. 10 ilustra um ambiente exemplificativo paraimplementar os vários aspectos da presente invenção.
A Fig. 11 é um diagrama de blocos esquemático deum ambiente de computação adicional que pode ser empregadopara implementar um fluxo de trabalho com um componente deatividade interativa da presente invenção.
DESCRIÇÃO DETALHADA
Os vários aspectos da presente invenção são agoradescritos, com referência aos desenhos em anexo, em que nú-meros iguais referem-se a elementos iguais ou corresponden- tes em todas as partes. Deve-se compreender, entretanto, queos desenhos e a descrição detalhada relacionada a eles nãotêm a intenção de limitar a matéria reivindicada à forma es-pecifica revelada. Em vez disso, a intenção é de cobrir to-das as modificações, equivalentes e alternativas incluídas dentro do âmbito e da essência da matéria reivindicada.
Conforme usados neste documento, os termos "compo-nente", "sistema", "serviço" e similares pretendem referir-se a uma entidade relacionada a computador, seja em hardwa-re, em uma combinação de hardware e software, em software ou em software em execução. Por exemplo, um componente podeser, sem a isto se limitar, um processo em execução em umprocessador, um processador, um objeto, um executável, umencadeamento de execução, um programa e/ou um computador. Atítulo ilustrativo, tanto um aplicativo em execução em um computador quanto o computador podem ser um componente. Umou mais componentes podem residir dentro de um processo e/ouencadeamento de execução, ao passo que um componente podeestar localizado em um computador e/ou ser distribuído entredois ou mais computadores.
No presente documento, a palavra "exemplificativo"é usada para indicar algo que serve de exemplo ou ilustra-ção. Qualquer aspecto ou projeto descrito no presente docu-mento como "exemplificativo" não deve ser necessariamenteinterpretado como preferido ou favorável em relação a outrosaspectos ou projetos.
Ademais, a matéria revelada pode ser implementadacomo um sistema, método, aparelho ou artigo de fabricaçãousando programação padrão e/ou técnicas de engenharia paraproduzir softwares, firmwares, hardwares, ou qualquer combi-nação desses, para controlar um computador ou dispositivobaseado em processador a fim de implementar os aspectos des-critos em detalhes no presente documento. Conforme usado nopresente documento, o termo programa de computador tem a in-tenção de abranger um programa de computador acessível apartir de qualquer dispositivo, portador ou meio legível porcomputador. Por exemplo, meios legíveis por computador podemincluir, mas sem a isto se restringir: dispositivos de arma-zenamento magnético (por exemplo, discos rígidos, discosflexíveis, tiras magnéticas etc.), discos ópticos (por exem-plo, discos compactos (CDs), discos versáteis digitais(DVDs) etc.), cartões inteligentes e dispositivos de memóriaflash (por exemplo, cartões, memory sticks) . Além disso, a-preciar-se-á que uma onda portadora pode ser empregada paracarregar dados eletrônicos legíveis por computador, tal comoos usados para transmitir e receber correio eletrônico oupara acessar uma rede tal como a Internet ou uma rede local(LAN) . Certamente, os versados na técnica perceberão muitasmodificações que podem ser aplicadas a essa configuração semdivergir do âmbito ou da essência da matéria reivindicada.
Voltando-se inicialmente à Fig. 1, é ilustrado umdiagrama de blocos para um sistema 101 que implementa inte-ratividade como parte do próprio fluxo de trabalho, em quedados são passados para dentro e para fora do fluxo de tra-balho a fim de formar um fluxo de trabalho interativo. 0sistema 101 emprega um componente de atividade interativa140 que modela pontos de suspensão dentro de uma definiçãodo fluxo de trabalho, e que não depende de um tipo de apli-cativo com o intuito de abranger aplicativos de serviço deRede, de console, de área de trabalho, serviços de Rede, en-tre outros.
Além disso, o sistema 101 inclui um aplicativohospedeiro 120 que interage com um sistema de fluxo de tra-balho 100, em que o fluxo de trabalho pode modelar um pro-cesso humano ou sistemático que é definido como um mapa deatividades. Uma atividade é uma etapa de um fluxo de traba-lho, e é a unidade de execução, re-utilização e composiçãopara um fluxo de trabalho. O mapa de atividades expressa re-gras, ações, estados e sua relação. Geralmente, o fluxo detrabalho é executado por meio do mecanismo/tempo de execuçãodo fluxo de trabalho 110, e o tempo de execução do fluxo detrabalho exige um aplicativo externo para hospedá-lo, de a-cordo com algumas poucas regras, conforme representado pelohospedeiro 120. A troca de dados entre o hospedeiro 120 e osistema de fluxo de trabalho 100 podem relacionar-se a e/oudescrever os documentos comerciais e outros objetos emprega-dos para, ou com o intuito de, facilitar a atividade do flu-xo de trabalho ou um fluxo entre as variáveis locais do flu-xo de trabalho usadas para os dados comunicados com o apli-cativo hospedeiro 120.
Por exemplo, o aplicativo hospedeiro 120 pode in-teragir com o Provedor de Fluxo de Trabalho 115 associado aosistema de fluxo de trabalho 100, por meio de uma Classe deBase do Provedor de Fluxo de Trabalho 117 e/ou implementaçãoassociada a ela. Além disso, o hospedeiro 120 pode ser res-ponsável por uma série de aspectos adicionais e cruciais,tal como a criação de um ou mais fluxos de trabalho, encami-nhamento de chamadas entre vários componentes conforme ne-cessário para a execução adequada do fluxo de trabalho, econfiguração de mecanismos de isolamento. Ademais, o hospe-deiro 120 pode criar vários processos para tirar proveito devárias Unidades Centrais de Processamento (CPUs) em uma má-quina por motivos de escalabilidade ou para executar umgrande número de instâncias do fluxo de trabalho em um gran-de conjunto de máquinas. O hospedeiro 120 pode ainda contro-lar as diretivas para aplicá-las quando um fluxo de trabalhoé submetido a uma longa espera, monitora eventos específicose comunica-os ao usuário ou administrador, ajusta limites detempo e tentativas para cada fluxo de trabalho, exibe conta-dores de desempenho e grava informações de registro parafins de depuração e diagnóstico.
Um fluxo de trabalho associado ao sistema de fluxode trabalho 101 pode comunicar-se com o mundo externo pormeio de um serviço estabelecido especialmente para esse fim,em que tal serviço pode disparar eventos em que as ativida-des orientadas por eventos dentro do fluxo de trabalho seinterligarão. Outrossim, o serviço expõe métodos públicospara o fluxo de trabalho chamar e enviar dados ao hospedei-ro .
Conforme ilustrado na Fig. 1, o componente de ati-vidade interativa 14 0 pode implementar a interatividade comoparte de um fluxo de trabalho em si, em que dados são passa-dos dentro e fora do fluxo de trabalho, para formar um fluxode trabalho interativo. O componente de atividade interativa140 modela pontos de suspensão dentro de uma definição dofluxo de trabalho. Sendo assim, a entrada do usuário e a in-teração associada podem ser fornecidas ao fluxo de trabalhodurante vários intervalos de interatividade que solicitam aentrada do usuário para permitir uma troca de dados contro-lada/sincrona entre o fluxo de trabalho e um aplicativo hos-pedeiro associado ao fluxo de trabalho. Desse modo, em mo-mentos definidos dentro da execução do fluxo de trabalho, ocontexto do usuário pode ser associado a uma instância dofluxo de trabalho.
A Fig. 2 ilustra a execução de um fluxo de traba-lho 200 com vários pontos de suspensão que exigem interaçãocom o usuário. Os pontos de suspensão 212-215 (1 a n, onde ηé um número inteiro) podem ser modelados pelo componente deatividade interativa para corresponderem a instâncias duran-te o tempo de execução do fluxo de trabalho, em que o fluxode trabalho pode ser suspenso para troca de dados com um a-plicativo hospedeiro, por exemplo. Além disso, tais pontosde suspensão 212-215 podem relacionar-se à alternância deusuários do fluxo de trabalho. Por exemplo, o fluxo de tra-balho pode orientar a Interface com o Usuário (IU) com base no estado do fluxo de trabalho durante a suspensão, tal comoinformações relacionadas ao usuário do fluxo de trabalho.
O fluxo de trabalho 200 pode ser definido na formade uma programação para execução em um sistema de computa-dor. Uma programação pode incluir um conjunto de ações com uma simultaneidade, dependência e atributos de transação es-pecificados associados a ela. Cada programação possui um es-tado de programação associado, que inclui uma definição daprogramação, a localização atual dentro da programação, bemcomo dados ativos ou dinâmicos e objetos associados à pro- gramação. Dentro de uma programação, podem existir limitesde transações com base em agrupamentos de ações. Sob esseaspecto, uma transação pode abranger ações ou transações in-dividuais, ou grupos das mesmas. As ações podem ser agrupa-das em seqüências, que são executadas em série, bem como ta-refas em que as ações são executadas ao mesmo tempo, por e-xemplo. Com base nos agrupamentos, portanto, os atributossimultâneos podem ser resolvidos para as ações e transaçõesdentro de uma programação.
As ações correspondem ao trabalho que é realizado dentro de uma programação e são a unidade básica de sua com-posição. Tais ações podem incluir atributos relacionados àlatência, simultaneidade e compensação, seja alternadamenteou em conjunto, dentro do contexto de uma programação. Porexemplo, uma ação pode enviar estímulos originados externa-mente a uma programação, permitindo, assim, que programasexternos avancem o estado da programação. Esses estímulospodem ser um evento, uma mensagem ou uma chamada em um com-ponente reservado. No caso de um evento, a programação emexecução age como um subscritor. Instâncias específicas daprogramação se encaixarão em uma ação tal como um evento,uma mensagem ou uma chamada em um componente reservado.
Ademais, as ações podem orientar chamadas de méto-dos nos componentes. Geralmente, tais ações instanciam umcomponente, (por exemplo, criam uma instância do componen-te) , chamam um método na instância e, logo após, liberam areferência à instância se ela não for usada posteriormentena programação. Quando um aplicativo executa uma programa-ção, pode-se criar uma instância de um mecanismo programadore a programação e uma ligação associada são carregadas. Asações, adicionalmente, podem incluir informações com respei-to ao tempo de conclusão ou latência esperado ou real. Taisinformações podem ser incorporadas na definição da programa-ção quando a programação está sendo definida e/ou podem serfornecidas dinamicamente em tempo de execução com base eminformações históricas ou preditivas sobre a latência da a-ção.
Os pontos de suspensão 212-215 também podem indi-car pontos de desidratação no fluxo de trabalho. Uma vez queum fluxo de trabalho pode ser executado por horas, dias ousemanas, o tempo de execução 200 pode desativar automatica-mente um fluxo de trabalho em execução e armazenar, de formapersistente, seu estado nos pontos de suspensão 212-215quando ele estiver inativo por um período de tempo. A desi-dratação refere-se, em geral, a um método de armazenar sele-tivamente um estado de programação em um meio de armazena-mento com base em considerações de latência. Por exemplo,quando é esperado que uma ação em uma programação leve cincohoras para uma mensagem de entrada, o estado da programaçãopode ser desidratado ao disco até que a mensagem seja rece-bida. Em uma situação desse tipo, o sistema pode realizaroutras tarefas até o recebimento da mensagem, com isso, au-mentando significativamente a produtividade de trabalho e aeficácia do sistema. Sendo assim, a entrada do usuário e ainteração associada podem ser fornecidas ao fluxo de traba-lho durante vários intervalos de interatividade que solici-tam a entrada do usuário para permitir uma troca de dadoscontrolada/síncrona entre o fluxo de trabalho e um aplicati-vo hospedeiro associado ao fluxo de trabalho. Desse modo, emmomentos definidos dentro da execução do fluxo de trabalho,o contexto do usuário pode ser associado a uma instância dofluxo de trabalho.
A seguir será apresentada uma definição exemplifi-cativa para o componente de atividade interativa para sus-pender e/ou retomar uma instância de fluxo de trabalho nospontos de suspensão 212-215:
Conforme indicado, a classe de atividade pode em-pregar seu próprio executor para a finalidade de bloquear aexecução do fluxo de trabalho chamando o método Suspender noServiço Interativo. Isso pode iniciar a propagação do Iden-tificadorDelnteração associado ao componente de AtividadeInterativa até o manipulador do hospedeiro.
Sendo assim, é possível oferecer um fluxo de tra-balho interativo que é executado até pontos específicos, eoferecer realimentação ao aplicativo hospedeiro. 0 aplicati-vo hospedeiro pode alterar a aparência do fluxo de trabalhocom base no estado de suspensão. Um tipo de fluxo de traba-lho pode ser definido (por exemplo, por meio de programaçãoou de uma ferramenta visual), e o aplicativo hospedeiro podesubscrever-se a eventos de suspensão para oferecer um ganchona execução do fluxo de trabalho. 0(s) evento(s) de suspen-são pode(m) então ser disparado(s) e baseado(s) nas informa-ções de tal(is) evento(s) (por exemplo, informações com res-peito a um usuário do fluxo de trabalho); a aparência da IUpode ser alterada. Sendo assim, é possível passar os dadospara dentro e para fora de uma classe do fluxo de trabalho,e podem ser definidos aspectos personalizados para interaçãodurante o tempo de execução (por exemplo, fluxo de trabalhofortemente tipificado) .
As Figs. 3 e 4 ilustram fluxogramas específicospara um relatório de despesas com pontos de suspensão quepermite entrada do usuário e interação associada durante vá-rios intervalos de interatividade que exigem entrada do usu-ário, para permitir uma troca de dados controlada/síncronaentre o fluxo de trabalho e um aplicativo hospedeiro associ-ado ao fluxo de trabalho. Os fluxogramas 300 e 400 ilustramo emprego da atividade TrocarUsuário e do componente Ativi-dadelnterativa como pontos de suspensão dentro de um fluxode trabalho Relatório de Despesas.
Tal como e no contexto de um relatório de despe-sas, um usuário inicial pode iniciar um fluxo de trabalho derelatório de despesas, e um usuário responsável pela aprova-ção pode então aprovar tal relatório de despesas. Sendo as-sim, um processo pode ser abstraído na classe do fluxo detrabalho, em que o processo e a classe do fluxo de trabalhoestão sendo executados até um ponto em que o envolvimento deum responsável pela aprovação torna-sè necessário. Nesseponto, a interação do usuário inicial é interrompida. O res-ponsável pela aprovação então abre o aplicativo (por exem-plo, a partir de uma máquina diferente) para executar o flu-xo de trabalho e retomar a instância do fluxo de trabalhocom a ação especificada pelo responsável pela aprovação (porexemplo, aprovar, desaprovar, entre outros). Desse modo, osdados podem ser passados para dentro e para fora da instân-cia do fluxo de trabalho em momentos de suspensão durante otempo de existência da instância do fluxo de trabalho.
Conforme ilustrado na Fig. 3, a caixa 310 repre-senta uma ação "RDEnviada", em que é indicado um estado desuspensão para o aplicativo hospedeiro para processar umavisualização de um relatório de despesas submetido por meiode uma interface gráfica (por exemplo, uma forma dedicada),conforme descrito em detalhes abaixo na Fig. 5. Além disso,a ação 320 na definição de fluxo de trabalho 300 representauma instância da atividade TrocarUsuário pela qual a inven-ção reivindicada altera a associação atual entre o usuárioresponsável pela execução do próximo segmento do fluxo detrabalho e a instância do fluxo de trabalho. Geralmente, is-so assegura que o fluxo de trabalho possa ser retomado poruma ação de aprovar/rejeitar realizada sob o contexto de e-xecução somente do usuário apropriado. De forma similar, asações 330, 430 representam instâncias do intervalo Ativida-delnterativa, de acordo com um aspecto exemplificativo dainvenção reivindicada. De modo semelhante, a caixa 420, queé designada como NovaRD, ilustra um Novo Relatório de Despe-sas, em que o fluxo de trabalho se torna suspenso enquantoaguardando pelos dados de relatórios de despesas globais se-rem fornecidos como resultado da entrada do usuário por meiode uma interface gráfica (por exemplo, uma forma dedicada daFig. 5) .
O fluxo de trabalho possui um aplicativo para en-viar e aprovar relatórios de despesas, caracterizado pelofato de o aplicativo contém várias páginas que são coordena-das por um fluxo de trabalho. Além das várias atividades econstruções de fluxo de controle, o fluxo de trabalho de-monstra como o usuário associado pode ser alterado, quandoapresentado ao responsável pela aprovação do relatório dedespesas, por exemplo. Como já explicado, durante a açãoPreencherRD 430, o fluxo de trabalho é suspenso e o usuáriopode continuar a adicionar itens de linha ao relatório dedespesas. Também é possível incluir consultar a lista defluxos de trabalho em desenvolvimento disponíveis para exi-bição no fluxo de trabalho do aplicativo.
Por exemplo, o aplicativo de relatórios de Despe-sas pode conter uma página inicial que lista relatórios dedespesas em desenvolvimento que foram enviados pelo usuárioatual e quaisquer relatórios de despesas aguardando a apro-vação do usuário. Tal aplicativo permite a criação de novosrelatórios de despesas pela: especificação de informaçõestais como a finalidade do relatório de despesas, entre ou-tros; adição dos itens de linha individuais; e verificaçãoda exatidão das informações. Além do mais, quando um novorelatório de despesas é enviado, o aplicativo pode enviaruma notificação por correio eletrônico 460 ao responsávelpela aprovação. Logo após, o responsável pela aprovação podevisualizar um relatório de despesas e ou aprová-lo ou rejei-tá-lo, enviando, então, uma mensagem final.
A seguir, é apresentada uma definição do fluxo detrabalho Relatórios de Despesas exemplificativo que incorpo-ra interatividade, de acordo com um aspecto exemplificativoda presente invenção.
<WorkfIow Name="ExpenseReportingWorkflow"Inherits="InteractiveWorkfIow"Implements="ITrackingWorkfIowStateHandler"
xmlns="System.ApplicationServices.Workflows, System.ApplicationServices.Workflow"
xmlns : w="System.Web.WorkfIows,System.Web"
xmlns : s="SampleApp">
<StartActivity Name="Start">
<Transitions>
<ActivityTransition Destination="NewER" />
</Transitions>
</StartActivity><UIActivity Name="NewER"
InteractionIdentifier="NewER" Actions="Submit">
<Transitions>
<ActivityTransition Destination="FillER"
Action="Submit" />
</Transitions>
</UIAetivity>
<UIAotivity Name="FillER"
InteractionIdentifier="FillER" Actions="AddItem, Submit">
<Transitions>
<ActivityTransition Destination="FillER"
Action="AddItem" />
<ActivityTransition Destination="FillApprover"
Action="Submit" />
</Transitions>
</UIAetivity>
<CodeAetivity Name="FillApprover"
CustomExecute="FillApprover_CustomExeeute">
<Transitions>
<AetivityTransition Destination="VerifyER" />
<Transitions>
</CodeAetivity>
<UIAetivity Name="VerifyER"
InteraetionIdentifier="VerifyER" Actions="Submit">
<Transitions>
<ActivityTransition Destination="MailActivityl"
Action="Submit" />
</Transitions></UIActivity>
<s:MailActivity Name=nMailActivityl"From="expenses@example.com" Subjeet=nNew expensereport submitted; approval required.">
<Transitions>
<AetivityTransition Destination="SwitehUserl" />
</Transitions>
</s:MaiIAetivity>
<SwitehUserAetivity Name="Switchüserl"> <Transitions>
<ActivityTransition Destination=nApproveER" />
</Transitions>
<Bindings>
<ActivityBinding ActivityPropertyName=nUserName" WorkflowPropertyName="Approver"></Bindings></CodeActivity><UIActivity Name="ApproveER"InteractionIdentifier="ApproveER" Actions="Approve, Reject"><Transitions>
<ActivityTransition Destination="Payment"
Action="Approve" />
<ActivityTransition Destination="MaiIActivity2" Action=llReject" />
</Transitions></UIActivity>
<s:MailAetivity Name="MailAetivity2"From="expenses@example.com" Subj ect="Expense
report was rejected."><Transitions>
<ActivityTransition Destination="Stop" />
</Transitions>
</s:MailActivity>
<CodeActivity Name=nPayment"
CustomExecute="Payment_CustomExecute"><Transitions>
<ActivityTransition Destination="MailActivity3" />
</Transitions>
</CodeActivity>
<s:MailActivity Name="MailActivity3"From="expenses@example.com" Subj ect="Expensereport was approved.">
<Transitions>
<ActivityTransition Destination="Stop" /></Transitions>
</s:MailActivity>
<StopActivity Name="Stop" />
<Code Language="C#">private Guid _expenseReportID;private ExpenseReport _expenseReport;public ExpenseReport ExpenseReport {get { return _expenseReport; }}
public Guid ExpenseReportID {get { return expenseReportID; }set { _expenseReportID = value; }}
protected override void OnStarting(EventArgs e) {base.OnStarting(e);
_expenseReport = new ExpenseReport();
_expenseReportID = _expenseReport. ID;}
private void FillApprover_CustomExecute (objectsender, ActivityExecuteEventArgs e) {
// TODO: Usa usuário atual e quantidade dorelatório de despesas para determinar responsável pelaaprovação
e.Result = true;}
private void Payment_CustomExeeute(objeet sender,ActivityExecuteEventArgs e) {
// TODO: Efetua pagamento chamando um serviço da
Rede
e.Result = true;}
#region Implementation ofITraekingWorkfIowStateHandler voidITraekingWorkfIowStateHandler.BeginLoa() {}
void ITraekingWorkfIowStateHandler.BeginSave () {ExpensesDB.UpdateExpenseReport (_expenseReport);}
void ITraekingWorkfIowStateHandler.EndLoad() {_expenseReport
ExpensesDB.GetExpenseReport(ExpenseReportID) ;}
void ITrackingWorkfIowStateHandler.EndSave() {}
#endregion</Code></Workflow>Web.config<system.web><pageFlows>
<pageFlow name="ExpenseReporting"workfIow=nExpenseReporting.workflow"provider="SqlWorkfIowProvider"StartPagePath=nDefault.aspx"><pages>
<add name="NewER'
behavior="CreateWorkflow" />
<add name="FillER"behavior="ResumeWorkflow" />
pagePath="NewER.aspx"
pagePath="FillER.aspx"
</pages></pageFlow></pageFlows></system.web>Default.aspx<%@ Page %><html><body>
<form runat="server"/>
<asp:WorkflowDataSourceid="pendingWorkflows"
pageFlowName="ExpenseReporting"Filter=nCreatedByUser" />
<asp:WorkflowDataSource runat="server"id="approvalWorkflows"
pageFlowName="ExpenseReporting"Filter=AssignedToUser"
Expense Reports Pending Approval:<asp:GridView runat="server"
DataSourceID="pendingWorkflows" />Expense Reports Needing Approval:<asp:GridView runat="server"
DataSourceID="approvaiWorkflows" />
<a href="NewER.aspx">Create New Expense Report</a>
</form>
</body>
</html>
Approve.aspx
<%@ Page %>
<asp:PageFlowManager runat="server"
id="pageFlowManager1" PageFlowName="ExpenseReporting" />
<html>
<body>
<form runat="server">
<asp: FormView runat="server"DataSourceID="pageFlowManager1">
<ItemTemplate>
</ItemTemplate>
</asp:FormView>
<asp:ActionButton runat="server" Text="Approve">
<ClickActions>
<asp:PageFlowAction Type=nResume"
ResumeAction=nApprove" />
</ClickAetions>
</asp:AetionButton>
<asp:AetionButton runat="server" Text=nRejeet">
<ClickActions>
<asp:PageFlowAetion Type=nResumen
ResumeAction=nRejeetn />
</CliekAetions>
</asp:ActionButton>
</form>
</body>
</html>
A Fig. 5 ilustra uma interface gráfica exemplifi-cativa (por exemplo, uma forma dedicada) que pode ser apli-cada em combinação com vários aspectos da invenção reivindi-cada. Para um fluxo de página 510, tal aplicativo de relató-rios de despesa apresenta um aplicativo de Rede para enviare aprovar relatórios de despesas, por exemplo. O aplicativocontém várias páginas coordenadas por um fluxo de trabalho.Além das várias atividades e construções de fluxo de contro-le, o fluxo de trabalho demonstra como o usuário associadopor ser trocado. 0 fluxo de página 510 também demonstra aconsulta à lista de fluxos de trabalho em desenvolvimentodisponíveis para exibição no fluxo de trabalho do aplicati-vo. Por exemplo, o fluxo de trabalho pode orientar a Inter-face com o Usuário (IU) com base no estado do fluxo de tra-balho durante a suspensão, tal como informações relacionadasao usuário do fluxo de trabalho. Dessa forma, obtém-se umfluxo de trabalho interativo, que é executado até pontos es-pecíficos, e fornece uma realimentação ao aplicativo hospe-deiro. Ademais, o aplicativo hospedeiro pode alterar a apa-rência do fluxo de trabalho com base no estado de suspensão.Conforme explicado acima, no contexto de um relatório dedespesas, um tipo de fluxo de trabalho pode ser definido(por exemplo, por meio de programação ou de uma ferramentavisual), e o aplicativo hospedeiro pode subscrever-se a e-ventos de suspensão para oferecer um gancho na execução dofluxo de trabalho. 0(s) evento(s) de suspensão pode(m) entãoser disparado(s) e baseado(s) nas informações de tal(is) e-vento(s) (por exemplo, informações com respeito a um usuáriodo fluxo de trabalho); a aparência da UI pode ser alterada.Sendo assim, os dados podem ser passados para dentro e parafora de uma classe do fluxo de trabalho, e podem-se definircaracterísticas personalizadas para interação durante o tem-po de execução (por exemplo, fluxo de trabalho fortementetipificado). Além disso, o hospedeiro pode consultar a ins-tância de fluxo de trabalho para identificar a atividade deinteração atual que fez com que o fluxo de trabalho se tor-nasse suspenso e/ou ocioso.
A Fig. 6 ilustra um diagrama de blocos para umsistema 600 que pode modelar pontos de suspensão dentro deuma definição do fluxo de trabalho, caracterizado pelo fatode que dados são passado dentro e fora do fluxo de trabalhopara formar um fluxo de trabalho interativo. Geralmente, emuma instância de fluxo de trabalho 640 que possui um compo-nente de atividade interativa 610 incluído como parte sua,um evento de suspensão pode ser disparado para permitir umasuspensão na execução do fluxo de trabalho, seja em termosde tempo, ou trocando o usuário atual, por exemplo. O fluxode trabalho pode iniciar a execução executando a AtividadeI-nicial contida e terminar quando PararAtividade for executa-do. No decorrer da execução, cada atividade pode ser anali-sada para verificar se ela pode ser executada. Se a ativida-de não puder ser executada, o fluxo de trabalho é suspenso,por exemplo. Se uma atividade pode ser executada, um métodoExecutar associado é invocado, e se o método retornar um re-sultado de êxito, usa-se a transição de atividade apropriadapara determinar a próxima atividade. Fluxos de trabalho po-dem ser suspensos por uma série de motivos, tais como: can-celamento da execução de uma atividade, incapacidade de umaatividade em continuar em execução, um retardo específicointroduzido para adiar uma execução posterior, e alteraçãode contexto de usuário exigindo que a execução subseqüenteseja realizada por um usuário diferente. Uma vez suspensa, ainstância de fluxo de trabalho pode ser salva/serializada embase de dados ou armazenamento equivalente, a partir do qualela poderá ser posteriormente, recuperada, desserializada eretomada. Um fluxo de trabalho também pode entrar em estadode erro, se a execução de uma atividade resultar em um erroque não é tratado.
Conforme ilustrado na Fig. 6, o componente de ati-vidade interativa 610 pode disparar o evento por meio doserviço de interatividade 620, que está associado ao meca-nismo/tempo de execução do fluxo de trabalho 635. Posterior-mente, o fluxo de trabalho é suspenso e o hospedeiro 630 po-de trocar dados (por exemplo, obter dados) com a instânciade fluxo de trabalho 640. O hospedeiro pode, então, retomaro fluxo de trabalho, chamando o serviço de atividade intera-tiva 620, para retomar a execução do fluxo de trabalho. Sen-do assim, a entrada do usuário e a interação associada podemser fornecidas ao fluxo de trabalho durante vários interva-los de interatividade que solicitam a entrada do usuário pa-ra permitir uma troca de dados controlada/sincrona entre ofluxo de trabalho e um aplicativo hospedeiro associado aofluxo de trabalho.
As Figs 7 a 9 ilustram fluxogramas exemplificati-vos do fluxo de execução do fluxo de trabalho, de acordo comum aspecto da presente reivindicada. Embora o método exem-plificativo seja ilustrado e descrito no presente documentocomo uma série de blocos que representam vários evento e/ouações, a invenção reivindicada não se limita à ordem ilus-trada de tais blocos. Por exemplo, diferentemente da ordemilustrada no presente documento, algumas ações ou eventospodem ocorrer em ordens diferentes e/ou simultaneamente aoutras ações ou eventos, de acordo com a invenção. Além dis-so, pode ser que nem todos os blocos, eventos ou ações ilus-trados sejam necessários para implementar uma metodologia deacordo com a presente invenção. Ademais, apreciar-se-á que o método exemplificativo e outros métodos de acordo com a in-venção podem ser implementados em associação ao método ilus-trado e descrito no presente documento, assim como em rela-ção a outros sistemas e aparelhos não ilustrados ou descri-tos. Conforme ilustrado na Fig. 7, a metodologia 700, o pro- cesso do fluxo de trabalho executa e passa para a ação se-guinte do processo. A execução do fluxo de trabalho pode ve-rificar em 710 se a ação a ser executada significa um térmi-no do fluxo de trabalho. Se a resposta for positiva, a exe-cução do fluxo de trabalho termina em 720. Caso contrário, a metodologia prossegue para a ação 730, em que a ação a serexecutada pelo fluxo de trabalho é analisada para verificarse ela é uma atividade interativa. Se a resposta for positi-va, o fluxo de trabalho é suspenso em 740 para permitir in-teração com um aplicativo hospedeiro, conforme descrito pre- viamente em detalhes. Caso contrário, a metodologia retornapara a ação 705, em que o fluxo de trabalho executa a açãoatual e prossegue para a próxima.
Conforme ilustrado na Fig. 7 e após a suspensão dofluxo de trabalho em 740, o fluxo de execução prossegue com o disparo de um evento de suspensão para o hospedeiro, em750. Como tal, e conforme ilustrado na Fig. 8, embora a ins-tância do fluxo de trabalho seja suspensa em 860, os dadossão trocados entre o hospedeiro e o fluxo de trabalho em862. Como tal, os dados podem ser passados dentro e/ou forado fluxo de trabalho. Isso pode incluir a obtenção dos dadosa partir da instância do fluxo de trabalho em 864 e/ou a de-finição dos dados pelo hospedeiro em 866. Sendo assim, a en-trada do usuário e a interação associada podem ser forneci-das ao fluxo de trabalho durante vários intervalos de inte-ratividade que solicitam a entrada do usuário para permitiruma troca de dados controlada/sincrona entre o fluxo de tra-balho e um aplicativo hospedeiro associado ao fluxo de tra-balho. Desse modo, em momentos definidos dentro da execuçãodo fluxo de trabalho, o contexto do usuário pode ser associ-ado a uma instância do fluxo de trabalho.
Em 870, pode-se realizar uma verificação para ana-lisar se os dados lançados pelo hospedeiro são um evento deretomada. Se não, então a instância do fluxo de trabalho po-de permanecer em estado suspenso para continuar a troca dedados, e a metodologia volta para a ação 862. Caso contrá-rio, a metodologia prossegue para a Fig. 9, em que o hospe-deiro pode enviar um evento para o fluxo de trabalho pararetomar a execução em 980. Em 982, é possível realizar umaverificação quanto a se o fluxo de trabalho está carregado.Se a resposta for positiva, o fluxo de trabalho recebe o e-vento de retomada em 986 e, logo após, volta para a ação 705para executar uma ação seguinte do fluxo de execução. Casocontrário, e se o fluxo de trabalho não estiver carregado,então o fluxo de trabalho é carregado com base em uma iden-tificação associada a ele (por exemplo, quando a instânciado fluxo de trabalho foi criada) em 984, e então prosseguepara a ação 8 96 para retomar o fluxo de trabalho.
De modo a apresentar um contexto para os váriosaspectos da matéria revelada, as Figs. 10 e 11, bem como adiscussão seguinte, visam a apresentar uma breve descriçãogeral de um ambiente de computação adequado, no qual é pos-sível implementar os vários aspectos da matéria revelada.Embora a invenção tenha sido descrita acima no contexto ge-ral de instruções executáveis por computador de um programade computador que roda em um computador e/ou em computado-res, os versados na técnica reconhecerão que a invenção tam-bém pode ser implementada em combinação com outros módulosde programa. Geralmente, os módulos de programa incluem ro-tinas, programas, componentes, estruturas de dados, etc.,que efetuam tarefas específicas e/ou implementam tipos dedados abstratos específicos. Além disso, os versados na téc-nica irão apreciar que os métodos inventivos podem ser pra-ticados com outras configurações de sistema de computador,incluindo sistemas de computador de único processador oumultiprocessadores, microdispositivos de computação, compu-tadores de grande porte, bem como computadores pessoais,dispositivos de computação portáteis (por exemplo, assisten-te digital pessoal (PDA), telefone, relógio, etc.), compo-nentes eletrônicos industriais baseados em microprocessadorou programáveis pelo consumidor, entre outros. Os aspectosilustrados também podem ser praticados em ambientes de com-putação distribuída, nos quais as tarefas são efetuadas pordispositivos de processamento remoto que estão ligados pormeio de uma rede de comunicações. No entanto, alguns dos as-pectos da invenção, ou mesmo todos, podem ser praticados emcomputadores autônomos.
Em um ambiente de computação distribuída, os módu-los de programa podem estar localizados tanto em dispositi-vos de armazenamento em memória local quanto remota.
Com referência à Fig. 10, é descrito um ambienteilustrativo 1010 para implementar vários aspectos da inven-ção reivindicada, o qual inclui um computador 1012. 0 compu-tador 1012 inclui uma unidade de processamento 1014, uma me-mória do sistema 1016 e um barramento do sistema 1018. Obarramento do sistema 1018 acopla componentes do sistema,incluindo, sem a isto se limitar, a memória do sistema 1016à unidade de processamento 1014. A unidade de processamento1014 pode ser qualquer uma dentre vários processadores dis-poníveis. Microprocessadores duplos e outras arquiteturascom múltiplos processadores também podem ser empregados comoa unidade de processamento 1014.
O barramento do sistema 1018 pode ser qualquer umdentre vários tipos de estrutura(s) de barramento®, incluin-do o barramento de memória ou controlador de memória, umbarramento periférico ou barramento externo e/ou um barra-mento local usando qualquer uma dentre uma variedade de ar-quiteturas de barramento disponíveis, incluindo, mas sem aisto se limitar, barramento de 11 bits, Arquitetura PadrãoIndustrial (ISA), Arquitetura de Microcanal (MSA), ISA Es-tendida (EISA), Interface IDE, Barramento local VESA (VLB),Interconexão de Componentes Periféricos (PCI), BarramentoSerial Universal (USB), Porta Gráfica Acelerada (AGP), bar-ramento da Associação Internacional de Placas de Memória pa-ra Computador Pessoal (PCMCIA), CardBUS, Bluetooth, Firewire1394 e Interface para Pequenos Sistemas de Computador(SCSI) .
A memória do sistema 1016 inclui a memória volátil1020 e memória não-volátil 1022. 0 sistema básico de entra-da/saída (BIOS), contendo as rotinas básicas para transfe-rência de informações entre os elementos dentro do computa-dor 1012, tal como durante a inicialização, é armazenado namemória não-volátil 1022. A titulo de ilustração, sem limi-tação, a memória não volátil 1022 pode incluir memória so-mente para leitura (ROM), ROM programável (PROM), ROM ele-tricamente programável (EPROM), ROM eletricamente apagável(EEPROM) ou memória flash. A memória volátil 1020 inclui me-mória de acesso aleatório (RAM), que age como memória cacheexterna. A titulo de ilustração, e sem limitação, a RAM seencontra disponível em diversas formas, como RAM sincrona(SRAM), RAM dinâmica (DRAM), DRAM sincrona (SDRAM), SDRAM dedupla taxa de dados (DDR SDRAM), SDRAM avançada (ESDRAM),DRAM Synchlink (SLDRAM) e RAM direta Rambus (DRRAM).
0 computador 1012 também inclui meios de armazena-mento de computador removiveis/não-removiveis e volá-teis/não-voláteis. A Fig. 10 ilustra, por exemplo, um arma-zenamento em disco 1024. 0 armazenamento em disco 1024 in-clui, sem a isto se restringir, dispositivos como uma unida-de de disco magnético, uma unidade de disco flexível, umaunidade de fita, uma unidade Jaz, uma unidade Zip, uma uni-dade LS-100, um cartão de memória flash ou um cartão memorystick. Além disso, o armazenamento em disco 1024 pode inclu-ir meios de armazenamento separados ou em combinação com ou-tros meios de armazenamento, incluindo, mas sem a isto serestringir, uma unidade de disco óptico, tal como um dispo- sitivo de disco compacto ROM (CD-ROM), uma unidade de CDgravável (Unidade de CD-R), uma unidade de CD regravável (U-nidade de CD-RW) ou uma unidade de disco versátil digitalROM (DVD-ROM). Para facilitar a conexão dos dispositivos dearmazenamento em disco 1024 ao barramento do sistema 1018, costuma-se usar uma interface removível ou não-removivel,tal como a interface 1026.
Deve-se apreciar que a Fig. 10 representa um soft-ware que age como um elemento intermediário entre os usuá-rios e os recursos básicos do computador descritos no ambi-ente operacional adequado 1010. Tal software inclui um sis-tema operacional 1028. O sistema operacional 1028, que podeser armazenado no armazenamento em disco 1024, serve paracontrolar e alocar recursos do sistema de computador 1012.Os aplicativos de sistema 1030 tiram proveito do gerencia- mento de recursos do sistema operacional 1028 por meio dosmódulos de programa 1032 e dos dados de programa 1034 arma-zenados tanto na memória do sistema 1016 como no armazena-mento em disco 1024. Deve-se apreciar que os vários compo-nentes descritos no presente documento podem ser implementa- dos com vários sistemas operacionais ou combinações de sis-temas operacionais.
O usuário entra com comandos ou informações nocomputador 1012 por meio do(s) dispositivo(s) de entrada1036. Os dispositivos de entrada 1036 incluem, sem a isto serestringir, um dispositivo de apontamento tal como um mouse,trackball, caneta, teclado sensível ao toque, teclado, mi-crofone, joystick, controle de jogo, antena de satélite,scanner, placa sintonizadora de TV, câmera digital, câmerade vídeo digital, webcam, e outros do gênero. Esses e outrosdispositivos de entrada conectam-se à unidade de processa-mento 1014 por meio do barramento do sistema 1018 pela(s)porta(s) de interface 1038. A(s) porta(s) de interface 1038incluem, por exemplo, uma porta serial, uma porta paralela,uma porta de jogo e um barramento serial universal (USB).0(s) dispositivo(s) de saída 1040 usam alguns dos mesmos ti-pos de portas que o(s) dispositivo(s) de entrada 1036. Dessemodo, por exemplo, uma porta USB pode ser usada para entradade informações no computador 1012 e para transmitir informa-ções do computador 1012 para um dispositivo de saída 1040. 0adaptador de saída 1042 é proporcionado para ilustrar queexistem alguns dispositivos de saída 1040 como monitores,alto-falantes e impressoras, dentre outros dispositivos desaída 1040, que necessitam de adaptadores especiais. Os a-daptadores de saída 1042 incluem, a título de ilustração enão de limitação, placas de vídeo e de som que propiciam ummeio de conexão entre o dispositivo de saída 1040 e o barra-mento de sistema 1018. Deve-se observar que outros disposi-tivos e/ou sistemas de dispositivos oferecerem tanto recur-sos de entrada quanto de saída, tal como o(s) computador(es)remoto(s) 1044.
O computador 1012 pode operar em um ambiente emrede usando conexões lógicas com um ou mais computadores re-motos, tais como o(s) computador(es) remoto(s) 1044. 0(s)computador(es) remoto(s) 1044 pode(m) ser um computador pes-soal, um servidor, um roteador, um PC de rede, uma estaçãode trabalho, um dispositivo baseado em microprocessador, umdispositivo não hierarquizado ou outro nó comum da rede, en-tre outros, e tipicamente incluem grande parte ou todos oselementos descritos em relação ao computador 1012. Para finsde concisão, apenas um dispositivo de armazenamento em memó-ria 1046 é ilustrado junto ao(s) computador(es) remoto(s)1044. 0(s) computador(es) remoto(s) 1044 é(são) logicamenteconectado(s) ao computador 1012 por meio de uma interface derede 1048 e então fisicamente conectado(s) por via de cone-xão de comunicação 1050. A interface de rede 1048 abrangeredes de comunicação, tais como redes locais (LAN) e redesde longa distância (WAN). As tecnologias LAN incluem Inter-face de Dados Distribuídos por Fibra Óptica (FDDI), Interfa-ce de Dados Distribuídos por Cobre (CDDI), Ethernet/IEEE802.3, Rede em Anel/IEEE 802.5, entre outros. As tecnologiasWAN incluem, sem a isto se restringir, ligações ponto-a-ponto, redes de comutação de circuito como Redes Digitais deServiços Integrados (ISDN) e variações destas, redes de co-mutação de pacotes e Linhas Digitais do Assinante (DSL).A(s) conexão(ões) de comunicação 1050 referem-se ao hardwa-re/software usado para conectar a interface de rede 1048 aobarramento 1018. Embora a conexão de comunicação 1050 sejailustrada, visando maior clareza na ilustração, dentro docomputador 1012, ela também pode ser externa ao computador1012. O hardware/software necessário para conexão à interfa-ce de rede 1048 inclui, para fins meramente exemplificati-vos, tecnologias internas e externas como modems, inclusivemodems de grade telefônica regular, modems a cabo e modemsDSL, adaptadores ISDN e placas Ethernet. A Fig. 11 é um dia-grama de blocos esquemático de um ambiente de computação mo-delo que pode ser usado para implementar um fluxo de traba-lho com um componente de interatividade da invenção reivin-dicada. O sistema 1100 inclui um ou mais cliente (s) 1110.O(s) cliente(s) 1110 podem ser hardware e/ou software (porexemplo, encadeamentos, processos, dispositivos de computa-ção) . O sistema 1100 também inclui um ou mais servidor(es)1130. O(s) servidor(es) 1130 também podem ser hardware e/ousoftware (por exemplo, encadeamentos, processos, dispositi-vos de computação). Os servidores 1130 podem armazenar enca-deamentos para realizar transformações empregando os compo-nentes descritos no presente documento, por exemplo. Umapossível comunicação entre um cliente 1110 e um servidor1130 pode ser na forma de um pacote de dados adaptado paraser transmitido entre dois ou mais processos de computador.O sistema 1100 inclui uma estrutura de comunicação 1150 quepode ser usada para facilitar as comunicações entre o(s)cliente(s) 1110 e o(s) servidor(es) 1130. 0(s) cliente(s)1110 são operavelmente conectados a um ou mais armazenamen-tos de dados de cliente 1160 que podem ser usados para arma-zenar informações locais para o(s) cliente(s) 1110. De formasemelhante, o(s) servidor(es) 1130 (é)são operavelmente co-nectado (s) a um ou mais armazenamento(s) de dados de servi-dor 1140 que podem ser usado(s) para armazenar informaçõeslocais para os servidores 1130.
O que foi descrito acima inclui vários aspectosexemplificativos. Naturalmente, não é possível descrever to-das as combinações possíveis dos componentes ou metodologiaspara fins de descrição desses aspectos, mas os versados natécnica serão capazes de reconhecer diversas outras possí-veis combinações e alterações. Logo, os aspectos descritosneste documento pretendem abranger todas tais alterações,modificações e variações que se enquadram na essência e noâmbito das reivindicações anexas. Além do mais, na medida emque o termo "inclui" é usado, tanto na descrição detalhadacomo nas reivindicações, tal termo pretende ser inclusivo deforma semelhante ao termo "compreendendo", uma vez que "com-preendendo" é interpretado, quando empregado, como uma pala-vra de transição em uma reivindicação.
Claims (13)
1. Sistema implementado por computador,CARACTERIZADO por compreender os seguintes componentes exe-cutáveis por computador:um sistema de fluxo de trabalho (100) contendo umcomponente de atividade interativa (140) que modela pontosde suspensão dentro de um fluxo de trabalho; eum hospedeiro (120) que troca dados com o fluxo detrabalho nos pontos de suspensão.
2. Sistema implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que ospontos de suspensão possuem intervalos de interatividade pa-ra entrada do usuário.
3. Sistema implementado por computador, de acordoponente de atividade interativa possui recursos de troca deusuário.
4. Sistema implementado por computador, de acordocom a reivindicação 2, CARACTERIZADO pelo fato de que o flu-xo de trabalho pode ser carregado com base na identificaçãoassociada a ele.
5. Sistema implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que ospontos de suspensão são associados a uma aparência da Inter-face com o Usuário (IU) alterável do fluxo de trabalho.
6. Sistema implementado por computador, de acordocom a reivindicação 5, CARACTERIZADO pelo fato de que a IUpode ser operada com base no estado do fluxo de trabalho du-com a reivindicação 9, CARACTERIZADO por adicionalmente com-preender verificar se os dados são um evento de retomada.14. Método implementado por computador, de acordocom a reivindicação 9, CARACTERIZADO por adicionalmente com-preender disparar um evento de suspensão para o hospedeiro.15. Método implementado por computador, de acordocom a reivindicação 14, CARACTERIZADO por adicionalmentecompreender um dentre alterar e modificar uma IU com base noevento de suspensão.16. Método implementado por computador, de acordocom a reivindicação 14, CARACTERIZADO por adicionalmentecompreender fornecer uma entrada do usuário ao fluxo de tra-balho.17. Método implementado por computador, de acordocom a reivindicação 14, CARACTERIZADO por adicionalmentecompreender subscrever o hospedeiro a eventos de suspensãodentro de um fluxo de trabalho.18. Método implementado por computador, de acordocom a reivindicação 14, CARACTERIZADO por adicionalmentecompreender determinar um estado do fluxo de trabalho con-sultando uma instância do fluxo de trabalho para identificaruma atividade de interação que causou a suspensão do fluxode trabalho.19. Método implementado por computador, de acordocom a reivindicação 14, CARACTERIZADO por adicionalmentecompreender alterar a aparência do fluxo de trabalho com ba-se em pontos de suspensão.20. Sistema implementado por computador,rante a suspensão.
7. Sistema implementado por computador, de acordocom a reivindicação 5, CARACTERIZADO pelo fato de que o flu-xo de trabalho pode ser retomado por uma atividade do hospe-deiro.
8. Sistema implementado por computador, de acordocom a reivindicação 5, CARACTERIZADO pelo fato de que o sis-tema de fluxo de trabalho possui uma Classe do provedor defluxo de trabalho para comunicação com o hospedeiro.
9. Método implementado por computador,CARACTERIZADO por compreender as seguintes ações executáveispor computador:encontrar uma atividade que suspende um fluxo detrabalho,trocar dados entre um hospedeiro e o fluxo de tra-balho durante a suspensão do fluxo de trabalho.
10. Método implementado por computador, de acordocom a reivindicação 9, CARACTERIZADO por adicionalmente com-preender definir dados pelo hospedeiro.
11. Método implementado por computador, de acordocom a reivindicação 9, CARACTERIZADO por adicionalmente com-preender enviar um evento pelo hospedeiro ao fluxo de traba-lho para retomar a execução.
12. Método implementado por computador, de acordocom a reivindicação 9, CARACTERIZADO por carregar um fluxode trabalho com base em uma identificação de uma instânciado fluxo de trabalho.
13. Método implementado por computador, de acordoCARACTERIZADO por compreender os seguintes componentes exe-cutáveis por computador:meios (110) para suspender um fluxo de trabalho; emeios (140) para trocar dados entre um hospedeiroe o fluxo de trabalho durante a suspensão do fluxo de traba-lho.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/321,490 | 2005-12-29 | ||
US11/321,490 US8849691B2 (en) | 2005-12-29 | 2005-12-29 | Modeling user input and interaction in workflow based applications |
PCT/US2006/046905 WO2007078593A1 (en) | 2005-12-29 | 2006-12-07 | Modeling user input and interaction in worklow based applications |
Publications (2)
Publication Number | Publication Date |
---|---|
BRPI0618302A2 true BRPI0618302A2 (pt) | 2011-08-23 |
BRPI0618302A8 BRPI0618302A8 (pt) | 2016-12-20 |
Family
ID=38225702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0618302A BRPI0618302A8 (pt) | 2005-12-29 | 2006-12-07 | Modelagem da entrada do usuário e interação em aplicativos baseados em fluxo de trabalho |
Country Status (8)
Country | Link |
---|---|
US (2) | US8849691B2 (pt) |
EP (1) | EP1969484A4 (pt) |
JP (1) | JP2009522645A (pt) |
KR (1) | KR20080087804A (pt) |
CN (1) | CN101346713B (pt) |
BR (1) | BRPI0618302A8 (pt) |
RU (1) | RU2445688C2 (pt) |
WO (1) | WO2007078593A1 (pt) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7412513B2 (en) * | 2003-11-14 | 2008-08-12 | Microsoft Corporation | Systems and methods for using metrics to control throttling and swapping in a message processing system |
US8849691B2 (en) | 2005-12-29 | 2014-09-30 | Microsoft Corporation | Modeling user input and interaction in workflow based applications |
JP2009110276A (ja) * | 2007-10-30 | 2009-05-21 | Toshiba Corp | 顧客対応作成管理装置、顧客対応管理システム、及び顧客対応作成管理プログラム |
US8429668B2 (en) * | 2007-12-07 | 2013-04-23 | Sap Ag | Workflow task re-evaluation |
US10169199B2 (en) | 2008-06-10 | 2019-01-01 | Microsoft Technology Licensing, Llc | Automatic model-specific debugger extensions |
EP2199960A1 (en) * | 2008-12-17 | 2010-06-23 | Accenture Global Services GmbH | Manufacturing collaboration hub data exchange interface |
US9354847B2 (en) | 2008-12-29 | 2016-05-31 | Microsoft Technology Licensing, Llc | Interface infrastructure for a continuation based runtime |
JP2011008506A (ja) * | 2009-06-25 | 2011-01-13 | Fuji Xerox Co Ltd | 文書処理装置、文書処理プログラム、及び文書フローシステム |
CN101741666B (zh) * | 2010-02-26 | 2012-02-01 | 西安交通大学 | 一种通过网络结构划分来实现工作流多实例的方法 |
US8522256B2 (en) * | 2010-10-12 | 2013-08-27 | Microsoft Corporation | Hosting non-messaging workflows in a messaging host |
US8984531B2 (en) * | 2011-06-01 | 2015-03-17 | Microsoft Technology Licensing, Llc | Episodic coordination model for distributed applications |
US9536264B2 (en) | 2011-11-14 | 2017-01-03 | Microsoft Technology Licensing, Llc | Host agnostic messaging in a continuation based runtime |
KR101508496B1 (ko) * | 2011-11-25 | 2015-04-10 | 서강대학교산학협력단 | 자산 기반의 요구사항 시뮬레이터 및 요구사항 관리 방법 |
US10332213B2 (en) * | 2012-03-01 | 2019-06-25 | Ricoh Company, Ltd. | Expense report system with receipt image processing by delegates |
US9483307B2 (en) * | 2013-09-04 | 2016-11-01 | Swiftpage Act! Llc | Asynchronous, interactive task workflows |
US10289411B2 (en) | 2013-11-18 | 2019-05-14 | Microsoft Technology Licensing, Llc | Diagnosing production applications |
KR102348354B1 (ko) * | 2013-11-19 | 2022-01-11 | 국민대학교산학협력단 | 원격 시뮬레이션 과정을 관리하는 클라우드 서비스 제공 방법 |
KR102205651B1 (ko) * | 2013-11-19 | 2021-01-21 | 국민대학교산학협력단 | 원격 시뮬레이션 과정을 관리하는 클라우드 서비스 제공 방법 |
US20160224202A1 (en) * | 2013-11-25 | 2016-08-04 | Yandex Europe Ag | System, method and user interface for gesture-based scheduling of computer tasks |
EP2933064A1 (en) * | 2014-04-17 | 2015-10-21 | Aldebaran Robotics | System, method and computer program product for handling humanoid robot interaction with human |
US9552562B2 (en) * | 2014-09-26 | 2017-01-24 | Oracle International Corporation | Visual information builder for business rules |
US9612939B2 (en) * | 2014-10-29 | 2017-04-04 | Microsoft Technology Licensing, Llc. | Diagnostic workflow for production debugging |
US10235337B2 (en) * | 2015-06-24 | 2019-03-19 | EMC IP Holding Company LLC | Distributed work flow using database replication |
US10127509B2 (en) | 2015-09-17 | 2018-11-13 | Bank Of America Corporation | System for temporarily suspending a workflow associated with a work item |
US10528327B2 (en) | 2015-11-23 | 2020-01-07 | Microsoft Technology Licensing Llc | Workflow development system with ease-of-use features |
US10423393B2 (en) | 2016-04-28 | 2019-09-24 | Microsoft Technology Licensing, Llc | Intelligent flow designer |
US10353560B2 (en) * | 2016-04-28 | 2019-07-16 | Microsoft Technology Licensing, Llc | Debugging a flow |
US11169982B2 (en) * | 2016-06-30 | 2021-11-09 | Microsoft Technology Licensing, Llc | Dynamic deactivation of cold database in database service |
US10379826B1 (en) * | 2018-03-08 | 2019-08-13 | International Business Machines Corporation | Determining inputs to an integration flow component |
US10904238B2 (en) | 2018-07-13 | 2021-01-26 | Sap Se | Access token management for state preservation and reuse |
US11238386B2 (en) | 2018-12-20 | 2022-02-01 | Sap Se | Task derivation for workflows |
US11366681B2 (en) | 2019-03-27 | 2022-06-21 | Amazon Technologies, Inc. | Chaining virtual machines |
US10963287B2 (en) | 2019-03-27 | 2021-03-30 | Amazon Technologies, Inc. | Reducing request latency in a multi-tenant web service host |
US11467858B2 (en) * | 2019-03-27 | 2022-10-11 | Amazon Technologies, Inc. | Techniques for performing continuation workflows |
US20210089990A1 (en) * | 2019-09-19 | 2021-03-25 | Sap Se | Intelligent forms platform for modeling workflow forms |
US11446818B2 (en) | 2019-10-01 | 2022-09-20 | UiPath, Inc. | Resuming robotic process automation workflows based on external triggers |
US11444903B1 (en) * | 2021-02-26 | 2022-09-13 | Slack Technologies, Llc | Contextual discovery and design of application workflow |
CN116909768A (zh) * | 2023-07-12 | 2023-10-20 | 深圳市魔数智擎人工智能有限公司 | 一种基于工作流的应用程序中对用户输入和交互建模 |
Family Cites Families (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5490097A (en) * | 1993-03-22 | 1996-02-06 | Fujitsu Limited | System and method for modeling, analyzing and executing work process plans |
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 |
JP2666755B2 (ja) * | 1995-01-11 | 1997-10-22 | 日本電気株式会社 | ワークフローシステム |
US7069451B1 (en) * | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5999911A (en) * | 1995-06-02 | 1999-12-07 | Mentor Graphics Corporation | Method and system for managing workflow |
US6272672B1 (en) * | 1995-09-06 | 2001-08-07 | Melvin E. Conway | Dataflow processing with events |
DE19705955A1 (de) * | 1996-03-29 | 1997-10-02 | Ibm | Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung |
AU2453797A (en) * | 1996-04-10 | 1997-10-29 | Paul M. Konnersman | Computer-based system for work processes that consist of interdependent decisions involving one or more participants |
JPH10105623A (ja) * | 1996-09-27 | 1998-04-24 | Hitachi Ltd | 階層型ワークフロー管理方法及びワークフロー書類回覧方法 |
US5748962A (en) * | 1996-09-30 | 1998-05-05 | Mci Communications Corporation | Common channels for inter-application communications |
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 |
JPH10207939A (ja) * | 1997-01-17 | 1998-08-07 | Nec Corp | ワークフローシステム |
EP0854431A3 (en) * | 1997-01-20 | 2001-03-07 | International Business Machines Corporation | Events as activities in process models of workflow management systems |
US6047260A (en) * | 1997-06-05 | 2000-04-04 | Attention Control Systems, Inc. | Intelligent planning and calendaring system with cueing feature and floating tasks |
US5960404A (en) * | 1997-08-28 | 1999-09-28 | International Business Machines Corp. | Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation |
US5999910A (en) * | 1997-10-06 | 1999-12-07 | Fmr Corp. | Processing a workflow item |
CA2226062A1 (en) * | 1997-12-31 | 1999-06-30 | Ibm Canada Limited-Ibm Canada Limitee | Workflow mechanism for a stateless environment |
US6339838B1 (en) * | 1998-01-02 | 2002-01-15 | At&T Corp. | Control of commercial processes |
US6230197B1 (en) * | 1998-09-11 | 2001-05-08 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for rules-based storage and retrieval of multimedia interactions within a communication center |
JPH11306244A (ja) * | 1998-04-16 | 1999-11-05 | Hitachi Ltd | ワーク管理システム |
US6134559A (en) * | 1998-04-27 | 2000-10-17 | Oracle Corporation | Uniform object model having methods and additional features for integrating objects defined by different foreign object type systems into a single type system |
US6430538B1 (en) * | 1998-04-30 | 2002-08-06 | Enterworks | Workflow management system, method and medium with personal subflows |
US6397191B1 (en) * | 1998-06-05 | 2002-05-28 | I2 Technologies Us, Inc. | Object-oriented workflow for multi-enterprise collaboration |
US6442528B1 (en) * | 1998-06-05 | 2002-08-27 | I2 Technologies Us, Inc. | Exemplar workflow used in the design and deployment of a workflow for multi-enterprise collaboration |
US6282531B1 (en) * | 1998-06-12 | 2001-08-28 | Cognimed, Llc | System for managing applied knowledge and workflow in multiple dimensions and contexts |
US6772407B1 (en) * | 1998-10-02 | 2004-08-03 | International Business Machines Corporation | Staging objects in workflow management systems |
US6820118B1 (en) * | 1999-01-20 | 2004-11-16 | International Business Machines Corporation | Method and system for providing a linkage between systems management systems and applications |
DE10003015A1 (de) * | 1999-02-06 | 2000-08-17 | Ibm | Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen |
US6499023B1 (en) * | 1999-02-19 | 2002-12-24 | Lucent Technologies Inc. | Data item evaluation based on the combination of multiple factors |
US6473794B1 (en) * | 1999-05-27 | 2002-10-29 | Accenture Llp | System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework |
US8862507B2 (en) | 1999-06-14 | 2014-10-14 | Integral Development Corporation | System and method for conducting web-based financial transactions in capital markets |
US6434568B1 (en) * | 1999-08-31 | 2002-08-13 | Accenture Llp | Information services patterns in a netcentric environment |
US6539396B1 (en) * | 1999-08-31 | 2003-03-25 | Accenture Llp | Multi-object identifier system and method for information service pattern environment |
JP2001084320A (ja) * | 1999-09-13 | 2001-03-30 | Oki Electric Ind Co Ltd | ワークフロー管理システム |
US6769113B1 (en) * | 1999-10-08 | 2004-07-27 | International Business Machines Corporation | Enterprise process models and enterprise application for information technologies |
KR100377189B1 (ko) | 1999-12-24 | 2003-03-28 | 한국전자통신연구원 | 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법 |
US6968503B1 (en) | 2000-03-09 | 2005-11-22 | Quovadx, Inc. | XML user interface for a workflow server |
RU2191425C2 (ru) * | 2000-04-03 | 2002-10-20 | Северо-Кавказский региональный центр информатизации высшей школы | Способ оптимизации параллельной обработки информации для минимизации ее времени |
US7503033B2 (en) * | 2000-04-28 | 2009-03-10 | Microsoft Corporation | Model for business workflow processes |
US6772216B1 (en) * | 2000-05-19 | 2004-08-03 | Sun Microsystems, Inc. | Interaction protocol for managing cross company processes among network-distributed applications |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
JP2001356907A (ja) * | 2000-06-09 | 2001-12-26 | Ibm Japan Ltd | 処理コード情報を有するデータベース・システムおよび情報処理システム |
AU2001269886A1 (en) * | 2000-06-15 | 2002-01-14 | Xis Incorporated | Method and system for product lifecycle management |
US7219304B1 (en) * | 2000-06-19 | 2007-05-15 | International Business Machines Corporation | System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform |
US6854016B1 (en) * | 2000-06-19 | 2005-02-08 | International Business Machines Corporation | System and method for a web based trust model governing delivery of services and programs |
US6859217B2 (en) * | 2000-07-19 | 2005-02-22 | Microsoft Corporation | System and method to display and manage data within hierarchies and polyarchies of information |
US20020038450A1 (en) | 2000-08-03 | 2002-03-28 | International Business Machines Corporation | Method and system to run stored procedures as workflow activity implementations |
AU2001286848A1 (en) * | 2000-08-28 | 2002-03-13 | Michael D. Harold | System and method for transmitting and retrieving data via a distributed persistence framework |
US20020188597A1 (en) * | 2000-09-01 | 2002-12-12 | Jonathan Kern | Methods and systems for linking tasks to workflow |
WO2002021314A2 (en) | 2000-09-08 | 2002-03-14 | Asera, Inc. | Integrated design environment for a commerce server system |
US7653566B2 (en) * | 2000-11-30 | 2010-01-26 | Handysoft Global Corporation | Systems and methods for automating a process of business decision making and workflow |
US6801227B2 (en) * | 2001-01-16 | 2004-10-05 | Siemens Medical Solutions Health Services Inc. | System and user interface supporting user navigation and concurrent application operation |
US6675133B2 (en) * | 2001-03-05 | 2004-01-06 | Ncs Pearsons, Inc. | Pre-data-collection applications test processing system |
US6847974B2 (en) * | 2001-03-26 | 2005-01-25 | Us Search.Com Inc | Method and apparatus for intelligent data assimilation |
US6966049B2 (en) * | 2001-04-24 | 2005-11-15 | Heuristics Physics Laboratories, Inc. | Software development tool employing workflows for developing user interactive programs |
JP2002324155A (ja) * | 2001-04-26 | 2002-11-08 | Hitachi Ltd | ワークフロー・システムおよびプログラム |
US6941514B2 (en) * | 2001-04-30 | 2005-09-06 | Bellsouth Intellectual Property Corporation | System and method for priority-based work order scheduling |
US6983421B1 (en) * | 2001-06-22 | 2006-01-03 | I2 Technologies Us, Inc. | Using connectors to automatically update graphical user interface elements at a client system according to an updated state of a configuration |
US7100147B2 (en) * | 2001-06-28 | 2006-08-29 | International Business Machines Corporation | Method, system, and program for generating a workflow |
US7069536B2 (en) * | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
GB2377779A (en) * | 2001-07-18 | 2003-01-22 | Hewlett Packard Co | Computer apparatus for implementing a workflow with graphical representation |
US20030023622A1 (en) * | 2001-07-27 | 2003-01-30 | Liaison Technology, Inc. | Manual activity persistence in content management workflow systems |
AU2002355575A1 (en) | 2001-08-08 | 2003-02-24 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
US20030135384A1 (en) | 2001-09-27 | 2003-07-17 | Huy Nguyen | Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer |
US20030078975A1 (en) * | 2001-10-09 | 2003-04-24 | Norman Ken Ouchi | File based workflow system and methods |
WO2003044661A1 (en) | 2001-10-18 | 2003-05-30 | Bea Systems, Inc. | System and method for implementing a service adapter |
US20030090514A1 (en) * | 2001-10-23 | 2003-05-15 | Cole Douglas J. | Business process user interface generation system and method |
US7389335B2 (en) * | 2001-11-26 | 2008-06-17 | Microsoft Corporation | Workflow management based on an integrated view of resource identity |
US7370335B1 (en) * | 2001-11-29 | 2008-05-06 | Vignette Corporation | System and method for providing a public application program interface |
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 |
US20030217054A1 (en) * | 2002-04-15 | 2003-11-20 | Bachman George E. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution |
US7627631B2 (en) * | 2002-05-02 | 2009-12-01 | Bea Systems, Inc. | Systems and methods for collaborative business plug-ins |
JP2003331095A (ja) | 2002-05-13 | 2003-11-21 | Nec Software Kyushu Ltd | Db管理によるワークフロー(申請承認業務)システム |
US7149747B1 (en) * | 2002-06-27 | 2006-12-12 | Siebel Systems, Inc. | Dynamic generation of user interface components |
US20040046789A1 (en) * | 2002-08-23 | 2004-03-11 | Angelo Inanoria | Extensible user interface (XUI) framework and development environment |
US20040078105A1 (en) * | 2002-09-03 | 2004-04-22 | Charles Moon | System and method for workflow process management |
WO2004038556A2 (en) * | 2002-10-23 | 2004-05-06 | David Theiler | Method and apparatus for managing workflow |
US20040103014A1 (en) * | 2002-11-25 | 2004-05-27 | Teegan Hugh A. | System and method for composing and constraining automated workflow |
US7299244B2 (en) | 2002-12-10 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | System and method for dynamic sequencing of a requirements-based workflow |
US7448024B2 (en) | 2002-12-12 | 2008-11-04 | Bea Systems, Inc. | System and method for software application development in a portal environment |
US7272820B2 (en) * | 2002-12-12 | 2007-09-18 | Extrapoles Pty Limited | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity |
US7171664B2 (en) * | 2002-12-16 | 2007-01-30 | International Business Machines Corporation | Content management system and method of employing extensible workflow entities with user-defined attributes in an object-oriented framework |
US7711694B2 (en) * | 2002-12-23 | 2010-05-04 | Sap Ag | System and methods for user-customizable enterprise workflow management |
US7409674B2 (en) * | 2002-12-26 | 2008-08-05 | Research In Motion Limited | System and method of creating and communicating with component based wireless applications |
US7555538B2 (en) | 2002-12-26 | 2009-06-30 | Research In Motion Limited | System and method for building and execution of platform-neutral generic services' client applications |
GB2396928A (en) | 2003-01-04 | 2004-07-07 | Quicksilva Ltd | Business process management tool framework |
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 |
US6839062B2 (en) * | 2003-02-24 | 2005-01-04 | Microsoft Corporation | Usage semantics |
US20050022164A1 (en) | 2003-02-25 | 2005-01-27 | Bea Systems, Inc. | Systems and methods utilizing a workflow definition language |
US20050044173A1 (en) * | 2003-02-28 | 2005-02-24 | Olander Daryl B. | System and method for implementing business processes in a portal |
US20050005259A1 (en) * | 2003-03-14 | 2005-01-06 | Infowave Software, Inc. | System and method for communication and mapping of business objects between mobile client devices and a plurality of backend systems |
US7370333B2 (en) * | 2003-06-02 | 2008-05-06 | Microsoft Corporation | Efficient processing of a convoy workflow scenario in a message driven process |
US7876705B2 (en) * | 2003-06-25 | 2011-01-25 | Schlumberger Technology Corporation | Method and apparatus and program storage device for generating a workflow in response to a user objective and generating software modules in response to the workflow and executing the software modules to produce a product |
JP2005050318A (ja) * | 2003-07-16 | 2005-02-24 | Ricoh Co Ltd | ワークフロー管理装置、ワークフロー管理方法、ワークフロー管理プログラム及び記録媒体 |
JP2005063253A (ja) | 2003-08-18 | 2005-03-10 | Knowledge Works:Kk | クリニカルフロー実行方法、及び、クリニカルフロー実行システム |
CA2443454A1 (en) * | 2003-09-11 | 2005-03-11 | Teamplate Inc. | Data binding method in workflow system |
US20050096959A1 (en) * | 2003-10-31 | 2005-05-05 | Microsoft Corporation | Rule engine method and system |
US7698383B2 (en) * | 2004-02-27 | 2010-04-13 | Research In Motion Limited | System and method for building component applications using metadata defined mapping between message and data domains |
US20050203757A1 (en) * | 2004-03-11 | 2005-09-15 | Hui Lei | System and method for pervasive enablement of business processes |
US7881233B2 (en) * | 2004-09-01 | 2011-02-01 | Cisco Technology, Inc. | Techniques for planning a conference using location data |
US7464366B2 (en) * | 2004-10-01 | 2008-12-09 | Microsoft Corporation | Programming interface for a componentized and extensible workflow model |
US7792693B2 (en) | 2005-02-25 | 2010-09-07 | Novell, Inc. | Distributed workflow techniques |
US8140373B2 (en) * | 2005-04-07 | 2012-03-20 | International Business Machines Corporation | Data driven dynamic workflow |
US8230042B2 (en) * | 2005-04-19 | 2012-07-24 | International Business Machines Corporation | Policy based auditing of workflows |
US7363628B2 (en) * | 2005-06-27 | 2008-04-22 | Microsoft Corporation | Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host |
US8849691B2 (en) | 2005-12-29 | 2014-09-30 | Microsoft Corporation | Modeling user input and interaction in workflow based applications |
US20070156487A1 (en) | 2005-12-29 | 2007-07-05 | Microsoft Corporation | Object model on workflow |
US7680683B2 (en) | 2005-12-29 | 2010-03-16 | Microsoft Corporation | Dynamically repositioning workflow by end users |
US20070156486A1 (en) | 2005-12-29 | 2007-07-05 | Microsoft Corporation | Multiple concurrent workflow persistence schemes |
US20070245300A1 (en) * | 2006-03-22 | 2007-10-18 | Benjamin Chan | Apparatus, system, and method for presenting project scheduling information in combination with workflow information |
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 |
US7739135B2 (en) * | 2006-03-30 | 2010-06-15 | Microsoft Corporation | Asynchronous fault handling in process-centric programs |
US8024405B2 (en) | 2006-03-30 | 2011-09-20 | Microsoft Corporation | Declarative model for concurrency-control across lightweight threads |
JP2007279838A (ja) * | 2006-04-03 | 2007-10-25 | Ibm Japan Ltd | 情報処理装置、方法およびプログラム |
US20080040417A1 (en) * | 2006-08-09 | 2008-02-14 | Gearworks, Inc. | System and method for allocating workflow operations to a computing device |
US9183011B2 (en) * | 2006-10-31 | 2015-11-10 | Oracle America Inc. | Method and system for runtime environment emulation |
US7506001B2 (en) * | 2006-11-01 | 2009-03-17 | I3Solutions | Enterprise proposal management system |
US20080243524A1 (en) | 2007-03-28 | 2008-10-02 | International Business Machines Corporation | System and Method for Automating Internal Controls |
WO2008152687A1 (ja) | 2007-06-11 | 2008-12-18 | Fujitsu Limited | ワークフロー定義変更プログラム、ワークフロー定義変更方法およびワークフロー定義変更装置 |
US7827127B2 (en) * | 2007-10-26 | 2010-11-02 | Microsoft Corporation | Data scoping and data flow in a continuation based runtime |
US8868532B2 (en) | 2008-08-08 | 2014-10-21 | Microsoft Corporation | Message exchange pattern rendezvous abstraction |
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 |
US20100324948A1 (en) * | 2009-06-18 | 2010-12-23 | Microsoft Corporation | Managing event timelines |
US9536264B2 (en) * | 2011-11-14 | 2017-01-03 | Microsoft Technology Licensing, Llc | Host agnostic messaging in a continuation based runtime |
-
2005
- 2005-12-29 US US11/321,490 patent/US8849691B2/en active Active
-
2006
- 2006-12-07 KR KR1020087015813A patent/KR20080087804A/ko not_active IP Right Cessation
- 2006-12-07 CN CN2006800487020A patent/CN101346713B/zh active Active
- 2006-12-07 RU RU2008126237/08A patent/RU2445688C2/ru active
- 2006-12-07 BR BRPI0618302A patent/BRPI0618302A8/pt not_active Application Discontinuation
- 2006-12-07 WO PCT/US2006/046905 patent/WO2007078593A1/en active Application Filing
- 2006-12-07 JP JP2008548537A patent/JP2009522645A/ja active Pending
- 2006-12-07 EP EP06839221A patent/EP1969484A4/en not_active Ceased
-
2014
- 2014-09-26 US US14/497,799 patent/US9710773B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
RU2008126237A (ru) | 2010-01-10 |
EP1969484A4 (en) | 2011-06-22 |
CN101346713B (zh) | 2011-10-26 |
US20070156485A1 (en) | 2007-07-05 |
CN101346713A (zh) | 2009-01-14 |
BRPI0618302A8 (pt) | 2016-12-20 |
JP2009522645A (ja) | 2009-06-11 |
US9710773B2 (en) | 2017-07-18 |
WO2007078593A1 (en) | 2007-07-12 |
EP1969484A1 (en) | 2008-09-17 |
US20150206079A1 (en) | 2015-07-23 |
KR20080087804A (ko) | 2008-10-01 |
US8849691B2 (en) | 2014-09-30 |
RU2445688C2 (ru) | 2012-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BRPI0618302A2 (pt) | modelagem da entrada do usuário e interação em aplicativos baseados em fluxo de trabalho | |
US10185937B1 (en) | Workflow support for an annotations-based generic load generator | |
US11632387B2 (en) | Systems and methods for an artificial intelligence driven smart template | |
BRPI0620869A2 (pt) | modelo de objeto em fluxo de trabalho | |
US9588822B1 (en) | Scheduler for data pipeline | |
US20150256481A1 (en) | Elastic Compute Cloud Based On Underutilized Server Resources Using A Distributed Container System | |
US20160034995A1 (en) | Method and system for automated indentification and engagement of service providers | |
EP1966723A1 (en) | Dynamically repositioning workflow by end users | |
BRPI0618982A2 (pt) | esquemas de persistência de fluxo de trabalho simultáneos múltiplos | |
El-Omari | Cloud IoT as a crucial enabler: a survey and taxonomy | |
Srinivasan | Cloud Computing: A practical approach for learning and implementation | |
US10684889B2 (en) | Systems, methods, and computer program products for scheduling processing jobs to run in a computer system | |
US20240046215A1 (en) | Apparatus and method for distributed dataflow execution in a distributed environment | |
US20230138343A1 (en) | Version based model result explainability | |
Hunt | Introduction to akka actors | |
US20230199081A1 (en) | Iot device based habit workflow management | |
Day | Agile Software Engineering: Agile methods, Scrum, and Extreme Programming | |
de Esteban Uranga | Combining Edge Computing and Data Processing with Kubernetes | |
Singh et al. | Need of Agile Development | |
Elsten | Exploring the potential use of FaaS within an iPaaS infrastructure. | |
Kesa | Performance characteristics of current microservice frameworks | |
Puche Pérez | Move to continuous integration on the cloud | |
Brennan et al. | PBStoHTCondor system for campus grids | |
TESTBEDS | EUROPEAN MIDDLEWARE INITIATIVE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B25A | Requested transfer of rights approved |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
|
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B09B | Patent application refused [chapter 9.2 patent gazette] | ||
B09B | Patent application refused [chapter 9.2 patent gazette] |
Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL |