Apresentação j boss seam leandro ferreira - cepromat

1,260 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,260
On SlideShare
0
From Embeds
0
Number of Embeds
94
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apresentação j boss seam leandro ferreira - cepromat

  1. 1. Framework JBoss Seam Leandro Silva Ferreira Analista de Sistemas [email_address] [email_address] Janeiro/2011
  2. 2. <ul><li>Definição </li></ul><ul><li>Características </li></ul><ul><li>Porque utilizar? </li></ul><ul><li>Diferenciais </li></ul><ul><li>Sincronização de Modelo de Dados </li></ul><ul><li>Validação Inteligente </li></ul><ul><li>Exemplo de validação na classe de domínio </li></ul><ul><li>Seam-Gen </li></ul><ul><li>Interface Rica </li></ul><ul><li>Conclusão </li></ul>Agenda
  3. 3. <ul><li>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. </li></ul><ul><li>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) </li></ul><ul><li>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. </li></ul>Definição
  4. 4. Características <ul><li>Um framework completo para o desenvolvimento web, endereçando e integrando questões como: </li></ul><ul><li>Persistência de dados </li></ul><ul><li>Concorrência </li></ul><ul><li>Gerenciamento de estados </li></ul><ul><li>Segurança </li></ul><ul><li>Email </li></ul><ul><li>Geração de PDFs e gráficos </li></ul><ul><li>Workflow </li></ul><ul><li>Web Services </li></ul>
  5. 5. Características <ul><li>Cache de fragmentos de páginas </li></ul><ul><li>Captcha </li></ul><ul><li>BPM </li></ul><ul><li>AJAX </li></ul><ul><li>NÃO obriga a utilização do JBoss Application Server : </li></ul><ul><ul><li>O JBoss Seam é compatível com os maiores servidores de aplicações do mercado, como: BEA Weblogic, IBM Websphere, Oracle OAS, SUN Glassfish; </li></ul></ul><ul><ul><li>Roda inclusive no Apache Tomcat; </li></ul></ul><ul><li>O JBoss Seam é open source (assim como todos os outros projetos JBoss) de utilização gratuita e sem custos de licença ; </li></ul>
  6. 6. Porque utilizar? <ul><li>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. </li></ul><ul><li>O JBoss Seam é esse framework! </li></ul>
  7. 7. Diferenciais <ul><li>Framework com 6 anos de existência, mantido por um dos grupos mais tradicionais de software livre da linguagem Java, a JBoss Community ; </li></ul><ul><li>Criado e mantido por Gavin King, o criador do Hibernate; </li></ul><ul><li>Comunidade extremamente ativa com mais de 8.500 usuários registrados; </li></ul><ul><li>Preparado para fácil utilização de testes unitários e de integração; </li></ul><ul><li>Baseia-se somente em especificações oficiais Java : </li></ul><ul><ul><li>WebBeans JSR-299, a qual deu origem; </li></ul></ul><ul><ul><li>JPA JSR-220; </li></ul></ul><ul><ul><li>Common Annotations JSR-250; </li></ul></ul><ul><ul><li>JSF JSR-127; </li></ul></ul><ul><ul><li>EJB 3.0 JSR-175/220; </li></ul></ul><ul><ul><li>Bean Validation JSR-303; </li></ul></ul>
  8. 8. Diferenciais <ul><li>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; </li></ul><ul><li>É focado para o desenvolvimento de aplicações Enterprise ; </li></ul><ul><li>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; </li></ul><ul><li>Já vem preparado para desenvolvimento de aplicações distribuídas por natureza; </li></ul><ul><li>Forte integração com AJAX, sem a utilização de Java Script ; </li></ul>
  9. 9. Sincronização de Modelo de Dados <ul><li>Um dos artifícios da utilização do JBoss Seam em conjunto com o Hibernate, é a possibilidade de : </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>Possibilidade de efetuar engenharia reversa e gerar as classes negociais a partir das tabelas no banco de dados . </li></ul></ul>
  10. 10. Validação Inteligente <ul><li>Onde colocar as regras de validação? </li></ul><ul><li>Na camada de apresentação? </li></ul><ul><ul><li>Sim, precisamos informar os erros de validação para o usuário, </li></ul></ul><ul><ul><li>Mas , também temos de garantir as regras/restrições na camada de persistência ; </li></ul></ul><ul><li>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 ! </li></ul><ul><li>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 . </li></ul>
  11. 11. Exemplo de validação na classe de domínio
  12. 12. Seam-Gen <ul><li>Utilitário interno do framework para geração automática de CRUDs (Inclusão/Consulta/Atualização/Exclusão) </li></ul><ul><ul><li>Geração a partir de entidades existentes (top down) </li></ul></ul><ul><ul><li>Ou, por engenharia reversa da base de dados (botton up): </li></ul></ul><ul><ul><li>Identifica relacionamentos complexos </li></ul></ul><ul><ul><li>Gera a interface gráfica coerente com o modelo de dados </li></ul></ul><ul><ul><li>Fácil modificação do código gerado: Código próximo ao criado manualmente </li></ul></ul>
  13. 13. Interface Rica <ul><li>RICH FACES </li></ul><ul><li>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. </li></ul><ul><li>Baseia-se na utilização de AJAX (WEB 2.0) sem a utilização de JavaScript ; </li></ul><ul><li>Alto grau de integração com o JBoss Seam; </li></ul><ul><li>Biblioteca com dezenas de componentes visuais com os mais variados objetivos; </li></ul><ul><li>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; </li></ul><ul><li>Possibilita a criação de Skins , onde o design da aplicação pode ser personalizado de acordo com as preferências do usuário ; </li></ul><ul><li>Consegue-se obter os mesmos resultados de interação com o usuário que uma aplicação desktop desenvolvida em Delphi ou Visual Basic; </li></ul>
  14. 14. Interface Rica
  15. 15. Interface Rica
  16. 16. Interface Rica
  17. 17. Interface Rica
  18. 18. Conclusão <ul><li>O JBoss Seam não é tímido ao resolver os problemas da plataforma Java; </li></ul><ul><li>O JBoss Seam promove o uso de arquiteturas simples , encorajando os desenvolvedores a removerem camadas desnecessárias e a utilizarem componentes contextuais; </li></ul><ul><li>O JBoss Seam elimina a complexidade e torna as já comprovadas tecnologias mais simples e acessíveis; </li></ul><ul><li>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. </li></ul>

×