apresentação j boss seam leandro ferreira - cepromat

18
Framework JBoss Seam Leandro Silva Ferreira Analista de Sistemas [email protected] [email protected] Janeiro/2011

Upload: leandro-silva-ferreira

Post on 11-Jun-2015

1.039 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Apresentação j boss seam   leandro ferreira - cepromat

Framework JBoss Seam

Leandro Silva FerreiraAnalista de Sistemas

[email protected]@gmail.com

Janeiro/2011

Page 2: Apresentação j boss seam   leandro ferreira - cepromat

Agenda

•Definição•Características•Porque utilizar?•Diferenciais•Sincronização de Modelo de Dados•Validação Inteligente•Exemplo de validação na classe de domínio•Seam-Gen•Interface Rica•Conclusão

Page 3: Apresentação j boss seam   leandro ferreira - cepromat

JBoss Seam é um framework open source (código aberto) para Java EE que vem unificar o modelo de componentes usado em todas as camadas da aplicação, fazendo a ponte entre os componentes de Visualização (Tela), Controle (Negócio) e Persistência (Banco de Dados) para que eles trabalhem de maneira uniforme.

Além da ponte entre estas tecnologias, o JBoss Seam oferece integração com uma grande gama de tecnologias: do AJAX que permite aplicações Web 2.0 com interface rica até a definição do fluxo das páginas por JBPM (Gerenciamento de Processos de Negócio com Java)

Passa também pela geração de PDFs, envio de email, indexação e busca avançada de conteúdo com Hibernate Search, balanceamento de carga com JBoss Cache entre outros.

Definição

Page 4: Apresentação j boss seam   leandro ferreira - cepromat

CaracterísticasUm framework completo para o desenvolvimento web, endereçando e integrando questões como:

•Persistência de dados

•Concorrência

•Gerenciamento de estados

•Segurança

•Email

•Geração de PDFs e gráficos

•Workflow

•Web Services

Page 5: Apresentação j boss seam   leandro ferreira - cepromat

Características• Cache de fragmentos de páginas

• Captcha

• BPM

• AJAX

• NÃO obriga a utilização do JBoss Application Server:

– O JBoss Seam é compatível com os maiores servidores de aplicações do mercado, como: BEA Weblogic, IBM Websphere, Oracle OAS, SUN Glassfish;

– Roda inclusive no Apache Tomcat;

• O JBoss Seam é open source (assim como todos os outros projetos JBoss)

de utilização gratuita e sem custos de licença;

Page 6: Apresentação j boss seam   leandro ferreira - cepromat

Porque utilizar?

Precisamos de um framework que integre a vasta gama de tecnologias/frameworks da plataforma Java, em um modelo unificado de desenvolvimento, agregando questões como segurança, controle

de acesso, geração de PDFs, gráficos, envio de emails, busca avançada de conteúdo, interface rica que se adapte a realidade atual

da Web 2.0, com foco em produtividade, deixando o desenvolvedor se preocupar com o negócio e não com questões de arquitetura.

O JBoss Seam é esse framework!

Page 7: Apresentação j boss seam   leandro ferreira - cepromat

Diferenciais•Framework com 6 anos de existência, mantido por um dos grupos mais

tradicionais de software livre da linguagem Java, a JBoss Community;

•Criado e mantido por Gavin King, o criador do Hibernate;

•Comunidade extremamente ativa com mais de 8.500 usuários registrados;

•Preparado para fácil utilização de testes unitários e de integração;

•Baseia-se somente em especificações oficiais Java:

– WebBeans JSR-299, a qual deu origem;

– JPA JSR-220;

– Common Annotations JSR-250;

– JSF JSR-127;

– EJB 3.0 JSR-175/220;

– Bean Validation JSR-303;

Page 8: Apresentação j boss seam   leandro ferreira - cepromat

Diferenciais• Por basear-se somente em especificações oficiais Java, permite que outras

tecnologias que implementem as especificações possam ser utilizadas em

conjunto e plugadas na aplicação, como o Hibernate Envers por exemplo,

utilizado na auditoria de sistemas;

• É focado para o desenvolvimento de aplicações Enterprise;

