# Projeto de workflow

Um Projeto de Workfow baseia-se em três conceitos de complexidades crescente, primeiramente temos o conceito do Sistema 3R´s, em um estagio intermediário o Modelo de Referencia da WfMC e finalizando temos o com o esquema de XML as entidades da XPDL

## Sistema de 3R's

'Elementos primários do sistema Workflow – os três R´s
Os três Rs Roles, Rules and Routes, traduzindo Papéis, Regras e Rotas(Caminhos), são considerados os elementos primários do Sistema Workflow, sendo assim um sistema de Workflow precisa ser montado sobre as definições de quem faz o quê, de que forma e quando, e quais os caminhos que levam e trazem os pacotes de dados e informações que irão compor. Essas definições têm como paradigma o planejamento intitulado 5QRC, ou seja, as respostas as seguintes perguntas por quê?, o quê?, quem?, quando?, qual lugar?, recursos? e como?.

### Papéis ou Roles

O detalhe mais importante no Workflow é “Quem faz o quê?”, como o papel de uma personagem em peça de teatro. Papel ou Role é o conjunto de características e habilidades necessárias para executar determinada tarefa ou tarefas pertencentes a uma atividade. O Papel ou Role sempre é o mesmo, as responsabilidades são sempre as mesmas, como um personagem existente naquela peça de teatro, o que muda são os atores, mas os papéis não. Assim, como no caso dos atores, cada participante do Workflow deve ser treinado cuidadosamente. Esse treinamento deve dar atenção especial ao aprendizado do papel que cada um vai desempenhar, as responsabilidades inerentes ao papel, bem como aos resultados esperados e que serão medidos. Existem dois tipos de Papel ou Role: usuário e função.

#### Papel Usuário

O papel usuário é pessoal e intransferível e serve para identificar todos os usuários que tenham acesso a um sistema Workflow. Quando o papel usuário deixar de existir por demissão, promoção ou outra ocorrência qualquer, deve ser desativado.

#### Papel Função

O papel função é o que a atividade deve desempenhar dentro da cadeia de valores. É obrigatória a definição de cada um dos papéis função existentes no fluxo de trabalho de forma particularizada. É necessário, também, definir um papel genérico e associá-lo a todos os usuários do sistema. Para o Workflow, o papel função desempenhado numa atividade tem uma série de atributos que devem ser definidos como forma de se construir as camadas necessárias ao fluxo de trabalho do processo. É primordial que o sistema Workflow deva permitir que um papel função possa ser alterado de papel usuário, sem alterar seus atributos de papel função. Seus atributos mínimos são: nome do Papel ou Role, Posição Organizacional, Nível Administrativo, Papel Supervisor e Direitos de Acesso.

##### Posição Organizacional

Deve descrever a localização do papel ou role dentro da empresa, que pode ser um grupo de trabalho, um departamento, um projeto ou até outra empresa

##### Nível Administrativo

Indica o nível em que o papel ou role está definido na organização. Isto permite criar um organograma dinâmico da estrutura do fluxo de trabalho

##### Papel Supervisor

É a definição de qual papel supervisiona o papel estudado

##### Os Direitos de Acesso

São um conjunto de atributos que definem com que tipo de permissão o papel pode acessar o Workflow. Papéis ou roles são sempre associados a outros elementos, mais, especificamente, aos caminhos e às regras.

### Regras ou Rules

As regras são elementos que definem de que forma os dados que trafegam no fluxo de trabalho devem ser processados, roteados e controlados pelo sistema Workflow. As regras definem, basicamente, quais informações devem transitar pelo fluxo de trabalho e sob quais condições. Cada documento enviado contém informações que serão usadas por quem as receber. Associadas ao documento, podem existir regras que especificam com clareza e exatidão a operação ou processamento do documento, quais as atividades que devem recebê-lo, quais as rotas a seguir e a quais cuidados especiais, se houver, o documento deve ser submetido. A garantia de que a implantação do sistema terá sucesso encontra-se no conhecimento e organização prévios das regras que sustentam o fluxo de informações no sistema Workflow. Quanto mais detalhada for a descrição das regras que suportam cada documento, mais seguro será seu processamento, diminuindo a chance para que um papel ou role qualquer comprometa a agregação de valores no produto ou serviço. Existe um tipo de dado num sistema de Workflow que, por suas características, se diferencia dos demais dados existentes num fluxo de trabalho. Esse dado leva o nome genérico de dado relevante. Um dado relevante, para Workflow, é toda e qualquer informação usada no fluxo de trabalho para avaliar condições e determinar qual a rota a ser seguida, qual processamento deve ser executado, e como um documento deve ser manuseado. Os componentes de uma regra, como início, tempo, execução e segurança são dados relevantes para qualquer sistema de Workflow.

