Changes between Version 9 and Version 10 of WF/IntroducaoaoGalaxia


Ignore:
Timestamp:
03/11/08 16:24:47 (16 years ago)
Author:
viani
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/IntroducaoaoGalaxia

    v9 v10  
    1 = Introdução ao Galáxia = 
    2 [[TOC(heading=Workflow,depth=1,WF/Changelog,WF/Documentacao,WF/Instalacao,WF/Links,WF/Propostas)]] 
     1= Conceitos Básicos = 
     2[[WikiInclude(WF/tableofcontents)]] 
    33 
    4 Galaxia é um workflow baseado em atividades. Os processos de workflow são implementados como um conjunto de atividades que devem ser completadas para atingir um resultado. As atividades do Galaxia são representadas por scripts PHP. São três os principais módulos do Galaxia: "administração de processos", "controle de processos" e "Interface do usuário". Segue uma descrição conceitual do Galaxia: 
    5   
     4Este documento é uma adaptação do original sobre o motor de workflow Galaxia. Veja os créditos sobre este documento ao final desta página. 
     5 
     6Alguns conceitos empregados pelo motor de workflow: 
    67 
    78'''Processo''' 
    89 
    9  
    10  
    1110Um processo é definido como um conjunto de atividades que devem ser executadas para atingir um objetivo. Um processo no Galaxia equivale a um processo de negócio da empresa. As atividades do processo são conectadas entre si através de transições, definindo o que deve ser feito quando um atividade for completada. 
    12  
    13  
    1411 
    1512'''Atividade''' 
    1613 
    17  
    18  
    1914Uma atividade é algo que deve ser feito como parte de um processo. No Galaxia as atividades são mapeadas a scripts PHP (páginas), de modo que uma atividade pode fazer qualquer coisa possível de ser feita com PHP. 
    20  
    21  
    2215 
    2316'''Transição''' 
    2417 
    25  
    26  
    2718As transições definem qual atividade, ou atividades, vem antes que uma atividade seja executada e depois que for completada. 
    28  
    29  
    3019 
    3120'''Perfil''' 
    3221 
    33  
    34  
    3522Perfis definem quem pode executar uma atividade. Os perfis são criados a nível de processo. Aos perfis associamos usuários e grupos. 
    36  
    37  
    3823 
    3924'''Instância''' 
    4025 
    41  
    42  
    4326Uma instância é um processo sendo executado. Uma instância é criada quando um processo é iniciado. A instância passa pelas diversas atividades do processo até ele terminar. 
    44  
    45  
    4627 
    4728'''Ítem de trabalho''' 
    4829 
    49  
    50  
    5130Quando uma atividade é completada, um ítem de trabalho é adicionado à instância. Os ítens de trabalho representam atividades realizadas. 
    52  
    53  
    5431 
    5532== Tipos de Atividades == 
    5633 
    57  
    58  
    5934Existem sete tipos de atividades que podem ser utilizadas para desenhar um processo: 
    60  
    6135 
    6236  Start 
     
    7448  Standalone 
    7549 
    76  
    77  
    7850'''Start''' 
    79  
    80  
    8151 
    8252Atividades do tipo start são representadas por um círculo. Cada processo deve ter ao menos uma atividade start. A atividade start é a responsável por criar a instância do processo. É a única que pode ser executada sem que o processo esteja instanciado. Um processo pode ter mais de uma atividade start, mas isto não é muito comum. Nenhuma transição pode resultar como entrada de uma atividade start, e deve haver apenas uma transição de saída para a atividade start. 
    8353 
    84  
    85  
    8654'''End''' 
    87  
    88  
    8955 
    9056A atividade end representa o fim do processo. Quando uma instância chega à atividade end, o processo é considerado concluído. Processos podem ter apenas uma atividade end. Isto não significa que uma processo não possa terminar de diferentes maneiras, mas a atividade end é o ponto final de todas. A maneira como o processo finaliza, depende das atividades visitadas anteriormente. No Galaxia a atividade end é representada usando um círculo duplo. Uma atividade end pode ter diversas transições de entrada, mas somente uma transição de saída é permitida. 
    9157 
    92  
    93  
    9458Regras: um processo para ser válido, deve ter ao menos um atividade start e apenas uma atividade end. Deve existir ao menos um caminho que leve do início ao fim. 
    9559 
    96  
    97  
    98 '''Normal activities''' 
    99  
    100  
     60'''Normal''' 
    10161 
    10262Atividades normais não tem nenhum significado especial. Elas são usadas para representar coisas que devam ser executadas como parte do processo. Um retângulo é usado para representar estas atividades. Atividades do tipo normal podem receber diversas transições de entrada, mas apenas uma transição de saída. 
    10363 
    104  
    105  
    106 '''Switch activities''' 
    107  
    108  
     64'''Switch''' 
    10965 
    11066Uma atividade de decisão representa um ponto onde o processo se divide em outros fluxos. As instâncias que chegam a uma atividade de decisão são avaliadas e dependendo do resultado a instância é desviada para um fluxo ou outro. Assim, as atividades de decisão podem ter muitas transições de entrada e muitas transições de saída. Atividades de decisão são representadas por um diamante. 
    11167 
    112  
    113  
    114 '''Split activities''' 
    115  
    116  
     68'''Split''' 
    11769 
    11870Algumas vezes duas ou mais atividades em um processo podem ser realizadas em paralelo de forma independente. Uma atividade split é usada para fragmentar a instância em muitas atividades. É verdadeiro afirmar que uma instância pode estar em muitas atividades ao mesmo tempo. Atividades split representam subflows em um workflow. Uma atividade split pode receber diversas transições de entrada e pode ter diversas transições de saída. Atividades de split são representadas por um triângulo. 
    11971 
    120  
    121  
    122 '''Join activities''' 
    123  
    124  
     72'''Join''' 
    12573 
    12674Uma atividade join é usada para reagrupar instâncias que foram separadas por uma atividade split. Quando uma instância chega a uma atividade join, o motor verifica se a instância também está presente em alguma outra atividade. Se estiver, a instância deve aguardar, na atividade join até que todas as cópias da instânicia alcancem a atividade join. Quando todas as cópias da instância chegarem na atividade join, a instância será direcionada para a próxima atividade. As atividades join podem ter diversas transições de entrada (mais de uma é esperada) e podem ter apenas uma atividade de saída. Atividades join são representadas por um triângulo invertido. 
    12775 
    128  
    129  
    130 '''Standalone activities''' 
    131  
    132  
     76'''Standalone''' 
    13377 
    13478Atividades isoladas são representadas por hexagonos. Uma atividade isolada não é parte do fluxo normal do processo, e por isso não está relacionada à instâncias dos processos. Uma atividade isolada pode ser executada quantas vezes o usuários quiser. Estas atividades são ideias para processamento de dados relacionados ao processos, tabelas, adicionar ítens, remover ítens, etc. Muitos processos podem ser definidos como um conjuntos de tarefas isoladas, se não existir um relacionamento entre as atividades do processo. Outros processos consistem em um fluxo principal e um conjunto auxiliar de atividades isoladas. As atividades isoladas não podem ter transições de entrada e saída. 
    13579 
    136  
    137  
    13880== Propriedades das atividades: Interatividade e Autoroteamento == 
    139  
    140  
    14181 
    14282'''Interatividade''' 
    14383 
    144  
    145  
    14684No Galaxia, as atividades podem ser automáticas ou interativas. As atividades interativas são as atividades que requerem algum tipo de interação com o usuário. Estas atividades usualmente apresentam um formulário, solicitando o preenchimento de alguns campos. Após submeter a informação, a atividade é completada. As atividades automáticas, ao contrário, são executadas automaticamente pelo motor Galaxia, sem a interação do usuário. Frequentemente as atividades automáticas estão ocultas ao usuário. 
    147  
    148  
    14985 
    15086'''Autoroteamento''' 
    15187 
    152  
    153  
    15488Quando uma atividade é completada, o motor pode ou não automaticamente rotear a instância para próxima atividade no processo. Atividades com a propriedade "autorouting" marcada, irão rotear a instância para a próxima atividade do processo, quando a atividade for completada. Se a atividade não for "autorouting", o usuário deverá enviar a atividade, após ser completada, para permitir que o processo continue. Isto pode ser usado em atividades onde o usuário pode editar informação e revisar muitas vezes antes de decidir que a atividade está completa. 
    15589 
    156  
    157  
    15890Algumas regras para a representação gráfica de fluxos de processos: 
    159  
    160  
    16191 
    16292Setas de transição saindo de uma atividade de roteamento automático são vermelhas 
     
    16898Atividades não interativas tem a borda preta 
    16999 
    170  
    171  
    172100[[Image(htdocs:wf/images/intro_galaxia_routeinter.png)]] 
    173  
    174  
    175101 
    176102'''Processo exemplo''' 
    177103 
    178  
    179  
    180104A imagem abaixo mostra o gráfico de um processo. Este processo define requisições à biblioteca dos empregados. A atividade start (interativa) é onde o usuário informa o nome do livro e autor. Então o sistema deve verificar se o livro está disponível, na atividade "check book". Se o livro está disponível, o sistema envia o livro ao usuário, e a solicitação é aceita. Senão, a solicitação é rejeitada. As atividades automáticas "accepted" e "rejected" enviam um email para o usuário notificando-o do resultado da sua solicitação. A atividade isolada "view books" pode ser usada pelo usuário ou pelo sistema para pesquisar o catálogo. As atividades interativas estão marcadas com a borda azul. 
    181  
    182  
    183105 
    184106[[Image(htdocs:wf/images/intro_galaxia_cd_loans.png)]] 
    185107 
    186  
    187  
    188 == Módulos == 
    189  
    190  
    191  
    192 Galaxia define três módulos: 
    193  
    194  
    195  
    196  * Process manager 
    197  
    198  * Process monitor 
    199  
    200  * User interafce 
    201  
    202  
    203  
    204 '''Process manager''' 
    205  
    206  
    207  
    208 O gerenciador de processo é um módulo usado para criar/atualizar processos. Este módulo é normalmente usado pelo administrador ou pelos designers de processo. O gerenciador de processos cobre as seguintes funcionalidades: 
    209  
    210  
    211  
    212   Criar processos e versões de processos 
    213  
    214   Renomear e deletar atividades 
    215  
    216   Definir as atividades dos processos 
    217  
    218   Ver um gráfico das atividades do processo 
    219  
    220   Checar se o processo é válido 
    221  
    222   Ativar/desativar processos 
    223  
    224   Editar o código fonte das atividades (php) e templates (atividades interativas) 
    225  
    226   Definir perfis e definir quais perfis tem permissão para executar quais atividades 
    227  
    228   Mapear perfis a usuários 
    229  
    230   Salvar processos (processos são salvos usando XML) 
    231  
    232   Carregar processos a partir de arquivos XML 
    233  
    234  
    235  
    236 '''Process monitor''' 
    237  
    238  
    239  
    240 O monitor de processos é usado para controlar a execução dos processos. A lista abaixo mostras algumas funcionalidades da API do monitor de processos: 
    241  
    242   Listar processos, atividades e o número de instâncias por atividade 
    243  
    244   Listar instâncias ativas e exceções 
    245  
    246   Percorrer a lista de instâncias e modificar suas propriedades 
    247  
    248   Enviar uma instância para alguma atividade 
    249  
    250   Assinalar ou reassinalar uma instância para um usuário 
    251  
    252   Abortar instâncias 
    253  
    254   Ver estatísticas sobre os processos completados, tempo de execução, e tempo por atividade. 
    255  
    256  
    257  
    258 '''User interface''' 
    259  
    260  
    261  
    262 A interface do usuário é usuada pelos usuários para ver os processos que eles podem executar, ou as atividades que lhe estão atribuídas, aguardando a sua intervenção. Os usuários podem executar atividades, ver os resultados e algumas estatísticas sobre o trabalho atribuído a eles. 
    263  
    264  
    265  
    266 == Resumo == 
    267  
    268  
    269  
    270 Este documento apresenta uma introdução ao "Galaxia", um motor de workflow em PHP, que pode ser usado em qualquer projeto PHP e que é fornecido juntamente com os módulos do Tiki. Galaxia pode ser usado para criar novas funcionalidades em qualquer aplicação PHP, definindo processos, onde todas as atividades relacionadas à funcionalidade estão agrupadas. Se necessário, o Galaxia pode definir o fluxo das atividades de um processo, conceito de workflow. A flexibilidade e extensão do motor abrem muitas áreas novas e interessantes para qualquer projeto PHP que use o produto. 
    271  
    272  
    273  
    274108== Créditos == 
    275  
    276  
    277109 
    278110Galaxia is based on [http://www.openflow.it OpenFlow] 
     
    282114This wikified version was originally a copy/paste from the [http://prdownloads.sourceforge.net/tikiwiki/Galaxia_introduction.pdf?download PDF Galaxia introduction on SourceForge]. This document was originally produced by Garland Foster, Richard Moore and Eduardo Polidor, and edited by Georger Araujo to be included in workflow.tw.o. 
    283115 
    284  
    285  
    286 Algumas alterações foram feitas no texto original para adaptá-lo às modificações realizadas pela Celepar no módulo de Workflow do Expresso.  
     116Algumas alterações foram feitas no texto original para adaptá-lo às modificações realizadas pela Celepar no módulo de Workflow do Expresso.