Douglas Barbosa Alexandre Orientador: Prof. Dr. André Vital Saúde UFLA – Universidade Federal de...

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

Transcript of Douglas Barbosa Alexandre Orientador: Prof. Dr. André Vital Saúde UFLA – Universidade Federal de...

  • Slide 1
  • Douglas Barbosa Alexandre Orientador: Prof. Dr. Andr Vital Sade UFLA Universidade Federal de Lavras
  • Slide 2
  • Roteiro Motivao Problema Objetivos Conceitos Bsicos: Business Process Business Process Management Business Process Modeling Notation XML Process Definition Language Service-Oriented Architecture
  • Slide 3
  • Roteiro Metodologia: Identificao de Servios Vlidos em um Modelo de Processo de Negcio Gerao Automtica de Cdigo Redbox: Objetivo Arquitetura Estrutura do Modelo de Dados Identificao dos Servios Vlidos Gerao automtica de cdigo Extensibilidade Concluso
  • Slide 4
  • Motivao Grande 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.
  • Slide 5
  • Motivao Disponibilidade 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).
  • Slide 6
  • Motivao Com 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.
  • Slide 7
  • Problema Entender 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.
  • Slide 8
  • Objetivos Estudar 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;
  • Slide 9
  • Objetivos Estudo 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.
  • Slide 10
  • Conceitos Bsicos
  • Slide 11
  • Business 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;
  • Slide 12
  • Business Process Management BPM um conceito que une gesto de negcio e tecnologia da informao voltado 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.
  • Slide 13
  • Business Process Modeling Notation BPMN 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.
  • Slide 14
  • Business Process Modeling Notation
  • Slide 15
  • As quatro categorias bsicas em que os elementos da BPMN foram organizados so: Objetos de fluxo; Objetos de conexo; Raias; Artefatos.
  • Slide 16
  • Business Process Modeling Notation Objetos 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.
  • Slide 17
  • Business Process Modeling Notation Atividade: A atividade uma tarefa genrica executada pela organizao; Gateway: Gateways so usados como estruturas de controle na seqncia do fluxo.
  • Slide 18
  • Business Process Modeling Notation Objetos 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.
  • Slide 19
  • Business Process Modeling Notation Raias: 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.
  • Slide 20
  • Business Process Modeling Notation
  • Slide 21
  • Artefatos: 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.
  • Slide 22
  • Business Process Modeling Notation
  • Slide 23
  • XML Process Language Definition XPDL 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.
  • Slide 24
  • XML Process Language Definition Para 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.
  • Slide 25
  • XML Process Language Definition A 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.
  • Slide 26
  • XML Process Language Definition
  • Slide 27
  • Service-Oriented Architecture SOA 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.
  • Slide 28
  • Metodologia
  • Slide 29
  • Identificao 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.
  • Slide 30
  • 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.
  • Slide 31
  • 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).
  • Slide 32
  • 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).
  • Slide 33
  • 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.
  • Slide 34
  • 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.
  • Slide 35
  • Heurstica 2 Um servio deve ser identificado a partir de um requisito de negcio.
  • Slide 36
  • Heurstica 3 Um servio deve ser identificado a partir de um conjunto de atividades seqenciais.
  • Slide 37
  • Heurstica 4 Um 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.
  • Slide 38
  • Heurstica 4
  • Slide 39
  • Heurstica 5 Um 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.
  • Slide 40
  • Heurstica 5
  • Slide 41
  • Gerao Automtica de Cdigo Para 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.
  • Slide 42
  • Gerao Automtica de Cdigo Este 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.
  • Slide 43
  • Gerao Automtica de Cdigo
  • Slide 44
  • Redbox
  • Slide 45
  • Objetivo Preencher 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.
  • Slide 46
  • Arquitetura
  • Slide 47
  • Estrutura do Modelo de Dados Estrutura 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.
  • Slide 48
  • Estrutura do Modelo de Dados
  • Slide 49
  • Slide 50
  • Identificao dos Servios Vlidos O 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.
  • Slide 51
  • Identificao dos Servios Vlidos 1 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.
  • Slide 52
  • Identificao dos Servios Vlidos 2 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.
  • Slide 53
  • Identificao dos Servios Vlidos public 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.
  • Slide 54
  • Identificao dos Servios Vlidos public 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.
  • Slide 55
  • Identificao dos Servios Vlidos public 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.
  • Slide 56
  • Exemplo Atividade Inicial createService(...)createSimpleService(...)
  • Slide 57
  • Exemplo Atividade retornada createService(...) createExclusiveService(...) createService(...)createParallelService(...) createService(...)createSimpleService(...)
  • Slide 58
  • Exemplo Atividade retornada createService(...) createSimpleService(...)
  • Slide 59
  • Exemplo Atividade retornada
  • Slide 60
  • Exemplo
  • Slide 61
  • Slide 62
  • Atividade retornada createService(...)createSimpleService(...)
  • Slide 63
  • Exemplo Atividade retornada
  • Slide 64
  • Exemplo
  • Slide 65
  • Exemplo - Sada
  • Slide 66
  • Gerao Automtica de Cdigo
  • Slide 67
  • Exemplo - Sada
  • Slide 68
  • Extensibilidade Uma 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.
  • Slide 69
  • Extensibilidade Basta 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.
  • Slide 70
  • Concluso O 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.
  • Slide 71
  • Concluso Foi 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.
  • Slide 72
  • Concluso Grande 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.
  • Slide 73
  • Concluso O 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.