### Rotas ou Caminhos

O terceiro R, rotas ou caminhos, para Workflow, é o controle de movimentação exercido sobre os documentos. Os comandos do elemento rota controlam como os documentos se movem de um ponto a outro, dentro do fluxo de trabalho. Este elemento é tão importante quanto os outros dois, papéis e regras, pois, entre outras funcionalidades, garante que o documento chegue ao destino sempre que uma instância ou caso seja iniciado no Workflow. Rota é o caminho lógico que, definido sob regras específicas, tem a função de transferir a informação dentro do processo, ligando as atividades associadas ao fluxo de trabalho. Existem quatro tipos de Rotas ou Caminhos e cada um desses tipos tem um propósito que não deve ser confundido como simples sofisticação da ação de transferência: · serial; · paralelo; · condicional; e · conclusão. O caminho serve para levar alguém, ou alguma coisa, de um lugar para outro. Às vezes, de um ponto a outro existem vários caminhos e nos decidimos por um deles sob determinadas condições. Para Workflow, essas condições, também, se aplicam e isso faz com que uma informação percorra um determinado caminho sob o controle de determinadas condições.

#### Caminho Serial

É o Caminho linear e direto entre os passos, não permitindo variações. Nesse tipo de caminho, cada atividade tem, apenas, uma atividade anterior e, apenas, uma atividade posterior. Além disso, cada atividade deve ser completada antes que o trabalho seja enviado a atividade seguinte.

#### Caminho Paralelo

Se dá quando um grupo de passos pode ocorrer ao mesmo tempo e tem o mesmo passo anterior e o mesmo passo seguinte. Esse caminho propicia a agilização do processo, pois permite caminhos independentes entre si, que podem ocorrer ao mesmo tempo e, logo após, serem reunidos num ponto, denominado Ponto de Encontro. Esse Ponto de Encontro deve, também, ter a função de armazenamento até que todos os passos paralelos sejam concretizados e, somente, após isso, ser enviado ao próximo passo.

#### Caminho Condicional

Ocorre quando múltiplas rotas podem ser usadas e a escolha é feita por meio de determinada condição. Esse tipo de rota é determinado dinamicamente por eventos que ocorrem no processo, à medida que as atividades são executadas.

#### Caminho de Conclusão

É um caminho que tem apenas um motivo específico. É o caminho que um objeto de informação ou um processo toma para concluir uma operação. Existem dois tipos de rotas de conclusão: · um tipo endereça a ação a n atividades; e · o outro endereça a ação a, apenas, uma atividade.

## Modelo de Referência da WfMC

WfMS -Workflow Management System é um sistema de Gerenciamento de Workflow responsável por gerenciar e executar completamente Workflows através da execução de software cuja ordem de atividades é dirigida por uma representação da lógica do Workflow no computador, proporcionando a automação de um processo de negócios, gerenciando a seqüência de atividades de trabalho e chamando os recursos humanos e/ou eletrônicos apropriados associados com os vários passos das atividades.

### O Padrão Definido pela WfMC (Workflow management Coalition)

As ferramentas de WfMS certificam-se de que as atividades ocorram numa seqüência própria e que os usuários sejam informados para que possam executar suas tarefas prevenindo as pessoas para não esquecerem coisas, fazendo uma notificação automática e imediatamente das atividades executadas. “No nível mais alto, todos sistemas WfMS podem ser caracterizados como suporte em três áreas funcionais: • funções de tempo de construção : preocupam-se com a definição , e possível modelagem do processo de Workflow e suas atividades constituintes; • funções de controle em tempo de execução: preocupam-se com gerenciamento de processos de Workflow em um ambiente operacional e sequenciamento de várias atividades para serem manuseadas como parte de cada processo; • interações em tempo de execução com usuários e ferramentas para processamento dos vários passos das atividades.”

#### Modelo de Referência da WfMC

O Modelo de referencia de workflow foi criado a partir da estrutura de uma aplicação genérica, identificando as interfaces que permitem aos produtos interagir aos mais diversos níveis. Como diversos produtos apresentam níveis de capacidade diferentes em cada modulo é necessário definir interfaces entre estes, de forma a que possa existir interoperabilidade entre produtos. A interface que envolva o Workflow Enactment Service designa-se por WAPI - Workflow API, e possui formatos de intercâmbio. Esta interface pode ser considerada como um conjunto de pontos por onde os serviços do sistema de workflow podem ser acessados. E que regulam as interações entre o software de Controle de workflow e os restantes componentes do sistema. Uma vez que como muitas das funções das diversas interfaces são comuns torna-se mais apropriado considerar a WAPI como uma interface de serviço unificada que suporta funções de gestão de workflow sobre 5 áreas funcionais.

