geração de código orientado a serviço a partir de modelos de processos de negócio

73
Geração de código orientado a serviço a partir de modelos de processos de negócio Douglas Barbosa Alexandre Orientador: Prof. Dr. André Vital Saúde UFLA – Universidade Federal de Lavras

Upload: deiondre

Post on 25-Feb-2016

23 views

Category:

Documents


0 download

DESCRIPTION

Geração de código orientado a serviço a partir de modelos de processos de negócio. Douglas Barbosa Alexandre Orientador: Prof. Dr. André Vital Saúde UFLA – Universidade Federal de Lavras. Roteiro. Motivação Problema Objetivos Conceitos Básicos: Business Process - PowerPoint PPT Presentation

TRANSCRIPT

Gerao de cdigo orientado a servio a partir de modelos de processos de negcio

Gerao de cdigo orientado a servio a partir de modelos de processos de negcioDouglas Barbosa Alexandre

Orientador: Prof. Dr. Andr Vital Sade

UFLA Universidade Federal de LavrasRoteiroMotivaoProblemaObjetivosConceitos Bsicos:Business Process Business Process ManagementBusiness Process Modeling NotationXML Process Definition LanguageService-Oriented ArchitectureRoteiroMetodologia:Identificao de Servios Vlidos em um Modelo de Processo de NegcioGerao Automtica de CdigoRedbox:Objetivo ArquiteturaEstrutura do Modelo de DadosIdentificao dos Servios VlidosGerao automtica de cdigoExtensibilidadeConclusoMotivaoGrande demanda por sistemas que sejam de fcil modelagem, implementao e manuteno.

Crescimento da importncia da modelagem de processos.Inserido no crescimento da Gesto de Processos de Negcio (BPM - Business Process Management).

Maior adoo da arquitetura orientada a servios (SOA Service-Oriented Architecture). Sendo esta uma inovao advinda de uma nova viso computacional, definindo novas regras para facilitar o desenvolvimento de aplicaes.

MotivaoDisponibilidade ao longo dos ltimos anos de tecnologias que formaram a base necessria para que o uso efetivo de BPM fosse possvel, a exemplo temos:

Business Process Modeling Notation (BPMN)XML Process Definition Language (XPDL)Service-Oriented Architecture (SOA).MotivaoCom isto de interesse que possamos unir estas tecnologias a fim de facilitar e agilizar o desenvolvimento de uma aplicao, utilizando para isto a gerao automtica de cdigo.

Para que seja possvel realizar a gerao de cdigo para desenvolver ou evoluir uma aplicao, iremos buscar as informaes necessrias nos modelos de processo de negcio j modelados atravs da notao BPMN.ProblemaEntender como identificar servios vlidos em um modelo de processo de negcio.

E a partir da identificao destes servios, como gerar o cdigo necessrio para implementao deste ou como associ-lo a um servio j disponvel.ObjetivosEstudar a arquitetura orientada a servio (SOA Service Oriented Architecture);

Estudar a notao Business Process Modeling Notation (BPMN);

Estudo das tcnicas para identificao de servios nos modelos de processo de negcio;

Estudo das ferramentas de modelagem BPMN, e como e at que ponto estas ferramentas geram cdigo em Java;ObjetivosEstudo da linguagem XML Process Definition Language (XPDL), afim de compreender como um processo de negcio descrito e como os servios podem ser identificados;

Estudo das tcnicas de gerao automtica de cdigo;

Desenvolver um gerador de cdigo orientado a servio em Java a partir dos servios identificados nos modelos de processos de negcio descritos em BPMN.

Conceitos BsicosBusiness Process uma seqncia de tarefas e atividades que envolvem pessoas e recursos para que se possa atingir um objetivo previamente traado. Uma vez que este objetivo foi alcanado, podemos dizer que processo est completo.

Como exemplo podemos citar:

Contratao de um empregado;Processamento de uma ordem de vendas;Reembolso de gastos por uma empresa;

