12
XPDL - Uma linguagem para intercâmbio de definições de processos André de Jesus Silva [email protected] Bacharel em Ciência da Computação na Universidade Federal de Viçosa. Atualmente cursa mestrado em Ciência da Computação na Universidade Federal de Viçosa. Atua na área de Ciência da Computação, com ênfase em Engenharia de Software e Sistemas de Informação Geográfica. Áreas de Interesse: Arquitetura de Software, Processos de Desenvolvimento de Software, Sistemas de Apoio a Decisão, Sistemas de Informação, Geoprocessamento. Asher Lionel Coelho [email protected] Bacharel em Ciência da Computação na Universidade Federal de Viçosa. Atualmente cursa mestrado em Ciência da Computação na Universidade Federal de Viçosa. Atua na área de Ciência da Computação, com ênfase em Computação Móvel. Áreas de Interesse: Redes de Sensores sem Fio, Roteamento e Posicionamento, Engenharia de Software. José Luis Braga [email protected] Pós-doutoramento em Tecnologias da Informação na University of Florida. Doutor em Informática - Departamento de Informática da PUC-Rio. Mestre em Ciências da

Padrão Workflow XPDL

  • Upload
    foa1007

  • View
    153

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Padrão Workflow XPDL

XPDL - Uma linguagem para intercâmbio de definições de processos

André de Jesus Silva

[email protected]

Bacharel em Ciência da Computação na Universidade Federal de Viçosa. Atualmente

cursa mestrado em Ciência da Computação na Universidade Federal de Viçosa. Atua na

área de Ciência da Computação, com ênfase em Engenharia de Software e Sistemas de

Informação Geográfica. Áreas de Interesse: Arquitetura de Software, Processos de

Desenvolvimento de Software, Sistemas de Apoio a Decisão, Sistemas de Informação,

Geoprocessamento.

Asher Lionel Coelho

[email protected]

Bacharel em Ciência da Computação na Universidade Federal de Viçosa. Atualmente

cursa mestrado em Ciência da Computação na Universidade Federal de Viçosa. Atua na

área de Ciência da Computação, com ênfase em Computação Móvel. Áreas de Interesse:

Redes de Sensores sem Fio, Roteamento e Posicionamento, Engenharia de Software.

José Luis Braga

[email protected]

Pós-doutoramento em Tecnologias da Informação na University of Florida. Doutor em

Informática - Departamento de Informática da PUC-Rio. Mestre em Ciências da

Page 2: Padrão Workflow XPDL

Computação - Departamento de Ciência da Computação da UFMG. Atualmente é

Professor Titular do Departamento de Informática do Centro de Ciências Exatas e

Tecnológicas da Universidade Federal de Viçosa-MG. Atua na área de Ciência da

Computação, com ênfase em Engenharia de Software e Sistemas de Informação. Áreas

de Interesse: Qualidade de Software com Foco em Processos, Engenharia de Software

Experimental, Engenharia de Software Apoiada por Ontologias, Engenharia de

Software Baseada em Agentes, Sistemas de Apoio à Decisão.

De que se trata o artigo:

O presente artigo tem como objetivo fornecer uma visão geral da linguagem

XPDL (XML Process Definition Language), uma ferramenta poderosa para definição de

processos que também é usada como um formato padrão para intercambio destas

definições entre diferentes ferramentas de modelagem de processos.

Em que situação o tema é útil:

A linguagem XPDL (XML Process Definition Language) pode ser utilizada em

vários casos, dentre eles: desenvolvimento de uma ferramenta para modelagem de

processos que suporte um linguagem padronizada de importação/exportação e

armazenamento de processos; descrição de processos; exportação de diagramas que

estejam na notação BPMN para XPDL; e intercâmbio de definições de processos entre

duas ferramentas distintas que suportem XPDL.

Resumo DevMan

A modelagem de processos é realidade em quase todas as empresas que buscam ter

seus processos organizados e bem documentados. Na maioria das vezes são utilizados

softwares para o auxilio da modelagem destes processos, uma vez modelado o

processo em uma ferramenta cria-se uma dependência muito grande dela, porque na

maioria das vezes os processos são salvos em um formato proprietário. O XPDL (XML

Process Definition Language) vem como um formato padrão para definição e

armazenamento de processos. Uma vez modelado o processo ele pode ser armazenado