#### Representação Serviços

A Representação Serviços disponibiliza um ambiente onde ocorre a inicialização e ativação de processos (onde os vários processos de workflow podem correr). Usando um ou mais motores de gestão de workflow (Workflow Management Engines), responsáveis por interpretar e ativar parte ou todo o processo, e a comunicação com recursos externos necessários a realização das várias atividades.
'Workflow Enactment Service' é um serviço de software que consiste em um ou mais motores de workflow com o objetivo de criar, gerir e executar instâncias de workflow. As diversas aplicações podem interagir com este serviço pela Workflow Application Programming Interface

#### Motor de Workflow

O Motor de Wokflow (Workflow Engine) é responsável por parte ou pelo total Controle do ambiente dentro de um Enactment Service. Sendo capaz de controlar a execução de um determinado conjunto de instâncias de processos ou sub-processos com um fim. Determinado por uma quantidade de objetos e seus atributos, que consegue interpretar de entre as definições do processo. Definição - Workflow Engine Um Serviço de software ou ”Motor”que disponibiliza o ambiente de execução para uma instância de workflow. Tipicamente este tipo de software disponibiliza primitivas para tratar de:
* Interpretação da definição do processo
* Controle de instâncias de processos - criação , ativação , suspensão , terminação , etc.
* Navegação entre as várias atividades do processo, que podem envolver operações seqüenciais ou paralelas, imposição de prazos, etc.
* Entrada e saída dos participantes
* Identificação de itens que requerem atenção do utilizador, e uma interface para a intervenção deste
* Manutenção dos dados relativos ao workflow, e encaminhamento destes entre os vários participantes
* Uma interface com capacidade de invocar aplicações externas, e passagem de dados importantes
* Ações de supervisão para Controle , administração e auditorias.

### Interface de Definição de processo

Esta interface permite uma ligação entre as ferramentas de definição de processos e os ambientes onde são executados (runtime workflow management). Chamadas API para aceder as definições de processo:
Estabelecimento de Sessões
* Estabelecer/cortar as ligações entre os vá rios componentes Operações de Definição de Workflow • Obtenção das listas de definição de processos de workflow • seleção /De-Selecção da definição de um determinado processo para obter uma handle de sessão para outras operações a nível de objetos (outros workflows, etc) • Leitura e escrita de objetos de definição de workflow de topo.
Operações sobre objetos de definição de Workflow
* Criar, remover e consultar objetos dentro de uma definição de workflow • Consultar, alterar, e remover atributos de atributos.
Meta-Modelo Básico
Para o Meta-Modelo Básico de definição de workflow, foram definidos vários componentes, com os mais variados atributos, que são enumerados em seguida:
Definição de Tipo de Workflow
* Nome do processo de workflow • Número de Versão • Condições de inicio e fim • Informação de Segurança , Auditoria e outro controle
Atividade
* Nome da atividade • Tipo de atividade • Pré e pós condições da atividade • Outro tipo de restrições de escalonamento
Condições de Transição
* Condições de fluxo ou de execução
Dados Relevantes de Workflow
* Nome e caminho para os dados • Tipos de Dados
Papel
* Nome e entidade Organizacional
Aplicação Invocada
* Tipo ou nome Genérico • Parâmetros de execução • Localização ou caminho de acesso

#### Interface Aplicação Cliente

