Instalando WSO2 Enterprise Service Bus Eclipse Tools no Ubuntu Karmic Koala (9.10)

Com o lançamento do WSO2 Enterprise Service Bus Eclipse Tools (v1.0.0-beta), cansado de ficar utilizando a interface web para gerenciar os “esqueminhas” da ESB, resolvei testar o plugin.

Mas como nem tudo são flores, após eu instalar o plugin e tentar criar um novo endpoint, recebi o erro abaixo:

Unhandled event loop exception
XPCOM error -2147467259

Com isso, passei um certo tempo procurando na internet, até descobrir que o erro é causado por falta da biblioteca libstdc++5, que no Ubuntu Karmic Koala (9.10) foi atualizada para libstdc++6. Versão que é incompátivel com a visualização embarcada do Mozilla que o Eclipse WTP utiliza.

Então, para resolver o problema, primeiro passo que tentei foi:

$ sudo apt-get install libstdc++5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libstdc++5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package libstdc++5 has no installation candidate

Só que não resolveu, a maneira que encontrei foi procurar a biblioteca para download, encontrei no site do Debian:

wget http://ftp.br.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_i386.deb

E instalei:

sudo dpkg -i libstdc++5_3.3.6-18_i386.deb

E com esses passos, tudo funciona normalmente…

Publicado em desenvolvimento | Com a tag , , , , , , , , , , , , | 2 comentários

Testes na versão 2.2.0 do WSO2 Data Services Server

Estava eu, numa calma sexta-feira, realizando testes na recém lançada versão 2.2.0 do WSO2 Data Services Server, e para começá-los resolvi fazer deploy dos serviços que já temos desenvolvido, pensando que tudo seria tranquilo, como estava o meu dia, mas… ledo engano.

Erro – Primeiro ato

Fui no básico: “Add > Data Service > Upload” e…

wso2-data-services-faulty-01Um erro que não me diz muito, então o jeito foi ver o que poderia ser por “tentativa” e erro. Após um pouco de luta e leitura do código fonte do arquivo DBS, descobri que era algum método que executa uma procedure e não tinha o ordinal preenchido.

<query id="productsByGroup" useConfig="default">
<sql>call sp_productsByGroup @group_id = ?</sql>
<param name="cliente" ordinal="" sqlType="INTEGER" type="IN"/>
<result defaultNamespace="http://ds.ws.mcorp.com.br/products" element="products" rowName="product">
<element column="id" name="id"/>
<element column="name" name="name"/>
</result>
</query>

Então peguei a linha 3 e corrigi, deixando assim:

<query id="productsByGroup" useConfig="default">
<sql>call sp_productsByGroup @group_id = ?</sql>
<param name="cliente" ordinal="1" sqlType="INTEGER" type="IN"/>
<result defaultNamespace="http://ds.ws.mcorp.com.br/products" element="products" rowName="product">
<element column="id" name="id"/>
<element column="name" name="name"/>
</result>
</query>

Ou seja, devíamos ter prestado mais atenção quando falavam ser obrigatório para procedures o preenchimento desse campo, mas como nunca deu problema, então não prestávamos a devida atenção.

Erro – Segundo ato

Com o serviço devidamente publicado, fui a execução dos métodos para ver se tudo iria bem. Primeiro método (sem parâmetros de entrada) foi tranquilo, retornou tudo que eu precisava. Já no segundo método…

wso2-data-services-faulty-02E voltamos a busca do erro perdido… E dessa vez não foi falta de atenção nossa, apenas o plugin que o pessoal do WSO2 disponibiliza (e que ensinei a compilar) que não preencheu o atributo como devia. Na chamada da operação estava assim:

<operation name="productsByGroup">
<call-query href="productsByGroup">
<with-param name="group_id" query-param=""/>
</call-query>
</operation>

Enquanto deveria estar assim:

<operation name="productsByGroup">
<call-query href="productsByGroup">
<with-param name="group_id" query-param="group_id"/>
</call-query>
</operation>

