mcorp. tecnologia e informações inúteis de utilidade pública

16jun/100

Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data Services Server 2.5.0

Versões novas de produtos sempre são uma alegria, seja pelos recursos novos ou somente pela novidade que sempre alegra-nos, principalmente nós desenvolvedores. Mas juntamente com as novas versões (principalmente nos primeiros releases) vem também problemas, bugs ou incompatibilidade de versões- os problemas mais comuns.

E para não pararmos no tempo, vendo que as novidades do WSO2 Data Services Server 2.5.0 seriam muito bem vindas para nós, resolvemos realizar testes para verificar a possibilidade de atualizarmos nossa versão da 2.2.1 para a 2.5.0, e surgiu aquela alegria quando vimos que não teríamos problemas de incompatibilidade como ocorreu nos testes de migração da 2.0 para WSO2 Data Services Server 2.2.1.

Mas como nem tudo são rosas, um velho bug conhecido nosso na versão 2.0 e discutido no fórum - de não aceitar valores null, tinha sido corrigido na versão 2.2.1; mas resolveu dar as caras na versão 2.5.0. E por necessitarmos das novidades dessa versão, tivemos que correr atrás e corrigir o problema, já corrigido anteriormente.

Como já conhecemos a estrutura, fomos direto ao site do projeto para realizar o download do fonte do WSO2 Data Services Server e fomos atrás do arquivo problemático (SQLQuery.java). Mas para nossa surpresa, o arquivo não estava mais lá, foi centralizado no projeto WSO2 Carbon.

Então com o arquivo de código-fonte do WSO2 Carbon 3.0.0 devidamente baixado, vamos colocar a mão na massa.

Baixando e descompactando o fonte

wget  http://dist.wso2.org/products/carbon/3.0.0/wso2carbon-3.0.0-src.zip
unzip wso2carbon-3.0.0-src.zip

Baixando e aplicando o patch

wget /wp-content/uploads/2010/06/wso2-dataservices-accept-null.txt
cd wso2carbon-3.0.0-src
patch -p1 wso2-dataservices-accept-null.patch

E a mensagem recebida aqui será algo como:

patching file components/data-services/org.wso2.carbon.dataservices.core/3.0.0/src/main/java/org/wso2/carbon/dataservices/dispatch/query/SQLQuery.java

Compilando o componente

Levando em consideração que você tenha as dependências necessárias, vai ser um passo bem demorado. Vai fazer download de alguns pacotes, compilar, testar e gerar uma nova versão do componente, com a correção.

cd components/data-services
mvn install

Corrigindo o Data Services Server

Agora que temos o componente corrigido e devidamente compilado, vamos copiá-lo para a instância do WSO2 Data Services Server (levando em consideração que minha instalação fica em ~/Applications/wso2/wso2dataservices-2.5.0).

cp  org.wso2.carbon.dataservices.core/3.0.0/target/org.wso2.carbon.dataservices.core-3.0.0.jar   ~/Applications/wso2/wso2dataservices-2.5.0/wso2dataservices-2.5.0/repository/components/plugins/org.wso2.carbon.dataservices.core-3.0.0.jar
cp  org.wso2.carbon.dataservices.ui/3.0.0/target/org.wso2.carbon.dataservices.ui-3.0.0.jar    ~/Applications/wso2/wso2dataservices-2.5.0/wso2dataservices-2.5.0/repository/components/plugins/org.wso2.carbon.dataservices.ui-3.0.0.jar

Conclusão

Com o patch criado, testado e aplicado. Abrimos um pedido de correção no JIRA do WSO2, para que eles possam corrigir na próxima release (provavelmente a 2.5.1). Caso você não tenha disponibilidade (de tempo ou paciência), pode baixar os componente do WSO2 Data Services Server corrigido (bastando apenas descompactá-los).