em um arquivo XPDL e utilizado posteriormente em outras ferramentas (que podem

ser de fornecedores distintos), como por exemplo, engines de execução, simulação ou

monitoramento de processos.

Page 3: Padrão Workflow XPDL

Tecnicamente, um processo de negócio nada mais é do que um conjunto de etapas que uma área de negócio desempenha para criar valor aos seus clientes e também à própria organização. Um processo de negócio é composto de três elementos básicos:

Entradas: Elas iniciam o processo. Por exemplo, se você está produzindo uma bicicleta, as entradas para esse processo serão os pneus, as rodas, as porcas, parafusos, correntes, etc.

Atividades: Elas transformam as entradas em saídas. No exemplo da bicicleta, atividades incluem a montagem do pedal, a inserção das rodas e o ajuste das engrenagens. Um conjunto de atividades dentro de um processo também é conhecido como fluxo do processo.

Saídas: Também conhecidos como resultados ou entregáveis. Uma saída é o produto final gerado pela execução de todas as atividades do processo. Neste exemplo, a bicicleta concluída.

Processos são simples de entender quando você considera coisas físicas

como bicicletas. Mas processos existem em todas as organizações, não somente naquelas que criam coisas físicas. Por exemplo, numa companhia que provê consultoria em gestão de recursos humanos, existirão entradas (tal como o conhecimento do consultor), atividades (por exemplo, a condução de uma pesquisa de satisfação dos funcionários para avaliação da organização do cliente) e saídas (tal como o plano de iniciativa de mudança cultural no cliente).

Em resumo, processos de negócio são constituídos de todas as atividades que a sua organização está engajada com o intuito de cumprir os objetivos de negócio traçados por ela. Processos determinam a eficácia e a eficiência das operações da sua organização, a qualidade que os seus clientes experimentam, e também, o sucesso financeiro da sua organização.

Toda organização contém um grande número de processos de negócio. Alguns destes processos são realizados num único departamento, como a entrada de um pedido de compra de um cliente no computador. Outros são processos mais complexos implementados em toda a organização, extrapolando várias fronteiras departamentais, como por exemplo, o desenvolvimento de um produto de sucesso no mercado.

O maior dos problemas com processos de negócio é a falta de ciência desses processos por parte dos envolvidos. Cada envolvido, direto ou indireto do processo precisa saber exatamente o que está fazendo, e o quê o resultado do seu trabalho irá causar a organização, bem como quais são os resultados esperados. Sem isso, sem a falta de compromisso com os objetivos da organização, processos irão continuamente falhar, mesmo que você troque os recursos ou implemente-o sob uma nova tecnologia. Através da compreensão das falhas do processo e da conscientização dos envolvidos da importância deles, você e o seu time podem corrigir estas falhas e garantir os resultados esperados pela sua organização. A geração de valor com processos de negócio começa quando estes estão formalmente documentados e quando os envolvidos sabem exatamente do valor destes processos para a organização. Podemos dizer

Page 4: Padrão Workflow XPDL

que estas são as pré-condições para qualquer iniciativa de otimização de um processo de negócio.

Diferentes ferramentas podem ser usadas para analisar, modelar, descrever e documentar um processo de negócio. Neste contexto, uma interface de definição de processo define um formato comum de troca, o qual suporta a transferência de definições de processo entre produtos distintos.

Uma interface também define uma separação formal entre o desenvolvimento e execução, permitindo a definição do processo gerado por uma ferramenta de modelagem, para ser usado como entrada para diferentes produtos.

Assim, a definição do processo gerado por uma ferramenta pode ser “interpretada” em diferentes produtos. Definições dos processos transferidos entre esses produtos ou armazenados em um repositório separado são

acessíveis através do formato de intercâmbio XPDL (XML Process Definition

Language) comum.

A Figura 1 mostra um modelo de como é feito o intercâmbio de definições de processos entre diferentes ferramentas usando XPDL.

Figura 1. Esquema do intercâmbio de definição de processos entre diferentes ferramentas. (WFMC, 2008)

Como pode ser observado, para fornecer um método comum para acessar e descrever as definições de processos, foi estabelecido um modelo de meta-

Page 5: Padrão Workflow XPDL