Estas aplicações interagem diretamente com o utilizador quando é necessário algum tipo de intervenção por sua parte. Podendo ser distribuídas como parte do pacote de software de WfMS, ou escritas pelos utilizadores. A interface entre a aplicação cliente e o motor de workflow deve ser suficientemente flexível para permitir vá rios tipos de implementações uma vez que é dada a opção aos utilizadores de a modificarem. Em termos funcionais as funções da API subdividem-se em:
Estabelecimento de sessões
* Estabelecimento/corte de sessões (ligações) entre os sistemas
Operações de definição de Workflow
* Obtenção /Consulta (que pode ou não ter critérios de seleção ) de nomes ou atributos
Controle de Processo
* criar/iniciar/terminar uma determinada instância de um processo • suspender/resumir uma instância de um processo • força r uma mudança de estado de uma instância de um processo • alterar/adicionar/consultar um atributo(ex: prioridade) de um processo
Estado de processo
* abrir/fechar um processo ou atividade, Consultar usando filtros • Obtenção de detalhes de instância(s) de processo(s), ou uma atividade(s), com possibilidade do uso de filtros
Tratamento de Worklists/Workitems
* Abrir/fechar uma consulta a uma Worklist (lista de tarefas), podendo ser filtradas • Obtenção de itens da Worklist, com opções de filtragem • Notificação da seleção /redistribuição /finalização de um workitem específico • Alteração ou consulta de um atributo de um Workitem
Supervisão de processos
(Estas funções têm como objetivo permitir a supervisão e alteração de todos os processos, e tem como intenção de ser acessíveis apenas a utilizadores com um nível de privilégios elevado) • Alterar o estado operacional de uma definição de um processo de workflow e/ou as instâncias desse processo • Alterar o estado de todas as instâncias de processos ou atividades de um determinado tipo • Adicionar/Alterar atributos a todos os processos de um determinado tipo • Terminar todas as instâncias de um processo
Tratamento de Dados
* Obtenção / retorno de dados de aplicação ou informação necessária a continuação do workflow.
Funções de Administração
Podem ser incluídas funções de administração adicionais caso se verifique ser apropriado para um determinado tipo de cliente.
Invocação de Aplicações
As funções referidas acima permitem um nível Básico para invocação de aplicações , por permitirem acesso a atributos de processos/atividades.

#### Interface Aplicação Invocação