A more complex business process can involve many people and activities across an organization.

Sometimes the main goal of a process cannot be achieved. For example, if a product is out of stock, a shippingclerk may need to cancel a sales order. For this reason, a business process must provide for outcomes otherthan the principal goal. For example, if the product is out of stock it may be possible to offer the client analternative that the client can then accept or reject. Thus, a process can have a range of possible outcomes.11Business Process ManagementBPM um conceito que une gestode negcio e tecnologia da informaovoltado melhoria dos processos de negcio das organizaes atravs do uso de mtodos, tcnicas e ferramentas para modelar, publicar, controlar e analisar processos operacionais envolvendo pessoas, aplicaes, documentos e outras fontes de informao.

No requer SOA, mas ao se utilizar SOA simplifica muito as implementaes BPM.Business Process Modeling NotationBPMN uma notao grfica que descreve a lgica e as etapas de um processo de negcio.

BPMN independente de qualquer metodologia para modelagem de processos.

BPMN um padro aceito internacionalmente.

BPMN permite a especificao dos fluxos num nvel de detalhamento prximo da complexidade de um ambiente real.Business Process Modeling Notation

Business Process Modeling NotationAs quatro categorias bsicas em que os elementos da BPMN foram organizados so:

Objetos de fluxo;Objetos de conexo;Raias;Artefatos.

Business Process Modeling NotationObjetos de fluxo: So os principais elementos grficos para definir o comportamento de um processo de negcio.

Evento: representado por um crculo e algo que ocorre no decorrer do processo de negcio.

Business Process Modeling NotationAtividade: A atividade uma tarefa genrica executada pela organizao;

Gateway: Gateways so usados como estruturas de controle na seqncia do fluxo.

17

Business Process Modeling NotationObjetos de conexo: Os objetos de conexo conectam eventos, atividades e gateways definindo a estrutura bsica de um processo de negcio.

Fluxo de Seqncia: utilizado para mostrar a ordem que as atividades sero executadas no fluxo.Fluxo de Mensagem: utilizado para mostrar o trfego de mensagens entre as entidades do negcio.Associao: Uma associao conecta informao adicional aos elementos bsicos.

Business Process Modeling NotationRaias: So utilizadas para agrupar os elementos de modelagem, possibilitando a organizao das atividades em categorias.

Piscinas: Uma piscina um continer que agrupa um conjunto de atividades de uma organizao.Pistas: Para decompor uma organizao em unidades especficas divide-se longitudinalmente o interior da piscina por meio de pistas.

Business Process Modeling Notation

Business Process Modeling NotationArtefatos: Artefatos so utilizados para agregar informaes ao modelo permitindo uma maior flexibilizao da notao.

Objetos de dados: So mecanismos utilizados para mostrar como dados so produzidos, ou requeridos pelas atividades. Anotao: utilizada para fornecer um texto com informaes adicionais para quem estiver lendo o diagrama.Grupo: Grupos so utilizados para documentao e no afetam o fluxo do negcio.Business Process Modeling Notation

XML Process Language DefinitionXPDL uma linguagem quem tem como objetivo estabelecer um modelo para intercmbio de processos de negcio entre as diversas ferramentas de modelagem existentes

XPDL um padro aceito internacionalmente.

Sua especificao totalmente compatvel com o padro BPMN.XML Process Language DefinitionPara os criadores do XPDL, o BPMN o padro ideal para modelar o processo em nvel visual e o XPDL para definir suas regras em nvel tcnico.

Os elementos da notao BPMN (Atividades, Transies, Artefatos, Mensagens de Fluxo, Associaes entre outros) podem ser encontradas na sintaxe do XPDL sendo que para cada elemento existe um cdigo apropriado.XML Process Language DefinitionA principal diferena conceitual entre o padro BPMN e o XPDL referente ao conceito de atividade.

