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 PDFInfo
- 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
Links
- 230000002688 persistence Effects 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000003860 storage Methods 0.000 claims abstract description 24
- 230000003993 interaction Effects 0.000 claims abstract description 10
- 230000009471 action Effects 0.000 claims description 15
- 238000011068 loading method Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 23
- 230000000694 effects Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 230000002085 persistent effect Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 239000011800 void material Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- 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/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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
-
- 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
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.
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)
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)
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 |
-
2005
- 2005-12-29 US US11/321,789 patent/US20070156486A1/en not_active Abandoned
-
2006
- 2006-11-21 KR KR1020087015770A patent/KR20080080349A/ko not_active Application Discontinuation
- 2006-11-21 RU RU2008126117/09A patent/RU2008126117A/ru not_active Application Discontinuation
- 2006-11-21 CN CNA2006800499808A patent/CN101351789A/zh active Pending
- 2006-11-21 EP EP06838333A patent/EP1966719A1/en not_active Withdrawn
- 2006-11-21 BR BRPI0618982-2A patent/BRPI0618982A2/pt not_active Application Discontinuation
- 2006-11-21 WO PCT/US2006/045309 patent/WO2007078461A1/en active Application Filing
- 2006-11-21 JP JP2008548518A patent/JP2009522639A/ja not_active Withdrawn
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] |