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
- Carbon Data Sources
- Array type
- Default values in input mappings
- Data Validation Logic
- WIP services
- Contract first
- Batch mode
- Boxcarring
- Eventing
- Binary Input/Output data
- JMX
- Query Properties
- Conclusão
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.


















