SlideShare una empresa de Scribd logo
1 de 31
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
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
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”
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
Arquitetura de Referência

      Padrões de      Melhores práticas     Processo de     Critérios de
    Desenvolvimento   & documentação      desenvolvimento    Avaliação




                                 Frameworks




                            Workshops / PDSW
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
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
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
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
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
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)
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
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
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
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
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
Critérios de Avaliação


Camadas




Categoria   Adequação       Mercado       Técnico




Nível       Eliminatório   Desejáveis   Dispensáveis
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)
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
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
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
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)
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
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
Produtos Gerados

    Documentação

                               Instalação de
                                 Ambiente




                   Projeto


    Plano de
   Capacitação

                             Metodologia
                                 Ágil
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)
Plano de Capacitação
Metodologia Ágil
• Scrum
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
Propostas
• Manterdiscussãosobre a tecnologiaatravés do Comitê
  Java
• Disseminarosbenefícios do ambiente Web naempresa
• Comitê Java:
    – Ser referêncianatecnologia
    – Realizartreinamentointerno




3
0
OBRIGADO

Más contenido relacionado

La actualidad más candente

Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)
Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)
Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)Andre Santos
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)mauriciopel
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIYitzhak Stone
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Padrões de Projeto J2EE para Aplicações Web
Padrões de Projeto J2EE para Aplicações WebPadrões de Projeto J2EE para Aplicações Web
Padrões de Projeto J2EE para Aplicações WebDenis L Presciliano
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAntony Barbosa
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer FacesWillian Watanabe
 

La actualidad más candente (20)

Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
[AREMAS] portfólio
[AREMAS] portfólio[AREMAS] portfólio
[AREMAS] portfólio
 
Dao
DaoDao
Dao
 
Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)
Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)
Oracle para Desenvolvedores - recursos e técnicas - visões gerais (Uninove 2016)
 
Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMI
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Visão Geral de EJB 3.0
Visão Geral de EJB 3.0Visão Geral de EJB 3.0
Visão Geral de EJB 3.0
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Padrões de Projeto J2EE para Aplicações Web
Padrões de Projeto J2EE para Aplicações WebPadrões de Projeto J2EE para Aplicações Web
Padrões de Projeto J2EE para Aplicações Web
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
 
jCompany for SAP NetWeaver
jCompany for SAP NetWeaverjCompany for SAP NetWeaver
jCompany for SAP NetWeaver
 
Java ee 5
Java ee 5Java ee 5
Java ee 5
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 
Palestra Gerenciamento de Projetos com Scrum e MPS.Br
Palestra Gerenciamento de Projetos com Scrum e MPS.BrPalestra Gerenciamento de Projetos com Scrum e MPS.Br
Palestra Gerenciamento de Projetos com Scrum e MPS.Br
 
Apresentação JAGUAR Software Público
Apresentação JAGUAR Software PúblicoApresentação JAGUAR Software Público
Apresentação JAGUAR Software Público
 

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

V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...Clavis Segurança da Informação
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Brasil
 
ODI Series - Treinamento
ODI Series - TreinamentoODI Series - Treinamento
ODI Series - TreinamentoCaio Lima
 
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...SegInfo
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"sbcars
 
Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryLuciano Condé
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
TechNet Wiki Summit 2015 - DevOps
TechNet Wiki Summit 2015 - DevOpsTechNet Wiki Summit 2015 - DevOps
TechNet Wiki Summit 2015 - DevOpsAlan Carlos
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 

Similar a Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE (20)

V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
ODI Series - Treinamento
ODI Series - TreinamentoODI Series - Treinamento
ODI Series - Treinamento
 
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
 
Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise Library
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
TechNet Wiki Summit 2015 - DevOps
TechNet Wiki Summit 2015 - DevOpsTechNet Wiki Summit 2015 - DevOps
TechNet Wiki Summit 2015 - DevOps
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 

Más de Marco Antonio Maciel

TDC 2015 - Java 8 rodando em 256KB de RAM
TDC 2015 - Java 8 rodando em 256KB de RAMTDC 2015 - Java 8 rodando em 256KB de RAM
TDC 2015 - Java 8 rodando em 256KB de RAMMarco Antonio Maciel
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasMarco Antonio Maciel
 
TDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAMTDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAMMarco Antonio Maciel
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Marco Antonio Maciel
 
Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)Marco Antonio Maciel
 
TV Digital Interativa & IoT - TDC 2014
TV Digital Interativa & IoT - TDC 2014TV Digital Interativa & IoT - TDC 2014
TV Digital Interativa & IoT - TDC 2014Marco Antonio Maciel
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTMarco Antonio Maciel
 
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!Marco Antonio Maciel
 
OEP - Oracle Event Processing para Java Embedded
OEP - Oracle Event Processing para Java EmbeddedOEP - Oracle Event Processing para Java Embedded
OEP - Oracle Event Processing para Java EmbeddedMarco Antonio Maciel
 
O Aduino ama a Internet - TDC 2012
O Aduino ama a Internet - TDC 2012O Aduino ama a Internet - TDC 2012
O Aduino ama a Internet - TDC 2012Marco Antonio Maciel
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012Marco Antonio Maciel
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Marco Antonio Maciel
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensMarco Antonio Maciel
 
Segurança e Certificação Digital
Segurança e Certificação DigitalSegurança e Certificação Digital
Segurança e Certificação DigitalMarco Antonio Maciel
 

Más de Marco Antonio Maciel (18)

TDC 2015 - Java 8 rodando em 256KB de RAM
TDC 2015 - Java 8 rodando em 256KB de RAMTDC 2015 - Java 8 rodando em 256KB de RAM
TDC 2015 - Java 8 rodando em 256KB de RAM
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das Coisas
 
TDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAMTDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAM
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
 
Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)
 
TV Digital Interativa & IoT - TDC 2014
TV Digital Interativa & IoT - TDC 2014TV Digital Interativa & IoT - TDC 2014
TV Digital Interativa & IoT - TDC 2014
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoT
 
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
 
OEP - Oracle Event Processing para Java Embedded
OEP - Oracle Event Processing para Java EmbeddedOEP - Oracle Event Processing para Java Embedded
OEP - Oracle Event Processing para Java Embedded
 
O Aduino ama a Internet - TDC 2012
O Aduino ama a Internet - TDC 2012O Aduino ama a Internet - TDC 2012
O Aduino ama a Internet - TDC 2012
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas Nuvens
 
Segurança e Certificação Digital
Segurança e Certificação DigitalSegurança e Certificação Digital
Segurança e Certificação Digital
 
Carrier Ethernet
Carrier EthernetCarrier Ethernet
Carrier Ethernet
 
Online Atlas Of Cancer Mortality
Online Atlas Of Cancer MortalityOnline Atlas Of Cancer Mortality
Online Atlas Of Cancer Mortality
 
Balanced Scorecard
Balanced ScorecardBalanced Scorecard
Balanced Scorecard
 
Mobile Commerce
Mobile CommerceMobile Commerce
Mobile Commerce
 

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
  • 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. 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. Critérios de Avaliação Camadas Categoria Adequação Mercado Técnico Nível Eliminatório Desejáveis Dispensáveis
  • 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