dados para definição de processos. Este modelo de meta-dados identifica entidades comumente usadas dentro de uma definição de processo. Uma variedade de atributos descrevem as características deste conjunto limitado de entidades. Com base neste modelo, as ferramentas de um fornecedor podem transferir modelos através de um formato comum de troca.

Um dos elementos-chave do XPDL é sua extensibilidade para lidar com informações utilizadas por uma variedade de diferentes ferramentas. Isto é importante por que o XPDL pode nunca ser capaz de suportar todos os requisitos de informação adicional em todas as ferramentas. Dessa forma, com base em um número limitado de entidades que descrevem uma definição de

processo, XPDL suporta um número de diferentes abordagens. Um dos elementos mais importantes do XPDL é um construtor genérico

que suporta atributos específicos de um fornecedor para uso dentro de uma representação comum. O XPDL é extensível, permitindo que cada ferramenta diferente armazene informações de implementação específicas dentro do XPDL, e terá esses valores preservados mesmo quando forem manipulados por ferramentas que não suportam essas extensões. Isto é a única maneira de permitir um “passeio” entre múltiplas ferramentas e mesmo assim voltar a ferramenta original com completa fidelidade.

Histórico do XPDL Os conceitos que fundamentaram o XPDL (XML Process Definition

Language) foram formulados por indivíduos trabalhando juntos na WfMC (Workflow Management Coalition) que eram de empresas que desenvolviam ferramentas de workflow e business process management. Esses conceitos foram incorporados em um meta-modelo e um glossário que depois orientou a especificação de interfaces para vários aspectos do problema como um todo. A troca de definições de processos entre diferentes ferramentas de diferentes fornecedores foi considerada como uma parte essencial para a criação da primeira versão de uma standard interchange language chamada de WPDL (Workflow Process Definition Language), publicada pela WfMC em novembro de 1998.

Com o crescimento da popularidade do XML e o uso dele para a definição de formatos de documentos para a Internet, combinados com alguns anos de

experiência acumulada usando WPDL em ferramentas de workflow e BPM (Business Process Modeling), foi possível a criação do XPDL 1.0, o qual foi oficialmente lançado em outubro de 2002. O XPDL manteve a semântica do WPDL, mas definiu uma nova sintaxe usando um esquema XML. WPDL ou XPDL 1.0 não propuseram uma representação gráfica específica.

Em sua nova versão 2.0, o XPDL foi estendido para adicionalmente servir como um formato de troca para o BPMN. Este realinhamento foi motivado por negociações de fusão entre a Workflow Management Coalition (WfMC) e Business Process Management Initiative (BPMI) . Como consequência, a versão do XPDL inclui novos conceitos adaptados do BPMN incluindo, por exemplo, Pools, Gateways, ou Events.

Page 6: Padrão Workflow XPDL

A Figura 2 exibe o histórico de lançamento das versões do XPDL. Note que a partir da versão 2.0 do XPDL ele passa a dar suporte à notação BPMN.

Figura 2. Linha do tempo das versões do XPDL e BPMN (SHAPIRO et al, 2011)

XML Process Definition Language A especificação do XPDL usa XML como mecanismo de intercâmbio de

definição de processos. O XPDL forma uma norma de intercâmbio comum que permite aos produtos suportar representações arbitrárias de definições de processos.

Assim, o XPDL usa uma sintaxe baseada em XML, especificado por um esquema XML. É uma linguagem para modelagem, análise e documentação de processos de negócio e contem a descrição das regras de processos. Dessa forma, temos que o XPDL é um meta-modelo que serve para descrever entidades, seus atributos e o relacionamento entre elas. Ele permite que diferentes sistemas importem e exportem seu processo na forma de um arquivo XPDL, fazendo com que esses sistemas continuem com as suas representações próprias e leiam esse processo achando tão semelhante quanto possível.

Entidades do Modelo XPDL De acordo com o WFMC (2008), podemos citar como algumas entidades

da linguagem XPDL:

Packages (Pacotes): atua como um container para agrupar juntos um número de definições de processos individuais e associar dados de entidade, o qual é aplicado a todas as definições de processos contidas nele. Possui atributos comuns, entre as entidades WorkflowProcess, Participantes, DataFields e Application, no qual o escopo pode ser maior que uma simples definição de processo;

Page 7: Padrão Workflow XPDL

