Mostrando postagens com marcador BPMN. Mostrar todas as postagens
Mostrando postagens com marcador BPMN. Mostrar todas as postagens

quarta-feira, 12 de novembro de 2008

Como "executar" um BPMN?

Tenho pensado muito a respeito disto: Como ir do BPMN ao BPEL? E, uma vez tendo o BPEL feito, como fica o sincronismo entre os dois diagramas?

Lendo muitos posts de outros blogs e alguns artigos, cheguei às seguintes conclusões:

  • O BPMN é uma notação que surgiu, essencialmente, para fazer a ponte entre o analista de negócios e o analista de sistemas, entre o especialista de processos e o especialista em TI. Não para ser algo que saia executando diretamente. Isto é uma visão distorcida dele. E algumas ferramentas do mercado estão indo para este caminho.
    O problema de se fazer isto é que o diagrama BPMN em si não tem todas as informações para ser executado diretamente. Para resolver isto, acaba-se adicionando informações mais técnicas, mais focadas na execução do mesmo. Com isto o diagrama deixa de ser uma visão do processo feita por um especialista e acaba virando um diagrama para execução, normalmente fugindo do padrão da especificação e se enchendo de tags específicas para um determinado fabricante da engine de execução.
  • BPMN e BPEL tem diferenças semânticas de linguagem. Certas estruturas do BPMN não possuem equivalente em BPEL e vice-versa. Logo, fazer um "round-trip" entre eles é uma tarefa extremamente complexa. Na maioria dos casos, inviável (ao menos de uma forma direta, sem intervenção humana). Algumas ferramentas, como o Business Modeler da IBM, geram o BPEL a partir do BPMN. Mas, se não me engano, funciona meio que como uma exportação: ele gera um esqueleto de um BPEL e a partir daí você fica "por conta". O especialista em TI vai terminar o fluxo e colocá-lo em produção. Mas quando o processo alterar e precisar mexer no BPEL, como isto será feito? Altera-se o BPMN, exporta novamente para BPEL e termina o desenho? Ou alteram-se o BPMN e o BPEL, separadamente? Complicado, não? Dar manutenção em dois modelos que representam o mesmo processo e que ao mesmo tempo são distintos...
Em suma, ainda não sei como fica isto. Se alguém tiver alguma experiência prática para compartilhar, ou algum comentário, fique à vontade.

Ainda não vi nenhuma empresa utilizando BPMN + BPEL direto, em produção. Vi muitas teorias, mas queria ter visto ao menos um caso de sucesso.

domingo, 26 de outubro de 2008

Porque BPEL não é o cálice sagrado do BPM

Neste excelente artigo, o autor fala entre as diferenças conceituais e estruturais entre o BPMN e o BPEL. Basicamente, fala que produzir um BPEL legível a partir de um BPMN é uma tarefa árdua e, às vezes, impossível. 

E, em alguns casos extremos, o BPEL simplesmente não é um espelho do processo desenhado, acaba ficando um processo diferente.

O artigo realmente apresenta alguns pontos interessantes, pois, por experiência própria, pegar um BPMN e desenhar um BPEL "no braço" é muito improdutivo e complexo. E o artigo reforça justamente isto.

Fonte: InfoQ.


sábado, 25 de outubro de 2008

Aprenda BPM jogando!

Agora que você acompanhou o tutorial e sabe tudo sobre BPMN (menos, menos, hehehe), que tal praticar um pouco disto brincando?

A IBM lançou um jogo 3D que simula todo o levantamento de dados, modelagem de processos "as-is"(situação atual), detecção de gargalos, métricas, melhorias de processo, simulações de cenários, monitoramento em tempo real, etc...  Enfim, passa por várias fases do trabalho de análise e melhoria de processos.



O site oficial do jogo, com mais explicações e link para download é este aqui.

[Atualizada] Algumas pessoas não estão conseguindo efetuar o download do programa. Além de ter um IBM ID (ser cadastrado no site da IBM), precisa se cadastrar no IBM Academic Initiative. Para se cadastrar no IBM Academic Initiative precisa fazer parte do mundo acadêmico ou então de alguma organização que defina standards (padrões).

domingo, 19 de outubro de 2008

Tutorial BPMN - Final

Saideira. Hoje veremos os eventos de Fim de Fluxo. Basicamente, nada de novo. Apenas indica se o fluxo termina enviando uma Mensagem, lançando uma exceção, etc...
Sem mistérios.

Bom, pessoal, era isto... O Tutorial não tinha a pretensão de ensinar tudo sobre BPMN (até porque isto só vem com o uso e a experiência). A idéia era apenas dar uma visão geral. Agora é começar a praticar e ver na prática qual o nível de detalhe você vai modelar, quais informações você vai precisar descrever nas atividades e por aí vai. 

