30 de mai de 2009

GWT - Google web toolkit - Instalação do plugin do eclipse

Impressionado com o google wave resolvi dar uma olhada no Google Web Toolkit que é o framework open source de um projeto da Google que é utilizado para o desenvolvimento do wave. Nunca tinha avalido o GWT seriamente e resolvi então dar uma boa olhada pois na apresentação do wave o desenvolvedor citou a facilidade de reutilização de código também para celulares e como ando estudando desenvolvimento de devices achei interessante dar uma boa olhada. A seguir posto minhas primeiras impressões sobre o GWT e também um rápido passo a passo para utilizá-lo pela primeira vez.

A primeira boa notícia para mim foi que o GWT abstrai toda a construção da aplicação para browsers em linguagem java, no meu caso que a quase 10 anos sempre apostei no java isso soou bastante promissor.

Outra coisa agradável foi a primeira impressão que tive com a documentação do kit que é bastante completa e simples, direto ao ponto, ou seja, no meu ponto de vista a melhor forma. Não gosto de ficar lendo grandes introduções e teorias sobre os frameworks que estou avaliando, prefiro ir direto ao ponto e desenvolver alguma coisa simples para aí sim aprofundar, se for o caso, e então utilizar em algum projeto real.

Finalmente a melhor das notícias é que já existe um plugin do eclipse para o GWT o que possibilita que possamos fazer alguns testes com ele muito fácil e rapidamente. Vamos então ao passo a passo:

1) Baixar o plugin do eclipse utilizando a url de download do update site:
Para eclipse Europa: http://dl.google.com/eclipse/plugin/3.3
Para eclipse Ganymede: http://dl.google.com/eclipse/plugin/3.4

2) Reiniciar o eclipse.

3) Criar um projeto utilizando o GWT plugin do eclipse. Uma vez que o plugin estiver instalado, para criar um projeto utilize o menu de criação de aplicação web normalmente: File > New > Web Application Project. Se o plugin estiver corretamente instalado este será agora um projeto habilitado para o GWT.

4) Executar o projeto. Para executar o projeto no ambiente local, basta executar o projeto como uma aplicação web tradicional.

Bem esta foi uma breve introdução do que vi até o momento sobre o GWT, irei agora desenvolver algum pequeno protótipo funcional de aplicação para realizar alguns testes e posteriormente posto minhas impressões. Seguem alguns links úteis para quem quiser saber mais.

Passo a passo para executar exemplos.

Criar uma aplicação passo-a-passo utilizando o plugin do eclipse.

Para deploy de apps com GWT na web no site AppEngine do Google.

Dica final: A primeira vez que você for rodar uma aplicação utilizando o plugin com linux(meu caso) pode ocorrer o seguinte erro:
** Unable to load Mozilla for hosted mode ** java.lang.UnsatisfiedLinkError: .../mozilla-1.7.12/libxpcom.so: libstdc++.so.5: cannot open shared object file: No such file or directory ...
Isso ocorre porque as novas versões do Ubuntu não trazem essa lib por defaul instalada. Para resolver o problema abra um console e baixe a lib com o comando:

sudo apt-get install libstdc++5


E após isso deve funcionar normalmente!

[]s

20 de mai de 2009

Oracle Weblogic Server - Singleton Services

Este post foi baseado na documentação oficial do Oracle Weblogic Server 10.3 em inglês.

O cluster de servidores de aplicação nos dá um certo conforto em relação à disponibilidade de nossas aplicações corporativas hoje em dia. O ambiente de tolerância a falhas e redundância proporcionado pelos clusters possibilita, dentre outras coisas: manutenção de ambiente de produção em tempo real, agregar poder de processamento a uma aplicação crítica, certa estabilidade em caso de falhas de aplicação, dentre várias outras funcionalidades extremamente importantes nos ambientes corporativos e competitivos da internet de hoje em dia.

Uma das exceções neste ambiente é quando a arquitetura de uma aplicação foi construída utilizando como base um Singleton que neste caso não pode ser distribuído para todo o cluster pois traria inconsistência no funcionamento da aplicação.

No weblogic server utilizando o serviço de migração automática de um cluster conseguimos ter uma boa opção para este tipo de serviço implementando o que é chamado de Serviço de Singleton(Singleton Services). Esta implementação nos garante a migração automática do serviço disponibilizado para um outro nó(servidor) do cluster em caso de falhas no servidor onde o Sigleton está sendo executado.

Como funciona?
No weblogic existe um componente chamado "Singleton Master" que é um componente que monitora os serviços que podem ser migrados automaticamente em caso de falha do nó do cluster onde um Singleton esteja atendendo requisições dos clientes e então ele controla o serviço de singloton para inicializar em um outro nó disponível do cluster. Por padrão o Singleton Master considera todos os servidores disponíveis em um cluster como candidatos para migração de um Singleton Service que venha a falhar, entretando uma lista pode ser especificada se for o caso. Se o Singleton Master tentar ativar o serviço que falhou em todos os nós da lista ou do cluster e falhar, o serviço ficará desativado.

Como é a implementação de um Singleton Service no Weblogic?
Para implementar a classe do Singleton deve implementar uma interface do Weblogic chamada weblogic.cluster.singleton.SingletonService e prover a implementação de 2 métodos para alocar e desalocar os recursos necessários ao Singleton respectivamente: activate() e deactivate() .
Feito isso basta escolher uma forma de registrar seu Singleton service com o Singleton Master do cluster que pode ser feito via Admin Console ou configurando no weblogic-application.xml o Singleton service(tem que ser um componente .ear).


...
   
      bb.com.br.seupacote.ImplementacaoSingletonService
      MeuSingletonService
   