WorkflowProcess (Processo de Negócio): é usado para definir o fluxo de trabalho dos processos ou parte deles. Um WorkflowProcess é composto de elementos do tipo Activity e Transition. Serve para definir os elementos que fazem parte do workflow. Contém informações contextuais de onde os processos podem tirar informações de administração como, por exemplo, data de criação, autor, entre outros ou informações referentes ao fluxo, como prioridades, limites de tempo, etc.;

Activities (Atividades): é o bloco básico de construção de uma definição do processo de fluxo de trabalho. Elementos do tipo Activity são conectados através de elementos do tipo Transition. Existem três tipos de atividades: Route, Implementation, e BlockActivity. Uma Activity define as atividades que pertencem ao workflow. Uma atividade pode ser:

o Block of Activity (Bloco de Atividades): um container de atividades e transições. As transições devem se referir somente a atividades no mesmo contêiner e não podem existir transições para dentro ou para fora do bloco de atividades;

o Loop (Laço): uma atividade pode ser classificada como de loop, onde existe um controle de repetições dentro da definição do processo. Nesse caso, cada atividade de loop é conectada a uma entidade controladora de loop;

o Restrições de Transições: Join: descreve a semântica de uma atividade com várias

transições de entrada. Pode ser do tipo: “and” onde todas as atividades anteriores devem terminar para começar a próxima ou “xor” onde pelo menos uma das atividades anteriores deve terminar para começar a próxima;

Split: descreve a semântica da saída de uma atividade. Pode ser do tipo: “and” onde permite disparar várias atividades após o término da atividade atual ou “xor” onde permite disparar apenas uma atividade após o término da atividade atual.

o Rota: simplesmente suporta decisões de roteamento entre as transições. Não processa trabalho, não possui recursos e aplicações associadas.

Participants (Participantes): é usado para especificar os participantes de um fluxo de trabalho, por exemplo, as entidades que podem executar trabalho. Existem seis tipos de participantes: ResourceSet, Resource, Role, OrganizationalUnit, Human, e System. Ele descreve quem pode agir em uma determinada atividade do workflow. Pode se referir a uma única pessoa ou a um grupo de pessoas que possuem responsabilidade de decidir sobre aquela atividade. Pode-se determinar um participante como um recurso (usuário/ator) e/ou uma aplicação computacional;

Application (Aplicação): é usado para especificar a aplicação/ferramenta chamada por um fluxo de trabalho do processo definido em um pacote. Possui informações e faz referência a aplicativos externos do workflow;

Page 8: Padrão Workflow XPDL

Transition (Transição): descreve o fluxo entre as atividades e as condições desses fluxos durante a execução do workflow;

DataFields (Dados relevantes): Elementos do tipo DataField e DataType são usados para especificar os dados relevantes do fluxo de trabalho. Os dados são usados para tomada de decisão ou para referenciar dados fora do fluxo de trabalho, e são transmitidos entre atividades e subfluxos. Nesta entidade são declaradas as variáveis importantes para a utilização do fluxo do workflow.

NodeGraphicsInfo (Informações gráficas): é uma entidade opcional que pode ser usada por uma ferramenta para descrever informações gráficas.

Mapeamento entre BPMN e XPDL BPMN e XPDL descrevem estruturas de gráficos de fluxo e são bem

similares. De fato, o mapeamento entre BPMN e XPDL é bem mais direto que o mapeamento entre BPMN e BPEL ou BPML. Este mapeamento é exemplificado na Tabela 1. Como podemos observar, existe uma correspondência simples entre os elementos do BPMN e os elementos do XPDL.

Objeto gráfico BPMN Mapeando para XPDL

<xpdl:WorkflowProcesses>

<xpdl:Pools>

<xpdl:Pool >

<xpdl:Lanes>

<xpdl:Lane />

<xpdl:Lanes>

<xpdl:Pool >

<xpdl:Pools>

<xpdl:Activity >

<xpdl:Event>

<xpdl:StartEvent />

</xpdl:Event>

</xpdl:Activity >

<xpdl:Transitions>

<xpdl:Transition />

</xpdl:Transitions>

<xpdl:Activity />

Page 9: Padrão Workflow XPDL

<xpdl:Activity >

<xpdl:Implementation>

<xpdl:SubFlow/>

</xpdl:Implementation>

