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
73
Embed
Douglas Barbosa Alexandre Orientador: Prof. Dr. André Vital Saúde UFLA – Universidade Federal de Lavras.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.
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.