Muitas coisas aconteceram desde a ultima mensagem. Esta vida corrida demanda demais.
O projeto Middleheaven continua. Um dos seus pontos fortes é o uso de serviços para fornecer funcionalidade. Serviços são interfaces que estabelecem contratos. A sua implementação é desconhecida, apenas sabemos que funciona. Desta forma a aplicação pode ser totalmente isolada de mecanismos de infraestrutura e, até, de outras aplicações sem que ela saiba.
A ideia de usar serviços veio da api de JMX que é complemente orientada a componentes de serviço: os MBeans. Com o passar do tempo eu queria aumentar o nível e ser capaz de dizer que o serviço x depende do y de forma que o sistema tomasse conta da organização e avisasse quando o serviço não está disponível. Este controle de dependência mostrou-se muito complexo.
Perquisando na net encontrei uma coisa chamada OSGi framework. Também baseado no conceito de serviço com implementações separadas surge a ideia de o incorporar ao MiddleHeaven. Existem várias implementações do OSGi framework e escolhi o Apache Felix para começar. Contudo existe uma JSR (JSR 277) prevista para breve que faz algo semelhante. Por isso ainda não decidi qual dos mecanismo adotar. O JSR 277 promete ser o novo padrão java muito em breve, mas o OSGi já existe hoje. O OSGi framework tem alguns problemas como classloading que o novo padrão pretende resolver.
WebServices e SOA são outras ideias que nos levam a um mecanismo de serviços como componentes, mas agora de forma remota. A implementação do serviço pode ser remota com a API de webservices fazendo a ponte. A famosa consulta de cep poderia muito bem se aproveitar disto.
Parece-me que o MiddlHeaven está no bom caminho no que toca a usar serviços como peças fundamentais para prover funcionalidades …
Arquivado em: Java, MiddleHeaven