E feito todas essas alterações na definição dos data service, tudo correu bem e tranquilo com essa nova versão.

Mas ainda acho que vale a pena esperar um pouco pra ver se não aparece nenhuma correção que levem eles a gerar a versão 2.2.1; também tenho que verificar se os patches que aplicamos na versão anterior deixaram de ser necessário. Mas isso fica pra uma próximo oportunidade.

Publicado em desenvolvimento | Com a tag , , , , | Deixar um comentário

Compilando o plugin do WSO2 Data Services Server para o Eclipse

Eclipse + WSO2 Data ServiceComo não encontrei uma versão final do plugin para o Eclipse para criação, edição e deploy de serviços do WSO2 Data Services Server na página de downloads do site, o jeito foi compilar o plugin a partir do fonte disponível no repositório (e viva o código aberto). E seguem abaixo os passos necessário para o procedimento.

Requisitos

Será necessário que você tenha instalado os programas abaixo para poder realizar esse processo. Não é minha ideia ensinar como instalar, mas com uma busca no Google esse problema deve ser facilmente resolvido:

Baixando fontes

Primeiro passo é baixar do repositório o código fonte da última versão:

svn co https://wso2.org/repos/wso2/trunk/tools/ide/eclipse/data-service/org.wso2.ws.dataservices.ide/

Compilação

Depois de baixados os fontes, basta entrar na pasta que foi gerada e mandar compilar:

cd org.wso2.ws.dataservices.ide
mvn install

Esse processo pode demorar um pouco, pois ele realiza o download de diversas dependências para compilação, mas no fim ele gera dentro do diretório “target” com o arquivo “org.wso2.ws.dataservices.ide_1.0.0.jar” que deve ser instalado no seu Eclipse.

Instalação

No meu caso, o Eclipse está instalado no meu home e é para lá que copiei o arquivo.

cp target/org.wso2.ws.dataservices.ide_1.0.0.jar ~/Applications/eclipse/plugins/.

Finalização

WSO2 Data services: Wizard newE com isso, no menu de “Novo”, do seu Eclipse, deve ter a opção de wizard para criação e após criado o serviço (que ficará para um outro post) você tem a opção de clicar com o botão direito no arquivo e editar (Edit Data Service) ou realizar o deploy (Deploy Data Service).

Publicado em desenvolvimento | Com a tag , , , , , , , , , , | 1 comentário

Data Services: O que é isso?

Já viu algum datacenter assim?

Organização e datacenter, sempre andando juntos!

Se fisicamente algumas empresas mantém um datacenter como esse acima, imagine o que não conseguem fazer com relação a “fontes de dados” e, para tentar minimizar esse problema, o SOA propõe a utilização do “data services”, que não podemos afirmar ser a solução para toda e qualquer empresa, mas foi a nossa opção e tem nos atendido muito bem.

Definição

Data Services: Camada que fornece acesso às diversas fontes de dados, podendo essas fontes serem: banco de dados, planilhas ou arquivos textos.

Então o que é isso afinal?

Digamos que temos uma maneira de organizar aquela “bagunça” generalizada que as vezes temos em nossa arquitetura, imagine o seguinte cenário: um sistema para o RH utilizando SQL Server, o sistema de compras utilizando Firebird, uma planilha de gerenciamento de projetos em excel e o restante em um ERP próprio utilizando PostgreSQL.

Analisando esse cenário, aparece o problema de integrar todas essas soluções e, para não acessarmos diversas fontes de dados, cada um com seu driver específico, utilizamos o WSO2 Data Services Server!

Que – basicamente – funciona como uma camada acima de toda aquela bagunça, com uma única maneira de acesso (serviços) às várias fontes de dados e sem maiores dependências, independente da forma dos dados o acesso será o mesmo.

WSO2 Data Services - Lista de serviços

WSO2 Data Services - Lista de serviços

