Demoiselle Tutorial Modulo01 Arquitetura Apresentacao

Embed Size (px)

Citation preview

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