</xpdl:Activity >

<xpdl:Activity >

<xpdl:Route

GatewayType="Exclusive"/>

</xpdl:Activity>

<xpdl:Activity >

<xpdl:Event>

<xpdl:EndEvent />

</xpdl:Event>

</xpdl:Activity >

Tabela 1. Exemplos de mapeamento de BPMN para XPDL

Caso de uso Para exemplificar o mapeamento do BPMN para XPDL tomaremos como

exemplo o processo de uma criança realizar sua lição de casa conforme pode ser observado na Figura 3.

Figura 3. Exemplo de mapeamento de BPMN para XPDL

Na Figura 3 existem quatro “nós” no diagrama: nó inicial, nó atividade, nó decisão e nó final. No XPDL todos os nós são representados dentro da tag <Activities>. Cada Activity tem um nome e id o qual deve ser único. Este mapeamento pode ser observado na Listagem 1.

<xpdl:Activities>

<xpdl:Activity Id="1" Name="Início">

</xpdl:Activity>

<xpdl:Activity Id="2" Name="Fazer tarefa escolar">

</xpdl:Activity>

<xpdl:Activity Id="3" Name="Respostas estão corretas?" >

</xpdl:Activity>

<xpdl:Activity Id="4" Name="Fim" >

</xpdl:Activity>

</xpdl:Activities> Listagem 1. Exemplo de caso de uso

Page 10: Padrão Workflow XPDL

Já as setas são armazenadas dentro da tag <Transitions> e cada seta é representada em uma tag <Transition>. A primeira seta que liga o início até a atividade ficará como mostrado na Listagem 2.

<xpdl:Transitions>

<xpdl:Transition From="1" Id="t1" To="2">

<xpdl:ConnectorGraphicsInfos>

</xpdl:ConnectorGraphicsInfos>

</xpdl:Transition>

...

</xpdl:Transitions> Listagem 2. Exemplo de caso de uso – parte 2

Isto é fundamentalmente a parte mais importante de um arquivo XPDL, mas um arquivo XPDL tem uma série de outros metadados sobre Activities e Transictions. A título de curiosidade, a Listagem 3 apresenta uma Activity definida completamente.

<xpdl:Activity CompletionQuantity="1" Id=" 3" IsATransaction="false" IsForCompensation="false" Name="Respostas estão

corretas?" StartQuantity="1" Status="None">

<xpdl:Route ExclusiveType="Data" GatewayType="Exclusive" Instantiate="false" MarkerVisible="false"/>

<xpdl:TransitionRestrictions>

<xpdl:TransitionRestriction>

<xpdl:Join ExclusiveType="Data"/>

<xpdl:Split ExclusiveType="Data" Type="Inclusive">

<xpdl:TransitionRefs>

<xpdl:TransitionRef Id="t4"/>

<xpdl:TransitionRef Id="t3"/>

</xpdl:TransitionRefs>

</xpdl:Split>

</xpdl:TransitionRestriction>

</xpdl:TransitionRestrictions>

<xpdl:NodeGraphicsInfos>

<xpdl:NodeGraphicsInfo BorderColor="#000000" FillColor="#FF9999" Height="60" IsVisible="true"

LaneId="L1" Shape="dataBasedExclusiveGateway" ToolId=" Width="60">

<xpdl:Coordinates XCoordinate="397.0" YCoordinate="56.0"/>

</xpdl:NodeGraphicsInfo>

</xpdl:NodeGraphicsInfos>

</xpdl:Activity> Listagem 3. Exemplo de caso de uso – parte 3

Ferramentas Existem diversas ferramentas no mercado que dão suporte ao XPDL. Na

Tabela 2 podemos observar algumas delas.

Ferramenta

Bonita Studio

• http://www.bonitasoft.com/ • Import – Suporta xpdl 1.0

• Export – Não suporta

• Open Source

BizAgi

• http://www.bizagi.com

• Import – suporta xpdl 2.1

• Export – suporta xpdl 2.1

Together Workflow Editor • http://www.together.at

• Import – suporta xpdl 2.1

Page 11: Padrão Workflow XPDL

• Export – suporta xpdl 2.1

• Também conhecida como Enhydra

JaWE.

• Open Source.

YXE - Yaoqiang XPDL Editor

• http://yxe.sourceforge.net/

