Вы находитесь на странице: 1из 12

XPDL - Uma linguagem para intercmbio de definies de processos

Andr de Jesus Silva andre.jesus@ufv.br Bacharel em Cincia da Computao na Universidade Federal de Viosa. Atualmente cursa mestrado em Cincia da Computao na Universidade Federal de Viosa. Atua na rea de Cincia da Computao, com nfase em Engenharia de Software e Sistemas de Informao Geogrfica. reas de Interesse: Arquitetura de Software, Processos de Desenvolvimento de Software, Sistemas de Apoio a Deciso, Sistemas de Informao, Geoprocessamento.

Asher Lionel Coelho asher.coelho@gmail.com Bacharel em Cincia da Computao na Universidade Federal de Viosa. Atualmente cursa mestrado em Cincia da Computao na Universidade Federal de Viosa. Atua na rea de Cincia da Computao, com nfase em Computao Mvel. reas de Interesse: Redes de Sensores sem Fio, Roteamento e Posicionamento, Engenharia de Software.

Jos Luis Braga zeluis@dpi.ufv.br Ps-doutoramento em Tecnologias da Informao na University of Florida. Doutor em Informtica - Departamento de Informtica da PUC-Rio. Mestre em Cincias da

Computao - Departamento de Cincia da Computao da UFMG. Atualmente Professor Titular do Departamento de Informtica do Centro de Cincias Exatas e Tecnolgicas da Universidade Federal de Viosa-MG. Atua na rea de Cincia da Computao, com nfase em Engenharia de Software e Sistemas de Informao. 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 Deciso.

De que se trata o artigo: O presente artigo tem como objetivo fornecer uma viso geral da linguagem XPDL (XML Process Definition Language), uma ferramenta poderosa para definio de processos que tambm usada como um formato padro para intercambio destas definies entre diferentes ferramentas de modelagem de processos. Em que situao o tema til: A linguagem XPDL (XML Process Definition Language) pode ser utilizada em vrios casos, dentre eles: desenvolvimento de uma ferramenta para modelagem de processos que suporte um linguagem padronizada de importao/exportao e armazenamento de processos; descrio de processos; exportao de diagramas que estejam na notao BPMN para XPDL; e intercmbio de definies 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 so utilizados softwares para o auxilio da modelagem destes processos, uma vez modelado o processo em uma ferramenta cria-se uma dependncia muito grande dela, porque na maioria das vezes os processos so salvos em um formato proprietrio. O XPDL (XML Process Definition Language) vem como um formato padro para definio 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 execuo, simulao ou monitoramento de processos.

Tecnicamente, um processo de negcio nada mais do que um conjunto de etapas que uma rea de negcio desempenha para criar valor aos seus clientes e tambm prpria organizao. Um processo de negcio composto de trs elementos bsicos: Entradas: Elas iniciam o processo. Por exemplo, se voc est produzindo uma bicicleta, as entradas para esse processo sero os pneus, as rodas, as porcas, parafusos, correntes, etc. Atividades: Elas transformam as entradas em sadas. No exemplo da bicicleta, atividades incluem a montagem do pedal, a insero das rodas e o ajuste das engrenagens. Um conjunto de atividades dentro de um processo tambm conhecido como fluxo do processo. Sadas: Tambm conhecidos como resultados ou entregveis. Uma sada o produto final gerado pela execuo de todas as atividades do processo. Neste exemplo, a bicicleta concluda. Processos so simples de entender quando voc considera coisas fsicas como bicicletas. Mas processos existem em todas as organizaes, no somente naquelas que criam coisas fsicas. Por exemplo, numa companhia que prov consultoria em gesto de recursos humanos, existiro entradas (tal como o conhecimento do consultor), atividades (por exemplo, a conduo de uma pesquisa de satisfao dos funcionrios para avaliao da organizao do cliente) e sadas (tal como o plano de iniciativa de mudana cultural no cliente). Em resumo, processos de negcio so constitudos de todas as atividades que a sua organizao est engajada com o intuito de cumprir os objetivos de negcio traados por ela. Processos determinam a eficcia e a eficincia das operaes da sua organizao, a qualidade que os seus clientes experimentam, e tambm, o sucesso financeiro da sua organizao. Toda organizao contm um grande nmero de processos de negcio. Alguns destes processos so realizados num nico departamento, como a entrada de um pedido de compra de um cliente no computador. Outros so processos mais complexos implementados em toda a organizao, extrapolando vrias fronteiras departamentais, como por exemplo, o desenvolvimento de um produto de sucesso no mercado. O maior dos problemas com processos de negcio a falta de cincia 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 organizao, bem como quais so os resultados esperados. Sem isso, sem a falta de compromisso com os objetivos da organizao, processos iro continuamente falhar, mesmo que voc troque os recursos ou implemente-o sob uma nova tecnologia. Atravs da compreenso das falhas do processo e da conscientizao dos envolvidos da importncia deles, voc e o seu time podem corrigir estas falhas e garantir os resultados esperados pela sua organizao. A gerao de valor com processos de negcio comea quando estes esto formalmente documentados e quando os envolvidos sabem exatamente do valor destes processos para a organizao. Podemos dizer

