Your SlideShare is downloading. ×
Governo do Estado de Mato GrossoCentro de Processamento de Dados do Estado de Mato GrossoMissão: “Coordenar o Sistema Esta...
Framework JBoss Seam                                                       Data da revisão: 27/01/2011                    ...
Framework JBoss Seam                                                                                                      ...
Framework JBoss Seam                                                        Data da revisão: 27/01/20111. Objetivo        ...
Framework JBoss Seam                                                        Data da revisão: 27/01/2011        3.2 Integra...
Framework JBoss Seam                                                        Data da revisão: 27/01/2011        3.7 Gerenci...
Framework JBoss Seam                                                                 Data da revisão: 27/01/2011          ...
Framework JBoss Seam                                                           Data da revisão: 27/01/2011                ...
Framework JBoss Seam                                                             Data da revisão: 27/01/2011              ...
Framework JBoss Seam                                                              Data da revisão: 27/01/2011            •...
Upcoming SlideShare
Loading in...5
×

Framework jee j boss seam leandro ferreira

1,294

Published on

Embasamento técnico sobre a utilização do
Framework JBoss Seam no desenvolvimento
de aplicações web 2.0.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,294
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Framework jee j boss seam leandro ferreira"

  1. 1. Governo do Estado de Mato GrossoCentro de Processamento de Dados do Estado de Mato GrossoMissão: “Coordenar o Sistema Estadual de Informação e Prover Soluções de Tecnologia daInformação para a Administração Pública”. Framework JBoss Seam Versão 1.0
  2. 2. Framework JBoss Seam Data da revisão: 27/01/2011 Histórico de Revisão Data Versão Descrição Autor27/01/2011 1.0 Embasamento técnico sobre a utilização do Leandro Silva Ferreira Framework JBoss Seam no desenvolvimento de aplicações web 2.0.CEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 2 de 10
  3. 3. Framework JBoss Seam Data da revisão: 27/01/2011 Índice1. OBJETIVO .............................................................................................................................................. 42. DEFINIÇÃO ............................................................................................................................................ 43. PRINCÍPIOS ........................................................................................................................................... 4 3.1 MODELO UNIFICADO DE COMPONENTES ............................................................................................ 4 3.2 INTEGRAÇÃO DO JSF COM EJB 3.0 ..................................................................................................... 5 3.3 AJAX INTEGRADO ............................................................................................................................. 5 3.4 GERENCIAMENTO DE PRIMEIRA CLASSE PARA PROCESSOS DE NEGÓCIO ........................................... 5 3.5 GERENCIAMENTO DECLARATIVO DE ESTADO .................................................................................... 5 3.6 BIJECTION .......................................................................................................................................... 5 3.7 GERENCIAMENTO DE ÁREA DE TRABALHO E NAVEGAÇÃO MULTI-JANELA ....................................... 6 3.8 PREFERE ANNOTATIONS À XML ........................................................................................................ 6 3.9 FACILIDADE PARA REALIZAR TESTES DE INTEGRAÇÃO ...................................................................... 6 3.10 HÁ MAIS EM UMA APLICAÇÃO WEB DO QUE FORNECER PÁGINAS HTML ............................................ 64. CARACTERÍSTICAS ............................................................................................................................ 65. POR QUE UTILIZAR? .......................................................................................................................... 76. DIFERENCIAIS ...................................................................................................................................... 77. SINCRONIZAÇÃO DE MODELO DE DADOS .................................................................................. 88. VALIDAÇÃO INTELIGENTE.............................................................................................................. 99. SEAM-GEN ............................................................................................................................................. 910. INTERFACE RICA ............................................................................................................................ 9 10.1 RICH FACES ........................................................................................................................................ 911. CONCLUSÃO ................................................................................................................................... 1012. REFERÊNCIAS ................................................................................................................................ 10CEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 3 de 10
  4. 4. Framework JBoss Seam Data da revisão: 27/01/20111. Objetivo O objetivo deste documento é apresentar o framework baseado em Java “JBossSeam”.2. Definição O JBoss Seam é uma poderosa plataforma de desenvolvimento open source paraconstrução de aplicações web com interface rica em Java. Integra tecnologias comoAsynchronous JavaScript e XML (AJAX), Java Server Faces (JSF), Java Persistence(JPA), Enterprise Java Beans (EJB 3.0) e Business Process Management (BPM) em umasolução completa através da utilização de ferramentas sofisticadas. O Seam foi desenvolvido para eliminar a complexidade em níveis de arquitetura eAPI. Oferece aos desenvolvedores total controle sobre a implementação da lógica denegócio sem se preocupar com a exposição das informações e/ou configuraçãoexcessiva de arquivos XML, dispondo de anotações para classes Java e componentesbem definidos para a camada de apresentação. Gavin King, criador do Hibernate e JPA, líder do projeto Seam e líder daespecificação da JSR 299: Web Beans, escreveu a proposta que visa padronizar esimplificar a forma de desenvolvimento sugerida pelo Seam, uma API para criação deaplicações web de fácil manutenção e ótima produtividade. 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 etreinamentos oficiais para a solução open source.3. Princípios A seguir são detalhados os princípios pelos quais o JBoss Seam é baseado. 3.1 Modelo Unificado de Componentes O Seam define um modelo uniforme de componentes para toda a aplicação. Nãofaz distinção entre os componentes da camada de apresentação e os componentes dalógica de negócios, possibilitando que a arquitetura da aplicação seja concebidalivremente, ao invés de forçar a utilização de um esquema não-natural conforme écomum nos frameworks usados atualmente.CEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 4 de 10
  5. 5. Framework JBoss Seam Data da revisão: 27/01/2011 3.2 Integração do JSF com EJB 3.0 Segundo a documentação oficial do Seam, o JSF e o EJB3 são dois dos melhoresnovos recursos do Java EE 5. O EJB3 representa o modelo de componentes para onegócio do lado do servidor e da lógica de persistência. Por outro lado, o JSF representao modelo de componentes ricos para a camada de apresentação. 3.3 AJAX Integrado O Seam suporta as melhores soluções open source de JSF com AJAX: JBossRichFaces e ICEfaces. Estas soluções permitem adicionar capacidade de AJAX para ainterface do usuário sem a necessidade de escrever qualquer linha de código JavaScript. 3.4 Gerenciamento de Primeira Classe para Processos de Negócio De acordo com a documentação, o Seam fornece gerenciamento transparentedos processos de negócio através do jBPM fazendo com que seja muito fácil implementarfluxos de trabalho complexos, colaboração e gerenciamento de tarefas através dautilização de jBPM e Seam. 3.5 Gerenciamento Declarativo de Estado Além dos conceitos de gerenciamento de transações declarativas e segurançadeclarativas, bem como a gestão declarativa do contexto de persistência, o JBoss Seamainda apresenta o gerenciamento de transações a nível de estado de aplicação. Tradicionalmente, as aplicações J2EE implementam o gerenciamento de estadomanualmente, obtendo e enviando atributos da sessão do servlet e da requisição. Estaabordagem de gerenciamento do estado é a fonte de muitos erros e de vazamentos dememória quando as aplicações não conseguem limpar os atributos da sessão, ou quandoos dados da sessão estão associados com diferentes fluxos de trabalho colidindo emuma aplicação multi-janela. O Seam tem o potencial de eliminar quase totalmente essaclasse de erros. 3.6 Bijection O Seam criou o conceito de Bijection (bijeção), que é uma generalização deDependency Injection (injeção de dependência) ou Inversion of Control (inversão decontrole), que é bastante familiar no mundo Java.CEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 5 de 10
  6. 6. Framework JBoss Seam Data da revisão: 27/01/2011 3.7 Gerenciamento de Área de Trabalho e Navegação Multi-Janela As aplicações Seam permitem ao usuário alternar livremente entre várias abas donavegador, cada uma associada a uma conversação diferente, seguramente isolada. Asaplicações podem ainda oferecer a vantagem do Workspace Management(gerenciamento da área de trabalho) permitindo ao usuário alternar entre asconversações (workspaces) em uma única aba do navegador. 3.8 Prefere Annotations à XML Tradicionalmente, a comunidade Java tem se mantido em estado de profundaconfusão sobre precisamente qual o tipo de meta-informação contar como configuração.O J2EE e os populares "containers leves" têm fornecido deployment descriptorsbaseados em XML, tanto para as coisas que são realmente configuráveis entre diferentesimplantações do sistema, quanto para qualquer outro tipo de declaração que não podeser facilmente expressa em Java. As annotations do Java 5 mudaram tudo isso. 3.9 Facilidade para realizar Testes de Integração Os componentes Seam, sendo simples classes Java, são, por natureza testáveispor unidade. Mas para aplicações complexas, o teste unitário sozinho é insuficiente. Oteste de integração tem sido tradicionalmente uma tarefa difícil e confusa para aplicaçõesweb em Java. Entretanto, o Seam fornece testabilidade para as aplicações como umacaracterística do cerne do framework. O desenvolvedor pode escrever facilmente testescom o JUnit ou TestNG que reproduzem uma interação completa com o usuário,exercitando todos os componentes do sistema fora da visão (página JSP ou Facelets). 3.10 Há mais em uma aplicação web do que fornecer páginas HTML A documentação oficial do Seam afirma que os frameworks web de hoje pensampequeno demais. Eles permitem capturar a entrada do usuário em um formulário dentrodos objetos Java e então deixam o desenvolvedor pendurado. Um framework webverdadeiramente completo deve abordar problemas como persistência, concorrência,assincronicidade, gerenciamento de estado, segurança, email, mensagens, PDF egeração de gráficos, workflow, wiki text rendering, webservices, cache e mais.4. Características Um framework completo para o desenvolvimento web, endereçando e integrandoquestões como:CEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 6 de 10
  7. 7. Framework JBoss Seam Data da revisão: 27/01/2011 • Persistência de dados; • Concorrência; • Gerenciamento de estados; • Segurança; • Email; • Geração de PDFs e gráficos; • Workflow; • Web Services; • Cache de fragmentos de páginas; • Captcha; • BPM; • AJAX; • NÃO obriga a utilização do JBoss Application Server, sendo compatível com os maiores servidores de aplicações do mercado, como: BEA Weblogic, IBM Websphere, Oracle OAS, SUN Glassfish, podendo ainda ser configurável para rodar no Apache Tomcat; • É open source (assim como todos os outros projetos JBoss) de utilização gratuita e sem custos de licença;5. Por que utilizar? Precisamos de um framework que integre a vasta gama detecnologias/frameworks da plataforma Java, em um modelo unificado dedesenvolvimento, agregando questões como segurança, controle de acesso, geração dePDFs, gráficos, envio de emails, busca avançada de conteúdo, interface rica que seadapte a realidade atual da Web 2.0, com foco em produtividade, deixando odesenvolvedor se preocupar com o negócio e não com questões de arquitetura. O JBoss Seam é esse framework!6. Diferenciais • Framework com 06 anos de existência, mantido por um dos grupos maisCEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 7 de 10
  8. 8. Framework JBoss Seam Data da revisão: 27/01/2011 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; • 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;7. Sincronização de Modelo de Dados Um dos artifícios da utilização do JBoss Seam em conjunto com o Hibernate, é apossibilidade 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 emCEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 8 de 10
  9. 9. Framework JBoss Seam Data da revisão: 27/01/2011 uma arquitetura Relacional. • Possibilidade de efetuar engenharia reversa e gerar as classes negociais a partir das tabelas no banco de dados.8. Validação Inteligente Onde 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 degarantir as regras/restrições na camada de persistência. Sendo assim, a melhor opção é colocar a validação nas classes de domínio ereaproveitá-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, sejamgeradas como constraints no banco de dados.9. Seam-Gen Utilitário interno do framework para geração automática deCRUDs (Inclusão/Consulta/Atualização/Exclusão) que permite: • 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 manualmente10. Interface Rica 10.1 Rich Faces O RichFaces é um framework open source que implementa a especificação JSFJSR-127 e tem como objetivo prover uma gama de componentes visuais para seremutilizados na camada de visualização de uma aplicação. Suas principais características sã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;CEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 9 de 10
  10. 10. Framework JBoss Seam Data da revisão: 27/01/2011 • 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;11. Conclusão O JBoss Seam não é tímido ao resolver os problemas da plataforma Java,principálmente pelo fato de promover o uso de arquiteturas simples, encorajando osdesenvolvedores a removerem camadas desnecessárias e a utilizarem componentescontextuais, conseguindo assim eliminar a complexidade e tornando as já comprovadastecnologias 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 etreinamentos oficiais para a solução open source.12. Referências • Página principal do JBoss Seam. - www.jboss.com/products/seam • Página sobre o framework JBoss Seam. - www.seamframework.org • Página oficial da tecnologia JavaServer Faces. - java.sun.com/javaee/javaserverfaces • Página oficial da tecnologia Enterprise JavaBeans. - java.sun.com/products/ejb • Página oficial do servidor de aplicação Glassfish. - glassfish.java.net • Página oficial da IDE Open-Source NetBeans. - www.netbeans.org • Página oficial da JSR Web Beans. - jcp.org/en/jsr/detail?id=299 • Rich Faces - http://livedemo.exadel.com/richfaces-demo/index.jspCEPROMAT/UGPTI Framework JEE JBoss Seam - Leandro Ferreira.docx Página 10 de 10

×