BRPI0618982A2 - esquemas de persistência de fluxo de trabalho simultáneos múltiplos - Google Patents

esquemas de persistência de fluxo de trabalho simultáneos múltiplos Download PDF

Info

Publication number
BRPI0618982A2
BRPI0618982A2 BRPI0618982-2A BRPI0618982A BRPI0618982A2 BR PI0618982 A2 BRPI0618982 A2 BR PI0618982A2 BR PI0618982 A BRPI0618982 A BR PI0618982A BR PI0618982 A2 BRPI0618982 A2 BR PI0618982A2
Authority
BR
Brazil
Prior art keywords
workflow
computer
persistence
circumstance
persistence service
Prior art date
Application number
BRPI0618982-2A
Other languages
English (en)
Inventor
Andres Sanabria
Constantin Mihai
Nikhil Kothari
Israel Hilerio
Michael Harder
Paul E Maybee
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0618982A2 publication Critical patent/BRPI0618982A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

ESQUEMAS DE PERSISTêNCIA DE FLUXO DE TRABALHO SIMULTáNEOS MúLTIPLOS Sistemas e métodos que provêem gerenciamento de fluxo de trabalho e interação de fluxo de trabalho com uma pluralidade de armazenamentos de persistência empregando um serviço de persistência de roteamento e um componente de pesquisa de associação. O serviço de persistência de roteamento roteia e/ou atribui cada circunstância de fluxo de trabalho a um armazenamento de persistência correspondente, e o componente de pesquisa de associação gerencia associa- ções de armazenamento temporário entre a(s) circunstância(s) de fluxo de trabalho e a pluralidade de serviços de persistência. Consequentemente, a inovação em questão facilita um mecanismo extensível e/ou conectável para o uso simultâneo de implementações concretas múltiplas de um provedor de fluxo de trabalho de resumo genérico.

Description