Aqui só estão as "letras", aprender a juntá-las e formar palavras com sentido é com você.

terça-feira, 14 de outubro de 2008

Tutorial BPMN - Parte 9

É, pessoal.. Está quase terminando. Hoje vamos continuar vendo os eventos, que iniciamos na parte 8. Hoje veremos os eventos intermediários. Os tipos de eventos intermediários existentes são estes:


Basicamente, são os mesmos que os eventos iniciais, com dois tipos a mais: tratamento de erros e de compensação. Tratar compensação significa que alguma ação deve ser feita para desfazer o que foi feito anteriormente, dentro de um processo, em caso de erro.

Imagine um processo venda de dois passos: o 1o. passo é conectar na operadora de cartão de crédito e fazer o débito e o segundo passo é fazer a venda. Quando o cliente comprou, foi feito o débito do cartão corretamente, mas aconteceu um erro na venda (não havia mais nenhum produto em estoque, por exemplo). Neste caso, deve ser efetuada a compensação daquele débito do cartão de crédito. A compensação de um débito de cartão de crédito é fazer um outro lançamento, desta vez de crédito, no mesmo valor do débito. 

Note que a lógica da compensação varia conforme o negócio. Em alguns casos pode ser excluir o lançamento anterior, em outros pode ser fazer um novo lançamento (como o exemplo acima) e em outros casos pode ser substituir um valor adicionado em um saldo, etc...

Voltando ao BPMN: Os eventos intermediários, quando colocados entre as tarefas, representam fatos que podem ocorrer entre as tarefas. Tanto podem ser de entrada (receber uma mensagem, por exemplo), quanto de saída (enviar uma mensagem).


Quando os eventos intermediários estão anexados às tarefas, significa que a tarefa deve ser interrompida caso o evento seja acionado. Veja o exemplo abaixo, em que a tarefa é interrompida caso não receba o evento de confirmação em 2 dias.

Por hoje era isto. Estamos quase terminando o tutorial...

quinta-feira, 9 de outubro de 2008

Tutorial BPMN - Parte 8

Hoje veremos com mais detalhes os eventos de início de um fluxo. Existem várias formas de se iniciar um fluxo. Na imagem anexa vocês podem ver os diversos tipos de eventos:



- None (nenhum): Serve para indicar um início de um sub-processo, ou então quando o início do processo não é definido por nenhum dos outros tipos de evento de início que veremos a seguir.

- Message (mensagem): Indica que o fluxo somente inicia quando uma determinada mensagem é recebida. Por exemplo: "Novo usuário incluído".

- Timer (temporizador): Indica que o fluxo inicia após um determinado tempo ter passado, ou quando chegar uma determinada hora específica.

- Rule (Regra): Indica que o fluxo inicia quando uma determinada condição é atingida. Por exemplo: "100 pedidos incluídos", "Temperatura maior que 35 graus".

- Link (ligação): Basicamente, liga o final de um fluxo ao início de outro. Normalmente é utilizado quando mais de um processo tem o mesmo pai (o pai termina e inicia os dois filhos, por exemplo).

- Multiple (múltiplos): Indica que existem várias maneiras de se iniciar o fluxo, mas basta apenas uma delas para que o fluxo se inicie. Junto ao elemento de início, deve-se colocar a lista de "triggers" que farão o fluxo iniciar. Por exemplo: Message: "Novo usuário incluído", Rule: "Mais que 10 pedidos pendentes".

Continua...

domingo, 5 de outubro de 2008

Tutorial BPMN - Parte 7

Conforme o combinado, segue a 7a parte do nosso tutorial. Hoje vamos falar de um novo elemento da notação: o Subprocesso. Ele é representado por um símbolo muito semelhante ao de atividade, só que com um sinal de mais ("+") dentro. 

Normalmente é utilizado para tornar mais simples alguns diagramas que são muito complexos. Por questões de clareza agrupa-se atividades em um subprocesso, deixando o diagrama mais limpo. Ao se clicar no sinal de mais, o subprocesso é expandido. Veja o exemplo abaixo, de um diagrama fictício de solicitação de empréstimo:

A aprovação do empréstimo em si é um subprocesso dentro do processo todo de solicitação. Ao expandir o subprocesso de aprovação, aparece o seguinte diagrama:

Note que o subprocesso de aprovação possui  início, meio e fim, que ele é independente do processo que o chamou, não fazendo nenhuma referência ao processo principal. Isto é uma boa característica de um subprocesso, permitindo inclusive o seu reúso.

Por hoje era isto. Aguarde a 8a parte, porque ainda não mostrei todos os elementos do BPMN.

quinta-feira, 2 de outubro de 2008