Este conceito no XPDL utilizado para modelar diversos elementos da notao BPMN entre eles:Tarefas; Subprocesso; Gateway;Eventos.XML Process Language Definition

26Service-Oriented ArchitectureSOA um conjunto de prticas de organizao de sistemas de TI que permitem grande agilidade no atendimento das demandas geradas pelo negcio, reduzindo custos e tornando a rea de TI mais dinmica.

A agilidade resultado de um processo simplificado para criao de novas funcionalidades, atravs da: Integrao de sistemas;Reaproveitamento em larga escala de cdigo;Possibilidade de intercambiar funcionalidades entre os diversos setores da empresa.MetodologiaIdentificao de Servios Vlidos em um Modelo de Processo de Negcio:Utilizou-se como base a etapa de identificao e classificao dos servios candidatos da tcnica proposta por Azevedo et al (2009) com algumas excees.

Nesta etapa as atividades devem ser analisadas dentro dos seus contextos nos modelos de processos, segundo um conjunto de heursticas que levam em considerao:a semntica da atividade (regras de negcio, requisitos de negcio );quanto estrutura do fluxo de atividades (padres de workflow);e tambm a presena de fluxos recorrentes.Identificao de Servios Vlidos em um Modelo de Processo de Negcio:Servios em uma arquitetura orientada a servios esto diretamente associados implementao de regras de negcio e requisitos de negcio. (Azevedo et al, 2009).

A automatizao de uma atividade associada a uma regra de negcio se refere implementao desta regra em aplicaes ou em bancos de dados.J os requisitos de negcio so analisados por descreverem funcionalidades que devem estar (ou j se encontram) implementadas em aplicaes, sendo potenciais definidores de servios.Identificao de Servios Vlidos em um Modelo de Processo de Negcio:Um padro de workflow uma abstrao de uma forma concreta que se mantm repetitiva em contextos especficos (Van der Aalst e Ter Hofstede, 2002).

Os servios identificados a partir destes padres so responsveis por encapsular regras de negcio que determinam dependncia entre atividades, explicitando o fluxo dos processos (Azevedo et al, 2009).Identificao de Servios Vlidos em um Modelo de Processo de Negcio:Excees aplicadas nesta etapa:

Anlise dos padres referentes aos fluxos recorrentes;Consolidao dos servios candidatos.

* Servios candidatos so abstraes de servios que, na fase de projeto, sero implementados como servios fsicos ou como funcionalidades de aplicaes (Azevedo et al, 2009).Identificao de Servios Vlidos em um Modelo de Processo de Negcio:Dentre as nove heursticas propostas por Azevedo et al (2009):

Quatro foram implementadas diretamente neste trabalho;Uma no caso, a heurstica nmero um, foi implementada, mas sofreu algumas mudanas na sua implementao;As outras quatro heursticas foram descartadas e no foram implementadas neste trabalho.Heurstica 1 (Exceo)Um servio deve ser identificado a partir de uma regra de negcio.

A notao BPMN no possui um elemento que define explicitamente uma regra de negcio.Regras de negcio so declaradas em gateways que ficam responsveis por realizar a o controle do fluxo do processo.Devido a este fato a soluo proposta neste trabalho traz o gateway para dentro do servio que ficar responsvel por represent-lo como um todo.A regra de negcio dever ser implementada manualmente no servio, no corpo do mtodo gerado especificamente para este propsito devido a falta de informaes presentes no modelo de processo de negcio.Heurstica 2Um servio deve ser identificado a partir de um requisito de negcio.

Heurstica 3Um servio deve ser identificado a partir de um conjunto de atividades seqenciais.

Heurstica 4Um servio deve ser identificado a partir de um gateway paralelo onde o fluxo de controle simples divide-se em fluxos de controle mltiplos, que podem ser executados em paralelo, e finalizado em um ponto no processo onde os mltiplos fluxos que esto sendo executados em paralelo convergem em um nico fluxo de controle simples novamente, ou onde as transies terminem em evento final.Heurstica 4