"ESQUEMAS DE PERSISTÊNCIA DE FLUXO DE TRABALHO SI- MULTÂNEOS MÚLTIPLOS"
ANTECEDENTES
Tipicamente todo software empregado em empreendi- mentos hoje suporta processos empresariais. Alguns de tais processos são completamente automatizados, contando somente com comunicação entre aplicações, enquanto outros contam com pessoas para iniciar o processo, aprovar documentos que o processo usa, solucionar qualquer situação excepcional que surja, e mais. Em qualquer caso, é comum especificar uma sé- rie distinta de etapas conhecidas como um fluxo de trabalho que descreve as atividades das pessoas e software envolvidos no processo. Uma vez tal fluxo de trabalho tenha sido defi- nido, uma aplicação pode ser construída ao redor daquela de- finição para suportar o processo empresarial.
Colocado diferentemente, fluxo de trabalho em ge- ral é o fluxo de informação e controle nas organizações. Em- preendimentos comerciais se esforçam continuamente para de- finir, documentar, e agilizar tais processos para eficazmen- te competir. Em um cenário empresarial, estes processos in- cluem vendas e processamento de ordem, tarefas de compra, controle e gerenciamento de estoque, controle de fabricação e produção, remessa e recepção, contas a pagar, e outros.
Sistemas de computador e software associado agora fornecem ferramentas com as quais os empreendimentos comer- ciais e outras organizações podem melhorar seu fluxo de tra- balho. Ferramentas de software podem ser usadas para modelar os processos e esquemas de fluxo de trabalho empresariais e identificar falhas e possíveis melhorias. Além disso, onde um processo envolve trocar dados entre pessoas, departamen- tos, fábricas, ou até mesmo entre companhias separadas, sis- temas de computador e redes podem ser usados para implemen- tar tais trocas. Tais sistemas e ferramentas de software são também capazes de implementar amplas computações e outros processamentos de dados ou de informação que estão tipica- mente associados à informação relacionada ao empreendimento.
Conseqüentemente, gerenciamento de fluxo de traba- Iho inclui o gerenciamento eficaz do fluxo de informação e controle dos processos empresariais de uma organização, em que a automatização de tal processamento de informação levou a muitas melhorias de eficiência no mundo empresarial moder- no. Além disso, tal automatização de gerenciamento de fluxo de trabalho está agora permitindo empreendimentos comerciais e outras organizações também melhorarem o desempenho na exe- cução de transações de fluxo de trabalho em sistemas de com- putador, incluindo redes de computadores globais, tais como a Internet.
Uma aplicação baseada em fluxo de trabalho típica freqüentemente requer uma pluralidade de condições a serem satisfeitas. Por exemplo, uma tal condição é a habilidade para tomar decisões com base nas regras empresariais. Tais podem incluir regras simples, (por exemplo, como uma decisão de sim-ou-não com base no resultado de uma verificação de crédito), e regras mais complexas, (por exemplo, o conjunto potencialmente grande que deve ser avaliado para tomar uma decisão de subscrição inicial). Outro requerimento é comuni- cação com outro software e outros sistemas fora do fluxo de trabalho. Por exemplo, uma solicitação inicial pode ser re- cebida de uma parte da aplicação, enquanto alguns aspectos (por exemplo, contatar um serviço de crédito) podem requerer comunicação usando outros serviços ou tecnologias de rede.
Uma outra condição a ser satisfeita é a interação apropriada do fluxo de trabalho com os usuários. Por exemplo, o fluxo de trabalho deve tipicamente ser capaz de exibir uma inter- face do usuário em si ou interagir com seres humanos através de outro software. Alem disso, a habilidade para manter o estado ao longo da vida do fluxo de trabalho é outra condi- ção que necessita ser satisfeita. Conseqüentemente, criar e executar um fluxo de trabalho de software propõem desafios singulares.
Por exemplo, alguns processos empresariais podem levar horas, dias, ou semanas para concluírem, e manter in- formação acerca do estado atual do fluxo de trabalho para tal período de tempo é exigente. Além disso, tal tipo de fluxo de trabalho de operação longa é também tipicamente re- querido para se comunicar com outro software de um modo de não-bloqueio, e uma comunicação assíncrona pode colocar di- ficuldades. Ao mesmo tempo, enquanto modelagem de interações fixas entre software é relativamente direta, os consumidores tendem a continuamente requerer flexibilidade adicional, tal como a habilidade para alterar um processo empresarial rápi- do. Manipular aplicações diversas pode também somar às com- plexidades envolvidas na criação e gerenciamento do fluxo de trabalho. Muitas aplicações para ferramentas de fluxo de trabalho são internas a um negócio ou organização. Com o ad- vento de computadores em rede tendo modens ou outro tipo de conexões de comunicação, os sistemas de computador em Ioca- lizações remotas podem agora facilmente se comunicar uns com os outros. Tal comunicação intensificada permite usar apli- cações de fluxo de trabalho do sistema de computador a serem usadas entre instalações remotas dentro de uma companhia. Um exemplo incluiria enviar uma ordem de cliente de uma sede incorporada para um escritório de vendas de campo remoto pa- ra verificação pela pessoa de vendas apropriada, e retornar uma verificação à sede. Aplicações de fluxo de trabalho tam- bém podem ser de utilidade particular no processamento de transações empresariais entre companhias diferentes. Em uma aplicação tipica, duas companhias que têm uma relação de comprador-vendedor podem desejar automatizar a geração e processamento das ordens de compra, remessas de produto, fa- turamento, e coletas.
Por exemplo, uma aplicação que alveja um problema especifico, tal como gerenciamento de relação de clientes (CRM), ou um mercado vertical especifico, tal como serviços financeiros, pode ser construído ao redor de um fluxo de trabalho. Tal tipo de aplicação comumente implementa vários processos empresariais diferentes. Construindo a lógica que dirige aqueles processos em uma fundação de fluxo de traba- lho comum tal como Windows Workflow Foundation pode tornar a aplicação mais rápido para se construir, mais rápido para se alterar, e mais fácil de personalizar. Além disso, automati- zando tais processos pode resultar em melhorias de eficiên- cia significativas, que não seriam do contrário possíveis.
Porém, tal aplicação de inter-companhia de tecno- logia de fluxo de trabalho requer cooperação das companhias e interfaceamento apropriado e implementação apropriada de serviço de persistência dos sistemas de computador e aplica- ções existentes da companhia individual. Além disso, as a- plicações hospedeiras que interagem com tais fluxos de tra- balho são tipicamente forçadas a empregar os mesmos mecanis- mos de persistência. Um tal método não fornece flexibilidade, e conseqüentemente não é possível quando diferentes aplica- ções requerem interação com diferentes módulos de suporte.
Portanto, há uma necessidade para superar as defi- ciências exemplares acima mencionadas associadas aos siste- mas e dispositivos convencionais.
SUMÁRIO
O seguinte apresenta um sumário simplificado para fornecer uma compreensão básica de alguns aspectos do assun- to reivindicado. Este sumário não é uma visão geral extensi- va. Não é intencionado identificar elementos fundamen- tais/críticos ou delinear o escopo do assunto reivindicado. Seu propósito exclusivo é apresentar alguns conceitos em uma forma simplificada como um prelúdio para a descrição mais detalhada que é apresentada depois.
A inovação em questão fornece sistemas e métodos que provêem gerenciamento de fluxo de trabalho e interação de fluxo de trabalho com uma pluralidade de implementa- ções/armazenamentos de serviços de persistência empregando um serviço de persistência de roteamento e um componente de pesquisa de associação. O serviço de persistência de rotea- mento roteia e/ou atribui um tipo de fluxo de trabalho a um armazenamento de persistência, em que os dados para o estado do fluxo de trabalho (tais como valores de propriedade, ati- vidade atual, seqüência de execução, informação de suspensão, tempo para retomada, metadados, marcações de tempo, e outros) são salvos no armazenamento persistente. Conseqüentemente, o serviço de persistência de roteamento integra funcionalida- des relacionadas à persistência no tempo de execução do flu- xo de trabalho, em que cada circunstância de fluxo de traba- lho pode ser registrada com umas implementações de serviço de persistência correspondentes. Além disso, tal serviço de persistência de roteamento interage com o componente de pes- quisa de associação para gerenciar associações de armazena- mento temporário entre a(s) circunstância(s) do fluxo de trabalho e a pluralidade de implementações de serviço de persistência. Conseqüentemente, independente de uma limita- ção típica de um tempo de execução de fluxo de trabalho con- vencional para interagir com um serviço de persistência, a inovação em questão permite mais que um serviço de persis- tência acomodar, e/ou interagir com, o fluxo de trabalho. Além disso, tal sistema pode facilitar um mecanismo extensí- vel e/ou conectável para uso simultâneo de implementações concretas múltiplas de um provedor de fluxo de trabalho de resumo genérico.
Por exemplo, inicialmente o serviço de persistên- cia de roteamento pode ser registrado, e subseqüentemente verificado por um serviço hospedeiro associado ao(s) fluxo(s) de trabalho. Com base no tipo do provedor de fluxo de traba- lho, a implementação de serviço de persistência desejada po- de depois ser selecionada (por exemplo, programaticamente e/ou por meio de um ajuste de configuração), e o fluxo de trabalho criado. Em seguida, ao fluxo de trabalho pode ser atribuído identificação a ser associada a uma implementação de serviço de persistência desejada tal como memória interna, armazenamento de dados relacionai, arquivo de XML/texto, e outros, em que tipos diferentes de fluxo de trabalho podem ser atribuídos a (e/ou interagir com) diferentes armazena- mentos persistentes.
Em uma metodologia relacionada de acordo com um aspecto da inovação em questão, a aplicação de hospedeiro pode acessar um fluxo de trabalho operante, inicialmente ve- rificando um serviço de persistência de roteamento associado à máquina de fluxo de trabalho e/ou tempo de execução. Sub- seqüentemente, com base na identificação da circunstância de fluxo de trabalho (por exemplo, Número de ID), o serviço de persistência correspondente pode chamar o método de carrega- mento e/ou chamar o método de salvamento por meio do compo- nente de pesquisa de associação (por exemplo, uma tabela de arranjo). A circunstância de fluxo de trabalho pode depois ser acessada (por exemplo, por meio da aplicação de hospe- deiro).
De acordo com um aspecto adicional da inovação em questão para salvar uma circunstância do fluxo de trabalho, um serviço de persistência de roteamento é inicialmente ve- rifiçado, que é associado ao fluxo de trabalho. Subseqüente- mente e com base na circunstância de fluxo de trabalho, uma representação de estado de fluxo de trabalho é gerada para tal circunstância de fluxo de trabalho. Dados associados a tal representação de estado de fluxo de trabalho podem de- pois ser salvos em um estado de persistência.
Em uma metodologia relacionada, para carregar uma circunstância do fluxo de trabalho, é inicialmente verifica- do um serviço de persistência de roteamento, e acesso a um armazenamento de persistência correspondente é fornecido. Subseqüentemente, representação do estado de circunstância de fluxo de trabalho é obtida de tal armazenamento de per- sistência correspondente. Tal representação é depois conver- tida nas circunstâncias de fluxo de trabalho, e fornecida à aplicação de hospedeiro, por exemplo.
De acordo com um aspecto adicional da inovação em questão, a circunstância de fluxo de trabalho em um armaze- namento de persistência pode ser não-registrada com o compo- nente de pesquisa de associação. Por exemplo, sob conclusão de um fluxo de trabalho, uma associação entre a identifica- ção de circunstância de fluxo de trabalho e o serviço de persistência de roteamento é não-registrada (por exemplo, da associação da tabela de memória interna).
Mediante acomodação/interação com uma pluralidade de armazenamentos de persistência, a inovação em questão in- tensifica o modelo de fundação de fluxo de trabalho para permitir tipos diferentes de aplicações se comunicarem com diferentes módulos de suporte. Por exemplo, um Gerenciamento de Relação de Cliente (CRM) pode interagir com uma base de dados de cliente, enquanto outra aplicação feita de costume que influencia o fluxo de trabalho emprega outra implementa- ção de serviço persistente.
Para a realização do antecedente e fins relaciona- dos, certos aspectos ilustrativos do assunto reivindicado aqui são descritos com relação à descrição a seguir e aos desenhos anexados. Estes aspectos são indicativos de vários modos em que o assunto pode ser praticado, todos estes são intencionados estar dentro do escopo do assunto reivindicado. Outras vantagens e características novas podem tornar-se e- videntes da descrição detalhada a seguir quando consideradas juntamente com os desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
Fig. 1 ilustra um diagrama de sistema exemplar de um fluxo de trabalho que tem um serviço de persistência de roteamento que interage com uma pluralidade de armazenamen- tos de persistência de acordo com um aspecto da inovação em questão.
Fig. 2 ilustra um diagrama de blocos de um compo- nente de pesquisa de associação que interage com a plurali- dade de implementações de serviço de persistência.
Fig. 3 ilustra uma metodologia de registrar/criar um fluxo de trabalho novo de acordo com um aspecto da inova- ção em questão.
Fig. 4 ilustra um fluxograma para registro de um provedor de serviço de persistência de roteamento com um tempo de execução de fluxo de trabalho. Fig. 5 ilustra uma metodologia de acessar um fluxo de trabalho corrente de acordo com um aspecto da inovação em questão.
Fig. 6 ilustra interação de armazenamento de dados para carregar circunstâncias do fluxo de trabalho.
Fig. 7 ilustra interação de armazenamento de dados para salvar circunstâncias do fluxo de trabalho.
Fig. 8 ilustra associações não-registradas para um fluxo de trabalho concluído de acordo com um aspecto da ino- vação em questão.
Fig. 9 ilustra um ambiente exemplar para implemen- tar vários aspectos da inovação em questão.
Fig. 10 é um diagrama de blocos esquemático de um ambiente de computação adicional que pode ser empregado para implementar um fluxo de trabalho com serviço de persistência de roteamento da inovação em questão.
DESCRIÇÃO DETALHADA
Os vários aspectos da inovação em questão são ago- ra descritos com referência aos desenhos anexados, em que tais numerais se referem a elementos semelhantes ou corres- pondentes do início ao fim. Porém, deveria ser entendido que os desenhos e descrição detalhada relacionando aos mesmos não são intencionados a limitar o assunto reivindicado à forma particular revelada. Do contrário, a intenção é abran- ger todas as modificações, equivalentes, e alternativas que incorrem dentro do espírito e escopo do assunto reivindicado.
Como aqui usado, os termos "componente", "sistema", "serviço" e outros são intencionados a referir a uma entida- de relacionada a computador, ou hardware, uma combinação de hardware e software, software, ou software em execução. Por exemplo, um componente pode ser, mas não é limitado a, um processo que opera em um processador, um processador, um ob- jeto, um executável, uma cadeia de execução, um programa, e/ou um computador. Por via de ilustração, tanto uma aplica- ção que opera em computador como o computador podem ser um componente. Um ou mais componentes podem residir dentro de um processo e/ou cadeia de execução e um componente pode es- tar localizado em um computador e/ou distribuído entre dois ou mais computadores.
A palavra "exemplar" é aqui usada para significar serviço como um exemplo, circunstância, ou ilustração. Qual- quer aspecto ou projeto descrito aqui como "exemplar" não é necessariamente para ser interpretado como preferido ou van- tajoso em outros aspectos ou projetos.
Além disso, o assunto revelado pode ser implemen- tado como um sistema, método, aparelho, ou artigo de fabri- cação usando técnicas de programação e/ou criação padrões para produzir software, firmware, hardware, ou qualquer com- binação dos mesmos para controlar um dispositivo com base em computador ou processador para implementar os aspectos deta- lhados aqui. O termo programa de computação como aqui usado é intencionado abranger um programa de computação acessível de qualquer dispositivo veículo, ou meios legíveis por com- putador. Por exemplo, meios legíveis por computador podem incluir, mas não são limitados a, dispositivos de armazena- mento magnéticos (por exemplo, disco rígido, disco flexível, fitas magnéticas...), discos ópticos (por exemplo, disco la- ser (CD), disco versátil digital (DVD)...)/ cartões inteli- gentes, e dispositivos de memória instantânea (por exemplo, cartão, bastão). Adicionalmente deveria ser apreciado que uma onda portadora pode ser empregada para carregar dados eletrônicos legíveis por computador tais como aqueles usados para transmitir e receber correio eletrônico ou acessar uma rede tal como a Internet ou uma rede local (LAN). Claro que, aqueles versados na técnica reconhecerão que muitas modifi- cações podem ser feitas a esta configuração sem divergir do escopo ou espírito do assunto reivindicado.
Voltando inicialmente para a Fig. 1, um diagrama de blocos para um sistema de fluxo de trabalho 100 é ilus- trado empregando um serviço de persistência de roteamento 140 para permitir um gerenciamento de fluxo de trabalho e interação de fluxo de trabalho com uma pluralidade de imple- mentações/armazenamentos de serviços de persistência 141-145 (1 a n onde n é um número inteiro.) O fluxo de trabalho pode modelar um processo humano ou de sistema que é definido como um mapa de atividades. Uma atividade é uma ação em um fluxo de trabalho, e é a unidade de execução, re-uso, e composição para um fluxo de trabalho. O mapa de atividades expressa re- gras, ações, estados, e sua relação. Tipicamente, o fluxo de trabalho opera por meio da máquina/tempo de execução do flu- xo de trabalho 110, e o tempo de execução do fluxo de traba- lho requer uma aplicação externa para hospedá-lo, de acordo com algumas regras, como descrito pelo hospedeiro 120. O hospedeiro 120 interage com o Provedor de Fluxo de Trabalho 130 através da Classe de Base de Provedor de Fluxo de Trabalho 135. Além disso, o hospedeiro 120 pode ser responsável por vários aspectos adicionais e críticos, tais como a criação de um ou mais processos, ordenamento necessá- rio de chamadas entre vários componentes como para execução apropriada do fluxo de trabalho; e organização de mecanismos de isolamento. Além disso, o hospedeiro 120 pode criar pro- cessos múltiplos para tirar proveito das múltiplas Unidades de Processamento Central (as CPUs) em uma máquina por razões de escalabilidade, ou operar um número grande de circunstân- cias de fluxo de trabalho em uma fazenda de máquinas. O hos- pedeiro 120 pode também controlar as políticas para aplicar quando um fluxo de trabalho estiver sujeito a uma espera longa, escutar eventos específicos e os comunica a um usuá- rio ou administrador, determinar tempo de espera e novas tentativas para cada fluxo de trabalho, expor contadores de desempenho, e escrever informação de registro para propósi- tos de depuração e de diagnóstico.
Um fluxo de trabalho associado ao sistema de fluxo de trabalho 100 pode comunicar com o mundo externo através de um serviço especificamente estabelecido para aquele pro- pósito, em que tal serviço pode criar eventos em cujas ati- vidades baseadas em eventos dentro do fluxo de trabalho en- gancharão. Igualmente, o serviço expõe métodos públicos para o fluxo de trabalho chamar e enviar dados ao hospedeiro. O fluxo de trabalho pode ser definido na forma de um esquema para execução em um sistema de computador, por exemplo. Um esquema pode incluir um conjunto de ações tendo uma concor- rência especificada, dependência, e atributos de transação associados a estes. Cada esquema tem um estado de esquema associado, que inclui uma definição do esquema, a localiza- ção atual dentro do esquema, como também dados ativos ou vi- vos e objetos associados ao esquema. Dentro de um esquema, os limites de transação podem existir com base em agrupamen- tos de ações. Nesta consideração, uma transação pode abran- ger ações individuais, ou transações, ou grupos das mesmas.
Como debatido também doravante, ações podem ser agrupadas em seqüências que são executadas de maneira serial como também tarefas em que as ações são executadas simultaneamente. Com base nos agrupamentos, portanto, atributos de concorrência podem ser solucionados para as ações e transações dentro de um esquema.
Tipicamente, os fluxos de trabalho mantêm o estado enquanto eles executam. Tal estado pode incluir dados e va- lores de propriedade como definidos pelo desenvolvedor de fluxo de trabalho, e o estado de execução interno. Além dis- so, o estado de execução pode incluir a atividade atual jun- tamente com a seqüência de execução, e qualquer informação de suspensão relevante (por exemplo, tempo para retomar o fluxo de trabalho se uma suspensão de demora fosse introdu- zida). Além disso, os metadados associados à seqüência de execução podem ser rastreados (por exemplo, marcas de tempo de execução da atividade), em que tal informação pode ser usada para análise posterior dos fluxos de trabalho executados. Toda essa informação deve ser tipicamente salva em algum armazenamento persistente 141-145. 0 sistema de fluxo de trabalho 100 da inovação em questão pode empregar o Pro- vedor do Fluxo de Trabalho 130 para resumir o armazenamento subjacente de interação com uma Interface de Programas de Aplicação (API) comum, em que fluxos de trabalho podem ser identificados por uma combinação de seu nome (como definido pelo desenvolvedor do fluxo de trabalho), e por um identifi- cador único, por exemplo. Desse modo, o Provedor do Fluxo de Trabalho pode permitir criar circunstâncias novas de fluxos de trabalho, carregando as circunstâncias seriadas dadas ao identificador, salvando as circunstâncias de fluxo de traba- lho, e enumerando os fluxos de trabalho existentes. Uma a- plicação com múltiplos fluxos de trabalho, de acordo com um aspecto da inovação em questão, pode selecionar ti- pos/implementações de provedor diferentes para circunstân- cias de fluxo de trabalho diferentes. Isto permite os fluxos de trabalho usarem semânticas de persistência diferentes, ou diferentes módulos de suporte de base de dados por exemplo.
Como ilustrado na Fig. 1, o serviço de persistên- cia de roteamento 140 roteia e/ou atribui uma circunstância de fluxo de trabalho a um armazenamento de persistência se- lecionado de uma pluralidade de armazenamentos de persistên- cia 141-145. Como tal, os dados que pertencem ao estado do fluxo de trabalho (tais como valores de propriedade, ativi- dade atual, seqüência de execução, informação de suspensão, tempo para retomar, metadados, marcas de tempo, e outros) são salvos no armazenamento persistente. Conseqüentemente, o serviço de persistência de roteamento 140 integra as funcio- nalidades relacionadas à persistência no tempo de execução do fluxo de trabalho, em que cada circunstância de fluxo de trabalho pode ser registrada com um serviço de persistência correspondente. Além disso, tal serviço de persistência de roteamento interage com o componente de pesquisa de associa- ção (não mostrado), como descrito infra em detalhes, para gerenciar associações de armazenamento temporário entre a(s) circunstância (s) de fluxo de trabalho e a pluralidade de serviços de persistência. Conseqüentemente, independente de uma limitação típica de um tempo de execução de fluxo de trabalho convencional para interagir com um serviço de per- sistência, a inovação em questão permite mais que um serviço de persistência acomodar (e/ou interagir) o fluxo de traba- lho.
O seguinte fornece um provedor de Serviço de Per- sistência de Roteamento exemplar, de acordo com um aspecto particular da inovação em questão: public claS RoutingPérsisténceServioe StatePersistenceServiçe
publiC StaticV void Register (
Guid workflowInstanceId,
IPersistenceService persisténcèService) {}
public static void Unregister (Guid workflowInstançeId) {}
public static IPersistençeService GetPexsístenceService(
Guid WórkflowInstáncèId) {
StatePersistenceService Methods
public override void SaveWflowInstanceState( Activity rootActivity, bool unlock)
IPersisténceServicei persistencéSèrvice=
GetPersistencéSèrvice ( (Guid )roót Acfivity. GetValue(
WorkflowInstance. WorkflowInstanceIdProperty); persistaenceSErvice.SaveWorkflowsInstanceState(rootActivity,unlock);
public override void UnlockWorkflowsInstanceState( Activity rootActivity)
IPersistenceSErvice ((Guid) rootActivity.GetValue(
WorkflowInstance.WorfflowInstanceIDProperty));
persistence Service.UnlockWorkflowsInstanceState( rootActivity);
public override void UnlockWorkflowsInstanceState( Guid instanceId )
IPersistenceService persistenceService= GetPersistenceSErvice(instanceId);
return
persistenceService.LoadflowInstancesState( instanceId);
public override void SAveCompleteContextActivity( Activity activity)
IPersistenceService persistenceService=
GetPersitnceService ((Giuid) activity.GetValue( WorkflowInstance. WorkflowInstanceIdProperty));
persistenceSérvice.SaveComplètedContextActÍvity(activity);
públiç override ActivIty
LoadcompletedcontextActiyity (
GUid scopeId, Activity oúterActivity)
{
IPersistenceServiçe' pérsistencéSeryíçe =
{
IPersistenceService persistenceService=
GètPersistenceSeNtyice.( (Guíd) outerActiyity.GetValué'(
WorkflowInstance.WorkflowInstanceIdPrópérty))
return pèrsistenceSérvice.LoadCómpletedContextÁctivàty( scopeId,óutèrActivity);
}
Referindo agora à Fig. 2 é ilustrado um diagrama de blocos de um serviço de persistência de roteamento 210 que interage com o componente de pesquisa de associação 220 para gerenciar associações de armazenamento temporário entre a(s) circunstância(s) de fluxo de trabalho e a pluralidade de serviços de persistência 232-234. Conseqüentemente, ao fluxo de trabalho pode ser atribuída identificação para ser associado a um armazenamento de persistência desejado tal como memória interna, armazenamento de dados relacionai, ar- quivos de texto de XML, e outros, em que os fluxos de traba- lho individuais podem ser atribuídos (e/ou interagir com) a diferentes armazenamentos persistentes. 0 componente de pes- quisa de associação 220 pode receber informação de proprie- dade (por exemplo, atributo (s)) associada a uma circunstân- cia de fluxo de trabalho para uma pesquisa do mesmo. O com- ponente de pesquisa 220 pode incluir uma lista de pesquisa (por exemplo, uma forma tabelar) que corresponde com uma circunstância de fluxo de trabalho a um serviço (s) de per- sistência .
O componente de pesquisa 220 também obtém/emprega informação associada à circunstância de fluxo de trabalho (por exemplo, Tipo de Dados, base de dados e/ou objeto) . A informação pode incluir, por exemplo, propriedade(s) associ- ada (s) à circunstância de fluxo de trabalho. Com base, pelo menos em parte, na informação de propriedade e na informação associada à circunstância de fluxo de trabalho, o componente de pesquisa pode depois gerar um controle de pesquisa confi- gurado (por exemplo, ID, exibir valores e metadados requeri- dos para os associar). Como tais, os valores de propriedade, atividade atual, seqüência de execução, informação de sus- pensão, tempo para retomar, metadados, marcas de tempo, e outros são salvos em um armazenamento persistente 230-234 correspondente. Além disso, um armazenamento persistente po- de ser selecionado com base em um ID de fluxo de trabalho. Uma consulta pode ser submetida a um armazenamento de fluxo de trabalho para encontrar fluxos de trabalho adequados com base em uns critérios de consulta.
De acordo com um aspecto da inovação em questão, o sistema 200 incorpora a persistência dos metadados requeri- dos para associar um ID com uma circunstância de fluxo de trabalho e uma implementação de serviço de persistência. Por exemplo, dados para o estado do fluxo de trabalho e a cir- cunstância do fluxo de trabalho podem incluir valores de propriedade, atividade atual, seqüência de execução, infor- mação de suspensão, tempo para retomar, metadados, marcas de tempo, e outros, que são salvos no armazenamento persistente.
Com base no tipo de provedor de fluxo de trabalho e circuns- tância do fluxo de trabalho, a implementação do serviço de persistência desejado 230 - 234 pode depois ser selecionada (por exemplo, programaticamente e/ou por meio de ajuste de configuração, configuração de página usando marcadores, e outros), e a circunstância de fluxo de trabalho nele persis- tida. Acomodando/interagindo com uma pluralidade de armaze- namentos de persistência 230 - 234, o modelo de fundação de fluxo de trabalho é intensificado para permitir tipos dife- rentes de aplicações comunicarem-se com diferentes módulos de suporte. Por exemplo, um Gerenciamento de Relação de Cli- ente (CRM) pode interagir com uma base de dados de cliente, enquanto outra aplicação feita de costume que influencia o fluxo de trabalho emprega outra implementação de serviço persistente.
O componente de pesquisa de associação 220 pode empregar dependências (por exemplo, de uma fonte de identi- ficador para uma circunstância de fluxo de trabalho alvo) localizando dos identificadores as circunstâncias de fluxo de trabalho por meio de um mapeamento. Por exemplo, uma lis- ta de emparelhamento de hierarquia pode ser gerada para cor- responder as identificações com as circunstâncias de fluxo de trabalho. Como tal, uma ferramenta de definição de mapea- mento pode permitir graficamente especificar as transforma- ções de dados dos identificadores (fonte) para as circuns- tâncias de fluxo de trabalho (alvo).
Como explicado mais cedo, o componente de pesquisa de associação 220 obtém informação de identificação associa- da à circunstância de fluxo de trabalho (por exemplo, Tipo de Dados, base de dados e/ou objeto) . A informação pode in- cluir, por exemplo, propriedade(s) associada(s) à circuns- tância de fluxo de trabalho. Com base, pelo menos em parte, na informação de propriedade e na informação associada à circunstância de fluxo de trabalho, o componente de pesquisa de associação 220 pode conectar uma respectiva implementação de serviço de persistência e/ou armazenamento de dados para obter representação do estado de fluxo de trabalho 230-234. Tal representação de estado de fluxo de trabalho pode ser subseqüentemente convertida na circunstância de fluxo de trabalho para um retorno do mesmo.
Fig. 3 ilustra um fluxograma 300 exemplar de criar um fluxo de trabalho e um registro do mesmo com uma imple- mentação de serviço de persistência, de acordo com um aspec- to da inovação em questão. Embora o método exemplar seja i- lustrado e descrito aqui como uma série de blocos represen- tativos de vários eventos e/ou ações, a inovação em questão não é limitada pela ordenação ilustrada de tais blocos. Por exemplo, algumas ações ou eventos podem ocorrer em ordens diferentes e/ou simultaneamente com outras ações ou eventos, além da ordenação ilustrada aqui, de acordo com a inovação. Além disso, nem todos os blocos, eventos ou ações ilustrados podem ser requeridos para implementar uma metodologia de a- cordo com a inovação em questão. Além disso, é para ser que o método exemplar e outros métodos de acordo com a inovação podem ser implementados em associação com o método ilustrado e descrito aqui, como também em associação com outros siste- mas e aparelho não ilustrados ou descritos. Inicialmente e em 310, um serviço de persistência de roteamento associado ao sistema de fluxo de trabalho é verificado. Tal serviço de persistência de roteamento pode rotear e/ou atribuir uma circunstância de fluxo de trabalho a um armazenamento de persistência selecionado de uma pluralidade de armazenamen- tos de persistência. Conseqüentemente, dados que pertencem ao estado do fluxo de trabalho (tais como valores de propri- edade, atividade atual, seqüência de execução, informação de suspensão, tempo para retomar, metadados, marcas de tempo, e outros) são salvos no armazenamento persistente. Desse modo, o serviço de persistência de roteamento integra funcionali- dades relacionadas à persistência no tempo de execução do fluxo de trabalho, em que cada circunstância de fluxo de trabalho pode ser registrada com um serviço de persistência correspondente. Em 320, com base no tipo de provedor de flu- xo de trabalho, a implementação de serviço de persistência é designada e/ou obtida (por exemplo, programaticamente, e/ou através de ajuste de configuração). Em 330, o fluxo de tra- balho pode ser criado e associado a uma identificação, em que tal identificação é registrada entre a circunstância de fluxo de trabalho e a implementação do serviço de persistên- cia correspondente em 340.
Fig. 4 ilustra uma metodologia de registro exem- plar 400 para o serviço de persistência de roteamento antes de um tempo de execução de fluxo de trabalho de acordo com um aspecto da inovação em questão. Inicialmente, e em 410 informação relacionada ao serviço de persistência de rotea- mento é obtida, por meio de configuração da rede e / ou pro- gramaticamente, por exemplo. Tal serviço de persistência de roteamento pode depois iniciar a operação em associação com um sistema de fluxo de trabalho, em 420, para criar um mape- amento por registrar/não-registrar uma circunstância de flu- xo de trabalho com uma implementação de serviço de persis- tência como descrito infra em detalhes. É para ser apreciado que podem existir implementações múltiplas para uma associa- ção, de acordo com um aspecto da inovação em questão. Por exemplo, uma aplicação com fluxos de trabalho múltiplos, de acordo com um aspecto da inovação em questão, pode selecio- nar implementações de provedor diferentes para cada tipo de fluxo de trabalho. Isto permite os fluxos de trabalho usar semânticas de persistência diferentes, ou módulos de suporte de base de dados diferentes. A circunstância de fluxo de trabalho pode ser seriada em uma base de dados ou armazena- mento equivalente, do qual ela pode ser subseqüentemente re- cuperada, desseriada, e retomada, durante uma suspensão do fluxo de trabalho. Por exemplo, os fluxos de trabalho podem ser suspensos por várias razões, tais como: cancelamento de uma execução de atividade, inabilidade para uma atividade continuar executando, uma demora específica introduzida para adiar a execução subseqüente, e troca de contexto de usuário que requer que a execução subseqüente seja realizada por um usuário diferente. É para ser apreciado que duas circunstân- cias de fluxo de trabalho que originam de uma mesma defini- ção de fluxo de trabalho (por exemplo, tipo / classe) podem ter, ou empregar, armazenamentos persistentes diferentes.
Fig. 5 ilustra uma metodologia de acesso de um fluxo de trabalho corrente, por meio de um tempo de execução de fluxo de trabalho por uma aplicação de hospedeiro, de a- cordo com um aspecto da inovação em questão. A aplicação de hospedeiro pode acessar um fluxo de trabalho corrente, veri- ficando um serviço de persistência de roteamento inicialmen- te associado à máquina de fluxo de trabalho e/ou tempo de execução, em 510. Subseqüentemente, e em 520 com base na i- dentificação da circunstância de fluxo de trabalho (por e- xemplo, Número de ID) , o serviço de persistência correspon- dente pode chamar o método de carregamento 530 e/ou chamar o método de salvamento 54 0 por meio do componente de pesquisa de associação (por exemplo, um arranjo tabelar). A circuns- tância de fluxo de trabalho pode depois ser acessada (por exemplo, por meio da aplicação de hospedeiro). Acomodan- do/interagindo com uma pluralidade de armazenamentos de per- sistência, a inovação em questão intensifica o modelo de fundação de fluxo de trabalho para permitir tipos diferentes de aplicações.
Fig. 6 ilustra uma metodologia relacionada 600 de carregar uma circunstância do fluxo de trabalho de acordo com a ação 530 da Fig. 5. Como ilustrado na Fig. 6, um ser- viço de persistência de roteamento é verificado inicialmente em 610, e acesso ao armazenamento de persistência é forneci- do em 620, em que uma representação de estado de circunstân- cia de fluxo de trabalho é obtida do armazenamento de per- sistência correspondente, em 630. Tal representação pode de- pois ser convertida nas circunstâncias de fluxo de trabalho em 640. A circunstância de fluxo de trabalho pode depois ser provida à aplicação de hospedeiro para uma manipulação da mesma.
Similarmente, Fig. 7 ilustra uma metodologia 700 para salvar uma circunstância do fluxo de trabalho, como i- lustrado pela ação 540 da Fig. 5. Inicialmente um serviço de persistência de roteamento que é associado ao fluxo de tra- balho é verificado em 710, e o fluxo de trabalho a ser salvo é obtido em 720. Subseqüentemente e em 730, um estado de fluxo de trabalho é gerado da representação da circunstância de fluxo de trabalho. Dados relacionados a tal representação podem depois ser salvos no armazenamento de dados e/ou im- plementação de serviço de persistência em 740. Como tal e em 750, um evento de salvamento de tempo de execução de fluxo de trabalho pode ser promovido, e a circunstância de fluxo de trabalho acessada como descrito supra em detalhes.
Fig. 8 ilustra uma metodologia 800 de não- registrar uma circunstância de fluxo de trabalho em um arma- zenamento de persistência com o componente de pesquisa de associação. Por exemplo, sob conclusão de um fluxo de traba- lho, uma associação entre a identificação de circunstância de fluxo de trabalho e o serviço de persistência de rotea- mento é não-registrada (por exemplo, da associação da tabela de memória interna). Inicialmente e em 810 o serviço de per- sistência de roteamento que está associado ao fluxo de tra- balho é verificado. Subseqüentemente, e em 820 o fluxo de trabalho é verificado quanto à conclusão. Se concluído, o hospedeiro pode ser assim notificado em 830. Subseqüentemen- te e em 840, associação entre a identificação de circunstân- cia de fluxo de trabalho e o serviço de persistência de ro- teamento pode ser não-registrada.
Para fornecer um contexto para os vários aspectos do assunto revelado, Fig. 9 e 10, como também o debate a se- guir, são intencionados a fornecer um sumário, descrição ge- ral de um ambiente adequado no qual podem ser implementados os vários aspectos do assunto revelado. Embora o assunto te- nha sido descrito acima no contexto geral de instruções exe- cutáveis por computador de um programa de computação que o- pera em um computador e/ou computadores, aqueles versados na técnica reconhecerão que a inovação também pode ser imple- mentada em combinação com outros módulos de programa. Em ge- ral, módulos de programa incluem rotinas, programas, compo- nentes, estruturas de dados, e outros que executam tarefas particulares e/ou implementam tipos de dados de resumo par- ticulares. Além disso, aqueles versados na técnica aprecia- rão que os métodos inovadores podem ser praticados com ou- tras configurações de sistema de computador, incluindo sis- temas de computador de um processador ou de multiprocessado- res, mini dispositivos de computação, mainframes, como tam- 28
bém computadores pessoais, dispositivos de computação de mão (por exemplo, assistente digital pessoal (PDA), telefone, relógio...), eletrônicos com base em microprocessador ou programáveis pelo consumidor ou industriais, e outros. Os aspectos ilustrados podem também ser praticados em ambientes de computação distribuídos onde as tarefas são executadas por dispositivos de processamento remotos que são ligados através de uma rede de comunicações. Porém, alguns, se não todos os aspectos da inovação podem ser praticados em compu- tadores isolados. Em um ambiente de computação distribuído, módulos de programa podem ser localizados em dispositivos de armazenamento de memória locais e remotos.
Com referência à Fig. 9, um ambiente 910 exemplar para implementar os vários aspectos da inovação em questão é descrito, incluindo um computador 912. O computador 912 in- clui uma unidade de processamento 914, uma memória do siste- ma 916, e um barramento do sistema 918. 0 barramento do sis- tema 918 acopla o componente do sistema incluindo, mas não limitado a, a memória do sistema 916 à unidade de processa- mento 914. A unidade de processamento 914 pode ser quaisquer de vários processadores disponíveis. Microprocessadores du- ais e outras arquiteturas de multiprocessador também podem ser empregados como a unidade de processamento 914.
O barramento do sistema 918 pode ser quaisquer de vários tipos de estrutura(s) de barramento, incluindo o bar- ramento de memória ou controlador de memória, um barramento periférico ou barramento externo, e/ou um barramento local usando qualquer variedade de arquiteturas de barramento dis- poniveis incluindo, mas não limitadas a, barramento de 11 bits, Arquitetura Padrão Industrial (ISA), Arquitetura de Micro-canal (MSA), ISA Estendida (EISA), Eletrônica de Uni- dade Inteligente (IDE), Barramento Local VESA (VLB), Barra- mento de Interconexão de Componentes Periféricos (PCI), Bar- ramento Serial Universal (USB), Porta Gráfica Avançada (AGP), barramento de Associação Internacional de Cartão de Memória de Computador Pessoal (PCMCIA), e Interface de Sistemas de Computador Pequenos (SCSI).
A memória do sistema 916 inclui memória volátil 920 e memória não-volátil 922. O sistema básico de entra- da/saída (BIOS), contendo as rotinas básicas para transferir informação entre os elementos dentro do computador 912, tais como durante a inicialização, é armazenado na memória não- volátil 922. Por via de ilustração, e não limitação, memória não-volátil 922 pode incluir memória exclusiva de leitura (ROM), ROM programável (PROM), ROM eletricamente programável (EPROM), ROM eletricamente deletável (EEPROM), ou memória instantânea. Memória volátil 920 inclui memória de acesso aleatório (RAM) que atua como memória de armazenamento tem- porário externa. Por via de ilustração e não limitação, a RAM está disponível em muitas formas tais como RAM síncrona (SRAM), RAM dinâmica (DRAM), DRAM síncrona (SDRAM), SDRAM de taxa de dados dupla (DDR SDRAM), SDRAM intensificada (ESDRAM), Synchlink DRAM (SLDRAM), e RAM Rambus direta (DRRAM).
Computador 912 também inclui meios de armazenamen- to de computador removíveis/não-removíveis, voláteis/não- voláteis. Fig. 9 ilustra, por exemplo, um armazenamento de disco 924. Armazenamento de disco 924 inclui, mas não é li- mitado a, dispositivos como uma unidade de disco magnético, unidade de disco flexível, unidade de fita, unidade Jaz, u- nidade zip, unidade LS-100, cartão de memória instantânea, ou cartão de memória. Além disso, armazenamento de disco 924 pode incluir meios de armazenamento separadamente ou em com- binação com outros meios de armazenamento incluindo, mas não limitados a, uma unidade de disco óptico tal como um dispo- sitivo de ROM de disco laser (CD-ROM), unidade de CD gravá- vel (unidade de CD-R), unidade de CD regravável (unidade de CD-RW) ou uma unidade de ROM de disco versátil digital (DVD- ROM) . Para facilitar a conexão dos dispositivos de armazena- mento de disco 924 ao barramento do sistema 918, uma inter- face removível ou não-removível é tipicamente usada tal como interface 926.
É para ser apreciado que a Fig. 9 descreve softwa- re que atua como um intermediário entre os usuários e os re- cursos de computador básicos descritos no ambiente operacio- nal 910 adequado. Tal software inclui um sistema operacional 928. Sistema operacional 928 que pode ser armazenado no ar- mazenamento de disco 924 atua para controlar e alocar recur- sos do sistema de computador 912. Aplicações do sistema 930 tiram vantagem da administração dos recursos pelo sistema operacional 928 através de módulos de programa 932 e dados de programa 934 armazenados ou na memória do sistema 916 ou no armazenamento de disco 924. É para ser apreciado que vá- rios componentes descritos aqui podem ser implementados com vários sistemas operacionais ou combinações de sistemas ope- racionais .
Um usuário entra os comandos ou informação no com- putador 912 através do(s) dispositivo(s) de entrada 936.
Dispositivos de entrada 936 incluem, mas não são limitados a, um dispositivo de apontamento tal como um mouse, trackball, agulha, mesa de toque, teclado, microfone, joystick, aciona- dor de jogo, disco satélite, escâner, cartão sintonizador de TV, câmera digital, câmera de video digital, câmera de rede, e outros. Estes e outros dispositivos de entrada conectam-se à unidade de processamento 914 através do barramento do sis- tema 918 por meio de porta (s) de interface 938. Porta (s) de interface 938 inclui(em), por exemplo, uma porta serial, uma porta paralela, uma porta de jogo, e um barramento serial universal (USB). Dispositivo(s) de saida 940 usa(m) algum do mesmo tipo de portas como dispositivo (s) de entrada 936. Desse modo, por exemplo, uma porta de USB pode ser usada pa- ra fornecer entrada para o computador 912, e produzir infor- mação do computador 912 para um dispositivo de saida 940. Adaptador de saida 942 é fornecido para ilustrar que há al- guns dispositivos de saida 940 como monitores, alto-falantes, e impressoras, entre outros dispositivos de saida 940 que requerem adaptadores especiais. Os adaptadores de saida 942 incluem, por via de ilustração e não limitação, placas de video e áudio que fornecem um meio de conexão entre o dispo- sitivo de saida 940 e o barramento do sistema 918. Deveria ser observado que outros dispositivos e/ou sistemas de dis- positivos fornecem capacidades de entrada e de saída tais como computador(es) remoto(s) 94 4.
Computador 912 pode operar em um ambiente em rede usando conexões lógicas a um ou mais computadores remotos, tais como computador(es) remoto(s) 944. O(s) computador(es) remoto(s) 944 pode(m) ser um computador pessoal, um servidor, um roteador, um PC de rede, uma estação de trabalho, uma a- plicação com base em microprocessador, um dispositivo de ponto ou outro nó de rede comum e outros, e tipicamente in- clui(em) muitos ou todos os elementos descrito(s) com rela- ção ao computador 912. Para propósitos de brevidade, apenas um dispositivo de armazenamento de memória 946 é ilustrado com o(s) computador(es) remoto(s) 94 4. Computador(es) remo- to (s) 944 é/são logicamente conectado(s) ao computador 912 através de uma interface de rede 948 e depois fisicamente conectado(s) por meio de conexão de comunicação 950. Inter- face de rede 948 abrange redes de comunicação tais como re- des de área local (LAN) e redes de longa distância (WAN). Tecnologias de LAN incluem Interface de Dados Distribuída de Fibras (FDDI), Interface de Dados Distribuída de Cobre (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 e outras. Tecnologias de WAN incluem, mas não são limitadas a, liga- ções de ponto a ponto, redes de comutação de circuito como Redes Digitais de Serviços Integrados (ISDN) e variações ne- las, redes de troca de pacote, e Linhas de Assinatura Digi- tal (DSL) .
Conexão(ões) de comunicação 950 refere(m)-se ao hardware/software empregado para conectar a interface de re- de 948 ao barramento 918. Embora a conexão de comunicação 950 seja mostrada para clareza ilustrativa dentro do compu- tador 912, pode também ser externa ao computador 912. O hardware/software necessário para conexão à interface de re- de 948 inclui, para propósitos exemplares apenas, tecnologi- as internas e externas, tais como, modens incluindo modens do tipo telefone comum, modens a cabo e modens DSL, adapta- dores de ISDN, e cartões de Ethernet.
Fig. 10 é um diagrama de blocos esquemático de um ambiente de computação de amostra 1000 que pode ser emprega- do para incorporar uma implementação de fluxo de trabalho da inovação em questão. O sistema 1000 inclui um ou mais clien- te (s) 1010. 0(s) cliente (s) 1010 pode (m) ser hardware e/ou software (por exemplo, cadeias, processos, dispositivos de computação). O sistema 1000 também inclui um ou mais servi- dor (es) 1030. 0(s) servidor (es) 1030 pode (m) também ser hardware e/ou software (por exemplo, cadeias, processos, dispositivos de computação). Os servidores 1030 podem alojar cadeias para executar transformações empregando os componen- tes descritos aqui, por exemplo. Uma possível comunicação entre um cliente 1010 e um servidor 1030 pode ser na forma de um pacote de dados adaptado para ser transmitido entre dois ou mais processos de computador. 0 sistema 1000 inclui uma estrutura de comunicação 1050 que pode ser empregada pa- ra facilitar as comunicações entre o(s) cliente(s) 1010 e o(s) servidor(es) 1030. 0(s) cliente(s) 1010 é/são operavel- mente conectado(s) a um ou mais armazenamento(s) de dados de cliente 1060 que pode(m) ser empregado(s) para armazenar in- formação local para o(s) cliente(s) 1010. Similarmente, o(s) servidor(es) 1030 é/são operavelmente conectado(s) a um ou mais armazenamento(s) de dados de servidor 1040 que pode(m) ser empregado(s) para armazenar informação local para os servidores 1030.
O que foi descrito acima inclui vários aspectos exemplares. Claro, não é possível descrever toda combinação concebivel de componentes ou metodologias para propósitos de descrever estes aspectos, mas alguém de habilidade usual na técnica pode reconhecer que muitas combinações e permutas adicionais são possíveis. Conseqüentemente, os aspectos des- critos aqui são intencionados a abranger todas tais altera- ções, modificações e variações que incorrem dentro do espí- rito e escopo das reivindicações em anexo. Além disso, à ex- tensão que o termo "inclui" é usado na descrição detalhada ou nas reivindicações, é intencionado que tal termo seja in- clusivo de uma maneira similar ao termo "compreendendo" como "compreendendo" é interpretado quando empregado como uma pa- lavra transitiva em uma reivindicação.

Claims (20)

1. Sistema implementado por computador, CARACTERIZADO pelo fato de que compreende os componentes e- xecutáveis por computador a seguir: um sistema de fluxo de trabalho (100) tendo um serviço de persistência de roteamento (140) que roteia cada circunstância de fluxo de trabalho para uma implementação de serviço de persistência correspondente, e uma pluralidade de implementações de serviço de persistência (141, 145), a im- plementação de serviço de persistência correspondente atri- buída a um tipo de fluxo de trabalho pelo serviço de persis- tência de roteamento (140).
2. Sistema implementado por computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o sis- tema de fluxo de trabalho adicionalmente compreende um com- ponente de pesquisa de associação que gerencia associações de armazenamento temporário entre uma circunstância de fluxo de trabalho e uma implementação de serviço de persistência.
3. Sistema implementado por computador, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o com- ponente de pesquisa de associação adicionalmente compreende um arranjo tabelar.
4. Sistema implementado por computador, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o com- ponente de pesquisa de associação adicionalmente compreende um arranjo de identificação de fluxo de trabalho.
5. Sistema implementado por computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a plu- ralidade de implementações de serviço de persistência com- preende pelo menos um de uma base de dados, arquivo de XML/texto e um armazenamento de memória interna.
6. Sistema implementado por computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que adi- cionalmente compreende uma classe de provedor de fluxo de trabalho que fornece uma interação entre uma aplicação de hospedeiro e um armazenamento de persistência.
7. Sistema implementado por computador, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a cir- cunstância de fluxo de trabalho é registrável pelo serviço de persistência de roteamento.
8. Sistema implementado por computador, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a plu- ralidade de implementações de serviço de persistência acomo- da aplicações diferentes.
9. Método implementado por computador, CARACTERIZADO pelo fato de que compreende as ações executá- veis por computador a seguir: atribuir cada circunstância de fluxo de trabalho associado a um sistema de fluxo de trabalho a uma implemen- tação de serviço de persistência correspondente por meio de um provedor de serviço de roteamento; e obter uma circunstância de fluxo de trabalho do serviço de persistência correspondente.
10. Método implementado por computador, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que adi- cionalmente compreende obter informação de registro de rote- amento.
11. Método implementado por computador, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que adi- cionalmente compreende verificar o provedor de serviço de roteamento.
12. Método implementado por computador, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que adi- cionalmente compreende criar uma circunstância de fluxo de trabalho.
13. Método implementado por computador, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que adi- cionalmente compreende registrar associação entre a circuns- tância de fluxo de trabalho e uma implementação de serviço de persistência por meio de uma identificação.
14. Método implementado por computador, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que adi- cionalmente compreende chamar um de um método de carregamen- to e salvamento da implementação de serviço de persistência.
15. Método implementado por computador, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que adi- cionalmente compreende conectar a um armazenamento de dados associado à implementação de serviço de persistência.
16. Método implementado por computador, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que adi- cionalmente compreende obter uma representação de estado de fluxo de trabalho.
17. Método implementado por computador, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de que adi- cionalmente compreende converter a representação do estado de fluxo de trabalho para uma circunstância de fluxo de tra- balho.
18. Método implementado por computador, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que adi- cionalmente compreende retornar a circunstância de fluxo de trabalho para um hospedeiro.
19. Método implementado por computador, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que adi- cionalmente compreende chamar um método de salvamento da im- plementação de serviço de persistência.
20. Sistema implementado por computador, CARACTERIZADO pelo fato de que compreende os componentes e- xecutáveis por computador a seguir: dispositivos (140) para integrar funcionalidades relacionadas à persistência por uma pluralidade de armazena- mentos de dados para o tempo de execução de um fluxo de tra- balho; e dispositivos (220) para armazenar temporariamente associações entre as circunstâncias de fluxo de trabalho e a pluralidade de serviços de persistência.
BRPI0618982-2A 2005-12-29 2006-11-21 esquemas de persistência de fluxo de trabalho simultáneos múltiplos BRPI0618982A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/321.789 2005-12-29
US11/321,789 US20070156486A1 (en) 2005-12-29 2005-12-29 Multiple concurrent workflow persistence schemes
PCT/US2006/045309 WO2007078461A1 (en) 2005-12-29 2006-11-21 Multiple concurrent workflow persistence schemes

Publications (1)

Publication Number Publication Date
BRPI0618982A2 true BRPI0618982A2 (pt) 2011-09-20

Family

ID=38225703

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0618982-2A BRPI0618982A2 (pt) 2005-12-29 2006-11-21 esquemas de persistência de fluxo de trabalho simultáneos múltiplos

Country Status (8)

Country Link
US (1) US20070156486A1 (pt)
EP (1) EP1966719A1 (pt)
JP (1) JP2009522639A (pt)
KR (1) KR20080080349A (pt)
CN (1) CN101351789A (pt)
BR (1) BRPI0618982A2 (pt)
RU (1) RU2008126117A (pt)
WO (1) WO2007078461A1 (pt)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US8626557B2 (en) * 2006-09-26 2014-01-07 International Business Machines Corporation System and method of providing snapshot to support approval of workflow changes
CN101286212A (zh) * 2007-04-12 2008-10-15 国际商业机器公司 业务流程执行方法、业务流程引擎及其部署方法
US8078555B2 (en) * 2007-12-14 2011-12-13 Microsoft Corporation Decoupling static program data and execution data
US10169199B2 (en) 2008-06-10 2019-01-01 Microsoft Technology Licensing, Llc Automatic model-specific debugger extensions
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8250588B2 (en) 2009-06-16 2012-08-21 Microsoft Corporation Persisting application state
US9535908B2 (en) * 2009-07-02 2017-01-03 Sharp Laboratories Of America, Inc. Auto-retrieving to avoid data binding
US8424009B2 (en) 2009-12-04 2013-04-16 Microsoft Corporation Lock resolution for distributed durable instances
KR20110066520A (ko) * 2009-12-11 2011-06-17 한국전자통신연구원 SaaS 환경에서의 워크플로우 맞춤화 방법
US20110179303A1 (en) * 2010-01-15 2011-07-21 Microsoft Corporation Persistent application activation and timer notifications
US8140591B2 (en) * 2010-01-19 2012-03-20 International Business Machines Corporation Enabling workflow awareness within a business process management (BPM) system
US8296780B2 (en) * 2010-03-23 2012-10-23 Microsoft Corporation Reducing persistence commands
US9741006B2 (en) 2010-05-14 2017-08-22 Oracle International Corporation System and method for providing complex access control in workflows
US9852382B2 (en) 2010-05-14 2017-12-26 Oracle International Corporation Dynamic human workflow task assignment using business rules
US9589240B2 (en) * 2010-05-14 2017-03-07 Oracle International Corporation System and method for flexible chaining of distinct workflow task instances in a business process execution language workflow
US8819055B2 (en) 2010-05-14 2014-08-26 Oracle International Corporation System and method for logical people groups
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
KR20120067889A (ko) * 2010-12-16 2012-06-26 한국전자통신연구원 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법
US8862975B2 (en) * 2011-09-19 2014-10-14 Microsoft Corporation Web-based workflow service visualization and navigation
US9536264B2 (en) 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
CN102521712B (zh) * 2011-12-27 2015-09-23 东软集团股份有限公司 一种流程实例数据处理方法和装置
CN103426045B (zh) * 2012-05-22 2016-06-29 阿里巴巴集团控股有限公司 一种流程虚拟机的流转方法和装置
RU2630383C2 (ru) * 2012-08-27 2017-09-07 Общество с ограниченной ответственностью "Колловэар" Способ обработки процессов машиной состояний
CN104036335A (zh) * 2013-03-04 2014-09-10 富士通株式会社 数据处理方法和数据处理装置
US10037197B2 (en) 2013-03-15 2018-07-31 Oracle International Corporation Flexible microinstruction system for constructing microprograms which execute tasks, gateways, and events of BPMN models
CN103778511A (zh) * 2014-01-27 2014-05-07 北京荣之联科技股份有限公司 跨系统监控流程的方法及装置
CN104216785B (zh) * 2014-08-26 2017-10-10 烽火通信科技股份有限公司 通用策略任务系统及其实现方法
CN106354566B (zh) * 2015-07-14 2019-11-29 华为技术有限公司 一种命令处理的方法以及服务器

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US953929A (en) * 1908-11-28 1910-04-05 Crosse Plow Company Seeder.
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 階層型ワークフロー管理方法及びワークフロー書類回覧方法
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
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
WO2000014618A2 (en) * 1998-08-24 2000-03-16 Fujitsu Limited Workflow system and method
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
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
US6769113B1 (en) * 1999-10-08 2004-07-27 International Business Machines Corporation Enterprise process models and enterprise application for information technologies
US6968503B1 (en) * 2000-03-09 2005-11-22 Quovadx, Inc. XML user interface for a workflow server
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 処理コード情報を有するデータベース・システムおよび情報処理システム
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
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
US6966049B2 (en) * 2001-04-24 2005-11-15 Heuristics Physics Laboratories, Inc. Software development tool employing workflows for developing user interactive programs
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
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
US20030078975A1 (en) * 2001-10-09 2003-04-24 Norman Ken Ouchi File based workflow system and methods
US20030090514A1 (en) * 2001-10-23 2003-05-15 Cole Douglas J. Business process user interface generation system and method
US7370335B1 (en) * 2001-11-29 2008-05-06 Vignette Corporation System and method for providing a public application program interface
US20030171961A1 (en) * 2002-03-06 2003-09-11 International Business Machines Corporation System and method for dynamically routing an object through an organization's workflow system
US7865867B2 (en) * 2002-03-08 2011-01-04 Agile Software Corporation System and method for managing and monitoring multiple workflows
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
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
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
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
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 ワークフロー管理装置、ワークフロー管理方法、ワークフロー管理プログラム及び記録媒体
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
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
US20060069596A1 (en) * 2004-09-29 2006-03-30 Microsoft Corporation Workflow hosting computing system using a collaborative application
US7506001B2 (en) * 2006-11-01 2009-03-17 I3Solutions Enterprise proposal management system
US20100324948A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Managing event timelines

Also Published As

Publication number Publication date
EP1966719A1 (en) 2008-09-10
CN101351789A (zh) 2009-01-21
WO2007078461A1 (en) 2007-07-12
JP2009522639A (ja) 2009-06-11
KR20080080349A (ko) 2008-09-03
US20070156486A1 (en) 2007-07-05
RU2008126117A (ru) 2010-01-10

Similar Documents

Publication Publication Date Title
BRPI0618982A2 (pt) esquemas de persistência de fluxo de trabalho simultáneos múltiplos
JP6683848B2 (ja) インテリジェント構成検出技術
BRPI0618711A2 (pt) reposicionamento dinámico de fluxo de trabalho por usuários finais
US20070156487A1 (en) Object model on workflow
US9710773B2 (en) Modeling user input and interaction in workflow based applications
US9852382B2 (en) Dynamic human workflow task assignment using business rules
US8515799B2 (en) Constructing change plans from component interactions
De Oliveira et al. Data-Intensive Workflow Management
US11907709B2 (en) Enhancing DevOps workflows in enterprise information technology organizations
EP2610762A1 (en) Database version management system
Helland Life beyond distributed transactions
US7840452B2 (en) Application, method and process for managing part exchangeability across functional boundaries
Ochei et al. A novel taxonomy of deployment patterns for cloud-hosted applications: A case study of global software development (gsd) tools and processes
US20110282708A1 (en) Integrating external data in human workflow tasks
US20190172068A1 (en) Method and system for implementing a crm quote and order capture context service
Busch et al. Assessing the quality impact of features in component-based software architectures
US20090288062A1 (en) Mechanism to support orphaned and partially configured objects
Riady et al. Selection of Feature Driven Development (FDD) Model in Agile Method for Developing Information System of Mosque Management
US20240054026A1 (en) Federated distributed mutation
Bautista Villalpando A performance measurement model for cloud computing applications
Haapaniemi Maintainable architecture in project business analysis software
Semich Bet your job on BackOffice? Can you put an entire enterprise infrastructure in a box?
Kuta Enterprise Interceptor: A framework for applications interchangeability
Borrmann et al. Integration of Constraints into Digital Building Models for Cooperative Planning Processes
Papaioannou et al. Mobile Agent Technology in Support of Sales Order Processing in the

Legal Events

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