que estas so as pr-condies para qualquer iniciativa de otimizao de um processo de negcio. Diferentes ferramentas podem ser usadas para analisar, modelar, descrever e documentar um processo de negcio. Neste contexto, uma interface de definio de processo define um formato comum de troca, o qual suporta a transferncia de definies de processo entre produtos distintos. Uma interface tambm define uma separao formal entre o desenvolvimento e execuo, permitindo a definio do processo gerado por uma ferramenta de modelagem, para ser usado como entrada para diferentes produtos. Assim, a definio do processo gerado por uma ferramenta pode ser interpretada em diferentes produtos. Definies dos processos transferidos entre esses produtos ou armazenados em um repositrio separado so acessveis atravs do formato de intercmbio XPDL (XML Process Definition Language) comum. A Figura 1 mostra um modelo de como feito o intercmbio de definies de processos entre diferentes ferramentas usando XPDL.

Figura 1. Esquema do intercmbio de definio de processos entre diferentes ferramentas. (WFMC, 2008)

Como pode ser observado, para fornecer um mtodo comum para acessar e descrever as definies de processos, foi estabelecido um modelo de meta-

dados para definio de processos. Este modelo de meta-dados identifica entidades comumente usadas dentro de uma definio de processo. Uma variedade de atributos descrevem as caractersticas deste conjunto limitado de entidades. Com base neste modelo, as ferramentas de um fornecedor podem transferir modelos atravs de um formato comum de troca. Um dos elementos-chave do XPDL sua extensibilidade para lidar com informaes utilizadas por uma variedade de diferentes ferramentas. Isto importante por que o XPDL pode nunca ser capaz de suportar todos os requisitos de informao adicional em todas as ferramentas. Dessa forma, com base em um nmero limitado de entidades que descrevem uma definio de processo, XPDL suporta um nmero de diferentes abordagens. Um dos elementos mais importantes do XPDL um construtor genrico que suporta atributos especficos de um fornecedor para uso dentro de uma representao comum. O XPDL extensvel, permitindo que cada ferramenta diferente armazene informaes de implementao especficas dentro do XPDL, e ter esses valores preservados mesmo quando forem manipulados por ferramentas que no suportam essas extenses. Isto a nica maneira de permitir um passeio entre mltiplas ferramentas e mesmo assim voltar a ferramenta original com completa fidelidade.

Histrico do XPDL
Os conceitos que fundamentaram o XPDL (XML Process Definition Language) foram formulados por indivduos 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 glossrio que depois orientou a especificao de interfaces para vrios aspectos do problema como um todo. A troca de definies de processos entre diferentes ferramentas de diferentes fornecedores foi considerada como uma parte essencial para a criao da primeira verso 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 definio de formatos de documentos para a Internet, combinados com alguns anos de experincia acumulada usando WPDL em ferramentas de workflow e BPM (Business Process Modeling), foi possvel a criao do XPDL 1.0, o qual foi oficialmente lanado em outubro de 2002. O XPDL manteve a semntica do WPDL, mas definiu uma nova sintaxe usando um esquema XML. WPDL ou XPDL 1.0 no propuseram uma representao grfica especfica. Em sua nova verso 2.0, o XPDL foi estendido para adicionalmente servir como um formato de troca para o BPMN. Este realinhamento foi motivado por negociaes de fuso entre a Workflow Management Coalition (WfMC) e Business Process Management Initiative (BPMI) . Como consequncia, a verso do XPDL inclui novos conceitos adaptados do BPMN incluindo, por exemplo, Pools, Gateways, ou Events.

