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

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)
6abr/100

Marília TechDay 2010

Esse fim de semana vou fazer algo totalmente diferente do costume! Vou até Marília assistir as palestras do Marília TechDay 2010.

Tá bom, é o lado "negro" da força, logo eu, que trabalho e gosto do código-aberto e livre... Mas vamos dar um desconto e ver como anda o pessoal do outro lado da força, não é?

Será um fim de semana totalmente Microsoft e com palestras de muito boa qualidade (garantia do Thiago Zavaschi) e como ainda confio na palavra dele, vamos lá conferir.

O meu maior interesse é na palestra "Introdução ao desenvolvimento de Sistemas Conectados com WCF 4.0" com o Evilázaro Alves. Que - pelo meu pífio entendimento - é a suíte da Microsoft para trabalhar com SOA, não custa dar uma espiadinha, não é?

Segue a grade de palestras (as inscrições estão encerradas):

25fev/100

Livro grátis: SOA Adoption for Dummies

Para os interessados em aprender mais sobre SOA, uma boa oportunidade é a leitura do livro SOA Adoption for Dummies, ainda não tive tempo de ler todo ele pra "garantir" a qualidade, mas logo postarei minha impressão sobre ele.

Free Book: SOA Adoption for Dummies (somente em inglês)

Você pode realizar o download dele por este link: SOA Adoption for Dummies.

26nov/090

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.