Heurstica 5Um servio deve ser identificado a partir de um gateway exclusivo onde, baseado em uma deciso, uma, e somente uma, das vrias transies do fluxo escolhida, e finalizada em um ponto no processo onde as transies do fluxo se juntem em um nico fluxo de controle simples novamente ou quando uma ou mais das transies termina em evento final.

Heurstica 5

Gerao Automtica de CdigoPara a implementao do gerador de cdigo foi utilizada a tcnica de transformaes baseadas em modelos.

Esta tcnica est presente em diversas partes no mundo de desenvolvimento de software desde visualizao de dados gerao automtica de cdigo.

Vantagem: as entidades geradas podem ser alteradas sem precisar que nenhuma alterao seja realizada na aplicao que executa a transformao.Gerao Automtica de CdigoEste modelo composto de quatro componentes:

Modelo de dados: Contm os dados que devem ser transformados. Estes dados devem estar organizados em uma estrutura especfica.Modelo: Formata o modelo de dados para o cdigo de sada. Contm referncias a entidades pertencentes ao modelo de dados.Motor: A aplicao que realiza a transformao propriamente dita. Tem como entrada o modelo de dados e o modelo que deve ser aplicado, a sada gerada substituindo s referncias internas do modelo com dados reais provenientes do modelo de dados. Sada: O resultado do processo de transformao.

Gerao Automtica de Cdigo

RedboxObjetivoPreencher a lacuna existente atualmente no mercado;

Diminuir a carga de trabalho sobre o analista SOA;

Implementar um mtodo automtico e de fcil extenso para identificao de servios baseado nos modelos de processo de negcio que utilizam a notao BPMN em sua modelagem;

Gerar todo o cdigo necessrio a partir de transformaes baseadas em modelos para implementar estes servios ou delegar a sua execuo a servios j implementados pela organizao seguindo o padro de arquitetura SOA.Arquitetura

Estrutura do Modelo de DadosEstrutura em rvore onde cada elemento desta rvore representa um servio identificado;

Os elementos desta rvore so do tipo abstrato ServiceDescriptor o qual pode referenciar um dos quatro tipos de servios abaixo que o herdam:

SimpleServiceDescriptor;BundledServicesDescriptor;ExclusiveServiceDescriptor;ParallelServiceDescriptor.Estrutura do Modelo de Dados

Estrutura do Modelo de Dados

Identificao dos Servios VlidosO algoritmo implementado neste trabalho dividido em 5 mtodos:

public List findServices():

Mtodo responsvel por percorrer todos os processos que esto presentes no arquivo XPDL e para cada processo a partir da atividade inicial identificar e criar os servios necessrios para que seja possvel represent-lo como um todo.

importante ressaltar duas etapas muito importantes que ocorrem dentro deste mtodo.Identificao dos Servios Vlidos1 Etapa: A partir da atividade inicial enquanto houver mais atividades no processo, criar um novo servio a partir do tipo da atividade informada associando-o a lista de servios do processo e retornando para este mtodo a prxima atividade aps o servio criado.

Identificao dos Servios Vlidos2 Etapa: Aps ser realizada a identificao e o agrupamento da primeira etapa, na lista de servios para o processo em questo encontram-se apenas servios simples que devem ser agrupados de forma linear para representar processo como um todo.

Identificao dos Servios Vlidospublic Element createService(Element workflowProcess, Element activity, List services)

Mtodo responsvel por criar um novo servio a partir da atividade informada adicionando este novo servio a lista de servios informada e retornando para o mtodo que o chamou a prxima atividade aps este novo servio criado.

Para isto o mtodo identifica qual o tipo de atividade e chama o mtodo que trata este tipo de atividade em especfico, ou seja, o mtodo que ser responsvel por aplicar a heurstica que ir criar o servio.Identificao dos Servios Vlidospublic Element createExclusiveService(Element workflowProcess, Element activity, List services)

