Changes between Version 9 and Version 10 of WF/IntroducaoaoGalaxia
- Timestamp:
- 03/11/08 16:24:47 (16 years ago)
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)]] 3 3 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 4 Este 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 6 Alguns conceitos empregados pelo motor de workflow: 6 7 7 8 '''Processo''' 8 9 9 10 11 10 Um 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 14 11 15 12 '''Atividade''' 16 13 17 18 19 14 Uma 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 22 15 23 16 '''Transição''' 24 17 25 26 27 18 As transições definem qual atividade, ou atividades, vem antes que uma atividade seja executada e depois que for completada. 28 29 30 19 31 20 '''Perfil''' 32 21 33 34 35 22 Perfis 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 38 23 39 24 '''Instância''' 40 25 41 42 43 26 Uma 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 46 27 47 28 '''Ítem de trabalho''' 48 29 49 50 51 30 Quando uma atividade é completada, um ítem de trabalho é adicionado à instância. Os ítens de trabalho representam atividades realizadas. 52 53 54 31 55 32 == Tipos de Atividades == 56 33 57 58 59 34 Existem sete tipos de atividades que podem ser utilizadas para desenhar um processo: 60 61 35 62 36 Start … … 74 48 Standalone 75 49 76 77 78 50 '''Start''' 79 80 81 51 82 52 Atividades 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. 83 53 84 85 86 54 '''End''' 87 88 89 55 90 56 A 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. 91 57 92 93 94 58 Regras: 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. 95 59 96 97 98 '''Normal activities''' 99 100 60 '''Normal''' 101 61 102 62 Atividades 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. 103 63 104 105 106 '''Switch activities''' 107 108 64 '''Switch''' 109 65 110 66 Uma 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. 111 67 112 113 114 '''Split activities''' 115 116 68 '''Split''' 117 69 118 70 Algumas 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. 119 71 120 121 122 '''Join activities''' 123 124 72 '''Join''' 125 73 126 74 Uma 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. 127 75 128 129 130 '''Standalone activities''' 131 132 76 '''Standalone''' 133 77 134 78 Atividades 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. 135 79 136 137 138 80 == Propriedades das atividades: Interatividade e Autoroteamento == 139 140 141 81 142 82 '''Interatividade''' 143 83 144 145 146 84 No 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 149 85 150 86 '''Autoroteamento''' 151 87 152 153 154 88 Quando 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. 155 89 156 157 158 90 Algumas regras para a representação gráfica de fluxos de processos: 159 160 161 91 162 92 Setas de transição saindo de uma atividade de roteamento automático são vermelhas … … 168 98 Atividades não interativas tem a borda preta 169 99 170 171 172 100 [[Image(htdocs:wf/images/intro_galaxia_routeinter.png)]] 173 174 175 101 176 102 '''Processo exemplo''' 177 103 178 179 180 104 A 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 183 105 184 106 [[Image(htdocs:wf/images/intro_galaxia_cd_loans.png)]] 185 107 186 187 188 == Módulos ==189 190 191 192 Galaxia define três módulos:193 194 195 196 * Process manager197 198 * Process monitor199 200 * User interafce201 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 processos213 214 Renomear e deletar atividades215 216 Definir as atividades dos processos217 218 Ver um gráfico das atividades do processo219 220 Checar se o processo é válido221 222 Ativar/desativar processos223 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 atividades227 228 Mapear perfis a usuários229 230 Salvar processos (processos são salvos usando XML)231 232 Carregar processos a partir de arquivos XML233 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 atividade243 244 Listar instâncias ativas e exceções245 246 Percorrer a lista de instâncias e modificar suas propriedades247 248 Enviar uma instância para alguma atividade249 250 Assinalar ou reassinalar uma instância para um usuário251 252 Abortar instâncias253 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 274 108 == Créditos == 275 276 277 109 278 110 Galaxia is based on [http://www.openflow.it OpenFlow] … … 282 114 This 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. 283 115 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. 116 Algumas alterações foram feitas no texto original para adaptá-lo às modificações realizadas pela Celepar no módulo de Workflow do Expresso.