Este documento resume um projeto para definir um framework Java EE padronizado para desenvolvimento de sistemas na instituição. Ele descreve os objetivos e benefícios do projeto, critérios de seleção para as tecnologias do framework, e as ferramentas e produtos resultantes, incluindo documentação, plano de capacitação e proposta para disseminar a nova arquitetura.
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
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
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. 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. 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. 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. 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. 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. 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. Produtos Gerados
Documentação
Instalação de
Ambiente
Projeto
Plano de
Capacitação
Metodologia
Ágil
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)
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. Propostas
• Manterdiscussãosobre a tecnologiaatravés do Comitê
Java
• Disseminarosbenefícios do ambiente Web naempresa
• Comitê Java:
– Ser referêncianatecnologia
– Realizartreinamentointerno
3
0