Mtodo responsvel por tratar as heursticas que envolvem o padro de workflow XOR.

public Element createParallelService(Element workflowProcess, Element activity, List services)

Mtodo responsvel por tratar as heursticas que envolvem o padro de workflow AND.Identificao dos Servios Vlidospublic Element createSimpleService(Element workflowProcess, Element activity, List services)

Mtodo responsvel por criar o servio mais simples possvel, ou seja, o servio que ir representar cada atividade do modelo de processo de negcio.

importante observar que este mtodo responsvel por verificar se a atividade informada possui o atributo estendido Service, que diz que o servio que implementa esta atividade j foi desenvolvido pela organizao, se este atributo existir ele dever ser chamado pelo servio recm-criado para que esta atividade possa ser executada.Exemplo

Atividade InicialcreateService(...)createSimpleService(...)Exemplo

Atividade retornadacreateService(...)createExclusiveService(...)createService(...)createParallelService(...)createService(...)createSimpleService(...)Exemplo

Atividade retornadacreateService(...)createSimpleService(...)Exemplo

Atividade retornadaExemplo

Exemplo

ExemploAtividade retornadacreateService(...)createSimpleService(...)

ExemploAtividade retornadaExemplo

Exemplo - Sada

Gerao Automtica de Cdigo

Exemplo - Sada

ExtensibilidadeUma das caractersticas principais do Redbox que ele no se limita as heursticas que foram implementadas neste trabalho;

Devido a sua arquitetura simples e de fcil entendimento ele se tornou uma ferramenta facilmente extensvel.

Novas heursticas, para tratar diferentes padres de workflow, podem ser facilmente incorporadas ferramenta.ExtensibilidadeBasta que o mtodo que identifica qual heurstica deve ser aplicada seja alterado para que ele consiga identificar este novo padro e encaminhar a atividade para o mtodo que ir implementar a heurstica em si.

Estendendo desta forma as capacidades da soluo proposta de identificar novos servios bem como analisar modelos de processos de negcio mais complexos.ConclusoO presente trabalho apresentou uma ferramenta capaz de identificar servios em um modelo de processo de negcio que utiliza a notao Business Process Modeling Notation (BPMN)

Bem como a gerao de todo o cdigo em uma arquitetura orientada a servio para dar o suporte necessrio para que a aplicao descrita neste modelo possa ser executada.

Permitindo com isto que as mudanas e melhorias que se faam necessrias nestes modelos sejam rapidamente refletidas nas aplicaes que do todo o suporte aos negcios da empresa, contribuindo assim para que a mesma alcance os seus objetivos.ConclusoFoi realizado um estudo sobre a BPMN e heursticas capazes de identificar servios nestes diagramas atravs da aplicao de padres de workflow.

Com base nestas informaes foi criado um modelo de gerao de cdigo baseado na XML Process Definition Language (XPDL).

Na implementao deste modelo foi utilizado o engine Velocity que permitiu que toda a gerao de cdigo fosse realizada a partir de transformaes baseadas em modelo, tornando assim o cdigo gerado totalmente adaptvel.ConclusoGrande nmero de heursticas poderiam ser implementadas para tratar as mais diversas situaes que podem estar presentes em um modelo de processo de negcio.

Decidiu-se ento que a ferramenta gerada fosse simples, poderosa, mas ao mesmo tempo extensvel, possibilitando assim que novas heursticas fossem facilmente adicionadas ao ncleo da ferramenta.ConclusoO resultado final foi uma ferramenta facilmente extensvel, que permitir que novos padres de workflow sejam rapidamente incorporados aumentando assim a capacidade de identificar servios em modelos de processo de negcio mais complexos.

Como sugesto para trabalhos futuros temos: implementar os demais padres de worflow, realizar a integrao com os diversos Business Process Management Systems (BPMS) presentes no mercado e implementar o processo de gerenciamento dos servios gerados pela ferramenta.