Pode-se assumir com algum grau de certeza que qualquer implementação de um WfMS não tem capacidade para invocar todas as aplicações potencialmente necessárias. Então para um determinado tipo de aplicações que têm tipos de dados bem definidos pode usar-se um mecanismo de comunicação Padrão (o X.400 é dado como exemplo). Para um outro tipo de aplicações cria-se uma ”aplicação middleware”que usa uma API Padrão para comunicar com o Workflow Enactment Service, ou então é criada uma nova aplicação de raiz que use estas APIs. Em traços gerais as APIs devem ter funções para:
Estabelecimento de sessões
* Estabelecimento/corte de sessões (ligações ) entre os sistemas
Gestão de atividades Direção Workflow engine - Aplicação
* Iniciar atividade • Suspender/Retomar/Abortar atividade direção Aplicação - Workflow engine • Notificação de conclusão de atividade • Sinalização (para sincronização por exemplo) • Obtenção de atributos da atividade
Tratamento de Dados
* Trocar informação relevante (parâmetros necessários a aplicação , e informação necessária a continuação do processo de workflow) • Envio de dados `a aplicação

#### Interoperabilidade

Um dos objetivos chave desta definição de Padrãos é definir como podem 2 WfMS de fabricantes diferentes interagir entre si. Existem 2 aspectos necessários para que possa haver interoperabilidade: • é necessária uma interpretação comum da definição dos processos, que pode ser obtida através do uso de um mesmo processo building tool, exportando atributos dos processos, ou através do uso de uma gateway que faz um mapeamento dos objetos e atributos. • Suporte para transferência de dados de Controle , informação relativa ao estado do processo de workflow. Durante a execução são usadas funções da WAPI para acesso a serviços, falando os workflow engines diretamente uns com os outros, caso isto não seja possível construísse então uma gateway. Algumas das funções referidas atrás podem ser usadas para a interoperabilidade entre servidores como: • Estabelecimento de Sessões • Operações sobre definição de workflow e objetos • Controle e auditoria de processos • Gestão de atividades • Tratamento de dados Também se torna necessário um certo nível de gestão centralizada entre os vá rios WfES

#### Interface e Monitoração da Administração

Também foi definida uma interface para administração e auditoria/monitorização dos sistemas Operações de
Gestão de Utilizadores
* Estabelecer/apagar/suspender/corrigir privilégios de utilizadores ou Workgroups
Gestão de Papeis
* Estabelecer/apagar/corrigir papéis ; relações entre participantes
Auditoria a operações de Gestão
* Operações de pesquisa, apagar, impressão e começa r de novo sobre logs
Operações de Controle de Recursos
* Adicionar, remover ou modificar as características de concorrência de uma atividade ou processo
Operações de Supervisão de Processos
* Mudar o estado de uma definição de um processo de workflow, e/ou das suas instâncias • Escolher de entre as vá rias versões da definição de um processo • Mudar o estado de todos as instâncias de processos ou atividades de um certo tipo • Atribuir novos atributos a todas as instâncias de processos ou atividades de um certo tipo • Terminar todas as instâncias de processos.
Operações de Auditoria de Processos
* Abrir ou fechar Consultas a instâncias de atividades ou processos, com filtros opcionais • Consulta de detalhes sobre instâncias de processos ou atividades, com filtros

## XPDL

XPDL – XML Process Definiton Language
Ferramentas de modelagem, analise, descrição e documentação de processos de negócio, são utilizadas e possuem uma grande variedade.A carência de tecnologias para implementar processo de negócio via web ainda é muito grande.Um formato comum de comunicação que suporta a transferência de definição de processo de workflow entre produtos, com intuito de permitir a interoperabilidade de processos distribuídos na Web, foi definido pela WfMC(Workflow Modeling Coalition).

### A Proposta

Com o objetivo de conseguir um método comum de acesso e descrição de definições um meta-modelo de definição foi desenvolvido para processo de workflow. Entidades de uso em comum são identificadas pelo meta-modelo, e através da transformação de esquemas proprietário, surge a possibilidade de comunicação entre sistemas de worflow remotos. "Um elemento chave do XPDL é a sua extensibilidade para tratar informações de diferentes produtos e ferramentas. Baseado num “meta-modelo-mínimo” que descreve as entidades básicas de um processo, o XPDL consegue representar as características fundamentais dos atuais sistemas de workflow. Mas, para tanto, esses sistemas devem ser capazes de executar as duas operações básicas descritas a seguir: • Importar uma definição XPDL de workflow; • Exportar uma definição XPDL de workflow que seja imagem da representação interna do produto proprietário."

### O Meta-Modelo XPDL

O Meta-Modelo XPDL proposto descreve relacionamentos, atributos, e entidades simples de um processo de workflow.

#### Workflow Application Declaration

"A entidade Workflow Application Declaration consiste numa lista de todas as aplicações e ferramentas que precisam ser chamadas pelos processos de workflow definidos no XPDL."
Aplicações devem estar definidas, ou no mínimo declaradas no modelo.Isso é, a definição "real" pode estar a cargo de um gerenciador de objetos, permitindo dessa forma seu funcionamento em ambientes multi-plataformas.O XPDL consegue dessa forma abstrair particularidades de cada programa.

#### Workflow Process Definition

A entidade Workflow Process Definition define elementos que farão parte do workflow. Ela possui definições/declarações para as entidades Activity, Transition, Application e Workflow Relevant Data (respectivamente) disponibilizando informações que serão utilizadas na administração (data de criação, autor, etc) e durante a execução do processo (inicialização de parâmetros, prioridade de execução, verificação de time-outs, notificação de pessoas ou serviços, informações de simulação, etc).

#### Workflow Atividade de Processamento

A entidade Workflow Process Activity é utilizada na definição de atividades elementares que fazem parte de um processo de workflow. Seus atributos especificam "informações de controle da atividade, designação dos executores da atividade, informações em tempo de execução (como prioridades) e dados usados especificamente em regras de negócio e simulações."

#### Transição de Informação

"A entidade Transition Information descreve as possíveis transições entre atividades e as condições para habilitação ou desabilitação das mesmas (transições) durante a execução de um workflow." O diagrama de processo de workflow é na verdade um grafo orientado (digrafo) e seus nós representam atividades e arestas representam transições. "Cada mudança de estado (transição A para transição B) pode ser executada somente mediante o atendimento das condições de transição, que podem ser desde simples testes de comparação numérica até a execução de longos procedimentos de validação."

#### Workflow Participantes

"Abaixo lista que apresenta os tipos de Workflow Participant (participante do processo) que podem existir: • Recurso: um objeto específico dentro do sistema. Um computador, por exemplo. • Conjunto de recursos: um grupo composto por recursos. Servidores trabalhando em conjunto, por exemplo. • Papel: a função que uma pessoa pode adquirir numa organização. Um coordenador, por exemplo. • Organização: uma unidade dentro de um modelo organizacional. Um departamento de marketing, por exemplo. • Pessoa: um humano interagindo com o sistema através de uma aplicação (interface). Um funcionário da organização, por exemplo. • Agente: um agente automatizado. Um serviço web (Web Service), por exemplo."

#### Workflow Relevant Data

"A entidade Workflow Relevant Data representa as variáveis do processo que tipicamente são usadas para a tomada de decisões (condições de transições, por exemplo) ou valores de parâmetros que são passados entre atividades. Esses dados não devem ser confundidos com os demais dados da aplicação, controlados e acessados globalmente (pelas aplicações remotas) e não visíveis ao sistema de gerenciamento do workflow. O dados da entidade em questão são todos aqueles necessários para o funcionamento do processo de workflow."