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.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
MySQL Profiling com Enterprise Monitor MySQL Brasil
Uma atividade que toma bastante tempo do administrador ou desenvolvedor é encontrar Queries que consomem muitos recursos do servidor. Há um expressivo ganho de performance otimizando queries lentas, podendo chegar a aumentar várias vezes o tempo de resposta. Vamos ver como a ferramenta Query Analyzer pode nos ajudar nesta tarefa e ainda conhecer um pouco melhor o que está contido na edição MySQL Enterprise, com foco principalmente em desenvolvedores.
Um comportamento observado na construção de várias aplicações é a existência de blocos de código com o mesmo comportamento, se observamos com uma lupa, toda a aplicação precisa ter tratamento de exceção, validação de campos, logging e uma camada de acesso a dados. No intuito de facilitar a vida dos desenvolvedores, a Microsoft desenvolveu a Enterprise Library. A Enterprise Library 4.1 engloba um conjunto de blocos de aplicação, incluindo: Logging, Tratamento de exceção, camada de acesso a dados, criptografia, validção, injeção de código e outros recursos. O design dos blocos é orientado pelas melhores práticas recomendadas pela Microsoft para aplicações .NET. Acompanhe neste Webcast a utilização na prática dos recursos da Enterprise Library 4.1 dentro das suas aplicações.
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
Venha conhecer as principais tecnologias disponibilizadas para o desenvolvimento de aplicações Web utilizando a plataforma Java Enterprise.
Neste mini-curso serão demonstrados conceitos e exemplos das bibliotecas para o desenvolvimento Java EE, como: JSF, JPA, CDI EJB, JAX-RS, dentre outras.
Apresentação feita no Microsoft TechNet Wiki Summit 2015 sobre DevOps e as soluções da Microsoft para processos de desenvolvimento de aplicações com práticas DevOps e ALM (Application Lifecycle Management)
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
O objetivo desta palestra é mostrar como é possível evoluir e reescrever partes de uma aplicação legada com mais 5 anos em produção utilizando técnicas de uma parte Domain Driven Design conhecida como Strategic Design. É uma aplicação web escrita em Python e Django que suporta a operação de um grupo focado em medicina do trabalho, com clínicas espalhadas pelo país.
Nesta palestra vamos mostrar uma abordagem que pode ajudar times que precisam lidar com aplicações legadas grandes e complexas no caminho da modernização.
TDC 2015 - Java 8 em 256 KB de memória RAM
A plataforma Java é capaz de ser executada em devices muito restritos, e portanto é uma ótima escolha para projetos de automação e Internet das coisas. Vou mostrar como instalar a Java Virtual Machine 8, configurar e executar programas em uma placa Freescale FRDM K64F, um dispositivo com 256 KB de memória baseado na plataforma ARM Cortex M com RTOS mbed, que ainda conta com compatibilidade com Shields Arduino. Uma excelente plataforma para desenvolvimento de dispositivos para automação e Internet das coisas.
Palestra apresentada no TDC 2012 na trilha de Arduino.
O Arduino é uma plataforma bem legal, eu sei. Mas só fazer led piscar não é muito empolgante, concordam?
Então que tal aprender como integrar o seu Arduino com a Internet?
Hoje em dia projeto off-line sux. Vou demonstrar algumas maneiras (simples e complexas) de integrar sua plaquinnha com a Internet usando as principais liguagens de programação livres do mercado, como Java, Python e Ruby.
Sim! Com demonstração ;)
App de teste: http://turn-me-on.appspot.com/
Projeto no github:
PHP e Robótica juntos.
Sim! Com Arduino isso é fácil. Nessa palestra mostrarei como é possível a qualquer desenvolvedor PHP criar soluções de Internet integradas com projetos de robótica, automação e domótica usando recursos de software e hardware open-source disponíveis para todos, mas que nem sempre são usados juntos como solução
Palestra do FISL 12 e no TDC 2011.
Mais informações em: http://www.mmaciel.com.br/2011/07/02/robotica-e-computacao-nas-nuven/
A proposta é demonstrar o uso do Google App Engine como plataforma de integração com soluções de eletrônica e automação criadas com o Arduino. As duas plataformas são open-source (software e hardware), e podem ser utilizadas por qualquer desenvolvedor para criar protótipos ou até mesmo desenvolver soluções de baixo custo inicial que podem ser facilmente mantidas e escaladas. Apresentarei brevemente o potencial das duas plataformas e logo após demonstrarei uma solução de automação controlada pela internet que as utiliza de forma integrada. Imagine: programação, eletrônica, internet e robótica. Juntos! Para finalizar demonstrarei como dar os primeiros passos no estudo e desenvolvimento dessas tecnologias, e falar das comunidades e das oportunidades de um mercado que pode ser explorado por um profissional com esse conhecimento, como programação, automação, domótica, ensino, etc..
Este trabalho tem por objetivo apresentar os avanços da conectividade global através de Serviços Ethernet e sua evolução. Apresenta a perspectiva do Metro Ethernet Forum para a expansão das definições Metro para Carrier Ethernet, sua terminologia e tipos de serviço, além de um panorama sobre as tendências nos próximos anos do Negócio Ethernet no mundo.
Mortality Statistics Rates of Brazil
http://mortalidade.inca.gov.br/
- Information available 24/7 all around the world
- Rates generated automatically, as soon as the official population and mortality data is available
- Analyze specific geographical areas
- Create ICD Groups(International Classification of Diseases)
- Create Data Base to be used by Business Intelligence Applications
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