BRPI0612281A2 - fluxos de trabalho centrados em dados - Google Patents

fluxos de trabalho centrados em dados Download PDF

Info

Publication number
BRPI0612281A2
BRPI0612281A2 BRPI0612281-7A BRPI0612281A BRPI0612281A2 BR PI0612281 A2 BRPI0612281 A2 BR PI0612281A2 BR PI0612281 A BRPI0612281 A BR PI0612281A BR PI0612281 A2 BRPI0612281 A2 BR PI0612281A2
Authority
BR
Brazil
Prior art keywords
data
workflow
instance
host
data object
Prior art date
Application number
BRPI0612281-7A
Other languages
English (en)
Inventor
Dharma K Shukla
Mayank Mehta
Kumarswamy P Valegerepura
Akash J Sagar
Israel Hilerio
Dnnis Pilarinos
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 BRPI0612281A2 publication Critical patent/BRPI0612281A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

FLUXOS DE TRABALHO CENTRADOS EM DADOS. Trata-se de proporcionar atividades de fluxo de trabalho limitadas por dados para modelar a transmissão de mensagens entre uma instância de fluxo de trabalho e um hospedeiro de fluxo de trabalho. O autor do fluxo de trabalho associa uma fonte de dados com cada atividade limitada por dados em um fluxo de trabalho sem especificar detalhes da tecnologia de transmissão de mensagens subjacente. A atividade limitada por dados na instância de fluxo de trabalho se comunica com um serviço de fonte de dados no hospedeiro de fluxo de trabalho para trocar dados.

Description