E tenho que falar, viva o código aberto e o software livre! (;

6mai/100

Utilizando o Array Type do WSO2 Data Services Server 2.5.x

Uma das novidades do WSO2 Data Services Server 2.5.x, já listada anteriormente, é que agora poderemos trabalhar com Array Types. Essa opção não existia anteriormente e as únicas maneiras que tínhamos para contornar, digamos que não eram muito legais. Por exemplo: invocar várias vezes o método ou concatenar as várias entradas em um campo string e posteriormente (em uma procedure ou algo do gênero) realizar o parser.

Ambas tem seus problemas, muitas requisições invocando várias vezes ou dificuldade de implementação (dependendo do banco de dados) para o caso de realizar o parser na procedure; mas, de uma forma ou outra, resolviam o problema. Só que com a implementação de Array Type resolvemos esse problema de maneira simples, eficiente e elegante!

Colocando a mão na massa

Digamos que temos um serviço onde nosso cliente quer listar vários produtos, nosso cliente tem todos os códigos dos produtos e quer o restante dos dados. Antigamente passaríamos para ele um método productById que recebe um id, algo como abaixo:

Mas agora tudo foi facilitado, vamos a "mágica"! Para alteração do método que aceite a entrada de um Array Type, serão necessários apenas dois passos.

Passo 1: editando a query

Teremos que trocar a query que antigamente aceitava apenas um parâmetro como entrada "id = :id" e colocaremos uma que aceita "N" parâmetros "id in (:id)". Então na tela de edição da query do WSO2 Data Services Server, basta trocarmos, como fiz abaixo:

Passo 2: editando o tipo da entrada

E o segundo passo, editando os Input Mappings, basta trocarmos o tipo scalar para array, novamente, como fiz abaixo:

O resultado

E agora vamos a parte legal: o resultado!

Conclusão

Essa implementação facilitou muito e melhorou a qualidade de nossos serviços. Ainda não foi lançada a versão final, apenas algumas releases candidates, que podem ser acompanhadas pelo repositório de builders do WSO2 Carbon 3.0.0.

Deixo aqui o download dos arquivos utilizados para implementar o Array Type nesse exemplo, contém os arquivos abaixo:

  • Data Service antes da implementação do Array Type
  • Data Service depois da implementação do Array Type
  • Script de criação do banco de dados utilizado (MySQL)
9abr/100

Novidades do próximo WSO2 Data Services Server (2.5.x)

A versão RC2 do WSO2 Data Services Server 2.5.0 nos mostrou que está com novas opções e funcionalidades muito úteis, algumas que estavam até fazendo falta. Claro que a adoção do WSO2 Carbon 3.0, traz várias diferenças nos recursos e interface em toda a suíte. Mas vamos partir para o que interessa.

Dashboard

Com a atualização para o WSO2 Carbon 3.0, foi implantando um Dashboard que pode conter informações variadas. Essas informações podem ser personalizadas utilizando gadgets. Aliás, essa atualização pode ser notada em toda a suíte que utilizam o novo Carbon.

Carbon Data Sources

Agora ficará muito mais fácil gerenciar conexões às várias base de dados. Com Carbon Data Sources, será possível apontar no Data Service qual data source utilizar, e cada ambiente (teste, desenvolvimento, homologação ou produção) terão suas próprias configurações, bastará manter o mesmo nome.

Array Type

Poderemos ter entradas do tipo array ou scalar, onde essas entradas podem conter valores de diferentes tipos, como: string, integer, real, double, numeric, tinyint, smallint, bigint, date, time, timestamp, bit, oracle ref cursor ou binary.

Default values in input mappings

No caso do tipo de entrada scalar, poderá ser indicado um valor padrão para a entrada.

Data Validation Logic

Os dados de entrada poderão ser validados utlizando alguns validadores padrões:

  • Long Range: com mínimo e máximo de opção;
  • Double Range: com mínimo e máximo de opção;
  • Length: com mínimo e máximo de opção;
  • Pattern: com pattern de opção;
  • Custom: com a classe de opção.

WIP Services

Os serviços que ainda não estão finalizados, estão passando por correção ou qualquer outro motivo, poderão ser marcados como: "Work in progress". Isso evitará erros e os clientes não conseguirão consumir o serviço.

Contract first

Com essa funcionalidade, criar data services poderá fica ainda mais simples. Basta adicionar um contrato (WSDL) com todas as definições e ele criará um WIP Service para você, sendo necessário apenas você configurar conexões e preencher as queries.

Batch mode

Um recurso bastante interessante implementado é o Batch Mode, esse recurso implementa automaticamente, em todos os métodos que realizam alguma função de escrita no banco de dados (INSERT, DELETE e UPDATE), o recurso de invocar uma única vez o serviço, mas realizando operações em vários objetos de uma única vez, como - por exemplo - um inserir uma listagem de pessoas.

Boxcarring

Implementação importante para essa nova versão, boxcarring nada mais é que o suporte a transações nos serviços, pelas informações coletadas, essa transação pode ser de dois tipos: SOAP ou Transport.

Eventing

Será um recurso que dará a opção de implementarmos eventos em cima de determinadas operações, funciona basicamente como uma trigger de banco de dados.

Binary Input/Output Data

Será possível utilizar dados binários (tipo Base64) tanto para enviar, quanto para receber.

JMX

O WSO2 Data Services Server proverá informações dos serviços publicados, utilizando Java Management Extensions (JMX).

Query Properties

As queries podem ter algumas propriedades específicas na execução, ajudando na questão de performance e limitações.

Conclusão

Essas novas versões que estão para sair, da suíte WSO2 Carbon (3.0) e WSO2 Data Services Server (2.5.0), evoluíram bastante comparativamente as suas sucessoras. E o que é bem importante, não foi necessária nenhuma alteração para os serviços que rodam na versão 2.2.1 do WSO2 Data Services Server funcionarem nessa release, diferentemente da atualização da versão 2.0.x para a 2.2.x.

Os tópicos que não documentei ainda, provavelmente consiga documentar nas próximas releases, ou quando achar aonde estão esses recursos, a não ser que as alterações sejam internas e não fiquem visuais pra nós. Caso queira ajudar a encontrar e documentar todas as alterações, pode acessar o repositório com os builders (com gerações quase que diárias).

Minha ideia é também exemplificar como utilizar cada uma delas futuramente, para que não fique dúvidas de como utilizar esses novos recursos. Então, fique ligado nas atualizações pelo feed.

6abr/100

WSO2 Business Activity Monitoring + SQL Server

A pedidos do "chefe", realizei o download e a instalação do WSO2 Business Activity Monitoring (versão 1.0.1) e parti para os testes.

Mas como migramos toda a suíte para rodar sobre o SQL Server, configurei tudo para apontar para o banco de dados do WSO2 Governance Registry (arquivo conf/registry.xml) e do WSO2 Identity Server (arquivo conf/user-mgt.xml) - maiores explicações ficam para uma outra oportunidade.

Só que ainda ficou uma dúvida no ar! Aonde estavam as configurações de conexão de banco de dados que armazenam as informações do BAM propriamente dito? Pesquisando nos arquivos instalados encontrei um diretório "bam", e para minha não-surpresa, lá estavam mais dois diretórios:

  • ./bam/database/: diretório com arquivos da base de dados do H2;
  • ./bam/sql/: scripts de criação da base de dados em diferentes bancos (H2, SQL Server, MySQL e Oracle).

Com essa descoberta, o jeito foi partir para o básico, buscar um arquivo de configuração que pudesse conter a conexão apontando para esses arquivos.

leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r h2:database *
conf/registry.xml:        jdbc:h2:database/WSO2CARBON_DB
conf/user-mgt.xml:		jdbc:h2:database/WSO2CARBON_DB

Ops, não encontrei nada. Nova tentativa:

leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r h2 *
[milhões de respostas - ocultadas por mim - que não ajudam em nada]

Vamos lá, filtrar um pouco mais para quem sabe ser mais feliz:

leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r jdbc:h2 *
conf/registry.xml:        jdbc:h2:database/WSO2CARBON_DB
conf/user-mgt.xml:		jdbc:h2:database/WSO2CARBON_DB
repository/dataservices/BAMSummaryGenerationDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB
repository/dataservices/BAMConfigurationDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB
repository/dataservices/BAMStatQueryDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB
repository/dataservices/BAMDataCollectionDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB
repository/dataservices/BAMSummaryQueryDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB

E agora sim! Com isso descobrimos que ele utiliza alguns data services que realizam o trabalho "sujo".

Então, basta alterarmos todos esses serviços para conectarem na base de dados criada no SQL Server (dentro de cada serviço tem exemplos). Os serviços são:

  • repository/dataservices/BAMSummaryGenerationDS.dbs
  • repository/dataservices/BAMConfigurationDS.dbs
  • repository/dataservices/BAMStatQueryDS.dbs
  • repository/dataservices/BAMDataCollectionDS.dbs
  • repository/dataservices/BAMSummaryQueryDS.dbs

E carregar o arquivo bam/sql/bam_schema_mssql.sql na base de dados e... voilà.

INFO -  Server  :  WSO2 Business Activity Monitor-1.0.1
INFO -  WSO2 Carbon started in 6 sec

Os estudos sobre o WSO2 Business Activity Monitoring continuarão num próximo capítulo, sempre acompanhado de dicas e descobertas. (:

8mar/100

Consumindo um serviço seguro utilizando PHP

Dia desses precisei colocar autenticação em um serviço que desenvolvi e passeando pelas opções da interface administrativa da WSO2 Enterprise Service Bus encontrei facilmente minha solução. Um pouco depois, li no twitter do @WSO2 um comentário sobre um novo artigo publicado sobre segurança nos Data Services, onde ensinava a fazer toda a parte de configuração: Content Filtering in Data Services with User Roles.

Só que pouco tempo depois de configurar e entregar ao cliente o serviço, veio o problema: como consumir em PHP o serviço? No artigo a solução entregue por eles para consumo é em Java, como a capacidade do cliente deixa a desejar, fiquei de fazer e enviar um exemplo de consumo do serviço desenvolvido.

Então... mãos na massa!

Configurando a ESB

Nesse ponto não irei escrever passo-a-passo a configuração que deve ser feita, o trabalho realizado pelo pessoal do WSO2 está muito bem feito nessa parte do artigo: Step 4 – Enable User Authentication for the Data Service.

Consumo sem segurança

Um pequeno trecho de PHP que mostra como consumir o serviço sem nenhum tipo de segurança. Código pequeno, limpo e objetivo.

$client = new SoapClient("http://localhost:8280/services/Tutorial?wsdl");
try {
$obj = $client->searchProductsByGroupId(array("group_id" => 1));
print_r($obj);

} catch (Exception $e) {
echo "ERRO: " . $e->getMessage();
}

Mas mesmo com toda essa objetividade, o problema do cliente não estava resolvido e eu recebia o seguinte erro:

ERRO: SOAP header missing

E, para resolver, faltava adicionar o cabeçalho com os dados de segurança.

Consumo com segurança

Agora um não-tão-pequeno trecho em PHP.

// configurações de conexão
$username = "admin";
$password = "admin";
$created = date ("Y-m-d\TH:i:s", mktime (date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")))."Z";

// definição de namespaces
$ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
$wsu = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';

// criando elemento UsernameToken
$token = new stdClass;
$token->Username = new SOAPVar($username, XSD_STRING, null, null, null, $ns);
$token->Password = new SOAPVar($password, XSD_STRING, null, null, null, $ns);

// criando elemento Timestamp
$timestamp = new stdClass;
$timestamp->Created = new SOAPVar($created, XSD_STRING, null, null, null, $wsu);

// criando elemento Security
$wsec = new stdClass;
$wsec->UsernameToken = new SoapVar($token,     SOAP_ENC_OBJECT, null, null, null, $ns);
$wsec->Timestamp     = new SoapVar($timestamp, SOAP_ENC_OBJECT, null, null, null, $wsu);

// criando header
$headers = new SOAPHeader($ns, 'Security', $wsec);

// construtor do web-service (com cabeçalho) passando o endereço do WSDL
$client = new SoapClient("http://localhost:8280/services/Tutorial?wsdl");
$client->__setSOAPHeaders($headers);

// chamada do método
try {
$obj = $client->searchProductsByGroupId(array("group_id" => 1));
print_r($obj);

} catch (Exception $e) {
echo "ERRO: " . $e->getMessage();
}

E tudo rodou normalmente, sem problemas, o cliente ficou feliz e eu matei um pouco da saudade de programar em PHP.

Na pesquisa por soluções, tentei utilizar o WSO2 Web Services Framework for PHP mas descobri que depende de instalação de módulo no Apache e não servia para meu cliente, mas anotei na pauta para testá-lo em outro momento.

18dez/090

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.

18dez/090

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).

1dez/090

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.

24nov/090

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.

19nov/090

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.