demoiselle tutorial modulo01 arquitetura apresentacao
TRANSCRIPT
Desenvolvimento Web com Framework Demoiselle verso 1.0Mdulo 01: Arquitetura e InstalaoSerpro / Superintendncia de Suporte Tecnologia / Curitiba
Vanderson Botelho
Autor:
www.frameworkdemoiselle.gov.brModificado em: 13/10/2009
Licena
Esta obra est licenciada sob uma Licena Creative Commonshttp://creativecommons.org/licenses/by/2.5/br/Mdulo 01 - Arquitetura 2
Ficha TcnicaTutorial Framework Demoiselle
AutorVanderson Botelho da Silva Serpro / Superintendncia de Suporte Tecnologia Regional Curitiba (STCTA)
RevisoresFlvio Gomes da Silva Lisboa Serpro / Coordenao Estratgica de Tecnologia Regional Curitiba (CTCTA) Robson Saraiva Ximenes / Serge Normando Rehem Serpro / Coordenao Estratgica de Tecnologia Regional Salvador (CTSDR)Mdulo 01 - Arquitetura 3
Ficha TcnicaAviso
Esta apresentao praticamente terica, e mesmo a parte de instalao est reproduzida no laboratrio. Se voc quer colocar a mo na massa imediatamente, pode saltar esta apresentao e retornar a ela se surgirem dvidas conceituais.
Mdulo 01 - Arquitetura
4
AgendaAgenda
Arquitetura
Instalao Maven Arqutipo Demoiselle Plugin Update Site Download Site Maven Laboratrio Criao do projeto mnimo
Conceitos Representao Arquitetural
Mdulos do Framework Core Util Web Contextos Transao Mensagem Segurana
Mdulo 01 - Arquitetura
5
TutorialPr-Requisitos
Conhecimento bsico
Orientao a Objetos Plataforma Java Enterprise Edition (JEE) Hibernate/JPA Java Server Faces (JSF) Maven Integrao contnua
Conhecimento Intermedirio
Mdulo 01 - Arquitetura
6
TutorialObjetivo
Capacitar desenvolvedores ao uso do Framework Demoiselle em sua verso 1.0 aplicado construo de sistemas Web
Mdulo 01 - Arquitetura
7
ConceitosHistria
Demoiselle
Melhor projeto da aviao construdo por SantosDumont (1907) que influenciou significativamente a indstria da aviao, no incio do sculo XX Realizou vos de at 18 km, superiores aos 200m do 14bis O Demoiselle foi o primeiro avio fabricado em srie no mundo Projeto de cdigo livreSantos-Dumont presenteou a todos, sem nada cobrar, todas as suas dezenas de invenes. [Dumont,09]Mdulo 01 - Arquitetura 8
ConceitosHistria
Framework Demoiselle
Preserva a mesma filosofia de Santos-Dumont, por meio das licenas de software livre (LGPL License 3*) Maro: Release 0.1 Abril: criao da equipe gestora do framework (Serpro/Cetec/CTJEE) Agosto: Release 0.2
2008
*http://www.gnu.org/licenses/lgpl.htmlMdulo 01 - Arquitetura 9
ConceitosHistria
2008
Dezembro (08/12):
Lanamento Oficial da Verso 1.0: Free Software Rio 2008 http://www.freesoftwarerio.com.br
2009
Abril (14/04):
Liberao do cdigo-fonte no Source Forge
*http://www.gnu.org/licenses/lgpl.htmlMdulo 01 - Arquitetura 10
ConceitosFramework
Visa direcionar o desenvolvedor aos problemas relacionados as regras de negcio do cliente e a apresentao das informaes Reduz o esforo utilizado para resolver detalhes de baixo nvel como segurana, acesso a dados, comunicao com outros ambientes, etc.No desenvolvimento do software, um framework ou arcabouo uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido.
Mdulo 01 - Arquitetura
11
ConceitosFramework Demoiselle
Objetivos Gerais
Reuso do conhecimento Prover um ambiente de desenvolvimento
Aberto Compartilhado Colaborativo Diferentes instituies Diferentes tecnologias
Voltado para Integrao
Mdulo 01 - Arquitetura
12
ConceitosFramework Demoiselle
Objetivos Especficos
Arquitetura extensvel atravs da componentizao Arquitetura de referncia s aplicaes Web JEE Prover mecanismos tranparentes para
Segurana Integrao entre camadas Controle de transacional
Prover utilitrios de infraestrutura para aplicaes Web Prover mecanismo de segurana utilizando certificados digitais para autenticao, criptografia e assinatura digital no padro ICP-Brasil
Mdulo 01 - Arquitetura
13
ConceitosFramework Demoiselle
Estruturao em domnios
Gesto orientada a polticas de contedos e promoes de contedos (Camadas / Domnios) Domnios especficos
Framework arquitetural Integrao de organizaes do Governo e com a sociedade Organizacional Integrao na Organizao Sistemas Integrao de Grupo de Sistemas
Mdulo 01 - Arquitetura
14
ConceitosFramework Demoiselle
Estruturao em domnios
Orientao a componentes
Tecnologia Reuso de mtodos, tcnicas e processos padronizados Negcios Reuso de componentes de negcio
Mdulo 01 - Arquitetura
15
ConceitosFramework Demoiselle
Estruturao em domnios
Mdulo 01 - Arquitetura
16
ConceitosFramework Demoiselle
Padronizao
Visa facilitar a padronizao das solues do governo
Padronizao de tecnologias Anlise, integrao e utilizao de tecnologias mais reconhecidas utilizadas pelas comunidades de desenvolvedores. Padronizao de arquitetura Acesso: Camada de interface das informaes do sistema Negcio: Camada lgica, contendo as regras do sistema Dados: Camada de armazenamento e recuperao de dados
Mdulo 01 - Arquitetura
17
ConceitosFramework Demoiselle
Padronizao
Maior facilidade de suporte e absoro de sistemas Reuso de conceitos e prticas maduras Facilidade de integrao e disponibilizao de servios para os novos sistemas Camada de acesso do usurio (interface grfica) pode ser substituda para a disponibilizao de servios, reaproveitando toda a lgica do sistema
Mdulo 01 - Arquitetura
18
ConceitosFramework Demoiselle
Site Maven - http://demoiselle.sourceforge.net
Prov informaes dinmicas do projeto Demoiselle como relatrios, downloads, manuais, entre outros documentos.
Mdulo 01 - Arquitetura
19
ConceitosFramework Demoiselle
Arquitetura*
* Padres de Interoperabilidade de Governo Eletrnico, [E-Ping,09]
Mdulo 01 - Arquitetura
20
ConceitosFramework Demoiselle
Arquitetura
Integrao de definies e desenvolvimento Alinhamento de projetos Direcionamento Reuso de solues
Mdulo 01 - Arquitetura
21
ConceitosFramework Demoiselle
Arquitetura
Mdulo 01 - Arquitetura
22
ConceitosFramework Demoiselle
Reuso e Gerao automtica de cdigo
Conjunto de componentes com ciclo de vida independente No geram dependncia obrigatria nas aplicaes geradas Podem ser construdos colaborativamente Devem ser facilmente acoplados aplicao
Mdulo 01 - Arquitetura
23
ConceitosFramework Demoiselle
Reuso e Gerao automtica de cdigo
A gerao de cdigo automtica deve ser encarada como um componente especial Ele deve ser utilizado durante o desenvolvimento
Mdulo 01 - Arquitetura
24
ConceitosFramework Demoiselle
Premissas
Extensibilidade: Pontos de extenso (interfaces, abstraes,inverso de controle, Abstract Factory)
Reusabilidade: Arquitetura de referncia e componentes Manutenibilidade: Diviso em modulos, baixo acoplamento,manuteno simplificada
Desempenho: Controle de integrao de camadas e controle detransao
Estabilidade / Confiabilidade: Baseada em especificaes(Foundation Framework) reconhecidas pelo mercado
Mdulo 01 - Arquitetura
25
ConceitosFramework Demoiselle
Desenvolvimento em Camadas
Uma camada equivale a um dos particionamentos lgicos de diversos aspectos tratados em um sistema Cada camada possui responsabilidade distinta ou nica no sistema Uma camada no est estritamente acoplada a camada adjacente Representa-se o sistema como uma pilha de camadas
Mdulo 01 - Arquitetura
26
ConceitosFramework Demoiselle
Desenvolvimento em CamadasApresentaoDependncia
Apresentao das informaes e Interao com o usurio. Centraliza o processamento das regras de negcio do sistema. Deve ser projetada de forma independente da interface (camada de apresentao)
Lgica de DomnoDependncia
Acesso a Dados
Camada responsvel por tratar conexes e transaes com o banco de dados
Mdulo 01 - Arquitetura
27
ConceitosFramework Demoiselle
Desenvolvimento em Camadas
Arquitetura Model View ControllerSeu objetivo separar o modelo: que corresponde ao objeto que est sendo exibido pela viso em determinado momento; a viso: que corresponde interface que o sistema disponibiliza para que o usurio possa manipular o modelo; e o controlador: que responsvel pro tratar os eventos de interao entre o usurio e o sistema. O MVC pode ser aplicado a uma das camadas do sistemas. Ex.: Apresentao.Mdulo 01 - Arquitetura 28
ConceitosFramework Integrador
Tecnologias UtilizadasComo integrar tantas ferramentas ?
Mdulo 01 - Arquitetura
29
ConceitosFramework IntegradorFramework Integrador Um Framework Integrador tem Um Framework Integrador tem por objetivo facilitar aaconstruo por objetivo facilitar construo de aplicaes sem oo de aplicaes sem investimento de tempo em investimento de tempo em escolha escolha ee integrao integrao de de frameworks especialistas, que frameworks especialistas, que resulta resulta no no aumento aumento da da produtividade ee garante aa produtividade garante manutenibilidade dos sistemas. manutenibilidade dos sistemas.
Mdulo 01 - Arquitetura
30
ConceitosFramework Demoiselle
Evoluo
Abordagem de EvoluoDescontinuao Suporte Funcionalidades em discusso Desenvolvimento
N-2
N-1
N
N+1
N+2
Linha do tempo
Mdulo 01 - Arquitetura
31
Arquitetura
Mdulo 01 - Arquitetura
32
ArquiteturaRepresentao Arquitetural
Mdulo 01 - Arquitetura
33
ArquiteturaRepresentao Arquitetural
Architectural Framework
Representa os mdulos implementados pelo Demoiselle Representa o conjunto de frameworks especialistas utilizados e compatveis ao Demoiselle Representa as especificaes de mercado que balizam o Arquitetural Framework como os mecanismos de controle de transao, segurana, acesso a dados entre outros
Base Frameworks
Foundation Frameworks
Mdulo 01 - Arquitetura
34
ArquiteturaRepresentao Arquitetural
Platform
Representa as plataformas de produo compatveis ao Framework Representa a camada da mquina virtual Representa a camada do sistema operacional
Virtual Machine
OS
Mdulo 01 - Arquitetura
35
ArquiteturaMdulo Core
Este mdulo contm o conjunto de especificaes que do base estrutural ao framework possibilitando padronizao, extenso e integrao entre as camadas das aplicaes nele baseadas Diviso de Camadas
O Demoiselle prope s aplicaes a diviso em trs camadas distintas: viso, negcio e persistncia
Mdulo 01 - Arquitetura
36
ArquiteturaMdulo Core
Interfaces
IViewController
Abstrao para o objeto da camada de viso Abstrao para o objeto da camada de negcio Abstrao para o objeto da camada de persistncia Abstrao para o objeto da camada de integrao de mdulos/subsistemas
IBusinessController
IDAO
IFacade
Mdulo 01 - Arquitetura
37
ArquiteturaMdulo Core
Integrao entre Camadas
Utiliza padres de projeto tais como: Factory, Proxy, IoC e injeo de dependncias para manter a integrao de camadas com baixo nvel de acoplamento, a fim de garantir melhor manuteno, escrita e legibilidade das classes representantes destas camadas
Mdulo 01 - Arquitetura
38
ArquiteturaMdulo Core
Integrao entre Camadas
Exemplo de Injeo de um IBusinessControllerpublic class MeuMB implements IViewController{ @Injection private IMeuBC meuBC; } public class MeuMB implements IViewController{
@Injection (name=br.gov.escola.business.implementation.AlunoBC) private IMeuBC meuBC; }
Mdulo 01 - Arquitetura
39
ArquiteturaMdulo Core
Integrao entre Camadas
Exemplo de Injeo de um IDAOpublic class MeuBC implements IBusinessController{ @Injection private IMeuDAO meuDAO; } public class MeuBC implements IBusinessController{
@Injection( name="br.gov.escola.persistence.dao.implementation.AlunoDAO") private IMeuDAO meuDAO; }
Mdulo 01 - Arquitetura
40
ArquiteturaMdulo Core
Injeo
O mdulo Core especifica quem trata a injeo de dependncia Os mdulos que implementam o Core devem definir como a injeo ser realizada Na verso 1.0 do Demoiselle a injeo de dependncia implementada no mdulo Web
Mdulo 01 - Arquitetura
41
ArquiteturaMdulo Core
Contexto de Mensagens
Define uma abstrao de mensagens trocadas durante uma requisio entre as camadas do sistema
Mdulo 01 - Arquitetura
42
ArquiteturaMdulo Core
Contexto de Mensagens
Interfaces
IMessage: Abstrao da unidade de mensagem IMessageContext: Abstrao do contexto de mensagem Severity: Lista de severidades
Enumerations
Mdulo 01 - Arquitetura
43
ArquiteturaMdulo Core
Tratamento de Exceo
O Mdulo Core define uma exceo padro para as aplicaes
ApplicationRuntimeException
Esta exceo encapsula uma mensagem padronizada para facilitar o tratamento pelos mdulos do aplicao
Mdulo 01 - Arquitetura
44
ArquiteturaMdulo Core
Tratamento de Exceo
Classes
ApplicationRuntimeException Exceo do tipo unchecked, padroniza as excees da aplicao
Lanamentopublic void MetodoBC(){ if ( /*Condio para lanamento de exceo*/ ){ throw new ApplicationRuntimeException(ErrorMessage.ERRO_01); } }
Capturapublic void MetodoMB () { try { MetodoBC(); } catch (ApplicationRuntimeException ex) { /**Trata exceo*/ } }Mdulo 01 - Arquitetura 45
ArquiteturaMdulo Core
Java Authentication and Authorization Service (JAAS) API que permite s aplicaes escritas na plataforma J2EE usar servios de controle de autenticao e autorizao sem necessidade de estarem fortemente dependentes desses servios JAAS Authentication
Especifica como uma aplicao pode autenticar usurios usando JAAS Especifica como implementar controle de acesso usando JAAS
JAAS Authorization
Mdulo 01 - Arquitetura
46
ArquiteturaMdulo Core
JAAS Authentication
Principal
representa um usurio
JAAS Authorization
Role
representa papis do usurio no sistema
Exemplo Implementao padro do Tomcat
Mdulo 01 - Arquitetura
47
ArquiteturaMdulo Core
Representao Principal e Roles
Exemplo Tomcat-Users.xml:
Mdulo 01 - Arquitetura
48
ArquiteturaMdulo Core
Contexto de Segurana
Especifica um mecanismo padro para acesso a dados de segurana referentes a autenticao e autorizao Trata a autorizao por meio de papis Baseada na especificao JAAS [JAAS, 09]
Mdulo 01 - Arquitetura
49
ArquiteturaMdulo Core
Contexto de Segurana
Intefaces
Abstrao do contexto de segurana
Exemplo:ISecurityContext contexto = ContextLocator.getInstance().getSecurityContext(); if } (contexto.isUserInRole("Administrador")){ ...
Mdulo 01 - Arquitetura
50
ArquiteturaMdulo Core
Entidades
O Core prope uma abstrao para as entidades da aplicao
Mdulo 01 - Arquitetura
51
ArquiteturaMdulo Core
Entidades
Exemplopublic class MeuPojo implements IPojo{ private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; }
}
Mdulo 01 - Arquitetura
52
ArquiteturaMdulo Core
Transao
Especifica o mecanismo de controle transacional Define um contexto transacional que atua no incio e no fim de cada ao Seu funcionamento depende de um tipo definido, seja Local ou JTA1.
Local: indica que a aplicao ser responsvel pelo gerenciamento da transao Distribuda (JTA): a aplicao depender de uma implementao JTA disponvel no container
1
JTA: Java Transaction API [JTA, 09]Mdulo 01 - Arquitetura 53
ArquiteturaMdulo Core
Transao
Diagrama
Mdulo 01 - Arquitetura
54
ArquiteturaMdulo Core
Transao
Interfaces
ITransactionResource Define um recurso a ser registrado no contexto de transao ITransactionContext Contexto de transao responsvel por registrar o incio e fim de cada ao e registrar recursos transacionais TransactionType Tipos de funcionamento do mecanismo de controle de transao
Enumerations
Mdulo 01 - Arquitetura
55
ArquiteturaMdulo Core
Acionadores
Define um mecanismo padronizado de aes a serem executadas pela aplicao Essas aes so definidas como funes estruturais da aplicao:
carregamento de configurao inicializao de ambiente etc.
Mdulo 01 - Arquitetura
56
ArquiteturaMdulo Core
Acionadores
Diagrama
Mdulo 01 - Arquitetura
57
ArquiteturaMdulo Core
Acionadores
Interfaces
IActionManager Executa aes que foram recuperadas pelo mecanismo de recuperao ILoaderAction Mecanismo de recuperao das aes IAction Representa uma ao
Mdulo 01 - Arquitetura
58
ArquiteturaMdulo Core
Acionadores
Exemplo:class MinhaAplicacaoAction implements IAction { private static Logger log = Logger.getLogger(MinhaAplicacaoAction.class); public void execute() { log.debug("Lendo arquivos de configurao"); }
public
}
Mdulo 01 - Arquitetura
59
ArquiteturaMdulo Core
Localizador de Contextos
Para que a aplicao possa usufruir dos contextos definidos no Mdulo Lgico CORE, a existncia de um localizador fundamental A implementao de cada contexto (segurana, transao, mensagem, ...) dever utilizar o localizador como canal de acesso
Mdulo 01 - Arquitetura
60
ArquiteturaMdulo Core
Localizador de Contextos
Mdulo 01 - Arquitetura
61
ArquiteturaMdulo Web
Definio
Implementao do mdulo lgico CORE para aplicaes Web (J2EE) Prover utilitrios comuns de aplicaes web para facilitar o tratamento de sesses de usurio e suas requisies
Mdulo 01 - Arquitetura
62
ArquiteturaMdulo Web
Contexto de Segurana
Implementa o contexto de segurana proposto no mdulo CORE atravs de um Singleton inicializado a cada requisio do usurio com informaes de autenticao e autorizao
Mdulo 01 - Arquitetura
63
ArquiteturaMdulo Web
Contexto de Segurana
Classes
WebSecurityContext Implementa o contexto de segurana atravs do padro singleton Gerencia os dados de segurana vinculados a thread corrente WebSecurityServletRequestListener Responsvel por repassar o objeto request para o contexto de segurana WebSecurityContext
Mdulo 01 - Arquitetura
64
ArquiteturaMdulo Web
Exemplo de Uso
Uso do Realm padro do tomcat (tomcat-users.xml)
Configurao
Uso
ISecurityContext contexto = ContextLocator.getInstance().getSecurityContext(); if (contexto.isUserInRole("role_administrador")){ ... }
Mdulo 01 - Arquitetura
65
ArquiteturaMdulo Web
Contexto de Mensagens
Contexto de mensagens para aplicaes web
Mdulo 01 - Arquitetura
66
ArquiteturaMdulo Web
Contexto de Mensagens
Exemplo
LanamentoIMessageContext contextoMsg = ContextLocator.getInstance().getMessageContext(); public class MeuBC implements IBusinessController { public void meu_metodo(){ ... contextoMsg.addMessage(InfoMessage.Mensagem); } }
Capturapublic class MeuMB extends IViewController { public void meu_metodo(){ for (IMessage imsg : contextoMsg.getMessages(){ addMessage(imsg);} }
Mdulo 01 - Arquitetura
67
ArquiteturaMdulo Web
Integrao entre Camadas
O mdulo WEB implementa a especificao de integrao de camadas proposto pelo mdulo CORE O mecanismo implementado utiliza Programao Orientada a Aspectos (AOP) para detectar os pontos de integrao
Mdulo 01 - Arquitetura
68
ArquiteturaMdulo Web
Transao
Implementa a especificao do contexto transacional do mdulo CORE, por meio de Listeners do container JEE
br.gov.framework.demoiselle.web.transaction.WebTransactionServletRequestListener
Prover um mecanismo transparente de gerenciamento de transao possvel utilizar o controle transacional do container (JTA) para isso deve existir uma implementao de um mecanismo de lookup via JNDIMdulo 01 - Arquitetura 69
ArquiteturaMdulo Web
Inicializao do Ambiente
A inicializao de ambiente segue a especificao de aes proposto no mdulo CORE A inicializao ocorre sempre que o container iniciar a aplicao O mdulo WEB necessita que algumas aes sejam executadas, essas aes esto implementadas nesse mdulo Os componentes e aplicaes baseadas no framework podem implementar outras aes e adicion-las para que sejam executadas na inicializao do ambiente
Mdulo 01 - Arquitetura
70
ArquiteturaMdulo Web
Inicializao do Ambiente
Exemplo de usopublic class MinhaAction implements IInitializationAction { public void execute() { log.debug("Inicializando minha action"); } public void setServletContext(ServletContext context) { } }
#Configurao no arquivo Demoiselle.properties framework.demoiselle.web.initialization.action=MinhaAction
Mdulo 01 - Arquitetura
71
ArquiteturaMdulo Web
Redirecionamento baseado em URL
O mdulo WEB implementa um mecanismo de redirecionamento baseado em URL utilizado por componentes do Demoiselle como o Report Pode ser utilizado pelas aplicaes
Mdulo 01 - Arquitetura
72
ArquiteturaExemplo de Redirecionamento URL
Criando uma IRedirectActionpublic class MinhaRedirectAction implements IRedirectAction { private ServletRequest request; private ServletResponse response; public String getParameter() { return "MinhaActionParameter"; } public String getValue() { return "MinhaActionValue"; } public void setRequest(ServletRequest req) { this.request = req; } public void setResponse(ServletResponse resp) { this.response = resp; } public void execute() { /*Minha execuo*/ } }Mdulo 01 - Arquitetura 73
ArquiteturaExemplo de Redirecionamento URL
Cadastrando no demoiselle.properties# --- Web Configuration --framework.demoiselle.web.redirect.action=MinhaRedirectAction01 framework.demoiselle.web.redirect.action=MinhaRedirectAction02 framework.demoiselle.web.redirect.action=MinhaRedirectAction03
Configurao do web.xml WebRedirectServlet br.gov.framework.demoiselle.web.redirect.WebRedirectServlet WebRedirectServlet /redirect Mdulo 01 - Arquitetura 74
ArquiteturaExemplo de Redirecionamento URL
Chamando a RedirectAction Chamar Minha Action
Mdulo 01 - Arquitetura
75
ArquiteturaMdulo Util
Este mdulo contm componentes utilitrios que facilitam o trabalho de outras funcionalidades do framework e seus mdulos lgicos
Mdulo 01 - Arquitetura
76
ArquiteturaMdulo Util
Carregamento de Configurao
Permite carregar variveis configuradas em
arquivos xml arquivos de propriedades Propriedades do System
Utilizado em vrios outros componentes do framework Recomenda-se seu uso tambm pelas aplicaes
Mdulo 01 - Arquitetura
77
ArquiteturaMdulo Util
Carregamento de Configurao
Exemplo: Declarao@ConfigKey (name = "key", type=ConfigType.SYSTEM) private String stringValueSystem;
@ConfigKey (name = "framework.stringValue", type=ConfigType.XML, resourceName="configuration.xml") private String stringValueXML; @ConfigKey (name = "framework.stringValue", type=ConfigType.PROPERTIES, resourceName="configuration.properties") private String stringValueProperties;
Mdulo 01 - Arquitetura
78
ArquiteturaMdulo Util
Carregamento de Configurao
Exemplo: Carregamento e usopublic void meuMetodo() {
MeuConfig meuConfig = new MeuConfig(); ConfigurationLoader.load(meuConfig); System.out.print(meuConfig.getMinhaPropriedade()); }
Mdulo 01 - Arquitetura
79
ArquiteturaMdulo Util
Paginao de Resultados
Normalmente as aplicaes necessitam trafegar resultados entre as camadas de forma paginada garantindo o desempenho da aplicao Esse mecanismo implementado por meio de um objeto que permite configurar os dados da pgina que ser requisitada e um objeto que contm os resultados de forma paginada
Mdulo 01 - Arquitetura
80
ArquiteturaMdulo Util
Paginao de Resultados
Diagrama
Mdulo 01 - Arquitetura
81
ArquiteturaMdulo Util
Paginao de Resultados
Classes
Page Configurao da Pgina PagedResult Resultados paginados
Exemplopublic void carregarLista() { Page page = new Page(50, 1)); meuBC.listar(page)); }
Mdulo 01 - Arquitetura
82
ArquiteturaConsideraes Finais
O framework baseado(em) e direcionado(a) arquiteturas O reuso de cdigo possibilitado atravs da componentizao Cada componente facilmente acoplado e desacoplado a cada aplicao conforme demanda A arquitetura deve ser baseada em padres e direcionamento A padronizao visa facilitar a integrao e manuteno dos sistemasMdulo 01 - Arquitetura 83
Bibliografia[Demoiselle, 09] Site Oficial do Framework Demoiselle, http://demoiselle.sourceforge.net/ [JAAS, 09] Especificao JAAS, http://java.sun.com/products/archive/jaas/ [JBoss, 08] jboss.org: community driven, http://www.jboss.org/ [Eclipse, 08] Eclipse.org home, http://www.eclipse.org/ [Java, 08] Java.sun.com, http://java.sun.com/ [JTA, 09] Java Transaction API, http://java.sun.com/javaee/technologies/jta/index.jsp [Dumont,09] Histria de Santos Dumont, http://www.fab.mil.br/portal/aeronaves/htm/historia.htm [E-Ping,09] Padres de Interoperabilidade de Governo Eletrnico, http://www.governoeletronico.gov.br/acoes-e-projetos/e-ping-padroes-de-interoperabilidade
Mdulo 01 - Arquitetura
84
Instalao
Mdulo 01 - Arquitetura
85
InstalaoSoftwares Necessrios
JVM
Verso mnima: 1.5.0.17 Ganymede 3.4.1 AspectJ 1.6.3 M2 0.9.7 Verso 4.2 Verso 6.0Mdulo 01 - Arquitetura 86
Eclipse
JBoss
Tomcat
InstalaoInstaladores
Trs Caminhos:
Arqutipo Maven Update Site Demoiselle Wizard Download Direto Site Demoiselle Framework no SourceForge O uso do arqutipo Maven recomendado visto que o Maven faz a gesto das dependncias.
Mdulo 01 - Arquitetura
87
InstalaoInstaladores
Arqutipo Maven
Cadastrar o demoiselle-archetype-webapp no arquivo arquivo archetype-catalog.xml no repositrio local do desenvolvedor:
br.gov.component.demoiselle.archetypes demoiselle-archetype-webapp-sample 1.0.0 http://demoiselle.sourceforge.net/repository/release
Mdulo 01 - Arquitetura
88
InstalaoInstaladores
Arqutipo Maven
Eclipse:-> File -> New Project -> Maven Project
Mdulo 01 - Arquitetura
89
InstalaoInstaladores
Arqutipo Maven
Selecione o local onde o projeto ser criado. Caso no informe ele criar o workspace local
Mdulo 01 - Arquitetura
90
InstalaoInstaladores
Arqutipo Maven
Selecione o Catlogo Default Local o arqutipo do Demoiselle
Mdulo 01 - Arquitetura
91
InstalaoInstaladores
Arqutipo Maven
Informe GroupId: representa o ArtificatId: representa o
nome da organizao.
nome do projeto
Mdulo 01 - Arquitetura
92
InstalaoInstaladores
Arqutipo Maven
A aplicao construda com os seguintes componentes/frameworks:
Jsf Api 1.2.08 Richfaces 3.1.2 Weblets Api 1.1 Myfaces Tomahawk 1.1.7 Jsf-facelets 1.1.14 Postgresql 8.0-318 JasperReports 3.1.0
Mdulo 01 - Arquitetura
93
InstalaoInstaladores
Demoiselle Wizard
Instalando o plugin demoiselle para IDE Eclipse via update site Eclipse
Help -> Software Updates Available Software -> Add Site
Mdulo 01 - Arquitetura
94
InstalaoInstaladores
Demoiselle Wizard
Adicionando um novo Site
Mdulo 01 - Arquitetura
95
InstalaoInstaladores
Demoiselle Wizard
Selecionando Demoiselle Wizard
Mdulo 01 - Arquitetura
96
InstalaoInstaladores
Demoiselle Wizard
Mdulo 01 - Arquitetura
97
InstalaoInstaladores
Download das Bibliotecas
Entrar na seo Downloads no site do projeto do Framework Demoiselle no Source Forge Baixar os binrios e suas respectivas dependncias
https://www.sourceforge.net/projects/demoiselle
Mdulo 01 - Arquitetura
98
InstalaoLaboratrio 01
Exerccio 1.1
Objetivos: Fixar conceitos de arquitetura Criar projeto mnimo via arqutipo Maven Usar o Demoiselle Wizard para configurao da aplicao
Mdulo 01 - Arquitetura
99
ContatoTutorial Framework Demoiselle
Comunidade Demoiselle
Framework http://www.sourceforge.net/projects/demoiselle
Colaboraes
Lista [email protected]
Mdulo 01 - Arquitetura
100