"FLUXOS DE TRABALHO CENTRADOS EM DADOS"
ANTECEDENTES
Um fluxo de trabalho modela um processo da empre-sa. As aplicações de fluxo de trabalho desenvolvidas utili-zando tecnologias típicas de fluxo de trabalho esperam queos desenvolvedores considerem os dados como mensagens queestão sendo trocadas entre duas aplicações. Esta abordagemtípica força os desenvolvedores de fluxo de trabalho a defi-nirem trocas e protocolos de comunicação que precisam serseguidos para a passagem de dados entre as instâncias execu-tantes do fluxo de trabalho e a aplicação (por exemplo, hos-pedeiro de fluxo de trabalho) que instanciaram os fluxos detrabalho. Entretanto, vários desenvolvedores de fluxo detrabalho não entendem as nuances de transmissão de mensagemou de modelar as trocas de mensagem.
SUMÁRIO
As modalidades da invenção proporcionam uma abs-tração para modelar a transmissão de mensagens do fluxo detrabalho. Em particular, as modalidades da invenção facili-tam o desenvolvimento de aplicações de fluxo de trabalhocentradas em dados por proporcionar construções nativas dedados em uma estrutura de fluxo de trabalho. Estas constru-ções permitem aos desenvolvedores modelar os fluxos de tra-balho como trocas de dados entre a instância do fluxo detrabalho e o hospedeiro do fluxo de trabalho, ao mesmo tempoem que ocultando as comunicações e os protocolos de trans-missão de mensagens. Os aspectos da invenção permitem a umfluxo de trabalho ser agnóstico à tecnologia de transmissãode mensagens subjacentes.
Este sumário é proporcionado para introduzir umaseleção de conceitos de uma forma simplificada, os quais sãoadicionalmente descritos abaixo na Descrição Detalhada. Es-te Sumário não é pretendido para identificar os aspectosprincipais ou os aspectos essenciais do tema reivindicado,nem é pretendido para ser utilizado como um suporte ao sedeterminar o escopo do tema reivindicado.
Outros aspectos em parte serão aparentes e em par-te salientados daqui para frente.
BREVE DESCRIÇÃO DOS DESENHOS
A FIG. 1 é um fluxo de trabalho ilustrativo con-tendo tarefas e atividades de composição do fluxo de controle.
A FIG. 2 é um fluxograma ilustrativo ilustrando aoperação dos aspectos de tempo de projeto e de tempo de exe-cução da invenção.
A FIG. 3 é um diagrama de blocos ilustrando umfluxo de trabalho seqüencial possuindo duas atividades dedados.
A FIG. 4 é um diagrama de blocos ilustrando o flu-xo de trabalho seqüencial da FIG. 3 e as propriedades e osvalores de propriedade, associados com cada uma das ativida-des de dados no fluxo de trabalho seqüencial.
A FIG. 5 é um diagrama de blocos ilustrando as in-terações entre uma instância executante de fluxo de trabalhoe um hospedeiro de fluxo de trabalho.
A FIG. 6 é um diagrama de blocos ilustrando um e-xemplo de um ambiente adequado de sistema de computador noqual os aspectos da invenção podem ser implementados.
Caracteres de referência correspondentes indicampartes correspondentes por todos os desenhos.
DESCRIÇÃO DETALHADA
A FIG. 1 ilustra um fluxo de trabalho ilustrativo.As modalidades da invenção são operáveis com um fluxo detrabalho representando um processo tal como um processo daempresa. Os processos da empresa são dependentes de tare-fas, atividades, ou de coisas parecidas ordenadas que resul-tam em resultados prognosticáveis e que podem ser repetidos.Incluindo os procedimentos operacionais, o conhecimento dotrabalho institucional, e os recursos de informação de umaorganização, os processos da empresa são projetados para sa-tisfazer objetivos definidos da empresa de uma maneira efi-ciente e em tempo hábil. Em um ambiente eficiente, os com-ponentes funcionais de um processo podem ser prontamente i-dentifiçados, adaptados, e dispostos para endereçar requeri-mentos corporativos sempre se alterando. 0 fluxo de traba-Iho é a experiência de um usuário final interagindo com al-gumas das tarefas em um processo da empresa. As tarefas sãomodeladas como atividades, componentes, ou coisa parecida,cada uma representando uma unidade de trabalho que é execu-tada por uma pessoa ou máquina. Um hospedeiro de fluxo detrabalho instancia um fluxo de trabalho para criar uma ins-tância de fluxo de trabalho. 0 hospedeiro do fluxo de tra-balho e a instância de fluxo de trabalho trocam mensagens oude outra forma se comunicam durante a execução da instânciado fluxo de trabalho. Em uma modalidade, os detalhes datransmissão de mensagens de cada uma destas trocas devem sermodelados por um usuário durante'a criação do fluxo de tra-balho. Tal processo de criação envolve definir uma interfa-ce local de serviço (por exemplo, especificando um protocolode comunicações) para cada comunicação entre a instância defluxo de trabalho e o hospedeiro de fluxo de trabalho, im-plementando esta interface no hospedeiro de fluxo de traba-lho, registrando a interface como um serviço de comunicaçãono ambiente do fluxo de trabalho, e gerando atividades dofluxo de trabalho fortemente tipificadas que se comunicamcom a interface implementada no hospedeiro de fluxo de tra-balho. Alguns fluxos de trabalho se comunicam utilizandointerfaces e métodos (por exemplo, canais, portas).
As modalidades da invenção abstraem e modelam acomunicação entre um hospedeiro de fluxo de trabalho e umainstância executante do fluxo de trabalho, tal como apresen-tado na FIG. 5, para proporcionar um modo não tipificado decomunicação com um fluxo de trabalho. A comunicação com ainstância de fluxo de trabalho é executada utilizando um ca-nal conhecido e os dados são um fator de decisão para a co-municação com as instâncias especificas do fluxo de traba-lho. A abstração (por exemplo, via atividades limitadas pordados) permite ao desenvolvedor ou a outro usuário modelar acomunicação em um ambiente de fluxo de trabalho sem modelaros detalhes da transmissão de mensagens. O usuário não pre-cisa aprender as construções de comunicação ou os conceitosda transmissão de mensagens. Os detalhes da transmissão demensagem são manipulados automaticamente por um objeto ser-viço de comunicação ou por outra camada no ambiente de fluxode trabalho. Como tal, a abstração é agnóstica à tecnologiade transmissão de mensagens subjacente. A abordagem centra-da em dados nos aspectos da invenção implementa a troca dedados com qualquer aplicação ou usuário.
Em particular, o hospedeiro de fluxo de trabalhocoleta informação a partir de um usuário (por exemplo, atra-vés de um formulário) ou a partir de um sistema externo (porexemplo, utilizando protocolos de acesso a dados) e passa osdados de volta para a instância executante do fluxo de tra-balho para processamento. Em uma modalidade, algumas dastecnologias de formulários utilizadas pelo programador dohospedeiro de fluxo de trabalho para obter dados a partir dousuário ocultam os conceitos de transmissão de mensagens doprogramador do hospedeiro de fluxo de trabalho. Os aspectosda invenção proporcionam um objeto de dados associado comuma definição particular de fonte de dados (por exemplo, de-finição de esquema ou de tipo) para representar os dadospassados entre o hospedeiro de fluxo de trabalho e a instân-cia executante do fluxo de trabalho. 0 mesmo objeto de da-dos pode ser manipulado pela instância de fluxo de trabalhoe pelo hospedeiro de fluxo de trabalho para reduzir a confu-são do desenvolvedor e proporcionar uma experiência de vin-culação de dados entre os objetos de dados do fluxo de tra-balho e os hospedeiros de fluxo de trabalho. Em geral, umafonte de dados (por exemplo, que pode ser acessada pelo hos-pedeiro de fluxo de trabalho) proporciona dados para os ob-jetos de dados que consomem os dados ou proporcionam os da-dos para um consumidor de dados (por exemplo, uma atividadedo fluxo de trabalho). Em um exemplo, a interação entre ainstância de fluxo de trabalho e o hospedeiro de fluxo detrabalho não é especifica dos formulários.
Referindo-se a seguir à FIG. 2, um fluxograma i-lustrativo ilustra a operação dos aspectos de tempo de pro-jeto e de tempo de execução da invenção, para implementar atransmissão de mensagens, agnóstica ao protocolo. Os aspec-tos da invenção modelam dados externos em termos de fontesde dados e de fontes de dados associadas para atividades li-mitadas por dados. Em geral, o desenvolvedor do fluxo detrabalho define uma fonte de dados dentro da aplicação dofluxo de trabalho, associa esta fonte de dados a um objetode dados (por exemplo, um container ou formulário), e recebedados modificados de volta via um mesmo objeto de dados.
Uma vez que estes dados modificados são recebidos pela ins-tância de fluxo de trabalho, as decisões e outras vincula-ções de dados são possíveis.
0 método ilustrado na FIG. 2 implementa a trans-missão de mensagens agnóstica ao protocolo entre um hospe-deiro de fluxo de trabalho e uma instância executante dofluxo de trabalho. Em uma modalidade, um ou mais meios le-gíveis por computador possuem instruções executáveis porcomputador ou componentes para implementar o método ilustra-do na FIG. 2. componentes executáveis por computador ilus-trativos incluem um componente de interface com o usuário202 para receber, a partir de um usuário, uma seleção de umaatividade predefinida de dados do fluxo de trabalho para mo-delar uma operação de transmissão de mensagem entre um fluxode trabalho e um hospedeiro de fluxo de trabalho. Em umamodalidade, receber a seleção das atividades predefinidas dedados do fluxo de trabalho inclui receber a seleção via umainterface de programação de aplicação. Para o usuário, aatividade de dados predefinida é agnóstica aos protocolos detransmissão de mensagens.
Os componentes adicionalmente incluem um componen-te de propriedade 204 para especificar uma definição de fon-te de dados, vinculando a atividade de dados selecionada coma definição de fonte de dados especificada, e fazendo refe-rência à atividade de dados de limitação como uma dentre vá-rias atividades no fluxo de trabalho para implementar atransmissão de mensagem entre o fluxo de trabalho e o hospe-deiro de fluxo de trabalho. A definição da fonte de dadosdefine um objeto de dados para armazenar dados de mensagem aserem comunicados entre uma instância executante do fluxo detrabalho e o hospedeiro do fluxo de trabalho. 0 hospedeirodo fluxo de trabalho instancia a instância de fluxo de tra-balho. Especificar a definição da fonte de dados pode in-cluir, por exemplo, receber a partir de um usuário um iden-tificador correspondendo à definição da fonte de dados oudefinindo um esquema para os dados da mensagem. Em uma mo-dalidade, o usuário define um objeto de dados associado coma definição da fonte de dados e programa ou de outro modoacessa o objeto de dados no fluxo de trabalho.
Os componentes executáveis por computador adicio-nalmente incluem um componente de instância 206 o qual, du-rante a execução da instância de fluxo de trabalho, gera oobjeto de dados por definição de fonte de dados especificadae envia o objeto de dados gerado para o hospedeiro de fluxode trabalho. Um componente hospedeiro (veja FIG. 5) no hos-pedeiro de fluxo de trabalho preenche o objeto de dados comos dados da mensagem e envia o objeto de dados preenchidopara o componente de instância na instância do fluxo de tra-balho. O componente de instância 206 recebe o objeto de da-dos preenchido a partir do hospedeiro de fluxo de trabalho eprocessa os dados da mensagem no objeto de dados preenchidorecebido. Em uma modalidade, os dados da mensagem corres-pondem a uma requisição por dados. Em tal modalidade, ocomponente de instância 206 preenche o objeto de dados comos dados requisitados e envia o objeto de dados preenchidopara o hospedeiro de fluxo de trabalho (por exemplo, paraatualizar um formulário).
As atividades limitadas por dados encapsulam o me-canismo de transmissão de mensagem subjacente de modo que oautor do fluxo de trabalho e o desenvolvedor do hospedeirode fluxo de trabalho não precisam definir interfaces locaisde serviço para o intercâmbio de mensagens. Em geral, qual-quer implementação de uma interface local de serviço podeser utilizada para trocar dados entre o fluxo de trabalho eo hospedeiro, utilizando esta abstração. Em um exemplo, umainterface local de serviço de propósito geral é definida pa-ra permitir a troca de dados utilizando esta abstração.
Em um exemplo, as modalidades da invenção propor-cionam as seguintes quatro atividades limitadas por dados:UpdateData, SelectData, WaitForData, e WaitForQuery. A ati-vidade UpdateData permite que o fluxo de trabalho atualizeos dados externos. A atividade SelectData permite que ofluxo de trabalho consulte dados externos. A atividadeWaitForData modela um ponto de espera em um fluxo de traba-lho para os dados externos. A atividade WaitForQuery modelaum ponto de espera no fluxo de trabalho correspondendo a umarequisição de consulta de dados. Em uma modalidade, os da-dos externos podem existir em uma base de dados acessívelpelo hospedeiro de fluxo de trabalho, ou serem dados obtidosa partir de um formulário. Por exemplo, quando se conectan-do com um formulário, os dados são armazenados no fluxo detrabalho e a atividade UpdateData informa ao formulário queos dados foram modificados.
A tabela seguinte descreve as propriedades de cadauma destas atividades de dados. A propriedade de ativaçãodas propriedades do contexto mapeia a propriedade de ativa-ção nas atividades limitadas por dados WaitForData e Wait-ForQuery. Se qualquer uma destas atividades possuir a ati-vação estabelecida para verdadeiro, as propriedades de con-texto incluem a propriedade ativação com verdadeiro como ovalor.
Tabela 1. Propriedades das atividades limitadaspor dados ilustrativas.
<table>table see original document page 10</column></row><table><table>table see original document page 11</column></row><table><table>table see original document page 12</column></row><table>
Uma fonte de dados representa um esquema de dadosexternos. Por exemplo, uma fonte de dados pode ser um con-têiner local para os dados que são transmitidos para / apartir dos formulários e dos fluxos de trabalho. Δ fonte dedados define o formato e / ou a estrutura dos dados armaze-nados na mesma. Uma modalidade da invenção proporciona adefinição do esquema de linguagem de marcação extensível(XSD) e o tipo de tempo de execução da linguagem comum (CLR)baseado nas fontes de dados. Qualquer formato que seja uti-lizado para descrever a estrutura de um objeto ou de dados,entretanto, pode ser utilizado para definir uma fonte de da-dos. Por exemplo, uma linguagem de definição de interface(IDL) ou linguagem de descrição de serviços da rede (WSDL)pode ser utilizada para definir as fontes de dados. A tabe-la seguinte descreve as propriedades de uma fonte ilustrati-va de dados de tipo / objeto que utiliza definições de tipo(por exemplo, classe) como definições para gerar automatica-mente objetos de dados.
Tabela 2. Fonte de dados de objeto ilustrativa.
<table>table see original document page 12</column></row><table><table>table see original document page 13</column></row><table>
A tabela seguinte descreve as propriedades de umafonte de dados ilustrativa XSD / XML que utiliza a definiçãoXSD como definições de esquema para gerar automaticamenteobjetos de dados.
Tabela 3. Fonte de dados XSD ilustrativa.
<table>table see original document page 13</column></row><table>esquema XSD
Referindo-se agora à FIG. 3, um diagrama de blocosilustra um fluxo de trabalho seqüencial 302 possuindo duasatividades de dados. Neste exemplo, um autor do fluxo detrabalho designa o fluxo de trabalho 302 para atualizar da-dos via. a atividade UpdateDatal 304 e aguarda por um eventode dados trocados a partir de um hospedeiro de fluxo de tra-balho via a atividade waitForDatal 306. O desenvolvedor dofluxo de trabalho experimenta incluir configurar uma fontede dados e configurar estas atividades limitadas por dados 304, 306.
Uma fonte de dados pode ser configurada via umainterface com o usuário ou de forma programática via uma in-terface de programação de aplicação. Em um exemplo, umainstância de ObjectDataSource é criada e adicionada para umacoleção DataSources em uma atividade DataContext. As pro-priedades da ObjectDataSource (apresentadas na tabela abai-xo) podem então ser configuradas.
Tabela 4. Propriedades de uma ObjectDataSource.
<table>table see original document page 14</column></row><table><table>table see original document page 15</column></row><table><table>table see original document page 16</column></row><table>O desenvolvedor adiciona duas atividades limitadaspor dados (por exemplo, UpdateData e WaitForData) para ofluxo de trabalho. O desenvolvedor configura as proprieda-des destas atividades limitadas por dados via uma interfacecom o usuário ou de forma programática via uma interface deprogramação. Por exemplo, a FIG. 4 ilustra um fluxo de tra-balho seqüencial 402 tal como o fluxo de trabalho seqüencial302 na FIG. 3 incluindo propriedades e valores de proprieda-de associados com'cada uma das atividades de dados no fluxode trabalho seqüencial 402. A tabela 5 descreve as proprie-dades 404 da atividade limitada por dados UpdateData apre-sentada na FIG. 4. A tabela 6 descreve as propriedades 406da atividade limitada por dados WaitForData apresentada naFIG. 4.
Tabela 5. Propriedades da atividade limitada pordados UpdateData.
<table>table see original document page 17</column></row><table>Tabela 6. Propriedades da atividade limitada pordados WaitForData.
<table>table see original document page 18</column></row><table>
O desenvolvedor do hospedeiro de fluxo de trabalhoexperimenta incluir código de gravação que trabalha com ser-viço de fonte de dados para submeter eventos (por exemplo,eventos de troca de dados) para a instância executante dofluxo de trabalho. Por exemplo, o serviço de fonte de dadosproporciona métodos para formar eventos DataChanged e Data-Query para o fluxo de trabalho. O desenvolvedor do fluxo detrabalho não precisa implementar qualquer interface de ser-viço de comunicação de objeto (OCS) ou outra interface localde serviço. Este fragmento do hospedeiro de fluxo de traba-lho ativa um evento DataChanged para o fluxo de trabalho u-tilizando o serviço de fonte de dados.
// Get the DataSourceSérvice from the ObjectCon-nectionService
Dictionary < string, object > properties = newDictionary < string, obeject > ();
properties. Add ("Instanceld", instance. In-stanceld;
properties. Add ("WorkflowType", typeof (FormTest.Workflow 1) );
properties. Add ("DataSource", "WorkfIowl. or-ange");
FormTest. Task t = new FormTest. Task ("5");
Service.RaiseDataChanged (properties, t);
Referindo-se a seguir à FIG. 5, um diagrama deblocos ilustra interações entre uma instância executante defluxo de trabalho 502 e um hospedeiro de fluxo de trabalho504. Em geral, o hospedeiro de fluxo de trabalho 504 recebeeventos a partir de um formulário ou a partir de um aplica-ção externa (não apresentada) e processa e publica objetosde dados 510 para a instância de fluxo de trabalho 502 paraprocessamento. Em um cenário de documento, o hospedeiro defluxo de trabalho 504 recupera o tipo do objeto de dado nacarga útil de um objeto de dado 509 a partir da instância defluxo de trabalho 502, identifica o formulário associado comeste tipo, serializa o objeto de dado 509 para a linguagemde marcação extensível (XML), e armazena a XML dentro de umrepositório de documento (não apresentado).
No exemplo da FIG. 5, um sistema implementado porcomputador proporciona transmissão de mensagens agnóstica aoprotocolo em um ambiente de fluxo de trabalho. 0 sistemainclui o hospedeiro do fluxo de trabalho 502 para instanciarum fluxo de trabalho para criar uma instância de fluxo detrabalho para a execução. 0 sistema também inclui uma oumais atividades de dados predefinidas tal como a atividadede dados de formulário 506 para uso no fluxo de trabalho. Aatividade de dados de formulário 506 inclui uma atividade"envia dados para o hospedeiro" 508 e uma atividade "recebedados a partir do hospedeiro" 511. Cada uma das atividadesde dados predefinidas 508, 511 modela uma operação de trans-missão de mensagem entre a instância de fluxo de trabalho502 e o hospedeiro de fluxo de trabalho 504. A atividade dedados predefinida 508 gera o objeto de dados 509 durante aexecução da instância de fluxo de trabalho para armazenardados da mensagem. O objeto de dados 509 é comunicado apartir da instância de fluxo de trabalho 502 para o hospe-deiro de fluxo de dados 504. Uma definição de fonte de da-dos para definir uma estrutura de dados associada com o ob-jeto de dados 509. O sistema adicionalmente inclui um ser-viço de fontes de dados 512 associado com o hospedeiro defluxo de trabalho 504 para preencher o objeto de dados 509com os dados da mensagem e comunicar o objeto de dados pre-enchido como o objeto de dados 510 para a instância de fluxode trabalho 502 para processamento.
O sistema da FIG. 5 também inclui um meio legívelpor computador (não apresentado) armazenando uma estruturade dados representando o objeto de dados 509. A estruturade dados inclui um campo de tipo de protocolo 518, um campode carga útil 520, e um campo de fonte 522. o campo de tipode protocolo 518 armazena um valor identificando um protoco-lo para uso na comunicação entre a instância executante dofluxo de trabalho 502 e o hospedeiro de fluxo de trabalho504. O campo de carga útil 520 armazena os dados da mensa-gem. O campo de fonte 522 armazena um valor identificando adefinição da fonte de dados para o objeto de dados 509. Adefinição da fonte de dados identifica um protocolo para co-municação entre a instância de fluxo de trabalho 502 e ohospedeiro de fluxo de trabalho 504.
O serviço de fonte de dados 512 no hospedeiro defluxo de dados transfere a carga útil da mensagem em um ob-jeto de dados para uma aplicação no hospedeiro de fluxo detrabalho por instanciar uma classe ajudante no espaço deprocessamento do hospedeiro em 514. 0 desenvolvedor do hos-pedeiro de fluxo de trabalho configura estas classes ajudan-tes na definição do fluxo de trabalho quando definindo asfontes de dados. Uma vez que uma instância de classe aju-dante seja criada ou invocada, o hospedeiro 504 tem controlesobre a carga útil da mensagem via a classe ajudante instan-ciada (por exemplo, manipulador de dados). Quaisquer clien-tes gerenciados pelo hospedeiro 504 são capazes de receberestes dados e atualizar seu conteúdo. As classes ajudantesincluem vários manipuladores de dados para processar o obje-to dados. Um serviço de comunicação 516 no hospedeiro 504comunica o objeto dados preenchido 510 para a instância defluxo de trabalho 502.
Um serviço ilustrativo de fonte de dados 512 pro-porcionado pelo hospedeiro de fluxo de trabalho 504 incluios métodos apresentados abaixo. 0 primeiro método cria umevento DataChanged para o fluxo de trabalho e o segundo mé-todo cria um evento DataQueried para o fluxo de trabalho erecebe os resultados da consulta.void RaiseDataChanged (IDictionary < string, ob-ject > contextProperties, object msg)
object RaiseDataQueried (IDictionary < string, ob-ject > contextProperties, object msg)
O argumento ΛIDictionary < string, object > con-textProperties' contém as propriedades de contexto tal comoo identificador da instância de fluxo de trabalho, o tipo defluxo de trabalho, o nome qualificado da fonte de dados, e ovalor de ativação (por exemplo, se a mensagem é uma mensagemde ativação). 0 argumento ^object message' representa o ob-jeto de dados 510 ou a mensagem a ser enviada para o fluxode trabalho.
Em uma modalidade, as operações seguintes são exe-cutadas durante o tempo de execução via as mensagens entre ainstância executante do fluxo de trabalho 502 e o hospedeirode fluxo de trabalho 504. um evento de ativação é recebidopor uma definição de fluxo de trabalho e a instância de flu-xo de trabalho 502 é criada. A instância de fluxo de traba-lho 502 é iniciada com a informação sobre o evento de ativa-ção. Uma atividade limitada por dados (por exemplo, uma a-tividade de dados de formulário ou uma atividade de dados),tal como a atividade 506, é encontrada na instância execu-tante do fluxo de trabalho 502. A atividade 508 contida pe-lo contêiner de atividade limitada por dados 506 gera e en-via o objeto de dados 509 para o hospedeiro do fluxo de tra-balho 504. O serviço de fonte de dados 512.associado com ohospedeiro do fluxo de trabalho 504 recebe o objeto de dados509 a partir da instância de fluxo de trabalho 502. O ser-viço de fonte de dados 512 invoca um manipulador de dados nohospedeiro de fluxo de trabalho 504 para processar o objetode dados recebido 509. Na instância de fluxo de trabalho502, outra atividade 511 (por exemplo, "recebe dados a par-tir do hospedeiro") aguarda até que uma requisição de con-sulta ou um evento de submissão seja recebido a partir dohospedeiro de fluxo de trabalho 504. Se uma requisição deconsulta for recebida pela atividade 511 na instância defluxo de trabalho 502, a requisição é processada e os resul-tados são enviados para o hospedeiro de fluxo de trabalho504 usando uma atividade "Transfere dados para o hospedeiro"(não apresentada). Se um evento de submissão for recebidopela atividade 511 na instância de fluxo de trabalho 502, oevento é processado e a atividade 506 é marcada como comple-tada. A instância de fluxo de trabalho 502 continua a pro-cessar todas as suas atividades de dados até que a aplicaçãode fluxo de trabalho termine.
As modalidades da invenção suportam as operaçõesde fluxo de trabalho descritas neste documento para qualquertecnologia de formulários esquematizados ou baseados em ob-jeto, bem como quaisquer aplicações externas de terceiraspartes.
Ambiente Operacional Ilustrativo
A FIG. 6 apresenta um exemplo de um dispositivo decomputação de propósito geral na forma de um computador 130.
Em uma modalidade da invenção, um computador tal como o com-putador 130 é adequado para uso em outras figuras ilustradase descritas neste documento. O computador 130 possui um oumais processadores ou unidades de processamento 132 e umamemória do sistema 134. Na modalidade ilustrada, um barra-mento do sistema 136 acopla vários componentes do sistema,incluindo a memória do sistema 134, com os processadores132. 0 barramento 136 representa um ou mais dentre váriostipos de estruturas de barramento, incluindo um barramentode memória ou controlador de memória, um barramento perifé-rico, uma porta de video acelerada, e um processador ou bar-ramento local utilizando qualquer uma dentre várias arquite-turas de barramento. A titulo de exemplo, e não de limita-ção, tais arquiteturas incluem o barramento da ArquiteturaPadrão da Indústria (ISA), o barramento da Arquitetura deMicro Canal (MCA), o barramento ISA Aperfeiçoado (EISA), obarramento local da Associação de Padrões Eletrônicos de Vi-deo (VESA), e o barramento da Interconexão de ComponentesPeriféricos (PCI), também conhecido como barramento Mezanino.
O computador 130 tipicamente possui pelo menos al-guma forma de meio legível por computador. O meio legívelpor computador, o qual inclui tanto meio volátil como nãovolátil, meio removível e não removível, pode ser qualquermeio disponível que possa ser acessado pelo computador 130.
A título de exemplo, e não de limitação, o meio legível porcomputador compreende um meio de armazenamento do computadore o meio de comunicação. 0 meio de armazenamento do compu-tador inclui meio volátil e não volátil, removível e não re-movível, implementado em qualquer método ou tecnologia paraarmazenamento de informação, tal como instruções legíveispor computador, estruturas de dados, módulos de programa ououtros dados. Por exemplo, o meio de armazenamento do com-putador inclui RAM, ROM, EEPROM, memória flash, ou outratecnologia de memória, CD-ROM, discos versáteis digitais(DVD) ou outro armazenamento de disco óptico, cassetes mag-néticos, fita magnética, armazenamento em disco magnético ououtros dispositivos de armazenamento magnético, ou qualqueroutro meio que possa ser utilizado para armazenar as infor-mações desejadas e que possa ser acessado pelo computador130. 0 meio de comunicação tipicamente incorpora instruçõeslegíveis por computador, estruturas de dados, módulos deprograma, ou outros dados em um sinal de dados modulado, talcomo uma onda portadora ou outro mecanismo de transporte, einclui qualquer meio de distribuição de informação. Os ver-sados na técnica estão familiarizados com o sinal de dadosmodulado, o qual possui uma ou mais de suas característicasestabelecidas ou alteradas de uma maneira tal a codificarinformação no sinal. Meio com fios, tal como uma rede comfios ou conexão direta com fios, e meio sem fios, tal comomeio acústico, RF, infravermelho e outros meios sem fio, sãoexemplos de meio de comunicação. Combinações de quaisquerdos ditos A combinação de qualquer um dos ditos acima tambémestão incluídas dentro do escopo de meio legível por compu-tador.
A memória do sistema 134 inclui um meio de arma-zenamento do computador na forma de memória removível e / ounão removível, volátil e / ou não volátil. Na modalidadeilustrada, a memória do sistema 134 inclui a memória somentepara leitura (ROM) 138 e a memória de acesso aleatório (RAM)140. Um sistema básico de entrada / saida 142 (BIOS), con-tendo as rotinas básicas que ajudam a transferir informaçõesentre os elementos dentro do computador 130, tal como duran-te a inicialização, tipicamente é armazenado na ROM 138. ARAM 14 0 tipicamente contém dados e / ou módulos de programaque são imediatamente acessíveis e / ou que estão sendo atu-almente operados pela unidade de processamento 132. A títu-lo de exemplo, e não de limitação, a FIG. 6 ilustra o siste-ma operacional 144, os programas de aplicação 146, outrosmódulos de programa 148, e os dados de programa 150.
O computador 130 também inclui outros meios de ar-mazenamento do computador removíveis / não removíveis, volá-teis / não voláteis. Por exemplo, a FIG. 6 ilustra uma uni-dade de disco rígido 154 que lê ou grava junto a um meiomagnético não removível, não volátil. A FIG. 6 também apre-senta um unidade de disco magnético 156 que lê ou grava jun-to a um disco magnético removível, não volátil 158, e umaunidade de disco óptico 160 que lê ou grava junto a um dis-co óptico removível, não volátil 162, tal como um CD-ROM ououtro meio óptico. Outros meios de armazenamento do compu-tador removíveis / não removíveis, voláteis / não voláteisque podem ser utilizados no ambiente operacional ilustrativoincluem, mas não estão limitados, aos cassetes de fita mag-nética, cartões de memória flash, discos versáteis digitais,fita de vídeo digital, RAM de estado sólido, ROM de estadosólido, e assim por diante. A unidade de disco rígido 154,a unidade de disco magnético 156 e a unidade de disco óptico160 tipicamente estão conectadas com o barramento do sistema136 por uma interface de memória não volátil, tal como a in-terface 166.
As unidades ou outros dispositivos de armazenamen-to em massa e seus meios de armazenamento do computador as-sociados discutidos acima e ilustrados na FIG. 6 proporcio-nam armazenamento das instruções legíveis por computador,das estruturas de dados, dos módulos de programa e de outrosdados para o computador 130. Na FIG. 6, por exemplo, a uni-dade de disco rígido 154 é ilustrada como armazenando o sis-tema operacional 170, os programas de aplicação 172, outrosmódulos de programa 174, e os dados de programa 176. Obser-ve que estes componentes podem ser os mesmos ou diferentesdo sistema operacional 144, dos programas de aplicação 146,dos outros módulos de programa 148, e dos dados de programa150. O sistema operacional 170, os programas de aplicação172, os outros módulos de programa 174, e os dados de pro-grama 17 6 recebem neste documento números diferentes parailustrar, que no mínimo, eles são cópias diferentes. Um u-suário pode entrar com comandos e informações no computador130 através dos dispositivos de entrada ou dos dispositivosde seleção de interface com o usuário, tal como um teclado180 e um dispositivo de apontamento 182 (por exemplo, ummouse, trackball, caneta ou tela de toque). Outros disposi-tivos de entrada (não apresentados) podem incluir um micro-fone, joystick, controle de jogo, antena de satélite, scan-ner, ou coisa parecida. Estes e outros dispositivos de en-trada são conectados com a unidade de processamento 132 a-través de uma interface de entrada com o usuário 184 que es-tá acoplada com o barramento do sistema 136, mas pode estarconectada por outras interfaces e estruturas de barramento,tal como uma porta paralela, porta de jogo, ou por um Barra-mento Serial Universal (USB). Um monitor 188 ou outro tipode dispositivo de video também está conectado com o barra-mento do sistema 136 via uma interface, tal como uma inter-face de video 190. Em adição ao monitor 188, os computado-res freqüentemente incluem outros dispositivos periféricosde saida (não apresentados) tal como uma impressora e auto-falantes, os quais podem estar conectados através de uma in-terface periférica de saida (não apresentada).
O computador 130 pode operar em um ambiente em re-de, utilizando conexões lógicas com um ou mais computadoresremotos, tal como um computador remoto 194. 0 computadorremoto 194 pode ser um computador pessoal, um servidor, umroteador, um PC de rede, um dispositivo par ou outro nó co-mum da rede, e tipicamente inclui vários ou todos os elemen-tos descritos acima com relação ao computador 130. As cone-xões lógicas representadas na FIG. 6 incluem uma rede de á-rea local (LAN) 196 e uma rede de área ampla (WAN) 198, mastambém podem incluir outras redes. A LAN 136 e / ou a WAN138 pode ser uma rede com fios, uma rede sem fios, uma com-binação das mesmas, e assim por diante. Tais ambientes emrede são comuns em escritórios, em redes de computador degrandes empresas, Intranets, e em redes globais de computa-dores (por exemplo, a Internet). Quando utilizado em um am-biente em rede de área local, o computador 130 é conectadocom a LAN 196 através de uma interface ou adaptador de rede186. Quando utilizado em um ambiente em rede de área ampla,o computador 130 tipicamente inclui um modem 178 ou outrodispositivo para estabelecer comunicações através da WAN198, tal como a Internet. O modem 178, o qual pode ser in-terno ou externo, é conectado com o barramento do sistema136 via a interface de entrada do usuário 184 ou via outromecanismo apropriado. Em um ambiente em rede, os módulos deprograma representados em relação ao computador 130, ou par-tes dos mesmos, podem ser armazenados em um dispositivo dearmazenamento e memória remoto (não apresentado) . A títulode exemplo, e não de limitação, a FIG. 6 ilustra os progra-mas de aplicação remotos 192 como residindo no dispositivode memória. As conexões de rede apresentadas são ilustrati-vas e outros dispositivos para estabelecer uma ligação decomunicações entre os computadores podem ser utilizados.
Geralmente, os processadores de dados do computa-dor 130 são programados por meio de instruções armazenadasem momentos diferentes nos vários meios de armazenamento Ie-gíveis por computador do computador. Os programas e os sis-temas operacionais tipicamente são distribuídos, por exem-plo, em discos flexíveis ou em CD-ROMs. De lá, eles sãoinstalados ou carregados na memória secundária de um compu-tador. Na execução, eles são carregados pelo menos parcial-mente na memória eletrônica principal do computador. Os as-pectos da invenção descritos neste documento incluem estes evários outros tipos de. meios de armazenamento legíveis porcomputador, quando tais meios contêm instruções ou programaspara implementar as etapas descritas abaixo em conjunto comum micro-processador ou com outro processador de dados. Asmodalidades da invenção também incluem o próprio computadorquando programado de acordo com os métodos e técnicas des-critos neste documento.
Para propósito de ilustração, os programas e osoutros componentes de programa executáveis, tal como o sis-tema operacional, são ilustrados neste documento como blocosseparados. Entretanto, é reconhecido que tais programas ecomponentes residem em vários momentos em diferentes compo-nentes de armazenamento do computador, e são executados pe-los processadores de dados do computador.
Apesar de descritos em conexão com um ambiente' desistema de computação ilustrativo, incluindo o computador130, os aspectos da invenção são operacionais com várias ou-tras configurações ou ambientes de sistema de computação depropósito geral ou de propósito especial. 0 ambiente desistema de computação não é pretendido para sugerir qualquerlimitação quanto ao escopo de uso ou à funcionalidade dosaspectos da invenção. Além disso, o ambiente de sistema decomputador não deve ser interpretado como possuindo qualquerdependência ou requerimento se relacionando com qualquer umou com a combinação dos componentes ilustrados no ambienteoperacional ilustrativo. Exemplos de sistemas de computa-ção, ambientes, e / ou de configurações bem conhecidas quepodem ser adequadas para uso com os aspectos da invenção in-cluem, mas não estão limitados, aos computadores pessoais,aos computadores servidores, aos dispositivos portáteis oulaptop, aos sistemas com vários processadores, aos sistemasbaseados em microprocessador, às caixas decodificadoras, aoseletroeletrônicos programáveis de consumidor, aos telefonesmóveis, aos PCs de rede, aos mini-computadores, aos computa-dores de grande porte, aos ambientes de computação distribu-ídos que incluem qualquer um dos sistemas ou dispositivosacima, e assim por diante.
As modalidades da invenção podem ser descritas nocontexto geral de instruções executáveis por computador, talcomo módulos de programa executados por um ou mais computa-dores ou outros dispositivos. Geralmente, os módulos deprograma incluem, mas não estão limitados às rotinas, pro-gramas, objetos, componentes, e estruturas de dados que exe-cutam tarefas particulares ou implementam tipos de dadosabstratos particulares. As modalidades da invenção tambémpodem ser praticadas em ambientes de computação distribuí-dos, onde as tarefas são executadas por dispositivos de pro-cessamento remotos que estão ligados através de uma rede decomunicações. Em um ambiente de computação distribuído, osmódulos de programa podem estar localizados em meios de ar-mazenamento do computador tanto locais como remotos, inclu-indo dispositivos de armazenamento em memória.
Uma interface no contexto de uma arquitetura desoftware inclui um módulo de software componente, parte decódigo, ou outra seqüência de instruções executáveis porcomputador. A interface inclui, por exemplo, um primeiromódulo acessando um segundo módulo para executar tarefas decomputação em nome do primeiro módulo. 0 primeiro e o se-gundo módulos incluem, em um exemplo, interfaces de progra-mação de aplicação (APIs), tal como proporcionadas pelossistemas operacionais, interfaces de modelo de objeto compo-nente (COM) (por exemplo, para comunicação de aplicação pon-to a ponto), e interfaces de formato de intercâmbio de meta-dados de linguagem de marcação extensível (XMI) (por exem-plo, para comunicação entre serviços da rede).
A interface pode ser uma implementação síncronaestreitamente acoplada, tal como nos exemplos da Java 2Platform Enterprise Edition (J2EE), COM, ou COM distribuída(DCOM). Alternativamente ou em adição, a interface pode seruma implementação assíncrona frouxamente acoplada, tal comoem um serviço da rede (por exemplo, utilizando o protocolosimples de acesso a objeto). Em geral, a interface incluiqualquer combinação das características seguintes: estrei-tamente acoplada, frouxamente acoplada, síncrona e assíncro-na. Adicionalmente, a interface pode ser de acordo com umprotocolo padrão, com um protocolo proprietário ou com qual-quer combinação de protocolo padrão e de protocolo proprie-tário.
As interfaces descritas neste documento podem to-das serem parte de uma única interface ou podem ser imple-mentadas como interfaces separadas ou como qualquer combina-ção, nas mesmas. As interfaces podem executar de forma localou de forma remota para proporcionar funcionalidade. Adi-cionalmente, as interfaces podem incluir mais ou menos fun-cionalidade do que ilustrado ou descrito neste documento.
Em operação, o computador 130 executa instruções executáveispor computador, tal como estas ilustradas nas figuras, paraimplementar os aspectos da invenção. 0 hardware, software,firmware, componentes executáveis por computador e / ou ins-truções executáveis por computador constituem os dispositi-vos para implementar a transmissão de mensagem agnóstica aoprotocolo no fluxo de trabalho.
Os exemplos seguintes adicionalmente ilustram mo-dalidades da invenção. Em um cenário, um desenvolvedor estáinteressado em desenvolver uma aplicação de fluxo de traba-Iho que requer que o usuário entre com informação utilizandoalguma tecnologia de formulários (por exemplo, formuláriosda rede). Os formulários foram anteriormente definidos epossuem suas próprias definições de esquema. 0 desenvolve-dor deseja modelar as interações do formulário e os elemen-tos de dados como etapas dentro da aplicação do fluxo detrabalho. Esta interação entre o formulário e o fluxo detrabalho é esperada de acontecer sem ter que regravar osformulários. Para alcançar isto, o desenvolvedor utilizauma etapa de fluxo de trabalho ou bloco de construção chama-do de atividade de dados do formulário e adiciona a mesmapara sua definição do fluxo de trabalho. 0 desenvolvedorconfigura a fonte de dados associada com este objeto paraapontar para a definição de esquema de formulário (por exem-plo, as definições de esquema poderiam ser expressas comoesquemas XML). Esta associação gera automaticamente um tipode mapeamento a partir de onde uma estância de objeto é cri-ada dentro do fluxo de trabalho durante a execução do fluxode trabalho. Esta instância de objeto é manipulada pelo de-senvolvedor para enviar e recuperar dados junto ao formulá-rio, respectivamente. Na hora da execução, esta instânciade objeto é serializada e tem a serialização retirada pelohospedeiro de fluxo de trabalho e a informação é injetada erecuperada junto ao formulário. Isto ocorre sem modificar oformulário.
Em outro cenário, um desenvolvedor está interessa-do em desenvolver uma aplicação de fluxo de trabalho que de-pende de dados a partir de um sistema externo herdado paraexecutar. Neste exemplo, o sistema externo somente propor-ciona uma interface de base de dados para acessar seus dadose não possui interfaces de serviço da rede. O desenvolvedordeseja modelar a troca de dados entre o fluxo de trabalho eos sistemas externos herdados. Cada vez que uma etapa dofluxo de trabalho é executada, a qual requer dados a partirdo sistema herdado, a etapa do fluxo de trabalho aguarda pe-la informação ser atualizada pelo sistema herdado. Para al-cançar isto, o desenvolvedor utiliza uma etapa do fluxo detrabalho ou blocó de construção chamado de atividade de da-dos e adiciona a mesma para a definição do fluxo de traba-lho. 0 desenvolvedor configura a fonte de dados associadacom este objeto para apontar para a fonte de dados de objeto.
Durante esta etapa de configuração, o desenvolve-dor define a biblioteca de tipo e o tipo (por exemplo, clas-se) para trocar dados entre o sistema externo e a instânciade fluxo de trabalho. Esta associação cria uma instância deobjeto do tipo selecionado dentro da definição do fluxo detrabalho durante a execução da instância de fluxo de traba-lho. Esta instância de objeto será manipulada pelo desen-volvedor para recuperar e enviar dados junto ao sistema le-gado, respectivamente. Na hora da execução, este objeto épassado e consultado pelo sistema externo via o código deinterpretação proporcionado pelo hospedeiro de fluxo de tra-balho. Neste exemplo, o hospedeiro de fluxo de trabalho fa-cilita a troca de dados entre o sistema externo herdado e ainstância de fluxo de trabalho sem introduzir quaisquer ti-pos novos.
Em um exemplo no qual o fluxo de trabalho modelaum processo de revisão de documento, uma interface para re-visar um documento (por exemplo, IDocumentReviewInterface) éapresentada abaixo.
public delegate void OnReviewStartedHandler (objecto);
public delegate void OnParticipantsAddedHandler(objecto);
public interface IDocumentReviewInterface{
event OnReviewStartedHandler OnReviewStarted;event OnParticipantsAddedHandler OnParticipantsAdded;
void ReviewCompleted (object o);}
Neste exemplo, o objeto "o" corresponde a uma ins-tância de um tipo que irá capturar uma lista uniforme de ar-gumentos tal como apresentado abaixo.public class DocumentReviewInfo{
public DocumentInfo documentlnfo
public Hashtable ReviewResults;
}
O tipo DocumentReviewInfo descreve o formato / es-quema dos dados sendo comunicados. Este tipo é criado peloautor do fluxo de trabalho e o desenvolvedor do hospedeirode fluxo de trabalho não precisa implementar mais nada nesteexemplo.
Os aspectos da invenção ocultam o mecanismo detransmissão de mensagens do autor do fluxo de trabalho porproporcionar uma interface padrão de serviço local com ati-vidades limitadas por dados que sabe como se comunicar com ainterface padrão. O autor do fluxo de trabalho descreve oesquema dos dados sendo trocados (por exemplo, converte alista uniforme de argumentos de um método de uma interfacede serviço local para uma definição de classe tal como naclasse DocumentReviewInfo descrita neste documento). Em umexemplo, a interface padrão de serviço local é chamada deIDataSourceService e é apresentada abaixo. A IDataSource-Service apresentada abaixo é meramente ilustrativa, e em al-gumas modalidades, a IDataSourceService não é exposta. Aoinvés disso, os métodos RaiseDataChanged e RaiseDataQueriedda DataSourceService são expostos.
public delegate void DataChangedEventHandler(IDictionary < string, object > properties, object proxy);public delegate void DataQueriedEventHandler(IDictionary < string, object > properties, object proxy);
public delegate void DataDetchedEventHandler(IDictionary < string, object > properties, object proxy);
[DataExchangeService]
[CorrelationProvider (type off (CorrelationToken-Provider))]
public interface IDataSourceService{
void UploadData (DataSource ds, object proxy);
void FetchData (DataSource ds, object proxy);event DataFetchedEventHandler DataFetched;event DataChangedEventHandler DataChanged;event DataQueriedEventHandler DataQueried;
void PostDataQueryReply (DataSource ds, object
proxy);
}
Uma implementação ilustrativa chamada DataSource-Service é apresentada abaixo.
public class DataSourceService : IDataSourceSer-
vice
{
#region IDataSourceService Membersvoid IDataSourceService.UploadData (DataSource
ds, object proxy) {}
void IDataSourceService.FetchData (DataSourceds, object proxy) {}event DataFetchedEventEventHandler
IDataSourceService.DataFetched
{ add { } remove { } }
event Data ChangedEventHandler IDataSourceSer-vice .DataChanged
{ add { } remove { } }event Data QueriedEventHandler IDataSource-Service .DataQueried
{ add { } remove { } }
void IDataSourceService.PostDataQueryReply
(DataSource ds, object proxy) {} # endregion
public void RaiseDataChanged (IDictionary <string, object > properties, object msg) {}
public object RaiseDataQueried (IDicionary <
string, object > properties, object msg) {}}
A ordem de execução ou de performance dos métodosilustrados e descritos neste documento não é essencial, anão ser que de outro modo especificado. Ou seja, os elemen-tos dos métodos podem ser executados em qualquer ordem, anão ser que de outro modo especificado, e os métodos podemincluir mais ou menos elementos do que estes revelados nestedocumento. Por exemplo, é contemplado que executar ou efe-tuar um elemento particular antes, simultaneamente, ou apósoutro elemento, está dentro do escopo das modalidades da in-venção.
Quando introduzindo os elementos das modalidadesda invenção, os artigos "um", "uma", "o" e "dito" são pre-tendidos para significar que existem um ou mais elementos.Os termos "compreendendo", "incluindo" e "possuindo" sãopretendidos para serem inclusivos e significam que podem e-xistir elementos adicionais diferentes dos elementos listados.
À medida que várias alterações poderiam ser feitasnas construções, produtos, e métodos acima, sem se afastardo escopo das modalidades da invenção, é pretendido que todoo tema contido na descrição acima e apresentado nos desenhosacompanhantes devam ser interpretados como ilustrativos enão em um sentido de limitação.

