Livros SCJP 6

Para aqueles que pretendem se prepararem para SCJP 6, foi lançado recentemente  mais 2 ótimos livros sobre o assunto. Um abordando a teoria e o outro somente com simulados. Leitura obrigatória para os candidatos a certificação. Veja aqui uma promoção feita pela livraria on-line Tempo Real para aquisição dos livros. Bons estudos a todos 😉 !

97885745240619788574524078

“Vós sois a luz do mundo. Não se pode esconder a cidade edificada sobre um monte. ” Mateus 5:14

Anúncios

SpringSource Tool Suite Free

springframeworkSpringSource anunciou recentemente que o plugin para eclipse SpringSource Tool Suite (STS) agora esta disponível free para desenvolvedores e arquitetos. STS providencia as melhores ferramentas e o melhor ambiente de desenvolvimento de aplicativos corporativos java utilizando o Spring Framework . Então galera…é só fazer o download e começar a usar 🙂 .

“Digo-vos, porém, a vós outros que me ouvis: amai os vossos inimigos, fazei o bem aos que vos odeiam…” Lucas 6:27

Java TV

imagesA interatividade na TV Digital está começando a tomar forma. E está na hora da comunidade brasileira de desenvolvedores Java conhecer as tecnologias que estão sendo criadas para atender a esta demanda.

Para isso será realizado o primeiro evento sobre Java e TV Digital do Brasil – http://www.javatvdigital.com.br/ Java@TV Digital  . Este evento gratuito contará com palestras e  painés sobre as iniciativas da plataforma Java, de outras empresas do ramo e de experts, para suportar a interatividade a TV Digital. Assuntos como Ginga-J, JavaDTV, JavaFX TV, setop-box, entre outros farão parte deste evento imperdível.

Se você quer fazer parte do grupo de profissionais que darão início à indústria de aplicações para TV Digital no Brasil, esta é a hora de começar a se informar.

Inscreva-se e participe!

Java@TV Digital – Encontre os Desenvolvedores da nova Era
http://www.javatvdigital.com.br/

14 de Maio de 2009 (quinta-feira) das 09hs as 18hs
Universidade Anhembi-Morumbi – Campus Vila Olímpia
Auditório Theatro Casa do Ator
Rua Casa do Ator 275, Vila Olímpia
Unidade 7 – Piso Térreo
São Paulo – SP

Objetos Transacionais em Java

Se você foi como muitas crianças, passou muitos momentos despreocupados no playground, andando de balanço, passando pelas barras do trepa-trepa, ficando tonto ao girar no carrossel e indo para cima e para baixo numa gangorra. O problema dela é que é impossível aproveita-lá sozinho. Veja que na verdade, para realmente usá-la, sempre necessitará de outra pessoa. Você e um amigo têm que concordar em andar na gangorra. Esse acordo é uma proposição tudo-ou-nada. Ambos têm de andar ou nenhum dos dois irá andar. Se qualquer um de vocês falhar em sentar no seu respectivo lugar em cada ponto do banco, não poderão se divertir – só haverá uma criança sentada em uma das pontas triste e imóvel. Spring in Action

111-mecpEm software, estas operações “tudo-ou-nada” são chamadas Transações que permitem agrupar diversas unidades operacionais numa única unidade de trabalho que ou acontece plenamente em sua totalidade, ou não. Segue um resumo com seus respectivos links apresentando uma série de sugestões referentes às estratégias, das mais simples a mais automatizadas de como desenvolvedores java podem implementar objetos transacionais em suas aplicações.

1. Manual

1.1 JDBC puro, usando diretamente a implementação da Connection do determinado provedor.

O JDBC especificou um método chamado setAutoCommit() para o que programador tenha a liberdade de configurar como será o controle das transações. A ausência da configuração expressa que comportamento é automático com o setAutoCommit(true) fazendo qualquer operação no SGDB, seja aberta e fechada a transação. Com a configuração do setAutoCommit(false), fica na responsabilidade do programador fazer as operação no SGDB e assim finalizar com o commit ou roolback.

1.2 Propagação da implementação do tópico 1.1 através de herança ou agregação.

