JavaOne 2010

Achei interessante escrever uma pequena síntese do evento que participei na semana passada em SP, o Java One, associado ao Oracle Open World Latin America 2010 (http://www.oracle.com/br/javaonedevelop/index.html)

O evento foi muito proveitoso: uma ótima oportunidade para experimentar novas tecnologias, rever velhos conhecidos e entender um pouco o mercado tecnológico atual. Abaixo vou descrever alguns pontos de interesse, começando pelas tendências corporativas e tecnológicas, e terminando nos aspectos mais técnicos.

De várias lições que podemos tirar do evento, uma das mais preciosas foi dada por Roger Ingold, presidente da Accenture no Brasil: investir em mobilidade e inovação. Não podemos mais desenvolver sistemas olhando para o passado, e é preciso ter uma mente aberta para compreender o potencial de aplicativos e dispositivos móveis, que ditará a tendência e dinâmica do mercado.

Em uma palestra anterior, o presidente da Oracle, Mark Hurd, apontou que no passado tínhamos 1 dispositivo para N usuários, e recentemente isso mudou, caminhando para um cenário com N dispositivos para 1 usuário.

De acordo com a Information Week, funcionários nunca demandaram tanta tecnologia. Os profissionais de TI não reinam mais absolutos como a principal frente em inovação. Usuários comuns já conhecem mais o Word e o Excel que os analistas de sistemas, e estão consumindo as tecnologias de ponta, como Tablets, iPhones, iPads, entre outros produtos e seus aplicativos associados.


Customização vs não-customização

Quando se opta por uma aplicação fechada (um ERP, CRM, Supply Chain, etc), temos um custo relativamente mais baixo, mas mesmo que os melhores processos e práticas de mercado estejam implementados no aplicativo, os processos que são os diferenciais da empresa precisarão se adequar ao engessamento imposto por ele.

No caso de customização dos aplicativos corporativos, o custo é mais alto, mas a aplicação passa a implementar os processos com a cara da empresa. Porém, a cada mudança do processo ou da tecnologia, o custo de manutenção dos aplicativos continua alto.

Steve Miranda, VP da Oracle, apresentou em um dos principais keynotes da empresa a plataforma Fusion, que promete um modelo totalmente novo de desenvolvimento de aplicações corporativas. Ele é 100% baseado em serviços, de forma que as regras de negócio da empresa podem ser desenhados fora dos aplicativos, em uma camada a parte, além de ser construído sobre um middleware com tecnologias padronizadas (Java, XML, ...).

O aprendizado aqui não é a adoção do Oracle Fusion, mas sim pensar no desenvolvimento de sistemas sempre orientado a serviços e com o foco no negócio (cliente), sem se prender à tecnologia. Assim, à medida que surgirem novas necessidades, os sistemas podem crescer de maneira evolutiva, sem a criação de inúmeras interfaces entre eles, o que aumentaria as despesas em manutenção. Foi apontado que o custo de sustentação dos sistemas corresponde em média a 83% do seu gasto total. 


O Java, nas mãos da Oracle

Após a compra da Sun pela Oracle, surgiram muitos discussões a respeito do futuro da plataforma Java. Para quem já acompanha as notícias de perto, não houve muitas surpresas. Entre as novas tecnologias, destaca-se a JDK 7.0, a plataforma Java EE 6 e o servidor de aplicações GlassFish.

Embora Java continue como a linguagem de programação mais popular, as tendências apontam um crescimento no uso de linguagens dinâmicas, como Ruby, Groovy, Python, Scala e Javascript. Na JDK 7, há um grande esforço em adaptar a Java Virtual Machine (JVM) para lidar com essas linguagens dinâmicas, pois hoje ela já permite a compilação de uma infinidade de linguagens para os seus bytecodes, e não apenas Java.

A vantagem de se usar uma VM já pronta e estável é aproveitar o suporte que ela oferece: gerenciamento de memória, controle de concorrência, segurança, reflexão, debugging, entre outras. Isso permitirá que desenvolvedores possam utilizar a ferramenta certa para cada tarefa: testes de unidade em Scala, lógica de negócio em Java, scripts de configuração em Jython; tudo com a mesma IDE, depurador e JVM.

Outras novidades da JDK 7 podem ser vistas aqui: http://www.oracle.com/technetwork/java/7-138633.html

A plataforma Java EE 6 também traz muitas novidades, como as novas versões da API de Servlet (3.0), JSF (2.0) e EJB (3.1), além da nova Contexts and Dependency Injection (CDI 1.0), que oferece a funcionalidade de injeção de dependência. Essas APIs disponibilizam várias anotações, que podem ser combinadas para evitar o uso de múltiplos arquivos de configuração e estender as classes de maneira evolutiva. A nova plataforma Java EE permite o compartilhamento de recursos, menos dores de cabeça com empacotamento de classes, menos código ‘spaguetti’ , e um uso uniforme das anotações.

A versão 3 do servidor de aplicações Glassfish foi apresentado em algumas palestras, e destacou-se o seu suporte a failover em clustering, algo que já era suportado por outros concorrentes. Essa versão passa a ser a implementação de referência da plataforma Java EE 6, e já é suportada pelas IDEs Eclipse, NetBeans e IntelliJ.


Segurança de aplicações web

Por último, a palestra do Fernando Lozano falou sobre a insegurança de aplicações Java EE. Aplicações web são em geral vulneráveis, mesmo com a proteção extra oferecida pela plataforma Java (ex: ausência de ponteiros, verificação de limites, API padronizada, gerência de sessão HTTP...). Em linhas gerais, a lição é nunca confiar em dados enviados pelo usuário – que podem ser facilmente adulterados – e por isso deve-se criticar toda entrada no servidor. Uma idéia interessante é modelar um hacker como um ator do sistema, os chamados Evil Use Cases.

É importante sempre renovar o fato de sermos um alvo de hackers - mesmo empresas aparentemente inofensivas podem ter a sua infraestrutura comprometida para atacar outros sítios. Com o aumento no número de aplicações web, é preciso cuidado para não expor informações sensíveis indevidamente, ou permitir a injeção de códigos maliciosos em nossos sistemas. Algumas referências sempre atuais são os sites do Mitre, da SANS e o guia OWASP (Top Ten).

Foi isso. Muitas outras palestras ocorreram em paralelo, mas acho que consegui captar parte do que foi proferido durante os três dias do evento. Espero participar dos próximos de maneira mais ativa.

Rafael.

Comments