Claims (20)

1. Método para implementar transmissão de mensa-gens agnóstica ao protocolo entre um hospedeiro de fluxo detrabalho e uma instância executante do fluxo de trabalho, odito método sendo CARACTERIZADO por compreender:receber, a partir de um usuário, uma seleção deuma atividade predefinida de dados do fluxo de trabalho paramodelar uma operação -de transmissão de mensagens entre umfluxo de trabalho e um hospedeiro de fluxo de trabalho;especificar uma definição de fonte de dados, a di-ta definição de fonte de dados especificada definindo um ob-jeto de dados para armazenar dados de mensagem a serem comu-nicados entre uma instância executante do fluxo de trabalhoe o hospedeiro de fluxo de trabalho, o dito hospedeiro defluxo de trabalho instanciando a instância de fluxo de trabalho;vincular a atividade de dados selecionada com adefinição de fonte de dados especificada; ereferenciar a atividade limitada por dados comouma dentre várias atividades no fluxo de trabalho para im-plementar a transmissão de mensagens entre o fluxo de traba-lho e o hospedeiro de fluxo de trabalho.
2. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que especificar a definição dafonte de dados compreende receber, a partir do usuário, umidentificador correspondendo à definição de fonte de dados.
3. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que receber a seleção da ativida-de de dados predefinida do fluxo de trabalho compreende re-ceber a seleção via uma interface de programação de aplicação.
4. Método, de acordo com a reivindicação 1,CARACTERIZADO por adicionalmente compreender, durante a exe-cução da instância de fluxo de trabalho:gerar objetos de dados por definição especificadade fonte de dados;enviar o objeto de dados gerado para o hospedeirode fluxo de trabalho, onde o hospedeiro de fluxo de trabalhopreenche o objeto de dados com os dados da mensagem;receber o objeto de dados preenchido a partir dohospedeiro de fluxo de trabalho; eprocessar os dados da mensagem no objeto de dadospreenchido recebido.
5. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que os dados da mensagem corres-pondem a uma requisição por dados, e por adicionalmente com-preender preencher o objeto de dados com os dados requisita-dos e enviar o objeto de dados preenchido para o hospedeirode fluxo de trabalho.
6. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a atividade de dados predefi-nida é agnóstica aos protocolos de transmissão de mensagem.
7. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que um ou mais meios legíveis porcomputador possuem instruções executáveis por computador pa-ra executar o método de acordo com a reivindicação 1.
8. Sistema implementado por computador para trans-missão de mensagens agnóstica ao protocolo em um ambiente defluxo de trabalho, o dito sistema implementado por computa-dor sendo CARACTERIZADO por compreender:um hospedeiro de fluxo de trabalho para instanciarum fluxo de trabalho para criar uma instância de fluxo detrabalho para execução;uma ou mais atividades de dados predefinidas parauso no fluxo de trabalho, cada uma das atividades de dadospredefinidas modelando uma operação de transmissão de mensa-gens entre a instância de fluxo de trabalho e o hospedeirode fluxo de trabalho, cada uma das atividades de dados pre-definidas gerando um objeto de dados durante a execução dainstância de fluxo de trabalho para armazenar dados da men-sagem, o dito objeto de dados sendo comunicado a partir dainstância de fluxo de trabalho para o hospedeiro de fluxo detrabalho;um serviço de fonte de dados associado com o hos-pedeiro de fluxo de trabalho para preencher o objeto de da-dos com os dados da mensagem e comunicar o objeto de dadospreenchido para a instância de fluxo de trabalho para pro-cessamento.
9. Sistema implementado por computador, de acordocom a reivindicação 8, CARACTERIZADO por adicionalmente com-preender uma definição de fonte de dados .para definir umaestrutura de dados associada com o objeto de dados.
10. Sistema implementado por computador, de acordocom a reivindicação 9, CARACTERIZADO por adicionalmente com-preender um meio legível por computador possuindo armazenadano mesmo a estrutura de dados representando o objeto dados,a estrutura de dados compreendendo:um campo de tipo de protocolo para armazenar umvalor identificando um protocolo para uso na comunicação en-tre a instância executante do fluxo de trabalho e o hospe-deiro de fluxo de trabalho;um campo de carga útil para armazenar os dados damensagem; eum campo de fonte para armazenar um valor identi-ficando a definição da fonte de dados para o- objeto de dados.
11. Sistema implementado por computador, de acordocom a reivindicação 8, CARACTERIZADO pelo fato de que as a-tividades de dados predefinidas incluem uma ou mais dentreas seguintes: uma atividade de dados de atualização paracomunicar os dados a partir da instância de execução de flu-xo de trabalho para o hospedeiro de fluxo de trabalho, umaatividade de seleção de dados para permitir que a instânciaexecutante do fluxo de trabalho consulte dados a partir dohospedeiro de fluxo de trabalho, uma atividade de aguardarpor dados para permitir a instância executante do fluxo detrabalho aguardar para receber os dados a partir do hospe-deiro de fluxo de trabalho, e uma atividade de dados de es-pera por consulta para permitir a instância executante dofluxo de trabalho aguardar para receber os dados correspon-dendo a uma requisição de consulta a partir do hospedeiro defluxo de trabalho.
12. Sistema implementado por computador, de acordocom a reivindicação 8, CARACTERIZJADO por adicionalmente com-preender o dispositivo para implementar a transmissão demensagens agnóstica ao protocolo no fluxo de trabalho.
13. Sistema implementado por computador, de acordocom a reivindicação 8, CARACTERIZADO por adicionalmente com-preender vários manipuladores de dados acessíveis pelo ser-viço de fonte de dados para processar o objeto de dados ge-rado, e onde o serviço de fonte de dados executa o seguinte;receber o objeto de dados gerado a partir da ins-tância executante do fluxo de trabalho, o dito objeto de da-dos gerado possuindo uma carga útil associada com o mesmo;invocar um dentre os vários manipuladores de dadospara processar o objeto de dados recebido;receber dados a partir de uma fonte de dados;preencher a carga útil com os dados recebidos comoos dados da mensagem para criar um objeto de dados publicado;enviar o objeto de dados publicado para a instân-cia executante do fluxo de trabalho.
14. Sistema implementado por computador, de acordocom a reivindicação 8, CARACTERIZADO por adicionalmente com-preender uma interface de programação de aplicação permitin-do a um usuário criar o fluxo de trabalho.
15. Um ou mais meios legíveis por computador pos-suindo componentes executáveis por computador para transmis-são de mensagem entre uma instância de fluxo de trabalho eum hospedeiro de fluxo de trabalho, CARACTERIZADO pelo fatodos ditos componentes compreenderem:um componente de interface com o usuário para re-ceber, a partir de um usuário, uma seleção de uma atividadede dados do fluxo de trabalho predefinida para modelar umaoperação de transmissão de mensagens entre uma instância defluxo de trabalho e um hospedeiro de fluxo de trabalho;um componente de propriedade para especificar umadefinição de fonte de dados, a dita definição de fonte dedados especificada definindo um objeto de dados para armaze-nar dados da mensagem para serem comunicados entre a instân-cia de fluxo de trabalho e o hospedeiro de fluxo de traba-lho, o dito hospedeiro de fluxo de trabalho instanciando ainstância de fluxo de trabalho, o dito componente de propri-edade vinculando a atividade de dados selecionada, via ocomponente de interface com o usuário, com a definição defonte de dados especificada, o dito componente de interfacecom o usuário adicionalmente fazendo referência à atividadelimitada por dados como uma dentre várias atividades no flu-xo de trabalho para implementar a transmissão de mensagensentre a instância de fluxo de trabalho e o hospedeiro defluxo de trabalho;um componente de instância para:gerar, durante a execução da instância de fluxo detrabalho, o objeto de dados por definição de fonte de dadosespecificada;enviar o objeto de dados gerado para o hospedeirode fluxo de trabalho, onde o hospedeiro de fluxo de trabalhopreenche o objeto de dados com os dados da mensagem;receber o objeto de dados preenchido a partir dohospedeiro de fluxo de trabalho; eprocessar os dados da mensagem no objeto de dadospreenchido recebido.
16. Meio legível por computador, de acordo com areivindicação 15, CARACTERIZADO pelo fato de que o componen-te de instância adicionalmente preenche o objeto de dadoscom dados e envia o objeto de dados preenchido para o hospe-deiro de fluxo de trabalho para atualizar um formulário.
17. Meio legível por computador, de acordo com areivindicação 15, CARACTERIZADO pelo fato de que a definiçãode fonte de dados define um esquema para os dados da mensagem.
18. Meio legível por computador, de acordo com areivindicação 15, CARACTERIZADO pelo fato de que o componen-te de instância adicionalmente exibe os dados da mensagempara um usuário.
19. Meio legível por computador, de acordo com areivindicação 15, CARACTERIZADO por adicionalmente compreen-der um componente hospedeiro para receber o objeto de dadosgerado a partir do componente de instância, preenchendo oobjeto de dados recebido com os dados das mensagens e envi-ando o objeto de dados preenchido para a instância de fluxode trabalho.
20. Meio legível por computador, de acordo com areivindicação 15, CARACTERIZADO pelo fato de que a definiçãode fonte de dados identifica um protocolo para comunicaçãoentre a instância de fluxo de dados e o hospedeiro de fluxode dados.
BRPI0612281-7A 2005-06-27 2006-05-05 fluxos de trabalho centrados em dados BRPI0612281A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/167.472 2005-06-27
US11/167,472 US7363628B2 (en) 2005-06-27 2005-06-27 Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
PCT/US2006/017766 WO2007001640A2 (en) 2005-06-27 2006-05-05 Data centric workflows