Tutorial BPMN - Parte 6

Continuando com nosso tutorial, hoje vamos falar de um elemento BPMN chamado "Objeto de dados". Ele é representado por este símbolo:

Os Objetos de dados são artefatos utilizados para mostrar como os dados e os documentos são utilizados dentro do processo. Eles também podem ser utilizados para definir as entradas e saídas de uma atividade e também podem conter o "estado" atual de um documento, que pode ser alterado durante o processo. Veja o exemplo abaixo, para melhor entender:

O documento "Pedido", que é utilizado para as atividades se comunicarem, pode possuir os estados de [Aprovado] ou [Rejeitado], dependendo da condição ilustrada.

terça-feira, 30 de setembro de 2008

BizAgi Modeler - Nova versão

Acabou de sair hoje uma versão nova do Modelador BizAgi (é ele que estou utilizando para fazer todos os exemplos do tutorial). Tem muitas novidades (copiados do site do modelador):

Novedades en BizAgi Process Modeler 1.3

Fecha de Publicación:
Septiembre 30, 2008 

Caracterísiticas y Mejoras:

  • Nuevo elemento Milestone
  • Nuevo tipo de Atributo Extendido Hipervínculo
  • Nuevo tipo de Atributo Extendido Archivo
  • Inserción de actividades en el medio de dos conectadas
  • Routing mejorado
  • Nuevo y mejorado manejo de Lanes
  • Desplazamiento automático de los elementos cuando se expanden o colapsan subprocesos
  • Expansión automática de la hoja del diagrama
  • Movimiento de los elementos en los diagramas con el teclado
  • Flujos de Secuencia se convierten en Flujos de Mensaje cuando se arrastran elementos del Pie Menu a otro Pool
  • Inclusión de todos los diagrama cuando se exporta a Word o PDF
  • Inclusión de atributos BPMN cuando se exporta a Word o PDF
  • Vista de diagramas en blanco y negro
  • Restauración del color original de los elementos
  • Desplazamiento horizontal con shift + rueda del mouse
  • Metodo alternativo de registro

Para entender, tem que se virar no espanhol :-)

Tutorial BPMN - Parte 5

Continuando o exemplo anterior: e se o exame laboratorial fosse executado fora da clínica? Se fosse uma entidade externa?

Certamente o laboratório que faz os exames tem o seu próprio fluxo para processar uma requisição de exames, mas isto não importa para a clínica, certo? A clínica apenas manda o material e recebe o laudo. 

Para representar a comunicação entre entidades distintas, utiliza-se o elemento de "mensagem". Ele é representado por uma seta com linhas tracejadas, e só pode ser utilizado entre pools, não entre raias.

O nosso exemplo, com mensagens, fica assim:


Já estamos começando a fazer diagramas mais complexos, que representam mais precisamente o processo do usuário. E ainda temos mais alguns elementos BPMN para aprender. Continue passando por aqui. :-)

segunda-feira, 29 de setembro de 2008

Tutorial BPMN - Parte 4

Continuando... Você reparou quantos atores diferentes existem naquele processo de consulta médica, mostrado na 2a parte do tutorial? Se você não lembra, volte lá e dê uma olhada naquela parte do tutorial.
O processo está correto, está mostrando todos os passos, mas apenas olhando o diagrama você não tem uma noção exata de quem está fazendo o quê. Para resolver este problema, existem dois outros elementos na notação BPMN: O Pool e a Lane (raia). Cada pool representa uma entidade (um sistema, sub-sistema ou um participante) do processo e cada raia representa um ator contido nesta entidade. 

Veja agora o exemplo anterior com o pool (Atendimento médico) e as raias com os atores:


Bem melhor, não? Agora fica muito mais claro o papel de cada um dentro do processo. 

sexta-feira, 26 de setembro de 2008

Tutorial BPMN - Parte 3

Vamos continuar com nosso tutorial... Se você observar o exemplo feito na parte 2 do tutorial, verá que existem setas ligando as atividades. O nome destas setas, para o BPMN, é "connector".

Aquele conector do exemplo é um "conector de sequência". Existem outros tipos de conectores, que veremos mais à frente.

Mesmo com o conector de sequência, existem 3 formas de se conectar as tarefas:

  • Sequencial
  • Paralela
  • Condicional
1) Sequencial:

É a forma mais simples e mais comum de fazer a ligação entre as tarefas. Elas são executas sequencialmente, conforme o fluxo das setas.



2) Paralela:

A conexão paralela significa que duas (ou mais) atividades podem ser executadas paralelamente em qualquer ordem, ao mesmo tempo ou não. As atividades paralelas não interferem umas nas outras, mas todas as atividades devem terminar para o fluxo poder continuar. No exemplo abaixo, a tarefa 4 somente será executada depois das tarefas 2 e 3 terminarem.

