Portal do arquiteto
Espaço utilizado para falarmos sobre arquitetura de software e outros assuntos relacionados.
terça-feira, 25 de outubro de 2011
Festa para Crianças Carentes
quarta-feira, 28 de abril de 2010
Evento JBossInBossa2010
Pessoal,
Venho convidá-los para um evento da Comunidade JBoss Brasil. O evento irá acontecer em SP e conta com a participação de vários líderes de projetos Open Source. Segue mais detalhes do evento:
Horário: 7 maio 2010 às 14:00 a 8 maio 2010 às 20:00
Local: Anhembi Morumbi – Casa do Ator, Campos Vila Olimpia
Organizado por: Land do Brasil
internacionais que são líderes de projetos opensource, bem como palestras da comunidade brasileira que desenvolve e fomenta tecnologias relaciodas além do time brasileiro JBoss que atua em diversos projetos de missão crítica que usam tecnologias de ponta em projetos em todos os lugares do Brasil.
Presenças Internacionais da Red Hat/JBoss, eXo Platform e PlugTree/Drools
Pete Muir é o primeiro palestrante internacional a confirmar presença no JBoss In Bossa 2010, você não vai perder a oportunidade de saber tudo da JSR299 – CDI e sobre as novidades do JBoss Seam.
Pete Muir é o Líder do projeto Seam e do Weld(Implementação de referência da JSR 299 – Contexts and Dependency Injection for Java EE), além de desenvolvedor líder do Aquillian, um conjunto de utilitários para testes de Servidores de Aplicação. Pete é um funcionário da Red Hat Inc, como Core Developer trabalhando em vários projetos de código aberto JBoss.
Pete tem palestrado em várias conferências como Devoxx, Jax, JBossWorld, JSFDays e JavaBlend, além de várias palestras em JUGs sobre Seam. Ele escreve sobre Seam, Weld e Java em seu blog: http://in.relation.to/Bloggers/Pete
Benjamin Mestrallet é o CEO da eXo Platform, uma empresa francesa que ele fundou logo após a universidade para atender seu primeiro cliente: Departamento de Defesa Americano. Com a recente expansão da Exo para os EUA, Benjamin supervisiona de São Francisco-EUA o crescimento da companhia , marketing e estratégia de vendas. Ele criou o projeto eXo enquanto ainda estudante em Dezembro de 2002, entregando o primeito Java Portlet Container da indústria. Em reconhecimento a sua liderança, Benjamin recebeu o prêmio de “Estraordinário Jovem Líder de Tecnologia de 2008″, o IVY Award na França. Ele possui Mestrado em Ciência de Grenciamento pela Universidade de Paris IX Dauphine. Site da eXo Platform: http://www.exoplatform.com
Mauricio Salatino é CTO na PlugTree (http://www.plugtree.com), uma empresa especializada no fornecimento de soluções usando a plataforma Drools com escritórios em Miami, EUA e Buenos Aires, Argentina. Maurício é committer no projeto Drools, e vem desenvolvendo inúmeros projetos com os conceitos de Motor de Regras, CEP(Complex Event Process) BPM e portais com Alfresco, autor do livro: jBPM Developer Guide pela PacktBuk, é o fundador do grupo de usuários JBoss da Argentina(http://www.jbug.ar), é formado em Engenharia de Sistemas pela Universidade de Mendonza – Argentina, escreve regularmente em seu blog: http://salaboy.wordpress.com
Confira a Agenda completa aqui: http://www.jbossinbossa.com.br/2010/agenda.html
É um evento bem interessante e com certeza contribuirá bastante para arquitetos e desenvolvedores.
[]s,
Samuel
terça-feira, 23 de março de 2010
Performance de aplicações WEB
Tenho encontrado constantemente sites com problemas sérios de performance. Algumas das vezes temos problemas estruturais sérios, mas algumas vezes os problemas podem ser simples de resolver e pequenos ajustes representam grande melhoria na experiência do usuário.
Quando dizemos performance de aplicações, logo os desenvolvedores pensam em grandes mudanças estruturas como cluster, melhorias na JVM, máquinas novas, cache de banco de dados e outras. Isto também são melhoras importantes, mas quando se trata de aplicações web, a percepção da performance pelo usuário, pode ser melhorada por otimizações mais simples como mudanças no front-end da aplicação.
Podemos encontrar as melhores práticas sobre performance de aplicações web em http://developer.yahoo.com/performance/rules.html. Entre as dicas descritas no documento acima temos:
* Fazer menos requisições HTTP
* Adicionar um cabeçalho “Expires” na resposta HTTP
* Utilizar Gzip para compactar os componentes da página
* Colocar os Stylesheets no topo da página
* Colocar os Scripts no fim da página
* Evitar CSS Expressions
* Colocar os códigos JavaScript e CSS em arquivos externos
* Reduzir DNS Lookups
* Compactar os códigos JavaScript
* Remover Scripts duplicados
* Evitar Redirects
* Configurar as ETags
* Make Ajax Cacheable
Uma ferramenta que auxilia bastante é um addon do mozilla que chama YSlow que é um addon desenvolvido pela Yahoo. Este addon analisa com base nas melhores práticas documentadas no artigo acima quais regras estão sendo usadas.
Uma dica que me ajudou bastante em algumas aplicações que trabalhei foi a de habilitar a compressão de páginas. Existem páginas que são grandes, o que faz com que o acesso seja lento em conexões de rede ruins.
Esta compressão de página basicamente troca o requisito banda por CPU. Os passos realizados para a compressão são os seguintes:
1 – O browser do cliente faz uma requisição e envia para o servidor no cabeçalho que o browser aceita arquivos comprimidos.
2 – O servidor verifica que o browser que fez a requisição aceita arquivos comprimidos.
3 – O servidor comprime a página e envia para o cliente.
4 – O cliente descompacta a página recebida e exibe para o usuário.
Podemos utilizar para a compressão de página o apache com o módulo mod_deflate. Para explicações mais detalhadas sobre como funciona o mod_deflate verifiquem a documentação em http://httpd.apache.org/docs/2.0/mod/mod_deflate.html.
É isto ai pessoal. Espero que vocês sigam as orientações, para o bem de suas aplicações e de seus usuários.
terça-feira, 2 de fevereiro de 2010
Cache de páginas com o framework EhCache
Há bastante tempo não escrevo nada. Resolvi falar agora sobre melhorias de performance que ajudam bastante a aplicação. Em sites, constantemente temos páginas que acessam várias consultas pesadas além de regras de negócio. Estas páginas quando muito acessadas causam freqüentemente problemas de desempenho na aplicação e páginas lentas.
Um dado importante para se tomar a decisão de utilizar ou não cache em páginas é a relação entre corretude e performance. Imagine o seguinte caso: Você tem uma página que possui as últimas notícias da sua empresa. Se uma nova notícia nova acaba de sair, qual o impacto da notícia demorar um pouco a mais para entrar no ar? O ganho de performance vale a pena o atraso na notícia. Se sim é interessante utilizar neste caso o cache para esta página.
Quando temos cenários parecidos com este podemos verificar se é possível realizar cache de páginas. O Ehcache que é um framework java possui além do cache de objetos e cache para acesso a dados com JPA, possui também cache de páginas. Este cache às vezes é mais interessante, porque uma mesma página pode possuir várias consultas e regras de negócio, o que faz com que o cache de página geralmente gere mais ganho de performance do que o cache de acesso a dados.
Para definir o cache de páginas é necessário primeiramente baixar os jars do ehcache disponíveis em http://ehcache.org. Entre os jars necessários é necessário baixar o módulo ehcache-web, que possui a Servlet responsável por gerenciar e guardar o cache das páginas.
Depois disto, no classPath (pode ser na pasta src por exemplo) deve ser adicionado o aquivo ehcache.xml com um conteúdo parecido com o abaixo:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmpdir" />
<cache name="SimplePageCachingFilter" maxElementsInMemory="10"
eternal="false" timeToIdleSeconds="600"
timeToLiveSeconds="600" overflowToDisk="true" />
<defaultCache maxElementsInMemory="10" eternal="false"
overflowToDisk="false" timeToIdleSeconds="120"
timeToLiveSeconds="120" diskPersistent="false"
diskExpiryThreadIntervalSeconds="120" />
</ehcache>
Para o arquivo acima é necessário verificar o tempo de expiração do cache que é definido pela propriedade timeToLiveSeconds que representa o número de segundos do cache da página apresentada.
Depois, no arquivo web.xml devemos adicionar o filtro de cache para as páginas necessárias, assim como mostrado abaixo:
<!-- Filtros para cache de páginas adicionado para páginas -->
<filter>
<filter-name>SimplePageCachingFilter</filter-name>
<filter-class>
net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>SimplePageCachingFilter</filter-name>
<url-pattern>/index.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SimplePageCachingFilter</filter-name>
<url-pattern>/noticias.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SimplePageCachingFilter</filter-name>
<url-pattern>/rss.jsf</url-pattern>
</filter-mapping>
A melhoria de performance é bastante significante. Além do cache de páginas comum é possivel também compactar as páginas, adicionar cabeçalhos, entre outros. Para mais informações visitem http://ehcache.org/documentation/web_caching.html.
É isto aí pessoal. Qualquer problema avisem...
quarta-feira, 9 de setembro de 2009
Resultado da enquete sobre certificações Sun
Chegamos ao resultado de mais uma enquete. Desta vez sobre certificações Sun. Segue abaixo o resultado:
Pelas respostas dos visitantes do site vimos que a grande maioria (57%) ja possuem a certificação de Programador (SCJP). Logo atrás em segundo lugar, com 38% das respostas estão os visitantes que responderam que não possuem nenhuma certificação.
Em terceiro lugar com 32% estão os certificados em Desenvolvimento Web (SCWCD). Muito próximo, logo abaixo estão os visitanes com certificação Associate (SCJA) e em Componentes de Negócios (SJBCD) com respectivamente 18% e 16% das respostas.
12% dos visitantes que responderam a enquete possuem a certificação de arquiteto (SCEA) e 7% a de Web Services (SCDJWS). Por último ficaram as certificações de desenvolvedor (SCJD) e de desenvolvedor para aplicações móveis (SCMAD) empatados com aproximadamente 6% das respostas.
Nesta última votação tivemos uma participação ainda mais ativa dos visitantes. Em breve teremos novas enquetes e continuem votando.
É isto aí pessoal.