Publications (1)

Publication Number Publication Date
BRPI0612281A2 true BRPI0612281A2 (pt) 2010-11-03

Family

ID=37568786

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0612281-7A BRPI0612281A2 (pt) 2005-06-27 2006-05-05 fluxos de trabalho centrados em dados

Country Status (9)

Country Link
US (1) US7363628B2 (pt)
EP (1) EP1896939A4 (pt)
JP (1) JP5026415B2 (pt)
KR (1) KR20080017351A (pt)
CN (1) CN101223505B (pt)
BR (1) BRPI0612281A2 (pt)
MX (1) MX2007015887A (pt)
RU (1) RU2419837C2 (pt)
WO (1) WO2007001640A2 (pt)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441249B2 (en) * 2003-11-13 2008-10-21 International Business Machines Corporation Activity monitoring without accessing a process object
US7509519B2 (en) * 2005-11-29 2009-03-24 International Business Machines Corporation Recovery and debugging of failed network-accessible service construction
US8849691B2 (en) * 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
KR101501174B1 (ko) * 2007-09-28 2015-03-19 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US8131663B1 (en) 2007-10-12 2012-03-06 Bonamy Taylor Apparatus for generating software logic rules by flowchart design
KR101390177B1 (ko) * 2008-04-01 2014-05-26 삼성전자주식회사 워크폼 관리 방법, 워크폼 관리를 위한 호스트 장치,화상형성장치의 워크폼 관리방법 및 워크폼 관리 시스템
US8478715B2 (en) * 2008-05-16 2013-07-02 Microsoft Corporation Extending OLAP navigation employing analytic workflows
JP5393059B2 (ja) * 2008-06-04 2014-01-22 キヤノン株式会社 ワークフロー処理装置及びワークフロー処理方法
KR101437453B1 (ko) * 2008-08-29 2014-11-03 삼성전자주식회사 워크폼 관리장치, 워크폼 관리방법, 화상형성장치 및 워크폼 관리 시스템
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8413150B2 (en) * 2009-07-31 2013-04-02 Sap Ag Systems and methods for data aware workflow change management
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
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
US9524323B2 (en) 2012-09-05 2016-12-20 Microsoft Technology Licensing, Llc Delegation of expression tree evaluation
CN105765577A (zh) * 2014-09-29 2016-07-13 微软技术许可有限责任公司 可定制的数据服务
US10592082B2 (en) * 2015-11-24 2020-03-17 Microsoft Technology Licensing, Llc Parallel front end application and workflow development
US10223163B2 (en) * 2016-07-14 2019-03-05 Microsoft Technology Licensing, Llc Workflow-based object destruction
CN107102978B (zh) * 2017-05-24 2020-11-24 北京星选科技有限公司 数据回填方法、装置及移动终端
CN110297625B (zh) * 2018-03-22 2023-08-08 阿里巴巴集团控股有限公司 应用的处理方法及装置
US10666718B2 (en) * 2018-06-07 2020-05-26 Spatika Technologies Inc. Dynamic data transport between enterprise and business computing systems
US11216424B2 (en) 2018-06-07 2022-01-04 Spatika Technologies Inc. Dynamically rendering an application programming interface for internet of things applications
CN111309315B (zh) * 2018-12-12 2024-03-29 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111382729A (zh) * 2018-12-27 2020-07-07 北京图森智途科技有限公司 一种从数据源采集数据的方法、主机和汽车

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
US5774661A (en) * 1995-04-18 1998-06-30 Network Imaging Corporation Rule engine interface for a visual workflow builder
EP0854431A3 (en) * 1997-01-20 2001-03-07 International Business Machines Corporation Events as activities in process models of workflow management systems
US6225998B1 (en) * 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6567783B1 (en) * 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
WO2000054202A2 (en) 1999-03-11 2000-09-14 Paysys International, Inc. Methods and systems for developing applications and for interfacing with users
GB2350911B (en) * 1999-06-10 2004-06-09 Ibm Form data files generator
US6768986B2 (en) * 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
US6845507B2 (en) * 2000-05-18 2005-01-18 Ss & C Technologies, Inc. Method and system for straight through processing
JP2002041744A (ja) * 2000-07-27 2002-02-08 Ranseputo Kk ワークフロー処理方法及びワークフロー処理システム
US20020032692A1 (en) * 2000-09-08 2002-03-14 Atsuhito Suzuki Workflow management method and workflow management system of controlling workflow process
WO2002029517A2 (en) * 2000-10-02 2002-04-11 International Projects Consultancy Services, Inc. Automated loan processing system and method
US6604104B1 (en) * 2000-10-02 2003-08-05 Sbi Scient Inc. System and process for managing data within an operational data store
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US6757689B2 (en) * 2001-02-02 2004-06-29 Hewlett-Packard Development Company, L.P. Enabling a zero latency enterprise
US7240324B2 (en) * 2001-02-28 2007-07-03 Hewlett-Packard Development Company, L.P. Event-based scheduling method and system for workflow activities
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030097457A1 (en) * 2001-08-08 2003-05-22 Amitabh Saran Scalable multiprocessor architecture for business computer platforms
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US20030177046A1 (en) * 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US7441197B2 (en) * 2002-02-26 2008-10-21 Global Asset Protection Services, Llc Risk management information interface system and associated methods
DE10215653A1 (de) 2002-04-09 2003-11-06 Bernhard Voslamber Verfahren und Anordung zur automatischen Erzeugung von Programmcodeabschnitten sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP1502218A4 (en) * 2002-04-15 2005-08-17 Invensys Sys Inc METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION
US7272816B2 (en) * 2002-07-31 2007-09-18 Sap Aktiengesellschaft Transformations between private and shared workflows
US7437703B2 (en) * 2002-10-25 2008-10-14 Sap Ag Enterprise multi-agent software system with services able to call multiple engines and scheduling capability
US20040148213A1 (en) * 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow constraints
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
US20050066002A1 (en) * 2003-07-31 2005-03-24 Arnold Teres Workflow compatible healthcare information message communication system
CA2442796A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Binding a workflow engine to a data model
US7093207B1 (en) * 2003-11-17 2006-08-15 Kla-Tencor Technologies Corporation Data analysis flow engine
US7650344B2 (en) * 2004-02-09 2010-01-19 Coremetrics, Inc. System and method of managing software product-line customizations
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US7493594B2 (en) * 2005-03-14 2009-02-17 Research In Motion System and method for designing component based applications
US20060241954A1 (en) * 2005-04-22 2006-10-26 International Business Machines Corporation Method and system for adaptive action management for business solutions
US7983943B2 (en) * 2005-05-27 2011-07-19 Xerox Corporation Method and system for workflow process node synchronization