Observe que o símbolo de desvio (gateway) foi alterado, tem um sinal de + (mais) dentro dele.



3) Condicional:

A conexão condicional significa que o fluxo segue um caminho ou outro, dependendo de uma condição. Apenas uma das tarefas é executada e o fluxo segue normalmente. No exemplo abaixo, se o valor da Nota Fiscal for maior que 100, a Tarefa 2 é executada, senão é a Tarefa 3. Em seguida é executada a Tarefa 4.

Observe que agora o símbolo de desvio possui um círculo dentro.

Ainda temos muito o que ver pela frente, o tutorial continua nos próximos dias. Até.



quinta-feira, 25 de setembro de 2008

Tutorial BPMN - Parte 2

Continuando o nosso tutorial, vamos agora começar a ver os primeiros elementos da notação: 


Estes elementos acima são os básicos. A partir deles já dá para iniciar a modelar alguns processos simples. Imagine um processo de consulta médica. Os passos normalmente seriam estes (de forma bem simples, só para ilustrar):

O paciente chega na clínica e é atendido na recepção. Após isto, enquanto aguarda a consulta, uma enfermeira mede a pressão e temperatura. Se for necessário (dependendo do estado do paciente), deve ser feito algum exame laboratorial. O próximo passo é a consulta em si e, finalmente, o paciente paga a consulta e é liberado. 

Acima é a forma textual do processo. Este mesmo processo em BPMN fica assim:


Quem deveria fazer este modelo, normalmente, é um analista de negócios, que conhece o processo da empresa, mas não precisa conhecer TI. Este modelo não deve ser feito por um analista de sistemas, são papéis diferentes. Ou, pelo menos, deve-se evitar que isto seja feito.

Existem outros elementos na notação BPMN, estamos apenas começando. Fique ligado nos próximos dias.

quarta-feira, 24 de setembro de 2008

Tutorial BPMN - parte 1

Vou começar um pequeno tutorial de BPMN, em pequenas partes, para ficar mais fácil de acompanhar e menos cansativo. Postem seus comentários e dúvidas, ok?

Para começar, vamos definir o que é BPMN: BPMN é a sigla de Business Process Modeling Notation, ou seja, Notação para Modelagem de Processos de Negócio. Ela foi inicialmente desenvolvida pelo Business Process Management Initiative (BPMI) e atualmente é mantida pelo Object Management Group (OMG), desde que as duas organizações se uniram em 2005. A versão corrente é a 1.1 e a 2.0 está em fase de proposta.

O objetivo principal do BPMN é prover uma notação padronizada que seja facilmente inteligível pelos Stakeholders. Existem vários tipos de stakeholders: Os analistas de negócio que criam e refinam os processos, os desenvolvedores que são responsáveis por implementá-los e os administradores que os gerenciam e monitoram.

Consequentemente, o BPMN deve servir como uma linguagem comum para tentar diminuir as falhas de comunicação existentes entre o design do processo e sua implementação.

A notação BPMN é bem simples e lembra muito o diagrama de atividades da UML. Amanhã vou começar a mostrar os elementos da notação e uns exemplos. Até lá!

segunda-feira, 22 de setembro de 2008

Modelador BPMN

Ainda não falei nada sobre BPMN (calma, o blog só tá começando), mas vou dar uma dica para adiantar: Qual modelador BPMN usar? Existem várias opções gratuitas e pagas. Entre as pagas, o melhor produto que já vi é o Business Modeler, da IBM. Baseado no Eclipse e com muitos recursos. Realmente muito bom. Se você tiver dinheiro para comprá-lo, vá em frente. :-)

Agora, se você for um mero mortal como eu, existem outras opções: 
  • O editor do Eclipse mesmo. Free, open-source. Simples, básico e faz o que se propõe a fazer. Mas ainda tem alguns bugs e o algoritmo para traçar as linhas entre os elementos é meio burro.
  • Intalio BPMS. Free e open-source. É o editor padrão do Eclipse com algumas melhorias. Nunca cheguei a testá-lo pra valer. Mas, pelo que vi, não muda muito em relação ao original.
  • BizAgi Modeler. Free, mas não open-source. Feito em .NET, tem o look & feel do Office 2007, o que não deixa de ser uma vantagem, visto que seu público-alvo é teoricamente formado por especialistas em negócio, não em TI. Muito fácil de usar, bonito e com muitas funcionalidades. Para mim, é a melhor escolha.
Um bom modelador já ajuda bastante no aprendizado desta nova tecnologia. Aprender uma nova metodologia já é um complicador suficiente, ninguém precisa de uma ferramenta ruim, para complicar ainda mais, certo?