A opção 1.1 acaba ficando muito trabalhosa, repetitiva e desorganizada quando começa a ser espalhada pela a implementação do sistema, dependendo do tamanho do aplicativo. Com isso, o ideal seria idealizar alguma forma de propagar este código trabalhoso e repetitivo. Reutilização em OOP é feita de duas formas: Herança ou Agregação. Então, a dica seria criar super-classes ou classes agregativas que encapsulem esse determinado código para que possam ser reutilizados nestes pontos do sistema.

1.3 Propagação da implementação do tópico 1.1 usando abordagem atributos estáticos em threads com a classe ThreadLocal.

O cenário de conexão e transação com SGDB é comumente vinculado com a ocorrência de threads do sistema, sendo que na execução do aplicativo irão acontecer processos concorrentes fazendo diversas operações e transações na base de dados (cenário muito comum em aplicativos web JEE) . Uma forma profissional de se resolver o caso é usando a classe ThreadLocal que permite ao programador criar e amarrar atributos estáticos por pilhas de thread, sendo assim a solução ideal para o controle de transações amplamente usado por reconhecidos frameworks de persistência existentes no mercado.

1.4 Implementação com o padrão Proxy [GOF] para controle das transações.

Uma possível abordagem para se lidar com as transações em java é a utilização do padrão Proxy que providencia uma mecânica bastante interessante, onde pode ser desenvolver uma falsa camada polimórfica que intermediará e controlará as transações nas chamadas para as operações transacionais. O conceito é utilizado por muitos frameworks tops da atualidade.

1.5 Implementação de uma camada DAO

Dependendo do tamanho da aplicação, é recomendado que se faça uma camada lógica totalmente separada para a implementação dos códigos relacionados com qualquer operação com o SGDB. Ou seja, qualquer coisa relacionada com conexão, transações e SQL pode ser separada de toda a aplicação promovendo uma índice de reutilização, organização e desacoplamento. É isso que justamente o padrão jee DAO sugere. Nele podemos encontrar todas as diretrizes para se implementar essa camada.

1.6. Utilizando frameworks ORM.

Os frameworks ORM são as últimas novidades da engenharia de software que se propõe a fazer com que uma aplicação programada em OO possa se comunicar como um SGDB de forma OO. E dentro deste contexto, as transações podem ser semi-automatizadas, dependendo de uma série de configurações que podem ser customizadas para cada tipo de aplicativo.

2. Automático

2.1 AOP com AspectJ

Programação orientada a aspectos AOP é o mais recente paradigma de programação com o objetivo de complementar a OOP. Com ela podemos facilmente acrescentar a transação como aspectos, construindo “advices” que controlaram as transações em determinados objetos. Vejam um exemplo na java Magazine Edição 60

2.2 Spring Framework

Umas das formas mais utilizadas da atualidade é a utilização do framework spring para o controle das transações de um aplicativo java. Nele podem ser encontrados uma série de recursos em diferentes níveis para se obter recurso de forma declarativa e modular. Segue o link para o tutorial de Gerenciamento de Transações.

2.3 Usando componentes JEE – Enterprise JavaBeans

Outro framework amplamente usado na atualidade é o EJB que também possui um módulo de controle de transações que podem ser agregadas na aplicação. Veja as referências para alguns ótimos livros de EJB.

Neste post não foi apresentando nenhum exemplo ou modelo de implementação justamente pelo fato de existirem inúmeras e diferentes formas de implementar ou de usar qualquer uma das dicas acima citadas, ficando a cargo do responsável pelo software entrar em detalhes implementacionais das opções e selecionar aquela que lhe caiba melhor em suas necessidades. Me coloco à disposição para qualquer tipo de ajuda. Aquele forte abraço e a paz.

“Todavia eu me alegrarei no SENHOR; exultarei no Deus da minha salvação.” Habacuque 3:18.

EJB 3.1 Overview

l2_1106_web2Para aqueles que estão acompanhando a evolução do JEE e sua tecnologias, vejam no artigo de Paulo Moreira um overview com todos os detalhes sobre as novas características do EJB 3.1 e a sua nova versão simplificada denominada “EJB Lite” que ira rodar dentro dos web containers.

“O homem prudente vê o perigo e desvia-se; os ingênuos passam e sofrem os danos.” Provérbios 27:12