A tela acima mostra a visão do WSO2 Data Services Server na sua página de listagem de serviços, com atalhos para o WSDL (na versões 1.1 e 2.0) e um “try-it”, que são as duas formas de acesso aos serviços que expomos no WSO2 Data Services Server. E com isso teremos uma única fonte para consultar os dados de nossa empresa, atendendo uma das camadas da arquitetura que explicamos no post “SOA está para WSO2 ou WSO2 está para SOA?“.

O desenvolvimento desses serviços é relativamente simples e será abordado em um próximo post.

Caso esteja sendo muito superficial, aceito comentários e/ou críticas caso esteja muito rápido.

Publicado em arquitetura, desenvolvimento | Com a tag , , , | Deixar um comentário

Software livre, código aberto e o mundo SOA

Procurando por suítes SOA é muito comum ouvir falar de Oracle, WebSphere e – meio de longe – BizTalk. Mas, além de pagas, não são nem um pouco baratas.

Esse preço pode ser na maioria das vezes inviável para empresas de menor porte, sobrando apenas as soluções de menor porte (e preço) e as opções livres. E aí sobra pra quem “inventou” a moda, afinal, “quem inventa aguenta”.

Dois anos atrás, quando começamos os estudos para implementação de SOA aqui no trabalho, apanhamos – e muito – com esse problema. Tínhamos que implantar toda a arquitetura escolhida de maneira barata (entenda: de graça).

Achamos muitas opções que prometiam resolver os problemas, mas que no fim trazia “N” dificuldades na implementação, desenvolvimento e/ou até instalação. Tudo parecia meio cru e o que diziam ser as melhores, não passavam de um serviço e um milhão de arquivos (em sua maioria XML) para serem editados quase que totalmente manual.

Alguns dos problemas que enfrentamos na maioria das soluções foram:

  • Documentação: se não fosse nula, era fraca e muito pouco clara;
  • Desenvolvimento: o lançamento de novas versões e correções de bugs eram lentos (sem contar as frases do tipo “na versão Enterprise está resolvido”);
  • Comunidade: praticamente o mesmo problema da documentação, nula; e
  • Código aberto: algumas ferramentas dizem “código aberto”, porém abrem uma parte do código (que normalmente doam para a Apache Foundation) e o crucial não, impossibilitando corrigirmos ou descobrimos o que acontece.

A lista acima não diz tudo pelo que passamos e enfrentamos, é apenas um resumo. Então, após testar algumas ferramentas e utilizar algumas outras, optamos pelo WSO2, que apesar de não resolver todos nossos problemas, pelo menos chegou mais perto.

Vamos fazer uma comparação com os problemas listados e o que nos levou a escolhê-lo:

  • Documentação: quando começamos era praticamente nula, mas como eles utilizam outros projetos livres (como: Apache Synapse, Apache Axis2, Apache Rampart e etc) sem maiores modificações, fica mais fácil achar documentação para o seu problema naquele projeto ou biblioteca e atualmente eles estão melhorando um pouco nisso escrevendo artigos e disponibilizando alguns webcasts grátis;
  • Desenvolvimento: os lançamentos de versões está numa velocidade boa e rápida, apenas os bugs ainda peca um pouco, mas olhando o JIRA é possível achar vários patches, nos deixando ainda a opção de alterar o código, caso queira;
  • Comunidade: é fraca como todos os outros, existe o fórum, mas é somente em inglês; e
  • Código aberto: como dito antes, o código é aberto e você pode alterar a vontade, que pode ajudar na necessidade de resolução de bugs mais críticos.

Pode não ser a solução perfeita, mas foi o que mais nos deixou tranquilos para trabalhar. Alguns produtos ainda tem muito o que evoluir e alguns estão bem evoluídos, mas com muito a melhorar. Posso dizer que estamos bem com a opção que fizemos, mesmo que não tenhamos chego aos 100% de implantação da arquitetura que pensamos.

Publicado em arquitetura, desenvolvimento | Com a tag , , , , , , , | Deixar um comentário

SOA está para WSO2 ou WSO2 está para o SOA?