• Import – suporta xpdl 2.1

• Export – suporta xpdl 2.1

• Open Source.

• Baseado no JaWE.

JPEd - JaWE based process editor

• http://www.jped.org/

• Import – suporta xpdl 2.1

• Export – suporta xpdl 2.1

• Open Source.

Tabela 2. Exemplo de ferramentas que suportam XPDL

Conclusão A linguagem XPDL é útil para se utilizar como linguagem comum de

importação/exportação de processos entre diferentes ferramentas de modelagem que utilizam BPMN como notação para modelagem de processos. O ponto fraco da linguagem é que ela se limita a dar suporte exclusivamente à notação BPMN. A idéia de se ter uma linguagem comum para intercâmbio de definições de processos é muito boa, mas na prática esbarra nos interesses comerciais dos fabricantes das ferramentas, que na maioria das vezes querem que seus clientes fiquem dependentes de seus produtos.

Referências SHAPIRO, Robert M. XPDL 2.1 Integrating Process Interchange & BPMN.

Workflow Management Coalition. January 2008.

SHAPIRO, Robert M; GAGNE, Denis. What is new in XPDL. XPDL4BPMN User Group. 2011.

XPDL Developer center. Disponível em <http://www.wfmc.org/xpdl-developers-center.html>. Último acesso: 30 de março de 2011a.

XPDL Support and Resources. Disponível em <http://www.wfmc.org/xpdl.html>. Último acesso: 30 de março de 2011b.

WFMC (Workflow Management Coalition). Process Definition Interface - XML Process Definition Language. Workflow Standard. 2008.

HORNUNG, Thomas; KOSCHMIDER, Agnes; MENDLING, Jan. Integration of heterogeneous BPM Schemas: The Case of XPDL and BPEL. 2006.

AALST, Wil. Patterns and XPDL: A Critical Evaluation of the XML Process Definition Language. QUT Technical report, FIT-TR-2003-06, Queensland University of Technology, Brisbane, 2003.

BITENCOURT, Maurício. Modelagem de Processos com BPMN. Disponível em <http://www.baguete.com.br/artigos/270/mauricio- bitencourt/19/07/2007/modelagem-de-processos-com-bpmn>. Último acesso: 21 de maio de 2011.

Page 12: Padrão Workflow XPDL

TELECKEN, Tiago Lopes. Um estudo sobre modelos conceituais para ferramentas de definição de processos de Workflow. Porto Alegre, 118 f.. Disponível em: <http://www.inf.ufrgs.br/~telecken/aw/dis.pdf>. Último acesso: 22 de maio de 2011.

Livro “Good to Great: Why some companies make the leap... and others don’t” - ISSBN 9780066620992 - Link do livro na Amazon: http://amzn.to/48NA0

Livro “Business Process Management: Pratical guidelines to successful implementations” – ISSBN 9780750686563 – Link do livro na Amazon: http://amzn.to/huu5qb

Link para o site oficial da notação BPMN: http://www.bpmn.org/

Blog “O BPM que faço hoje... é realmente BPM?”: http://bit.ly/hwUCXo

Blog “Introdução ao Progress Savvion BPM” : http://bit.ly/h1qGN7

Progress Savvion BPM: http://web.progress.com/en/savvion/savvion-businessmanager.html

Saiba mais Engenharia de Software Magazine 19 - Arquitetura Orientada a Serviços www.devmedia.com.br/post-15149-Artigo-Engenharia-de-Software-19-Arquitetura-Orientada-a-Servicos.html Engenharia de Software Magazine 35 - Otimização de Processos de Negócio usando BPM – Parte 1 www.devmedia.com.br/post-20443-Otimizacao-de-Processos-de-Negocio-usando-BPM-Parte-1-Engenharia-de-Software-35.html Engenharia de Software Magazine 36 - Otimização de Processos de Negócio usando BPM – Parte 2 www.devmedia.com.br/post-21101-Otimizacao-de-Processos-de-Negocio-usando-BPM-Parte-2-Artigo-Revista-Engenharia-de-Software-Magazine-36.html Engenharia de Software Magazine 38 - Modelagem de processos usando ARIS www.devmedia.com.br/post-21663-Modelagem-de-processos-usando-ARIS--Artigo-Revista-Engenharia-de-Software-Magazine-38.html