...



Para configurar via Admin console, selecione o cluster e depois clique em Singleton Services, lá pode-se registrar a classe do Singleton Services diretamente. Para que isso funcione esta classe deverá ter sido disponibilizada no classpath dos servidores candidatos a rodarem o serviço.

Bem, é isso, o gerenciamento da disponibilização do serviço é feita então automaticamente pelo cluster do Oracle Weblogic Server que estiver sendo utilizado.

[]s

18 de mai de 2009

Monitorando status e "Health" de uma Aplicação no Weblogic

Motivado por um post no javaranch fiz este script simples que checa status e saúde de uma aplicação em um servidor weblogic.

O script é bem simples e por isso estou omitindo maiores explicações. Segue o script.

#variable definitions================
username='weblogic'
password='weblogic'
urladmin='t3://localhost:7001'
appName='applicationName'
serverName='serverName'
#end variable definitions============



#connects to admin server
connect(username, password, urladmin)

cd('domainRuntime:/AppRuntimeStateRuntime/AppRuntimeStateRuntime')
#get intended state for application
intendedState = cmo.getIntendedState(appName)

print 'Intended state for app ' + intendedState

#get current real state for app in specific server
currentState = cmo.getCurrentState(appName, serverName)

print 'Current state in server '+ serverName + ' ==>> ' + currentState

cd('domainRuntime:/ServerRuntimes/'+ serverName +'/ApplicationRuntimes/'+appName)

#shows app attributes including current health.
print 'Current information for app ' + appName + ' in server ' + serverName + ' ==>> ' + ls('a')


[]s

11 de mai de 2009

Configuração do Kit desenvolvimetno Nokia com Eclipse Ganymede

Neste post irei mostrar o passo a passo para fazer a integração do kit de desenvolvimento nokia para plataforma S60 com Eclipse Ganymede. Atualmente utilizo para desenvolvimento JME a seguinte configuração:

* Eclipse Ganymede + MTJ(Mobile tools for java)

Com esta configuração e após deixar no meu projeto somente as APIs compatíveis para a plataforma S60 do meu celular(MIDP 2.0 e CLDC1.1) eu fui capaz de baixar e rodar minha aplicação no device, mas ainda com alguns erros e portanto o emulador da nokia se tornou essencial para que eu possa evoluir meu projeto.

Para instalar o kit é necessário também ter instalado o kit de desenvolvimento da nokia chamado Carbide.J que pode ser baixado aqui

O passo a passo(O SDK para S60 já deve ter sido instalado assim como o Eclipse Ganymede):

1) Instalar o Carbide.j 1.5
Este passo é bem simples para isso após baixar o arquivo .zip do Carbide.j descompacte em uma pasta e execute o setup.exe o processo de instalação é simples, basta seguir as instruções selecionando a versão para Eclipse no momento apropriado e apontando para o diretório de instalação do seu eclipse quando solicitado.

2) Configurar o debugger do eclipse
Neste passo no menu do eclipse vá em Windows > Preferences > Java > Debug . Nesta tela desmarque todas as opções de suspend debug e aumente o tempo de "Debug Timeout" para 50000 ms conforme orientação da nokia. Isto é necessário para que o timeout default configurado não impeça a execução do emulador.(ver imagem)


3) Adicionar o emulador do S60 ao eclipse.
Este passo foi o mais problemático no eclipse estranhamente tive que instalar novamente o Carbide.j para que o menu do eclipse apresentasse a opção correta(não reiniciei na segunda instalação). Para executar esse passo no menu do eclipse primeiro selecione um projeto JME na perspectiva java e depois ir em Tools > Carbide.j > Configure Emulators . Clique em add e selecione o diretorio de instalação do Kit de desenvolvimento para S60 e depois que ele aparecer na lista de Emuladores selecione a entrada dele e clique no botão Set as Default. Pronto o emulador está pronto para ser utilizado.

Para utilizá-lo selecione Tools > Carbide.j > Start Emulators
Na tela que irá abrir em Application aponte para um .jad de exemplo que vem com o SDK da plataforma S60 em %S60_HOME%\devices\S60_3rd_MIDP_SDK_FP1\S60examples\helloworldplus\bin e clique em Emulate. A aplicação deve aparecer após algum tempo. Tenha paciência pois isso pode levar alguns minutos dependendo da configuração da sua máquina.

No final consegui rodar minha aplicação no emulador mas fiquei um pouco decepcionado com a lentidão desse ambiente. []s

9 de mai de 2009

Instalando kit desenvolvimento JME da Nokia

Para iniciar os testes com Java ME de minha aplicação estou utilizando um celular Nokia n96 que utiliza a plataforma para smartfones S60

Inicialmente tentei fazer upload direto da minha aplicação JME para meu servidor transferindo o .jar e o .jad e acessando pelo celular. A aplicação foi encontrada e eu confirmei a instalação mas ao terminar o aparelho informou que a aplicação não estava com a especificação correta para o device e por isso eu pesquisei até encontrar a plataforma de desenvolvimento fornecida pela nokia e irei começar a estudá-la.

Fiquei bastante satisfeito com o site destinado aos desenvolvedores da nokia.

Neste post irei descrever um guia rápido para instalação da plataforma de desenvolvimento provida pela Nokia para S60 em sistema operacional Windows XP.

Postei também um vídeo do processo de instalação.

1) Download do kit em um zip com instruções detalhadas e os arquivos necessários neste link.

2) Após o download descompacte o arquivo zip em uma pasta vazia em seu computador.

3) Execute o instalador (setup.exe)

O processo de instalação é bem amigável e não deve haver maiores dificuldades.

Depois irei postar sobre a utilização do kit.

[]s