Um toque do Nivaldo e percebi a necessidade de explicar melhor o que são os softwares que comento por aqui. Para tentar suprir essa necessidade dos “perdidos” que por acaso venham parar por aqui, farei alguns posts mais explicativos e menos práticos (assim digamos).

E para começar vou tentar explicar o que o WSO2 representa para o SOA e o que o SOA representa para o WSO2, mas antes disso preciso explicar um pouco o que é cada um dos dois, então vamos lá:

WSO2: Segundo o site da plataforma (tradução livre): “Produtos de código-livre integrados e modulares que dão suporte para criação de uma plataforma SOA, suprindo a parte de criação, conexão, composição e governança de serviços”.

SOA: É uma estratégia que propõem organizar os ativos de software de forma que eles possam representar processos, atividades ou tarefas de negócio de forma direta. Tais representações são chamadas de serviço, que devem ser baseadas em padrões e facilmente combinados e reutilizados visando a satisfação dos requerimentos de negócio (para uma explicação um pouco mais detalhada, ver aqui, valeu AC!).

E o que eu quero dizer com tudo isso? Digamos que para implementar e implantar SOA necessitamos escolher uma arquitetura e nesse ponto a participação do WSO2 é muito importante. Pois alguns outros produtos tentam impor a arquitetura, diferente do WSO2, que dá a opção de você montar todo esse “quebra-cabeça” da forma que bem entender.

Arquitetura SOA (pequeno quebra-cabeça)

Arquitetura SOA (pequeno quebra-cabeça)

E agora, nessa arquitetura de exemplo mostro onde encaixam alguns dos produtos do WSO2:

Arquitetura SOA com WSO2

Arquitetura SOA com WSO2

É claro que no decorrer do desenvolvimento do projeto, algumas coisas podem ir se acertando. Até porque essa arquitetura que utilizei como exemplo não é a ideal para todo e qualquer caso, tudo deve ser pensado com muita calma.

Existem outros produtos na plataforma que não estão mostrados na imagem acima e que em determinados casos podem (e devem) ser utilizados. Mas quis passar somente um pouco do que o WSO2 representa nesse mundo da sopa de letrinhas que é o mundo SOA.

Com o tempo vou tentar explicar cada uma das “caixinhas” e como cada um dos produtos se comporta para suprir essa necessidade.

Publicado em arquitetura | Com a tag , , , , , | Deixar um comentário

Novidades nos lançamentos (nov/2009) da plataforma WSO2

Como avisei aqui e no twitter semana passada, o pessoal do WSO2 lançou algumas atualizações nos projetos da plataforma WSO2 Carbon. Mas somente agora, com o lançamento oficial, é que podemos descobrir o que foi atualizado.

Segue um resumão (baseado nas notas de lançamento) com o que foi atualizado em cada um dos projetos.

WSO2 Web Services Application Server (v3.1.2)

  • Correções em vários softwares que fazem parte dele: Apache Axis2, Apache Rampart, Apache Sandesha2, WSO2 Carbon e alguns outros projetos;
  • Correção da limpeza de memória após reiniciar o servidor.

Versão original (inglês): aqui.

WSO2 Enterprise Service Bus (v2.1.2)

  • Diversas melhorias e correções desde a versão 2.1.0 lançada em julho de 2009.

Versão original (inglês): aqui.

WSO2 Governance Registry (v3.0.2)

  • Melhoria no suporte a transação;
  • Suporte ao WebSphere, WebLogic e JBoss;
  • Baseado na suíte WSO2 Carbon;
  • Suporte a clusterização;
  • Correção de vários bugs.

Versão original (inglês): aqui.

WSO2 Business Process Server (v1.1.0)

  • Nova camada de integração WSO2 Carbon para o Apache ODE;
  • Utilizando Apache ODE 2.0-beta (baseado no trunk) como engine BPEL;
  • Suporte experimental para clusterização;
  • Suporte para consumo de serviços seguros (usando WS-Security);
  • Utilizando OpenJPA para camada de acesso a dados ODE;
  • Recuperação de atividades utilizando o management console;
  • Atualização online (hot update) do pacote BPEL facilitam o versionamento;
  • Suporte a manipulação de dados utilizando E4X nos processos BPEL.

