Upload
marcel-sigolo
View
5
Download
0
Embed Size (px)
Citation preview
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 1/10
Workflow na Integração de Sistemas Empresariais
Pedro António
ESTCB – Escola Superior de Tecnologia de Castelo Branco
Av. do Empresário
6000-767 Castelo Branco, Portugal
Resumo
A utilização da tecnologia Workflow visa automatizar a execução de processos de negócio,
de forma parcial ou na sua totalidade. Neste âmbito, a execução dum processo de negócio
pode envolver diversos sistemas legados, bases de dados e aplicações, permitindo também
a interacção com os utilizadores. Tradicionalmente, a implementação de um Workflow é
extremamente difícil de realizar devido à necessidade de integrar com diversas aplicações
distintas e com seres humanos. Este artigo, pretende demonstrar a execução de processos
de negócio envolvendo sistemas de informação distintos utilizando o sistema de Workflow
da Oracle. Desta forma, é mostrado como a tecnologia disponível actualmente resolve este
problema.
1. Introdução
A capacidade de um sistema de informação automatizar determinadas tarefas numa organização
é crucial para a adaptação às necessidades de negócio. A tecnologia Workflow permite a
combinação de regras associadas a processos de negócio necessária à execução dos processos de
negócio. A tecnologia Workflow deve possibilitar a modelação, gestão e monitorização dos
fluxo de informação e trabalho associados aos processos de negócio.
A execução de processos de negócio de sistemas empresariais é importante e significativa na
medida em que a partir de um modelo de processos de negócio de uma empresa podem gerar
automaticamente um conjunto de tarefas bem definidas. Utilizando uma ferramenta de
Workflow é possível automatizar algumas destas tarefas, permitindo também a monitorização
do fluxo de informação ou do estado do processo de negócio.
A proposta deste artigo consiste em demonstrar as capacidades da tecnologia Workflow na
integração de sistemas informáticos empresariais, assim como na interface com os seus
utilizadores.
Um sistema de gestão workflow é composto por um conjunto de aplicações e ferramentas que
permitem a definição, criação e gestão de diversas actividades associadas ao Workflow, que
formam um processo de negócio. A definição de um Workflow é executado num motor
Workflow, o qual tem a capacidade de interpretar a definição de um Workflow, interagir com
utilizadores do Workflow e invocar aplicações externas ao Workflow [1].
Um sistema de gestão workflow baseia-se num conjunto de tarefas e nas dependências entre as
diversas tarefas. Uma tarefa pode necessitar do envolvimento de um utilizador humano ou ser
executada automaticamente por um sistema de informação. Um sistema de gestão workflow
efectua leituras, escritas, processamento, automatização de tarefas e gestão de Workflows. Entre
as tarefas existentes no Workflow podem circular documentos e informação diversa. Esta
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 2/10
circulação de informação é estabelecida com base em regras definidas na altura do desenho do
Workflow.
Desta forma, será demonstrado como a tecnologia actualmente disponível permite resolver os
problemas tradicionalmente associados aos Workflows e processos de negócio.
2. Problema
Tradicionalmente, as organizações enfrentam dificuldades em modelar/desenhar e executar
processos de negócio que utilizam diversos sistemas de informação, podendo estes pertencer a
diversas organizações. Em particular, a execução de processos de negócio pode envolver
diversos sistemas legados, bases de dados e aplicações, permitindo também a interacção com os
utilizadores.
Neste contexto, o problema a considerar neste artigo são mais os aspectos técnicos relacionados
com a execução de processos de negócio em plataformas de gestão de workflows. A gestão de
workflows é uma tecnologia que tem evoluído rapidamente e tem sido explorado em diversas
áreas da indústria. O seu principal objectivo consiste em executar processos de negócio de modo
a automatizá-los na medida do possível. Algumas tarefas podem ser realizadas de forma a
alcançar um objectivo e podem estar associados a determinados custos (temporais, por
exemplo). De modo a permitir que o sistema satisfaça todos os objectivos, estes objectivos
devem estar explicitamente especificados no workflow.
3. Proposta
Neste artigo, pretende-se resolver o problema da integração de sistemas utilizando tecnologias
modernas para suportar Workflows. Os sistemas de gestão de Workflows fornecem um modelo
gráfico baseado no fluxo da informação e podem ser parametrizáveis de modo a suportar
processos de negócio específicos. O fluxo de informação num Workflow é baseado nos
processos de negócio existentes numa determinada organização, possibilitando uma melhor
gestão dos processos de negócio de forma melhorar os processos de negócio através da detecção
de problemas durante a sua execução ou simulação. Uma vez concluído o modelo gráfico, o
Workflow pode ser executado e durante esta execução podem ser desencadeadas diversas
acções, como acessos a diversas base de dados, diversas aplicações e diversos utilizadores.
Para uma concretização prática de um sistema de gestão de workflow utilizou-se o Workfow da
Oracle (toda a documentação relacionada com o Oracle Workflow foi baseada em [10] e [11]).
O Oracle Workflow permite automatizar e melhorar de forma contínua os processos de negócio,
encaminhando informação de qualquer tipo de acordo com as regras de negócio; permite que
cada pessoa tenha acesso a toda a informação necessária de acordo com a acção em causa;
possibilita definir e melhorar continuamente os processos de negócio utilizando uma ferramenta
de desenho drag-and-drop.
Em contraste com os sistemas Workflow tradicionais, que apenas encaminham os documentos
de um utilizador para outro de acordo com determinadas condições (regras de negócio), o
Oracle Workflow permite uma modelação sofisticada dos processos de negócio. É possível
definir processos que se repetem (loops), ramificar em fluxos paralelos que depois convergem,
decompor em subprocessos, etc. O Oracle Workflow decide qual o caminho a tomar de acordo
com o resultado proveniente de um procedimento armazenado, assim pode utilizar-se a
linguagem PL/SQL (linguagem da base de dados Oracle) ou funções externas (em Java) de
modo a expressar qualquer regra de negócio existente no processo Workflow.
O Oracle Workflow é um componente de integração do Oracle, que oferece um conjunto de
infraestruturas e ferramentas para a integração de aplicações empresariais, possibilitando a
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 3/10
concretização de negócios electronicamente. O Oracle Workflow transporta para o nível dos
processos de negócios a integração de aplicações. O Message Gateway permite realizar a
integração com outras soluções de mensagens, tal como IBM MQSeries e TIBCO Rendezvous.
A integridade transaccional da base de dados Oracle garante a consistência entre a aplicações e
o workflow; o Advanced Queuing do Oracle garante a entrega de mensagens entre sistemas; e o
Real Application Clusters do Oracle fornece escalabilidade transparente.
O Oracle Workflow estende o objectivo de automatizar o processo de negócio por toda a
empresa e para além desta, utilizando a Internet e o correio electrónico. Assim, as pessoas são
notificadas de itens de trabalho que estão à espera por correio electrónico e o Oracle Workflow
reage de acordo com a resposta vinda na mensagem de correio electrónico. É possível consultar
uma lista de tarefas a realizar e realizar acções utilizando um Web browser.
O Oracle Workflow permite configurar subscrições de eventos de negócio, os quais podem
iniciar os workflows ou possibilitar a propagação de mensagens de um sistema para outro
aquando da ocorrência de um evento de negócio. Podem comunicar-se eventos entre sistemas
dentro de uma empresa e com sistemas externos. Deste modo, é possível implementar
integração de mensagens ponto a ponto ou utilizar o Oracle Workflow como o elemento
centralizador (hub) de mensagens para cenários de maior complexidade em termos de integração
de sistemas. O modelo de processos de negócios pode incluir encaminhamentos e regras de
processamento complexas, de modo a gerir os eventos de forma poderosa e flexível.
O Workflow da Oracle é composto por cinco grandes componentes:
• Workflow Builder – ambiente gráfico para a construção de processos de negócio.
• Workflow Engine – gere a execução dos processos de negócio.
• Business Event System – comunicação de eventos entre sistemas dentro e fora da
empresa.
• Process Monitor – administração gráfica de eventos.
• Notification System – envio de mensagens de notificação para utilizadores e
processamento de respostas.
3.1. Oracle Workflow Builder
O Oracle Workflow Builder permite criar, visualizar ou modificar um processo de negócio com
operações de drag-and-drop. Assim, é possível criar e modificar todos os objecto de um
Workflow, desde actividades a mensagens.
Em qualquer altura é possível adicionar, remover ou alterar actividades de um Workflow, ou
mesmo estabelecer novas relações entre actividades.
3.2. Motor Workflow
O motor Workflow está embutido na base de dados Oracle e permite monitorar o estado dos
workflows e coordena o encaminhamento de actividades de um processo. As alterações do
estado de um Workflow, tal como a conclusão de uma actividade, são assinaladas ao motor
utilizando uma API PL/SQL ou uma API Java. Com base em regras de Workflow flexíveis, o
motor determina quais as actividades que podem ser executadas e, de seguida, executa-as. O
motor Workflow possui regras de Workflow sofisticadas, tais como repetições (loops),
ramificações, fluxos paralelos e subfluxos.
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 4/10
3.3. Sistema de Eventos
O Business Event System é uma aplicação que utiliza a infra-estrutura Advanced Queuing (fila
de mensagens da Oracle) para comunicar eventos de negócio entre sistemas. O Business Event
System é composto por um gestor de eventos, que permite registar subscrições de eventos
significativos e actividades eventos, permitindo modelar eventos de negócio dentro dos
processos Workflow.
Quando ocorre um evento local, o código é executado na mesma transacção como o código que
gera o evento. O processamento da subscrição pode incluir a execução de código personalizado
juntamente com a informação do evento, enviando a informação do evento para um processo
Workflow e enviando a informação do evento para outras filas ou sistemas.
O Business Event System suporta os seguintes tipos de integração:
• Integração de sistemas ponto a ponto baseado em mensagens;
• Centraliza mensagens para integração de sistemas;
• Aplicações distribuídas através de mensagens.
O gestor de eventos permite registar eventos de negócio para as aplicações, incluindo funções
que geram mensagens de evento XML. Os utilizadores dessas aplicações podem registar as
subscrições dos eventos que sejam importantes para o seu sistema, de forma a executar código,
propagação de mensagens ou processos workflow. Quando surge um evento de negócio, o
gestor de eventos executa a subscrição associada a esse evento. O código associado pode ser
executado de forma síncrona ou assíncrona, deferindo o processamento para mais tarde.
O Business Event System utiliza o Advanced Queuing para a propagação de mensagens entre
pontos no sistema (agentes) utilizando um protocolo específico. Os eventos recebidos de um
sistema externo são processados por um agente que está à escuta da ocorrência de novos
eventos.
Os eventos podem estar modelados num processo workflow e são utilizados para controlar o
fluxo de encaminhamento, tratamento de erros, transformações, etc. Um processo workflow
pode ser iniciado ou continuado por uma mensagem que chega, assim como enviar uma
mensagem ou gerar um evento. As actividades de funções XML permitem aceder ao conteúdo
dos dados de um evento dentro de um processo workflow.
3.4. Carregamento do Workflow
O Workflow Definitions Loader é um programa utilitário que transporta as definições dos
workflows entre bases de dados e estão definidos em ficheiros de texto (flat). Assim, pode
transportar-se as definições de um Workflow de uma base de dados para outra. As definições de
um Workflow podem ser manipuladas a partir de um ficheiro ou directamente da base de dados
utilizando o Oracle Workflow Builder.
3.5. Programação
O Oracle Workflow permite incluir procedimentos PL/SQL ou funções externas Java em
actividades nos workflows. Sem alterar o código da aplicação é possível que o programa se
execute sempre que o motor Workflow detectar que os pré-requisitos do programa estão
satisfeitos.
3.6. Notificações Electrónicas
O Oracle Workflow permite incluir utilizadores nos workflows para interagir com as actividades
que não conseguem ser automatizadas, tal como aprovações de ordens de compra ou venda. As
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 5/10
notificações electrónicas são encaminhadas para um conjunto de utilizadores ou um utilizador
individual (role). Qualquer utilizador associado a este role pode agir quando for notificado.
Cada notificação inclui uma mensagem que contém toda a informação necessária a um
utilizador para este tomar uma decisão. A informação pode vir juntamente com a mensagem ou
em anexo, num documento à parte. O Oracle Workflow interpreta cada resposta à notificação
para decidir o que acontece na próxima actividade no Workflow.
3.7. Integração com Correio Electrónico
Os utilizadores de correio electrónico podem receber notificações de itens de trabalho e podem
responder a estas notificações utilizando uma aplicação de correio electrónico. Uma notificação
por correio electrónico pode incluir anexos que fornecem outros meios de resposta à notificação.
3.8. Oracle Workflow na Internet
Qualquer utilizador com acesso a um Web browser pode ser incluído no Workflow. Os
utilizadores podem aceder à página de notificações e consultar os diversos itens de trabalho.
3.9. Monitorização e Administração
Os administradores e utilizadores do Workflow podem consultar o progresso de um item de
trabalho no processo Workflow ligando-se ao Workflow Monitor através de um Web browser
com suporte para Java. O Workflow Monitor apresenta uma vista do diagrama do processo de
uma instância específica do processo de Workflow, deste modo os utilizadores podem obter
uma descrição gráfica do estado dos diversos itens de trabalho.
O Oracle Workflow Manager é uma componente do Oracle Application Manager e é uma
ferramenta de administração adicional para o Oracle Workflow.
3.10. Processo Workflow
O Oracle Workflow gere processos de negócio de acordo com as regras definidas pelo
modelador. As regras (ou definições do processo Workflow) são compostas por actividades que
ocorrem no processo e da relação entre essas actividades. Uma actividade numa definição de
processo pode ser:
• Uma função automatizada definida num procedimento PL/SQL armazenado na base de
dados ou numa função externa Java;
• Uma notificação de um utilizador ou role que pode exigir uma resposta
(opcionalmente);
• Um evento de negócio;
• Um subfluxo que por si só podem ser compostos por um conjunto de actividades.
Um processo Workflow é iniciado quando uma aplicação chama um conjunto de APIs do motor
Workflow. O motor Workflow toma o controlo do processo e conduz o item de trabalho
definido pela aplicação numa definição específica do processo Workflow. De acordo com a
definição do processo Workflow, o motor realiza um conjunto de passos automáticos e invoca
os agentes apropriados quando é necessário processamento externo.
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 6/10
4. Implementação
De modo a demonstrar as capacidades do Oracle Workflow foi desenvolvido um exemplo. O
exemplo consiste em gerir a quantidade de resmas de papel num armazém de uma determinada
organização. A quantidade de resmas de papel existentes devem estar a cima de um valor
mínimo (500 por exemplo), quando a quantidade de resmas for inferior a este valor mínimo é
feito um pedido de aprovação de encomenda para a direcção. A direcção é que decide se deve
realizar, ou não, o pedido de encomenda; decidir de um novo valor mínimo de resmas de papel
existentes em armazém; e decidir qual o valor da encomenda. Uma vez aprovada a realização da
encomenda, é enviada para o fornecedor (documento XML) o pedido de encomenda, ficando
em espera pela resposta do fornecedor. Se ao fim de um tempo não se obtiver resposta é feita
uma notificação à direcção. Ao receber a resposta do fornecedor são actualizadas o valor de
resmas existentes em armazém.
Fig 1 – Processo de encomenda de resmas de papel
O fornecedor está a aguardar pedidos, ou seja, que ocorra um evento de pedido de encomenda.
Quando recebe o pedido, são retirados os dados (XML Get Tag Value) do documento XML que
chegou com o pedido. De seguida, a encomenda é registada numa base de dados e é enviada a
confirmação do pedido a quem fez o pedido.
Fig 2 – Processo fornecedor
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 7/10
Os pedidos de resmas de papel dentro da organização são feitos pelos diversos trabalhadores da
organização, que indicam a quantidade de resmas de papel que desejam. Esta quantidade é
analisada e deve ser aprovada pelo trabalhador responsável pelo armazém. No caso de ser
aprovada ou rejeitada o pedido, é feita uma notificação a quem realizou o pedido. Um pedido
aprovado resulta na actualização da quantidade de resmas de papel na base de dados.
Fig 3 – Processo de pedido de resmas de papel
Os processos de negócio descritos foram modelados utilizando a ferramenta de modelação de
processos workflow da Oracle (Oracle Workflow Builder) e posteriormente carregados na base
de dados.
4.1. Interface Web
A administração do Oracle Workflow é realizada utilizando uma interface Web. Na interface
Web é possível:
• Configurar eventos, sistemas e agentes;
• Consultar notificações e lista de trabalhos;
• Personalizar configurações para cada utilizador e configurações globais;
• Consultar e laçar processos;
• Consultar lista de eventos;
• Consultar filas de mensagens recebidas pelos agentes.
Fig 4 – Interface web do administrador
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 8/10
4.2. Eventos
Uma actividade de evento representa um evento de negócio do Business Event System dentro de
um processo workflow. Um evento pode ser de três tipos: recepção, envio e geração de um
evento de negócio:
• Um evento de recepção pode ser o ponto de partida de uma actividade de um processo,
pois está à espera de receber eventos. Também pode ser colocada dentro do processo,
mas apenas recebe eventos quando o processo chegar a essa actividade. Quando a
actividade receber um evento, o motor Workflow armazena o nome do evento, a chave
do evento e a mensagem associada ao evento, especificados nos detalhes do evento. Se
esta actividade já tiver recebido um evento, a flag ‘On Revisit’ determina se o motor
Workflow executa novamente essa actividade. Se o evento for gerado noutro processo
workflow, o tipo de item e a chave do item para esse processo estão incluídos na lista de
parâmetros dentro da mensagem evento. Neste caso, o motor Workflow activa
automaticamente o processo especificado.
• Um evento de geração vai buscar a informação referente ao evento e gera um evento
para o Business Event System, o qual continua a execução após a geração deste evento.
A actividade vai buscar o nome, chave e dados do evento especificados nos detalhes do
evento.
• Um evento de envio vai buscar o nome, chave e mensagem do evento assim como os
agentes de entrada e saída.
A subscrição de eventos é um registo que indica que um evento específico é importante para um
sistema em particular e especifica-se o processamento a realizar quando o evento for
desencadeado.
Tipo de Evento Descrição
Envio Envia encomenda para o Fornecedor
Envio Envia resmas de papel
Recepção Recebe resmas de papel
Recepção Fornecedor recebe encomenda
Tab 1 – Tabela de eventos
4.3. Notificações
Quando um motor workflow executa uma actividade de notificação é desencadeada uma
chamada Send para o Notification System para enviar a mensagem para o utilizador em causa.
Quando o utilizador responde à actividade de notificação, o Notification System processa a
resposta e informa o motor Workflow que a actividade de notificação se completou, permitindo
continuar para a próxima actividade. O utilizador (performer) é designado dentro da actividade
de notificação como o destinatário da notificação. O utilizador pode ser um role específico ou
um atributo que é alterado dinamicamente.
Fig 5 – Lista de notificações recebidas por um utilizador
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 9/10
Fig 6 – Detalhe de uma notificação
4.4. Motores workflow
Quando o motor Workflow inicia e executa um processo, este termina todas as actividades
necessárias antes de continuar para a próxima actividade. Por vezes, uma actividade pode exigir
processamento e tempo elevados para se completar. Assim, o Oracle Workflow gere a carga do
motor Workflow activando motores suplementares, de forma a executar estas actividades em
background. Nestes casos, estas actividades são diferidas pelo motor Workflow e executadas
mais tarde pelo motor em background. O motor principal pode continuar para a próxima
actividade disponível.
Um motor background pode ser configurado para tratar de actividades de notificação que já
expiraram. Quando o motor executa uma actividade de notificação que necessita de uma
resposta, chama o Notification System para enviar a notificação para um utilizador apropriado e
o estado da notificação passa a NOTIFIED até que o utilizador complete a actividade de
notificação. Entretanto, o motor activa-se para tratar de actividades de notificação e
periodicamente verifica as actividades NOTIFIED e se essas actividades ultrapassaram os
tempos estabelecidos. Se uma actividade NOTIFIED possuir um valor de expiração e se a data
actual exceder esse valor de expiração, o motor background assinala que a actividade
ultrapassou o seu limite temporal e chama o motor Workflow. O motor Workflow continua a
executar-se.
Um motor background deve estar preparado para tratar processos encravados (stuck). Um
processo está encravado se o seu estado é ACTIVE, mas não consegue progredir. O motor
background passa o estado do processo encravado para ERROR:#STUCK e executa o processo
de falha definido. Os motores background podem estar restringidos a tratar actividades com
tipos de itens específicos e dentro de uma classe de custos específica. Um motor background
executa-se até completar todas as actividades no tempo em que se iniciou. O motor background
deve ser lançado para se executar periodicamente utilizando um script para reiniciar o motor
background periodicamente (standalone) ou calendarizar o processo de background para se
executar periodicamente.
Deve existir pelo menos um motor background que verifica actividades expiradas, um para
processar actividades diferidas e outro para tratar de processos encravados. No mínimo, basta
utilizar um motor background que trate de actividades expiradas e diferidas assim como de
processos encravados. Os motores background para verificar processos encravados podem ter
uma periodicidade superior aos outros (cerca de uma vez por dia) e deve ser realizada em alturas
do dia em que existe uma carga reduzida no sistema.
15/02/13 Microsoft Word - ISE 03-04 Workflow.doc
dc308.4shared.com/doc/5crEARgV/preview.html 10/10
Os parâmetros de calendarização a configurar são:
• Work Item Type – permite restringir as actividades do motor a um tipo de item
específico.
• Minimum Threshold – especifica (em centésimos de segundo) o custo mínimo que uma
actividade deve possuir para este motor background.
• Maximum Threshold – especifica (em centésimos de segundo) o custo máximo que uma
actividade deve possuir para este motor background.
• Process Deferred – especifica se o motor background verifica actividades deferidas.
• Process Timeout – especifica se o motor background verifica actividades que tenham expirado (time out).
• Process Stuck – especifica se o motor background verifica actividades encravadas.
A amostragem (Thresholds) do motor background especifica os argumentos máximos e
mínimos quando o motor se inicia. De seguida, o motor background apenas processa actividades
com custos dentro do especificado. Por omissão, o valor do Threshold é 50, as actividades com
custo superior a 50 são deferidas.
Fig 7 – Configuração de um motor background workflow
4.5. Resumo de Etapas Realizadas
Após a instalação do Oracle Workflow, é necessário configurar diversas opções e componentes.
Assim, é necessário realizar os seguintes passos:
1. Acrescentar as definições do Descritor de Acesso à Base de Dados individual. Estas
definições incluem as informações de ligação Oracle, o modo de autenticação, os
parâmetros de exportação de ficheiros, etc.
2. Aceder à página principal do Oracle Workflow e alterar as configurações globais de
utilizadores, de modo a controlar o acesso ao Oracle Workflow. Assim, configura-se
quais os utilizadores que vão ser administradores do workflow, estes têm acesso a todas
as opções da página principal do Oracle Workflow. Os outros utilizadores acedem a
apenas algumas opções da página principal.