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

64
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

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 Metodologia Redbox Conclusão - PowerPoint PPT Presentation

Transcript of Geração de código orientado a serviço a partir de modelos de processos de negócio

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 BsicosMetodologiaRedboxConclusoReferncias Bibliogrficas

MotivaoGrande 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).Motivao 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 isto 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);

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.10Business Process ManagementBPM um conceito que une gestode negcio e tecnologia da informaovoltado melhoria dos processos de negcio das organizaes.

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

XML Process Language DefinitionXPDL uma linguagem que estabelece 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 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

17Service-Oriented ArchitectureConjunto 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:Excees aplicadas nesta etapa:

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

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 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 o controle do fluxo do processo.

Heurstica 1 (Exceo)Um servio deve ser identificado a partir de uma regra de negcio.

Nossa soluo 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.

Heurstica 5Um servio deve ser identificado a partir de um gateway exclusivo.

Gerao Automtica de CdigoNosso gerador de cdigo utiliza a tcnica de transformaes baseadas em modelos.

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

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

Identificao dos Servios VlidosO algoritmo implementado neste trabalho trabalha de maneira recursiva percorrendo todos os processos descritos no XPDL em duas etapas.Identificao dos Servios Vlidos1 Etapa: A partir da atividade inicial enquanto houver mais atividades no processo, crie 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 VlidosSe a atividade informada possui o atributo estendido Service, quer dizer que o servio que implementa esta atividade j foi desenvolvido pela organizao, e este servio gerado dever chamar o servio existente.

Caso contrrios, gerado um servio stub a ser completado pelo desenvolvedor.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

createService(...)createSimpleService(...)Exemplo

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

Atividade retornadaExemplo

Exemplo

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

Exemplo

55Exemplo - 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;

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 aplicar 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.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;Implementar o processo de gerenciamento dos servios gerados pela ferramenta.Referncias BibliogrficasAzevedo, L.G; Baio, F. A.; Santoro, F.; Souza, J.; Revoredo, K.; Pereira, V.; Erlain, I.. Identificao de Servios a partir da Modelagem de Processos de Negcio. V Simpsio Brasileiro de Sistemas de Informao, 2009

Chiavenato, I.. Manual de reengenharia: um guia para reinventar e humanizar a sua empresa com a ajuda das pessoas. Makron Books. So Paulo, 1995.

Van der Aalst, W. M. P., Ter Hofstede, A. H. M., Kiepuszewski, B., Barros, A. P.. Workflow patterns. Distributed and Parallel Databases, 2002. Disponvel em http://www.workflowpatterns.com/documentation/documents/wfs-pat-2002.pdf. Consultado em 03/04/2009.

WfMC. XPDL 2.1 - Integrating Process Interchange & BPMN, 2008. Disponvel em http://www.wfmc.org/index.php?option=com_docman&task=doc_details&gid=132&Itemid=72. Consultado em 13/05/2009.