Aqui deixo um adendo, baseado em alguns testes superficiais que fiz, posso dizer que não é indicado colocar essa versão em produção. Como disseram nas notas de lançamento, muita coisa está incompleta ainda e achei alguns probleminhas. Mas é interessante tentarmos colocar os processos BPEL e realizar testes para reportarmos os problemas e ajudarmos na correção dos mesmos para a versão 1.1.1 (que espero que chegue logo).

Isso é até compreensível, já que se trata de uma nova versão e não apenas correções de bugs como as outras. (:

Versão original com cada item comentado (inglês): aqui.

WSO2 Identity Server (v2.0.2)

  • Correções em vários softwares que fazem parte dele: Apache Axis2, Apache Rampart, Apache Sandesha2, WSO2 Carbon e alguns outros projetos.

Versão original (inglês): aqui.

WSO2 Mashup Server (v2.0.1)

  • Interface visual para gerenciar as tarefas agendadas;
  • Baseado no WSO2 Carbon SOA Framework que irá facilitar habilitação de funções a um clique, como o gerenciamento de Data Services nas futuras versões do Mashup Server.

Versão original (inglês): aqui.

Publicado em desenvolvimento | Com a tag , , , , , , , , , , , , , , , , , | Deixar um comentário

WSO2 e a quinta-feira agitada: muitos lançamentos

Uma passeadinha básica no site do WSO2 para ver o movimento do fórum e quase caio para trás quando vejo a quantidade de produtos que eles atualizaram de ontem pra hoje.

Não sei se estou sendo apressado, mas o lançamento nem está na página inicial ainda, apenas nas páginas dos projetos… Mas vamos divulgando não é? Então os projetos atualizados são:

Mas ainda sinto falta das atualizações do WSO2 Data Services, que está largado na 2.0 e com alguns bugzinhos chatos que até já arrumamos e mandamos o patch, mas ainda assim…

E pensar que passei dois dias testando as alterações das últimas versões e hoje tem novas. Não consegui nem documentar as antigas… Só me resta testar novamente e homologar as novas versões.

Publicado em avisos | Com a tag , , , , , , , | Deixar um comentário

Efetividade, “Moleskines” tupiniquins e promoção

Tentando colocar a leitura dos meus feeds em dia (pelo menos parte deles), meu critério para diminuí-los foi partir pelos sites úteis primeiro.

E no último post do Efetividade.net… uma promoção (isso é sempre legal)! Mas a promoção apareceu em meio a um post longo e muito bem escrito sobre os “moleskines” tupiniquins feitos pela Papelaria Cícero. Uma alternativa boa e barata aos tradicionais e caros Moleskines.

Não sou muito adepto do papel e caneta, atualmente utilizo toda e qualquer anotação no meu celular, mas estou pensando seriamente em averiguar se as cadernetas não são mais práticas para algumas coisas… Então fica aí a dica para a galera!

Publicado em avisos | Com a tag , , , , | Deixar um comentário

1º SQL Server Day

Sei que o tempo ultimamente está propício para sair, curtir um parque, praia, até uma cerveja gelada com os amigos.

Mas caso você não queira ou até não possa, vale a pena passar algumas horinhas em frente ao computador… Pois amanhã é dia do SQL Server Day.

O SQL Server Day nasceu da idéia de reunir no Brasil um time com os melhores profissionais de SQL Server e espalhar o conhecimento dos mesmos para toda a comunidade de maneira gratuita e em português.

Se você é estudante, desenvolvedor, técnico em infraestrutura, DBA, gerente de TI, ou é de alguma área similar sinta-se convidado para o 1º SQL Server Day!

A primeira edição será online (webcasts) e ocorrerá no dia 07/11/2009. Contará com mais de 12 horas de palestras.

Então, já sabe, não é? Entre no site e se cadastre: www.sqlserverday.com.br

Publicado em avisos | Com a tag , , , | Deixar um comentário