A Figura 2 exibe o histrico de lanamento das verses do XPDL. Note que a partir da verso 2.0 do XPDL ele passa a dar suporte notao BPMN.

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

XML Process Definition Language


A especificao do XPDL usa XML como mecanismo de intercmbio de definio de processos. O XPDL forma uma norma de intercmbio comum que permite aos produtos suportar representaes arbitrrias de definies de processos. Assim, o XPDL usa uma sintaxe baseada em XML, especificado por um esquema XML. uma linguagem para modelagem, anlise e documentao de processos de negcio e contem a descrio 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 representaes prprias e leiam esse processo achando to semelhante quanto possvel.

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 nmero de definies de processos individuais e associar dados de entidade, o qual aplicado a todas as definies 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 definio de processo;

WorkflowProcess (Processo de Negcio): 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. Contm informaes contextuais de onde os processos podem tirar informaes de administrao como, por exemplo, data de criao, autor, entre outros ou informaes referentes ao fluxo, como prioridades, limites de tempo, etc.; Activities (Atividades): o bloco bsico de construo de uma definio do processo de fluxo de trabalho. Elementos do tipo Activity so conectados atravs de elementos do tipo Transition. Existem trs 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 transies. As transies devem se referir somente a atividades no mesmo continer e no podem existir transies para dentro ou para fora do bloco de atividades; o Loop (Lao): uma atividade pode ser classificada como de loop, onde existe um controle de repeties dentro da definio do processo. Nesse caso, cada atividade de loop conectada a uma entidade controladora de loop; o Restries de Transies: Join: descreve a semntica de uma atividade com vrias transies de entrada. Pode ser do tipo: and onde todas as atividades anteriores devem terminar para comear a prxima ou xor onde pelo menos uma das atividades anteriores deve terminar para comear a prxima; Split: descreve a semntica da sada de uma atividade. Pode ser do tipo: and onde permite disparar vrias atividades aps o trmino da atividade atual ou xor onde permite disparar apenas uma atividade aps o trmino da atividade atual. o Rota: simplesmente suporta decises de roteamento entre as transies. No processa trabalho, no possui recursos e aplicaes 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 (usurio/ator) e/ou uma aplicao computacional; Application (Aplicao): usado para especificar a aplicao/ferramenta chamada por um fluxo de trabalho do processo definido em um pacote. Possui informaes e faz referncia a aplicativos externos do workflow;

Transition (Transio): descreve o fluxo entre as atividades e as condies desses fluxos durante a execuo do workflow; DataFields (Dados relevantes): Elementos do tipo DataField e DataType so usados para especificar os dados relevantes do fluxo de trabalho. Os dados so usados para tomada de deciso ou para referenciar dados fora do fluxo de trabalho, e so transmitidos entre atividades e subfluxos. Nesta entidade so declaradas as variveis importantes para a utilizao do fluxo do workflow. NodeGraphicsInfo (Informaes grficas): uma entidade opcional que pode ser usada por uma ferramenta para descrever informaes grficas.

Mapeamento entre BPMN e XPDL


BPMN e XPDL descrevem estruturas de grficos de fluxo e so 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 correspondncia simples entre os elementos do BPMN e os elementos do XPDL. Objeto grfico 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 />

<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 criana realizar sua lio de casa conforme pode ser observado na Figura 3.

Figura 3. Exemplo de mapeamento de BPMN para XPDL