• Faz todo o “trabalho sujo” de integração de tecnologias Java como JSF,

JPA, EJB, JBPM, XHTML, JAAS, AJAX, JBOSS RULES, HIBERNATE,

HIBERNATE SEARCH, etc.., deixando o desenvolvedor concentrado no

domínio de negócios;

• Já vem preparado para desenvolvimento de aplicações distribuídas por

natureza;

• Forte integração com AJAX, sem a utilização de Java Script;

Page 9: Apresentação j boss seam   leandro ferreira - cepromat

Sincronização de Modelo de Dados

•Um dos artifícios da utilização do JBoss Seam em conjunto com o Hibernate,

é a possibilidade de :

–Gerar as tabelas no banco de dados, bem como seus relacionamentos,

sequences, constraints, etc., a partir das classes negociais do sistema,

refletindo na melhor representação de um modelo Orientado a Objetos em

uma arquitetura Relacional.

–Possibilidade de efetuar engenharia reversa e gerar as classes negociais

a partir das tabelas no banco de dados.

Page 10: Apresentação j boss seam   leandro ferreira - cepromat

Validação InteligenteOnde colocar as regras de validação?

• Na camada de apresentação?

– Sim, precisamos informar os erros de validação para o usuário,

– Mas, também temos de garantir as regras/restrições na camada de persistência;

Melhor opção: colocar a validação nas classes de domínio e reaproveitá-las na camada de apresentação com a utilização de AJAX!

Esse artifício, combinado com o uso do Hibernate, permite que as regras de validação negociais, sejam geradas

como constraints no banco de dados.

Page 11: Apresentação j boss seam   leandro ferreira - cepromat

Exemplo de validação na classe de domínio

Page 12: Apresentação j boss seam   leandro ferreira - cepromat

Seam-Gen

Utilitário interno do framework para geração automática de

CRUDs (Inclusão/Consulta/Atualização/Exclusão)

–Geração a partir de entidades existentes (top down)

–Ou, por engenharia reversa da base de dados (botton up):

–Identifica relacionamentos complexos

–Gera a interface gráfica coerente com o modelo de dados

–Fácil modificação do código gerado:

Código próximo ao criado manualmente

Page 13: Apresentação j boss seam   leandro ferreira - cepromat

Interface RicaRICH FACES

O RichFaces é um framework open source que implementa a especificação JSF JSR-127 e tem como objetivo prover uma gama de componentes visuais para serem utilizados na camada de visualização de uma aplicação.

•Baseia-se na utilização de AJAX(WEB 2.0) sem a utilização de JavaScript;

•Alto grau de integração com o JBoss Seam;

•Biblioteca com dezenas de componentes visuais com os mais variados objetivos;

•Extremamente leve por não requerer que toda a tela seja carregada novamente para iterações com o usuário, renderizando somente os componentes que devem ser atualizados;

•Possibilita a criação de Skins, onde o design da aplicação pode ser personalizado de acordo com as preferências do usuário;

•Consegue-se obter os mesmos resultados de interação com o usuário que uma aplicação desktop desenvolvida em Delphi ou Visual Basic;

Page 14: Apresentação j boss seam   leandro ferreira - cepromat

Interface Rica

Page 15: Apresentação j boss seam   leandro ferreira - cepromat

Interface Rica

Page 16: Apresentação j boss seam   leandro ferreira - cepromat

Interface Rica

Page 17: Apresentação j boss seam   leandro ferreira - cepromat

Interface Rica

Page 18: Apresentação j boss seam   leandro ferreira - cepromat

Conclusão

• O JBoss Seam não é tímido ao resolver os problemas da plataforma Java;

• O JBoss Seam promove o uso de arquiteturas simples, encorajando os

desenvolvedores a removerem camadas desnecessárias e a utilizarem

componentes contextuais;

• O JBoss Seam elimina a complexidade e torna as já comprovadas

tecnologias mais simples e acessíveis;

• Apesar de ser totalmente gratuito e com o código fonte aberto, o projeto é

financiado pelo JBoss Group, divisão da Red Hat, que oferece suporte,

consultoria e treinamentos oficiais para a solução open source.