Changes between Initial Version and Version 1 of WF/IntroducaoaoGalaxia


Ignore:
Timestamp:
07/24/07 15:01:41 (17 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/IntroducaoaoGalaxia

    v1 v1  
     1Galaxia é 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: 
     2  
     3 
     4'''Processo''' 
     5 
     6 
     7 
     8Um 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. 
     9 
     10 
     11 
     12'''Atividade''' 
     13 
     14 
     15 
     16Uma 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. 
     17 
     18 
     19 
     20'''Transição''' 
     21 
     22 
     23 
     24As transições definem qual atividade, ou atividades, vem antes que uma atividade seja executada e depois que for completada. 
     25 
     26 
     27 
     28'''Perfil''' 
     29 
     30 
     31 
     32Perfis definem quem pode executar uma atividade. Os perfis são criados a nível de processo. Aos perfis associamos usários e grupos. 
     33 
     34 
     35 
     36'''Instância''' 
     37 
     38 
     39 
     40Uma 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. 
     41 
     42 
     43 
     44'''Ítem de trabalho''' 
     45 
     46 
     47 
     48Quando uma atividade é completada, um ítem de trabalho é adicionado à instância. Os ítens de trabalho representam atividades realizadas. 
     49 
     50 
     51 
     52== Tipos de Atividades == 
     53 
     54 
     55 
     56Existem sete tipos de atividades que podem ser utilizadas para desenhar um processo: 
     57 
     58 
     59 
     60Start 
     61 
     62End 
     63 
     64Activity 
     65 
     66Switch 
     67 
     68Split 
     69 
     70Join 
     71 
     72Standalone 
     73 
     74 
     75 
     76'''Start''' 
     77 
     78 
     79 
     80Atividades 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. 
     81 
     82 
     83 
     84'''End''' 
     85 
     86 
     87 
     88A 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. 
     89 
     90 
     91 
     92Regras: 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. 
     93 
     94 
     95 
     96'''Normal activities''' 
     97 
     98 
     99 
     100Atividades 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. 
     101 
     102 
     103 
     104'''Switch activities''' 
     105 
     106 
     107 
     108Uma 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. 
     109 
     110 
     111 
     112'''Split activities''' 
     113 
     114 
     115 
     116Algumas 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. 
     117 
     118 
     119 
     120'''Join activities''' 
     121 
     122 
     123 
     124Uma 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. 
     125 
     126 
     127 
     128'''Standalone activities''' 
     129 
     130 
     131 
     132Atividades 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. 
     133 
     134 
     135 
     136== Propriedades das atividades: Interatividade e Autoroteamento == 
     137 
     138 
     139 
     140'''Interatividade''' 
     141 
     142 
     143 
     144No 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. 
     145 
     146 
     147 
     148'''Autoroteamento''' 
     149 
     150 
     151 
     152Quando 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. 
     153 
     154 
     155 
     156Algumas regras para a representação gráfica de fluxos de processos: 
     157 
     158 
     159 
     160Setas de transição saindo de uma atividade de roteamento automático são vermelhas 
     161 
     162Setas de transição saindo de uma atividade de roteamento não automático são pretas 
     163 
     164Atividades interativas tem a borda azul 
     165 
     166Atividades não interativas tem a borda preta 
     167 
     168 
     169 
     170[[Image(http://doc.workflow.celepar.parana/wiki/intro_galaxia_routeinter.png)]] 
     171 
     172 
     173 
     174'''Processo exemplo''' 
     175 
     176 
     177 
     178A 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. 
     179 
     180 
     181 
     182[[Image(http://doc.workflow.celepar.parana/wiki/intro_galaxia_cd_loans.png)]] 
     183 
     184 
     185 
     186== Módulos == 
     187 
     188 
     189 
     190Galaxia define três módulos: 
     191 
     192 
     193 
     194Process manager 
     195 
     196Process monitor 
     197 
     198User interafce 
     199 
     200 
     201 
     202'''Process manager''' 
     203 
     204 
     205 
     206O 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: 
     207 
     208 
     209 
     210Criar processos e versões de processos 
     211 
     212Renomear e deletar atividades 
     213 
     214Definir as atividades dos processos 
     215 
     216Ver um gráfico das atividades do processo 
     217 
     218Checar se o processo é válido 
     219 
     220Ativar/desativar processos 
     221 
     222Editar o código fonte das atividades (php) e templates (atividades interativas) 
     223 
     224Definir perfis e definir quais perfis tem permissão para executar quais atividades 
     225 
     226Mapear perfis a usuários 
     227 
     228Salvar processos (processos são salvos usando XML) 
     229 
     230Carregar processos a partir de arquivos XML 
     231 
     232 
     233 
     234'''Process monitor''' 
     235 
     236 
     237 
     238O monitor de processos é usado para controlar a execução dos processos. A lista abaixo mostras algumas funcionalidades da API do monitor de processos: 
     239 
     240Listar processos, atividades e o número de instâncias por atividade 
     241 
     242Listar instâncias ativas e exceções 
     243 
     244Percorrer a lista de instâncias e modificar suas propriedades 
     245 
     246Enviar uma instância para alguma atividade 
     247 
     248Assinalar ou reassinalar uma instância para um usuário 
     249 
     250Abortar instâncias 
     251 
     252Ver estatísticas sobre os processos completados, tempo de execução, e tempo por atividade. 
     253 
     254 
     255 
     256'''User interface''' 
     257 
     258 
     259 
     260A 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. 
     261 
     262 
     263 
     264== Resumo == 
     265 
     266 
     267 
     268Este 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. 
     269 
     270 
     271 
     272== Créditos == 
     273 
     274 
     275 
     276Galaxia is based on [http://www.openflow.it OpenFlow] 
     277 
     278Marc Laporte was the first member of the Tiki team to suggest adding a Workflow engine to [http://tikiwiki.org Tiki]. 
     279 
     280This 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. 
     281 
     282 
     283 
     284Algumas alterações foram feitas no texto original para adaptá-lo às modificações realizadas pela Celepar no módulo de Workflow do Expresso.