Na Figura 3 existem quatro ns no diagrama: n inicial, n atividade, n deciso e n final. No XPDL todos os ns so 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="Incio"> </xpdl:Activity> <xpdl:Activity Id="2" Name="Fazer tarefa escolar"> </xpdl:Activity> <xpdl:Activity Id="3" Name="Respostas esto corretas?" > </xpdl:Activity> <xpdl:Activity Id="4" Name="Fim" > </xpdl:Activity> </xpdl:Activities>

Listagem 1. Exemplo de caso de uso

J as setas so armazenadas dentro da tag <Transitions> e cada seta representada em uma tag <Transition>. A primeira seta que liga o incio 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 srie de outros metadados sobre Activities e Transictions. A ttulo de curiosidade, a Listagem 3 apresenta uma Activity definida completamente.

<xpdl:Activity CompletionQuantity="1" Id=" 3" IsATransaction="false" IsForCompensation="false" Name="Respostas esto 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 do suporte ao XPDL. Na Tabela 2 podemos observar algumas delas.
Ferramenta Bonita Studio http://www.bonitasoft.com/ Import Suporta xpdl 1.0 Export No suporta Open Source http://www.bizagi.com Import suporta xpdl 2.1 Export suporta xpdl 2.1 http://www.together.at Import suporta xpdl 2.1

BizAgi

Together Workflow Editor

YXE - Yaoqiang XPDL Editor

Export suporta xpdl 2.1 Tambm conhecida como Enhydra JaWE. Open Source. http://yxe.sourceforge.net/ Import suporta xpdl 2.1 Export suporta xpdl 2.1 Open Source. Baseado no JaWE. http://www.jped.org/ Import suporta xpdl 2.1 Export suporta xpdl 2.1 Open Source.

JPEd - JaWE based process editor

Tabela 2. Exemplo de ferramentas que suportam XPDL

Concluso
A linguagem XPDL til para se utilizar como linguagem comum de importao/exportao de processos entre diferentes ferramentas de modelagem que utilizam BPMN como notao para modelagem de processos. O ponto fraco da linguagem que ela se limita a dar suporte exclusivamente notao BPMN. A idia de se ter uma linguagem comum para intercmbio de definies de processos muito boa, mas na prtica esbarra nos interesses comerciais dos fabricantes das ferramentas, que na maioria das vezes querem que seus clientes fiquem dependentes de seus produtos.

Referncias
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. Disponvel em <http://www.wfmc.org/xpdldevelopers-center.html>. ltimo acesso: 30 de maro de 2011a. XPDL Support and Resources. Disponvel em <http://www.wfmc.org/xpdl.html>. ltimo acesso: 30 de maro 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, Maurcio. Modelagem de Processos com BPMN. Disponvel em <http://www.baguete.com.br/artigos/270/mauriciobitencourt/19/07/2007/modelagem-de-processos-com-bpmn>. ltimo acesso: 21 de maio de 2011.

TELECKEN, Tiago Lopes. Um estudo sobre modelos conceituais para ferramentas de definio de processos de Workflow. Porto Alegre, 118 f.. Disponvel 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 dont - 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 notao BPMN: http://www.bpmn.org/ Blog O BPM que fao hoje... realmente BPM?: http://bit.ly/hwUCXo Blog Introduo ao Progress Savvion BPM : http://bit.ly/h1qGN7 Progress Savvion BPM: http://web.progress.com/en/savvion/savvionbusinessmanager.html

Saiba mais
Engenharia de Software Magazine 19 - Arquitetura Orientada a Servios www.devmedia.com.br/post-15149-Artigo-Engenharia-de-Software-19-Arquitetura-Orientada-aServicos.html Engenharia de Software Magazine 35 - Otimizao de Processos de Negcio usando BPM Parte 1 www.devmedia.com.br/post-20443-Otimizacao-de-Processos-de-Negocio-usando-BPM-Parte1-Engenharia-de-Software-35.html Engenharia de Software Magazine 36 - Otimizao de Processos de Negcio usando BPM Parte 2 www.devmedia.com.br/post-21101-Otimizacao-de-Processos-de-Negocio-usando-BPM-Parte2-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-RevistaEngenharia-de-Software-Magazine-38.html

Вам также может понравиться