Also Published As

Publication number Publication date
EP1896939A2 (en) 2008-03-12
CN101223505B (zh) 2011-09-07
US7363628B2 (en) 2008-04-22
MX2007015887A (es) 2008-03-04
RU2419837C2 (ru) 2011-05-27
US20060294048A1 (en) 2006-12-28
RU2007149277A (ru) 2009-07-10
WO2007001640A2 (en) 2007-01-04
KR20080017351A (ko) 2008-02-26
WO2007001640A3 (en) 2007-11-22
CN101223505A (zh) 2008-07-16
EP1896939A4 (en) 2010-09-22
JP2008544400A (ja) 2008-12-04
JP5026415B2 (ja) 2012-09-12

Similar Documents

Publication Publication Date Title
BRPI0612281A2 (pt) fluxos de trabalho centrados em dados
US7206827B2 (en) Dynamic administration framework for server systems
KR101098603B1 (ko) 원격 경계를 가로질러 컴퓨터 판독가능한 객체들을전달하기 위한 시스템 및 방법
US8073935B2 (en) Pluggable semantic verification and validation of configuration data
US7412497B2 (en) Generation of Administration framework for server systems
US7278132B2 (en) Mechanism for automatic synchronization of scripting variables
KR101213843B1 (ko) 원활한 객체 비교 시스템 및 방법
US20090254881A1 (en) Code generation techniques for administrative tasks
CN111801694B (zh) 机器学习存储库服务
US7680800B2 (en) Algorithm to marshal/unmarshal XML schema annotations to SDO dataobjects
US20040019669A1 (en) Event notification in an administration framework for server systems
US20090164500A1 (en) System for providing a configurable adaptor for mediating systems
US7673283B2 (en) Method and system for improved modeling language profile
US8458672B2 (en) Facilitating the utilization of complex data objects
US9448812B2 (en) Algorithm for updating XML schema registry using schema pass by value with message
US8291432B2 (en) Providing invocation context to IMS service provider applications
EP4060498A1 (en) Remote code execution
US8245189B2 (en) Generically managing the configuration of heterogeneous software artifacts
US8620856B2 (en) Method and system for providing a data exchange service provider interface
JPH08287024A (ja) 分散オブジェクト登録装置

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]
B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]