Cordel: uma Ferramenta Orientada a Modelos para Gerac ¸ ˜ ao de Aplicac ¸ ˜ oes Web

Description
Cordel: uma Ferramenta Orientada a Modelos para Gerac ¸ ˜ ao de Aplicac ¸ ˜ oes Web

Please download to get full document.

View again

of 6
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Shakespeare

Publish on:

Views: 2 | Pages: 6

Extension: PDF | Download: 0

Share
Tags
Transcript
  Cordel: uma Ferramenta Orientada a Modelos para Gerac¸ ˜ aode Aplicac¸ ˜ oes Web Fab´ıola Greve 1 , Jo ˜ ao Gualberto Ara´ujo 1 , Eduardo Maciel 1 ,Kellyton Brito 1 , Lucas Rocha 1 , Sandro Andrade 1 e Vin´ıcius Pinheiro 11 Departamento de Ciˆencia da Computac¸˜aoUniversidade Federal da Bahia – Instituto de Matem´aticaAv. Adhemar de Barros, s/n, – 40170-110 Salvador, BA { fabiola, jgra, edufraga, kellyton, lucasr, sandros, vinnie } @ufba.br  Resumo.  A construc¸˜ ao de sistemas Web com base em tecnologias de objetosdistribu´ ıdos tem sido fortemente evidenciada como uma tend ˆ encia, pelo fatode adotar mecanismos que favorecem a construc¸˜ ao de aplicac¸˜ oes reutiliz´ aveis, flex´ ıveis e escal´ aveis. Entretanto, a adoc¸˜ ao de especificac¸˜ oes, tais como J2EE ou Corba, apresenta como consequˆ encia um maior esforc¸o no processo de de-senvolvimento, devido tanto `a maior necessidade de aprendizado da tecnologia,quanto `a maior quantidade do c´ odigo a ser escrito. A ferramenta  Cordel  , aquiapresentada, promove de forma flex´ ıvel a gerac¸˜ ao, compilac¸˜ ao e implantac¸˜ aoautom´ atica de sistemas Web a partir de modelos UML, seguindo especificac¸˜ oese tecnologias j´ a consolidadas. 1. Introduc¸ ˜ ao O desenvolvimento de aplicac¸˜oes baseadas em objetos distribu´ıdos, aliado ao uso depadr˜oes e especificac¸˜oes tais como J2EE [Sun, 2004] e Corba [OMG, 2002], ´e uma tendˆencia predominante quando busca-se benef´ıcios tais como reusabilidade, flexibili-dade e escalabilidade [Schmidt et al., 1998]. Com a adoc¸˜ao de uma arquitetura para aimplementac¸˜ao de componentes distribu´ıdos, os benef´ıcios citados s˜ao atingidos atrav´es de uma modularizac¸˜ao e implementac¸˜ao que seguem um padr˜ao definido. Ocorre que tais recursos implicam em um esforc¸o maior tanto no aprendizado da nova tecnologia quantona quantidade de c´odigo necess´ario [Garlan et al., 1995].No intuito de facilitar a tarefa de implementac¸˜ao de aplicac¸˜oes distribu´ıdas paraa Web, diversos  frameworks  e arquiteturas foram desenvolvidos. Para a camada deapresentac¸˜ao, destaca-se o  Struts , um  framework   de c´odigo aberto que adota o padr˜aoarquitetural MVC (  Model-View-Controller  ) [Krasner and Pop, 1988] para o desenvolvi-mento de sistemas interativos. Para a camada de neg´ocio, a arquitetura J2EE prop˜oe aespecificac¸˜ao de componentes distribu´ıdos denominada EJB (  Enterprise JavaBeans ).O trabalho aqui apresentado prop˜oe uma ferramenta, de nome  Cordel , que procuraintegrar estas diversas tecnologias atrav´es da gerac¸˜ao autom´atica e produtiva de novos sistemas a partir de modelos UML ( Unified Modelling Language ) [Booch et al., 1999].Desta maneira, os sistemas s˜ao gerados em conformidade com  frameworks  e padr˜oes deprojeto bem conhecidos, garantindo implementac¸˜oes confi´aveis que obedecem modelosarquiteturais j´a testados e validados. Este projeto esta sendo realizado com o apoio parcial da Preview Computadores S/A.  Um dos mais recentes esforc¸os para a especificac¸˜ao e implementac¸˜ao de sistemasorientados a objetos ´e a  Model Driven Architecture  (MDA) [OMG, 2004] proposta pelo Object Management Group  (OMG). A MDA prop˜oe uma abordagem para a definic¸˜aode sistemas que promove uma separac¸˜ao entre a especificac¸˜ao da sua funcionalidadee a implementac¸˜ao desta em uma plataforma espec´ıfica. Ela define um meta-modelopara arquiteturas baseadas em componentes, denotando uma semˆantica independente deplataforma e permitindo que a modelagem dos componentes esteja totalmente desvincu-lada de detalhes de implementac¸˜ao, tais como: linguagens,  middleware  e arquiteturas. AMDA tamb´em prevˆe uma m´axima automatizac¸˜ao da transformac¸˜ao do meta-modelo em uma representac¸˜ao para uma plataforma determinada. Para tanto, ´e definido um conjuntode diretrizes para a estruturac¸˜ao de aplicac¸˜oes sob a forma de modelos independentesde plataforma ( Platform Independent Models - PIM’s ). Estes modelos s˜ao ent˜ao conver-tidos, atrav´es de mapeamentos padronizados, para uma plataforma particular sendo ent˜aodenominados  Platform Specific Models  (PSM’s).A ferramenta  Cordel  permite a gerac¸˜ao de aplicac¸˜oes em diversas arquiteturas.Neste sentido, ela segue uma abordagem semelhante `aquela proposta pela MDA, pro-movendo um meta-modelo para representac¸˜ao de aplicac¸˜oes de forma independente dasua futura plataforma de implementac¸˜ao. Adicionalmente, o  Cordel  incorpora um mecan-ismo flex´ıvel para alterac¸˜ao e inclus˜ao de novos mapeamentos para modelos espec´ıficos.Desta forma, esta ferramenta pode ser entendida como uma alternativa simplificada daMDA, j´a que adota seus pr´oprios modelos e mapeamentos entre PIM’s e PSM’s.O restante deste artigo ´e dedicado `a descric¸˜ao do  Cordel  e est´a organizado comosegue. Na sec¸˜ao 2, a ferramenta e seus principais conceitos s˜ao apresentados. A sec¸˜ao 3 descreve os componentes da arquitetura e apresenta o seu funcionamento. A sec¸˜ao 4compara o  Cordel  com sistemas de desenvolvimento produtivo existentes. Finalmente, asec¸˜ao 5 apresenta conclus˜oes e perspectivas de trabalhos futuros. 2. A Ferramenta Cordel A partir de um modelo UML, o  Cordel  realiza a gerac¸˜ao de c´odigo, compilac¸˜ao e implantac¸˜ao ( deploy ) da vers˜ao inicial do sistema. Com base no modelo UML,disponibilizado atrav´es de um arquivo no formato XMI (  XML Metadata Interchange )[OMG, 2003], e em algumas configurac¸˜oes fornecidas pelo usu´ario, ´e produzida a vers˜ao inicial da aplicac¸˜ao. O pr´oprio  Cordel  foi idealizado e desenvolvido como uma aplicac¸˜aoWeb multi-usu´ariocom uma estrutura modular e distribu´ıda, seguindo a arquitetura J2EE.Todas as tecnologias utilizadas na sua concepc¸˜ao s˜ao de c´odigo aberto. O  Cordel  atual-mente ´e direcionado para a gerac¸˜ao de sistemas de informac¸˜ao convencionais. De modo a permitir a gerac¸˜ao de aplicac¸˜oes em diversas arquiteturas, o  Cordel define um meta-modelo independente de tecnologia baseado no conceito de  nodes . Um node  representa qualquer item da aplicac¸˜ao pass´ıvel de uma configurac¸˜ao, como por ex-emplo uma classe definida no modelo UML, um formul´ario para cadastro de dados ouuma operac¸˜ao de criac¸˜ao ou remoc¸˜ao de dados. Atrav´es do ambiente Web para edic¸˜ao e configurac¸˜ao destes  nodes , disponibilizado pelo  Cordel , ´e poss´ıvel definir as diretivaspara a gerac¸˜ao do c´odigo-fonte da aplicac¸˜ao. Um mecanismo modular para a definic¸˜ao e escolha do mapeamento entre os  nodes e sua respectiva representac¸˜ao em uma plataforma espec´ıfica ´e disponibilizado no  Cordel atrav´es do conceito de  flavour  . Um  flavour   define o mapeamento dos  nodes  em umaarquitetura envolvendo tecnologias para apresentac¸˜ao, neg´ocio e armazenamento de da-dos. Novos  flavours  podem ser definidos e incorporados ao  Cordel  atrav´es de um con- junto de arquivos de  templates . Atualmente a ferramenta oferece um  flavour default   para  NodeFactoryBuilder / DeployerNodeEditorArchitectureManagerTemplateEngineXMIReader NodesNodesConfiguradosTemplatesSelecionadosCodigoFonteClassesCarrega o modeloUMLCria nodespara posteriorconfiguraçaoAmbiente Webpara configuraçaode nodesGeraçao docodigo−fonteCompilaçao eimplantaçao daaplicaçaoDisponibilizaçao daarquitetura da apli−caçao a ser gerada Figura 1: Arquitetura Interna do Cordel. sistemas J2EE utilizando o servidor de aplicac¸˜oes JBoss [JBoss, 2004], banco de dadosPostgreSQL [PostgreSQL, 2004] e o  framework Struts  [Apache, 2004] para a camada deapresentac¸˜ao. 3. Arquitetura da Ferramenta O  Cordel , conforme ilustrado na figura 1, ´e constitu´ıdo por seis componentes que jun-tos fazem o trabalho de traduc¸˜ao do modelo UML em aplicac¸˜oes definidas pelo  flavour  escolhido pelo usu´ario. O modelo UML da aplicac¸˜ao pode ser produzido em qualquerferramenta que utilize o padr˜ao XMI. O processo se inicia com a leitura deste modelopelo componente  XMIReader  , disponibilizando as classes para que o  NodeFactory  crie os nodes  do projeto. Tipos de  nodes .  O meta-modelo especificado pelo  Cordel  ´e composto de seis tipos de nodes : •  Application : serve como  container   dos outros tipos de  nodes  e ´e composto por classes,servic¸os, operac¸˜oes, ac¸˜oes e formul´arios; •  Class : representa uma classe proveniente do modelo UML com todos os seus atributose relacionamentos com outras classes; •  Operation : representa uma operac¸˜ao b´asica do sistema como um cadastro de usu´ario, atualizac¸˜ao dos dados de um produto, uma busca por registros de pedido, etc. Operac¸˜oespodem ser agrupadas em servic¸os ( Services ); •  Service : representa um conjunto de operac¸˜oes relacionadas e serve como  container   paraestas; •  Action : representa uma ac¸˜ao que ser´a executada na aplicac¸˜ao Web em resposta a uma ac¸˜ao do usu´ario. Ac¸˜oes podemestarrelacionadas a Operac¸˜oes ( Operations )eFormul´arios( Forms ) do sistema; •  Form : representa um formul´ario de entrada de dados na aplicac¸˜ao Web.No  NodeEditor  , ambiente Web do  Cordel , algumas configurac¸˜oes neste meta-modelo podem ser realizadas. Estas ser˜ao detalhadas na sec¸˜ao 3.2. Atrav´es do  Archi-  tectureManager  , o usu´ario escolhe um  flavour   que define o mapeamento destes  nodes configurados para alguma plataforma espec´ıfica. O  ArchitectureManager  , fazendo usodo componente  TemplateEngine , promove a gerac¸˜ao do c´odigo-fonte da aplicac¸˜ao dis- tribu´ıda. Este c´odigo ser´a compilado e implantado no servidor de aplicac¸˜ao pelo compo- nente  Builder/Deployer  . A seguir s˜ao descritos os objetivos, funcionamento e tecnologiasutilizadas por cada componente do  Cordel . 3.1.  XMIReader  e  NodeFactory O componente  XMIReader   realiza a leitura do arquivo XMI, identificando classes, atrib-utos e relacionamentos presentes no modelo. Com base nestes elementos, o componente  NodeFactory  realiza a criac¸˜ao de todos os  nodes  do projeto. Neste processo, um  node  dotipo  Application  ´e criado contendo, para cada classe encontrada no modelo, um  node  dotipo Class equatro nodes dotipo Operation ,referentes `asoperac¸˜oesdeinclus˜ao,remoc¸˜ao, alterac¸˜ao e consulta de objetos desta classe. Para cada  node  do tipo  Operation  s˜ao cria-dos dois  nodes , um do tipo  Action  e outro do tipo  Form , que fornecem subs´ıdios para agerac¸˜ao da camada de apresentac¸˜ao da aplicac¸˜ao. 3.2.  NodeEditor Ap´os a criac¸˜ao da representac¸˜ao abstrata da aplicac¸˜ao em termos de  nodes , o usu´ariopoder´a efetuar algumas configurac¸˜oes neste modelo utilizando o ambiente Web fornecidopelo  Cordel  - o  NodeEditor  . As seguintes operac¸˜oes podem ser realizadas neste ambi-ente: i) definic¸˜ao dos campos que ir˜ao compor a chave prim´aria das classes do modelo UML; ii) distribuic¸˜ao das operac¸˜oes nos diversos servic¸os; iii) ativac¸˜ao e desativac¸˜ao de operac¸˜oes da aplicac¸˜ao; iv) adic¸˜ao e remoc¸˜ao de servic¸os e ac¸˜oes e v) definic¸˜ao das regras de validac¸˜ao para os campos dos formul´arios. 3.3.  ArchitectureManager O  ArchitectureManager   ´e o componente do  Cordel  respons´avel por controlar todo o pro-cesso de gerac¸˜ao de c´odigo da aplicac¸˜ao. Este processo consiste em produzir uma vers˜ao inicial da aplicac¸˜ao a partir de uma representac¸˜ao em  nodes , utilizando um dos  flavours oferecidos pela ferramenta. Desta forma, o  ArchitectureManager   se comunica com o TemplateEngine , que por sua vez utiliza os  templates  dispon´ıveis para gerar todos osarquivos necess´arios, sejam classes, interfaces, arquivos JSP (  Java Server Pages ), ar-quivos de configurac¸˜ao no padr˜ao XML (Extensible Markup Language), dentre outros.Cabe tamb´em ao  ArchitectureManager   informar ao componente  NodeEditor   quais s˜ao os  flavours  dispon´ıveis.O  ArchitectureManager   possui uma estrutura flex´ıvel projetada para facilitar amanutenc¸˜ao e inclus˜ao de novos  flavours . O  ArchitectureManager   promove extensibili-dade nas aplicac¸˜oes geradas ao direcionar o desenvolvimento de novos  flavours  seguindoo modelo arquitetural em trˆes camadas [Orfali et al., 1999]. 3.4.  TemplateEngine O  TemplateEngine  ´e um componente que permite mesclar a estrutura de um documentomodelo( template )cominformac¸˜oessobreos nodes fornecidaspelo  ArchitectureManager  ,produzindo assim uma sa´ıda customizada que representa o c´odigo-fonte a ser compilado.Ao fazer uso de uma m´aquina de  templates , o  Cordel  consegue automatizar o processo degerac¸˜ao de c´odigo unindo informac¸˜oes do meta-modelo ( nodes ) com os  templates .Ap´os a configurac¸˜ao dos  nodes  da aplicac¸˜ao, faz-se uma requisic¸˜ao para que aferramenta gere o c´odigo-fonte. Isto far´a com que o  ArchitectureManager   acione o  Tem- plateEngine  j´a direcionando-o aos  templates  que atender˜ao as arquiteturas e tecnologias  definidas no  flavour   escolhido pelo usu´ario. De posse destes  templates , o componenteem quest˜ao ir´a atribuir `as vari´aveis do template os valores definidos pelo usu´ario em seus nodes  e retornar´a arquivos de c´odigo-fonte personalizados. A tecnologia utilizada paraprover tal funcionalidade ´e o  Velocity  [Apache, 2004], m´aquina de  templates  de c´odigoaberto baseada em Java e pertencente ao projeto Jakarta da  Apache Software Foundation .Os  templates  do  flavour default   permitem a gerac¸˜ao de c´odigo de acordo com oseguinte modelo: •  Camada de apresentac¸˜ao: arquivos relacionados ao  framework Struts  (  Actions , Forms  e descritores XML) e p´aginas JSP iniciais para a aplicac¸˜ao. •  Camada de neg´ocio: implementac¸˜ao dos padr˜oes de projeto para a arquitetura J2EE, a saber,  Session Facade ,  Business Delegate ,  Transfer Object   e  Service Lo-cator   [Deepak Alur, 2003]. Al´em disso, ´e feita a implementac¸˜ao dos  beans  re-spons´aveis pela funcionalidade da aplicac¸˜ao e arquivos descritores. •  Camada de dados: s˜ao criados os descritores respons´aveis pela configurac¸˜ao do banco de dados, bem como informac¸˜oes sobre mapeamentos objeto-relacionais,mais especificamente entre  Entity Beans  (objetos persistentes) e tabelas. 3.5.  Builder/Deployer Um dos arquivos gerados pelo  TemplateEngine  ´e um arquivo XML que informa os pas-sos para compilac¸˜ao, empacotamento e implantac¸˜ao do sistema. Este arquivo ser´a uti- lizado pelo componente  Builder/Deployer   para a efetivac¸˜ao destes passos, utilizando aferramenta  Ant   [Apache, 2004]. O  Ant   ´e uma ferramenta baseada em Java utilizada paraautomatizar operac¸˜oes de compilac¸˜ao e empacotamento de c´odigo-fonte, dentre outras. 4. Trabalhos Correlatos O  Cordel surge com o prop´osito de automatizar o desenvolvimento produtivode sistemas,al´em disso, incorporamecanismos queassemelham-se `as diretrizes propostas pelarecenteespecificac¸˜ao MDA. Dentre as poucas implementac¸˜oes existentes da especificac¸˜ao MDA, destacam-se o AndroMDA [Bohlen, 2003] pela sua estabilidade e relativa maturidade. OAndroMDA promove a gerac¸˜ao de aplicac¸˜oes a partir de modelos UML, de acordo coma especificac¸˜ao MDA. Esta ferramenta flexibiliza as tecnologias utilizadas nas aplicac¸˜oesgeradas atrav´es do conceito de  cartridge , o qual realiza o mapeamento entre o modeloPIM e o modelo PSM definido pelo mesmo. No AndroMDA, a gerac¸˜ao do c´odigo ´e dirigida por estere´otipos declarados no modelo UML, servindo como guia para o mapea-mento realizado pelo  cartridge . Estes estere´otipos indicam, por exemplo, as classes queser˜ao mapeadas em  Entity Beans ,  Session Facades , excec¸˜oes e aspectos relacionados aoutras tecnologias tais como  Struts  (  Actions  e  Forms ). Desta forma, o AndroMDA de-manda um modelo UML mais elaborado e ao mesmo tempo mais completo, dispensandoa utilizac¸˜ao de um ambiente para configurac¸˜ao deste modelo, por´em exige do projetista um conhecimento espec´ıfico `a tecnologia utilizada.Diferentemente do AndroMDA, o  Cordel  requer um modelo UML mais simples,sem a utilizac¸˜ao de estere´otipos. Isto permite que o projetista concentre-se somente emaspectos relacionados ao neg´ocio, deixando quest˜oes de tecnologia para o mapeamentoa ser realizado de acordo com o  flavour   escolhido. Ao disponibilizar um ambiente Webpara configurac¸˜ao do meta-modelo e escolha das tecnologias a serem utilizadas, o usoda ferramenta ´e consideravelmente facilitado para usu´arios n˜ao especialistas. O  flavour default   do  Cordel  promove a gerac¸˜ao autom´atica de c´odigo de apresentac¸˜ao referente `as operac¸˜oes b´asicasligadasaumobjetodeneg´ocio, taiscomo: inclus˜ao, remoc¸˜ao, alterac¸˜ao e consulta. Assim, estas classes da camada de apresentac¸˜ao n˜ao precisam ser definidas no
Related Search
Similar documents
View more...
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks