Uso de Critérios de Seleção
para Frameworks Livres em
Plataforma Java EE
Marcelo Carius
Diretor Executivo
marcelo.carius@n...
O que motivou o Projeto
•   Existência de iniciativasisoladasesemcontrole
•   Grande número de aplicaçõesjádesenvolvidasem...
Objetivo do Projeto
• Estudar as várias alternativas disponíveis no mercado para
  compor um framework, baseado em critéri...
Benefícios Esperados
• Simplificar e padronizar o desenvolvimento seguindo a arquitetura
  de forma criteriosa
• Desenvolv...
Arquitetura de Referência

      Padrões de      Melhores práticas     Processo de     Critérios de
    Desenvolvimento   ...
Controle de MVC
 Geralmente referenciadas em conjunto como camada de “apresentação” ou
 “cliente”, pois é composta pelas p...
Camada de Persistência
 É a camada responsável pelo acesso à dados seja através de comandos
 SQLs ou chamadas a procedures...
Camada de Negócios
 Conhecidos como “frameworks de aplicação” ,a camada de negócios situa-se entre o
 Controlador e a Cama...
Relatórios
 Responsável por visualização de relatórios analíticos ou sintéticos de
 dados. Atualmente espera-se que seja p...
Webservice
 Web Services são componentes de software com baixo fator de acoplamento,
 utilizados por meio de padrões de te...
Segurança
 Responsável pela autenticação e autorização de acesso à recursos do
 servidor de aplicações, tais como: compone...
Logging
 Permite filtrar eventos de log por componente ou outro critério que faça sentido
 na estrutura da aplicação. Perm...
Testes Unitários
    É o processo de desenvolvimento de software pelo qual testes formais são utilizados
    para determin...
Gerenciamento de Cliclo de Vida
    Mecanismo de controle de todo o ciclo de vida do projeto, apoiando e controlando
    p...
Framework Java EE

• Apache Struts2 - MVC
• JPA + Hibernate 3.2 - Persistência de dados
• EJB 3.0 - Camada de negócios
• A...
Ferramentas de suporte ao desenv.
•   Eclipse - IDE
•   Maven 2 - Gerenciamento do ciclo de vida do projeto
•   Continuum ...
Critérios de Avaliação


Camadas




Categoria   Adequação       Mercado       Técnico




Nível       Eliminatório   Dese...
Critérios – Adequação ao Ambiente
 • CritériosEliminatórios
    – Segurança Java EE
    – Integração com LDAP/AD
    – Tes...
Critérios - Mercado
 • CritériosEliminatórios
    – Maturidade
    – Disponibilidade de Informações
    – Robustez
    – A...
Critérios Técnicos – Camada de Negócios
 • CritériosEliminatórios
    – TransaçõesDeclarativas
    – Suporte a JTA

 • Cri...
Critérios Técnicos - Camada de Persistência I
• CritériosEliminatórios
   – Mapear Stored Procedures
   – Pode-se escrever...
Critérios Técnicos - Camada de Persistência II
• CritériosDesejáveis
   – Suporte a comandos SQL em batch
   – Caching clu...
Critérios Técnicos - Camada de Apresentaçao I
• CritériosEliminatórios
   – Possuiimplementaçãobaseadaem MVC
   – Suporteà...
Critérios Técnicos - Camada de ApresentaçaoII
• CritériosDesejáveis
   – Integração com frameworks de negócios
   – Necess...
Produtos Gerados

    Documentação

                               Instalação de
                                 Ambiente...
Documentação

Entrevistas            Setores da TI

                 Desenvolvedor            Cobertura       Continuum
 M...
Plano de Capacitação
Metodologia Ágil
• Scrum
Desafios
• Mudança de Cultura
    – TI
    – Clientes
• Estabelecer uma maior integração entre as equipes
• Implantar papé...
Propostas
• Manterdiscussãosobre a tecnologiaatravés do Comitê
  Java
• Disseminarosbenefícios do ambiente Web naempresa
•...
OBRIGADO
Upcoming SlideShare
Loading in …5
×

Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE

2,303 views

Published on

Apresentação ministrada por mim e pelo Marcelo Carius (Neki) no Evento Javali 2009 em Porto Alegre.

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

No Downloads
Views
Total views
2,303
On SlideShare
0
From Embeds
0
Number of Embeds
211
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE

  1. 1. Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE Marcelo Carius Diretor Executivo marcelo.carius@neki.com.br Marco Antonio Maciel Analista de Sistemas marcoantonio.maciel@goldencross.com.br
  2. 2. O que motivou o Projeto • Existência de iniciativasisoladasesemcontrole • Grande número de aplicaçõesjádesenvolvidasemJava • Buscapelapadronização • Estruturaçãoparanovosdesenvolvimentos • Adequaçãoaomercado • Atualizaçãotecnológicae dos profissionais 2
  3. 3. Objetivo do Projeto • Estudar as várias alternativas disponíveis no mercado para compor um framework, baseado em critérios claros, e alinhados com a estratégia da instituição • Definir um conjunto das melhores tecnologias, ferramentas e metodologias para compor o “chassi de desenvolvimento” de sistemas baseado na tecnologia Java EE • Analisar o cenário da instituição, suas necessidades de desenvolvimento, e definir os padrões, normas e processos que nortearão seu desenvolvimento e operação • Estruturar o “Framework Java EE”
  4. 4. Benefícios Esperados • Simplificar e padronizar o desenvolvimento seguindo a arquitetura de forma criteriosa • Desenvolvedores se concentram em adicionar maior valor para o negócio • Mitigar as vulnerabilidades de segurança das aplicações através das boas práticas de codificação • Reduzir esforço de manutenção e Aumentar produtividade • Definirclaramenteospapéis • CapacitarosAnalistasalinhandoàtecnologia • Potencializar o outsourcing de desenvolvimento • Facilitar a implementação de ferramentas de QA • Suportar a estratégia de SOA da empresa 4
  5. 5. Arquitetura de Referência Padrões de Melhores práticas Processo de Critérios de Desenvolvimento & documentação desenvolvimento Avaliação Frameworks Workshops / PDSW
  6. 6. Controle de MVC Geralmente referenciadas em conjunto como camada de “apresentação” ou “cliente”, pois é composta pelas partes da aplicação que apresentam dados e interagem com o usuário. Esta camada é responsável por transformar os dados obtidos da camada de negócios em algo que possa ser utilizado e compreendido pelo usuário do sistema. • JSF 1.1 • Velocity • JSF 1.2 • Adobe Flex • Seam (Super JSF) • Freemarker • Shale (Super JSF) • Sitemesh • Struts 1 • Tiles • Struts 2 • GWT • Wicket • Spring MVC •Tapestry • Spring Webflow
  7. 7. Camada de Persistência É a camada responsável pelo acesso à dados seja através de comandos SQLs ou chamadas a procedures. Todas as instruções de acesso ao Banco de Dados são realizados pela camada de persistência. Uma vez realizadas as instruções de acesso ao Banco de Dados, a camada de persistência retorna o status e/ou informações a camada de negócios. • Entity Beans 2.1 • Hibernate •JPA + Hibernate • iBatis • JDO • Spring • JDBC • Castor • TopLink Essentials
  8. 8. Camada de Negócios Conhecidos como “frameworks de aplicação” ,a camada de negócios situa-se entre o Controlador e a Camada de Persistência e é responsável por implementar os processos e atividades de negócios que devem ser suportados pelo Sistema de Informação. Portanto ela não deve lidar com questões relativas à representação dos dados em tela ou meio persistente, nem com estratégias de busca e recuperação dos dados. • EJB 2.1 •JBossSeam • EJB3 •POJOs (Java simples) • Spring •AspectJ / ADT • Spring 2/2.5
  9. 9. Relatórios Responsável por visualização de relatórios analíticos ou sintéticos de dados. Atualmente espera-se que seja possível diferentes formatos (exemplo: XLS, XML e PDF) de saída e integração com objetos de negócio (reutilização de componentes). •JasperReports / iReports • Eclipse BIRT
  10. 10. Webservice Web Services são componentes de software com baixo fator de acoplamento, utilizados por meio de padrões de tecnologia Internet. Um Web Service representa uma função de negócio ou um serviço que pode ser acessado por uma outra aplicação interna ou externa. • JAX-WS • REST
  11. 11. Segurança Responsável pela autenticação e autorização de acesso à recursos do servidor de aplicações, tais como: componentes de negócios, URLs (menus personalizados) entre outros. •JAAS (Java Authentication and Authorization Service) • Acegi (Spring)
  12. 12. Logging Permite filtrar eventos de log por componente ou outro critério que faça sentido na estrutura da aplicação. Permite diferenciar eventos rotineiros, informações para depuração e erros críticos. Os eventos poderão ser registrados em arquivos, banco de dados e em outros formatos. • Log4J • Logging API •CommonsLogging / Log4j • SLF4J
  13. 13. Testes Unitários É o processo de desenvolvimento de software pelo qual testes formais são utilizados para determinar o escopo das atividades e determinar sua conclusão. Testam um componente (storedprocedure, método, classe) isoladamente pelas suas entradas e saídas. Asseguram a qualidade de componentes e reduzem o risco de problemas quando estes são usados como parte de uma aplicação. •JUnit •TestNG • Jmock • HttpUnit / WebUnit • Jmeter • DbUnit • Selenium • XMLUnit • FIT • JPerfUnit • Emma / Cobertura • Cactus • Cargo 1 3
  14. 14. Gerenciamento de Cliclo de Vida Mecanismo de controle de todo o ciclo de vida do projeto, apoiando e controlando processos como: controle de dependências (bibliotecas e/ou componentes), compilação, empacotamento, automação de testes e publicação (deploy) de aplicações no servidor de aplicações. •Apache Maven 2 1 4
  15. 15. Framework Java EE • Apache Struts2 - MVC • JPA + Hibernate 3.2 - Persistência de dados • EJB 3.0 - Camada de negócios • Apache Commons Logging/Log4J - Logging • Junit - Testes unitários • iReport + JasperReports - Relatórios • JAAS - Segurança • JAX-WS - Web Services 1 5
  16. 16. Ferramentas de suporte ao desenv. • Eclipse - IDE • Maven 2 - Gerenciamento do ciclo de vida do projeto • Continuum - IntegraçãoContínua • Subversion (SVN) - Controle de versão • Cobertura-Análise de cobertura de testes xcódigo-fonte • DWR / AJAX • JBoss 4.2.3 - Servidor de Aplicação • IBM Websphere 6.1 - Servidor de Aplicação
  17. 17. Critérios de Avaliação Camadas Categoria Adequação Mercado Técnico Nível Eliminatório Desejáveis Dispensáveis
  18. 18. Critérios – Adequação ao Ambiente • CritériosEliminatórios – Segurança Java EE – Integração com LDAP/AD – Testável (unidade / integração) – Alta Disponibilidade – ExecuçãoRemota – Compatibilidade com oServidor de AplicaçãoWebSphere 6.1 – Mão-de-ObraEspecializada • CritériosDesejáveis – Delegação de autenticação – PadrãoOficial – MúltiplosFornecedores – ToleranteàFalhas – Clusterizável – Suportecontratual (Oficial / Terceiros)
  19. 19. Critérios - Mercado • CritériosEliminatórios – Maturidade – Disponibilidade de Informações – Robustez – Apoio de GrandesEmpresas • CritériosDesejáveis – Adoção – Comunidadedesenvolvedora – Possui SCM aberto – Possuibug trackingaberto – Está sob umalicençaaprovadapela OSI • CritériosDispensáveis – Popularidade – Site do fornecedorpossuibináriosprontos
  20. 20. Critérios Técnicos – Camada de Negócios • CritériosEliminatórios – TransaçõesDeclarativas – Suporte a JTA • CritériosDesejáveis – Transacional XA – FracamenteAcoplado – Integração com Web Services – PersistênciaIntegrada – SegurançaDeclarativa • CritériosDispensáveis – BaseadoemAnotações – Suporte a temporização / escalonamento
  21. 21. Critérios Técnicos - Camada de Persistência I • CritériosEliminatórios – Mapear Stored Procedures – Pode-se escreverconsultasem SQL diretamente – Exigealterações no BD – Fazoperaçõesemcascatanosrelacionamentos entre objetos – Suporte a chavesprimáriasgeradaspelobanco – Suporta pools de conexõesaobanco de dados
  22. 22. Critérios Técnicos - Camada de Persistência II • CritériosDesejáveis – Suporte a comandos SQL em batch – Caching clusterizável – Caching de queries – Faz "lazy-loading" – Suportadatasources / pools de conexõesgerenciadospelo container – Mapeamento de tipos (Java para SQL) customizável – Suporte a blobs – Mapeamento de hierarquias de classes (herança) – Mapeamento de coleções Java (HashSet, Set, List)
  23. 23. Critérios Técnicos - Camada de Apresentaçao I • CritériosEliminatórios – Possuiimplementaçãobaseadaem MVC – Suporteàmúltiplasjanelasouabas do navegador – Previnesubmissãoduplicada – Template web compatível com ferramentas de desenvolvimento Java
  24. 24. Critérios Técnicos - Camada de ApresentaçaoII • CritériosDesejáveis – Integração com frameworks de negócios – Necessidade de componentes extras – Client-side validation – Template web compatível com ferramentas de design – Suporteaouso de Ajax – Navegaçãodeclarativa – Validaçãodeclarativa – Compatibilidade com JSTL – Compatibilidade com Framework de Layout – Orientado a componentes / eventos – Orientado a action
  25. 25. Produtos Gerados Documentação Instalação de Ambiente Projeto Plano de Capacitação Metodologia Ágil
  26. 26. Documentação Entrevistas Setores da TI Desenvolvedor Cobertura Continuum Manuais Arquitetura Eclipse Maven 2 Ilustrada Camada de Web (MVC) Web Services TDD Negócios Workshops Infra- Camada de Relatórios estrutura Ajax Persistência coorporativos (JavaEE)
  27. 27. Plano de Capacitação
  28. 28. Metodologia Ágil • Scrum
  29. 29. Desafios • Mudança de Cultura – TI – Clientes • Estabelecer uma maior integração entre as equipes • Implantar papéis • Disseminar o conhecimento da nova arquitetura 2 9
  30. 30. Propostas • Manterdiscussãosobre a tecnologiaatravés do Comitê Java • Disseminarosbenefícios do ambiente Web naempresa • Comitê Java: – Ser referêncianatecnologia – Realizartreinamentointerno 3 0
  31. 31. OBRIGADO

×