<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mcorp. &#187; data services</title>
	<atom:link href="http://www.mcorp.com.br/tag/data-services/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mcorp.com.br</link>
	<description>tecnologia e informações inúteis de utilidade pública</description>
	<lastBuildDate>Mon, 14 Nov 2011 15:10:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WSO2 Data Services Server e suas atualizações</title>
		<link>http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/</link>
		<comments>http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 18:58:00 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[código aberto]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[soapui]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 carbon]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=619</guid>
		<description><![CDATA[Se tem uma tarefa que toma muito tempo nosso, são os testes quando sai versão nova de algum produto do WSO2. Estamos trabalhando na migração do WSO2 Data Services Server 2.5.1 para a 2.6.0 e isso gera uma árdua tarefa &#8230; <a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/10/testes-e-a-neura.jpg" rel="lightbox[619]"><img class="alignnone size-full wp-image-620" title="Testes e a neura" src="http://www.mcorp.com.br/wp-content/uploads/2011/10/testes-e-a-neura.jpg" alt="" width="430" height="424" /></a></p>
<p>Se tem uma tarefa que toma muito tempo nosso, são os testes quando sai versão nova de algum produto do <a href="http://wso2.org" target="_blank">WSO2</a>.</p>
<p>Estamos trabalhando na migração do <a href="/tag/data-services/" target="_blank">WSO2 Data Services Server</a> <a href="/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/">2.5.1</a> para a <a href="/2011/06/novidades-wso2-data-services-server-2-6-x/">2.6.0</a> e isso gera uma árdua tarefa de testar todos os serviços que temos rodando, que rodam com diferentes banco de dados (<a href="http://dev.mysql.com" target="_blank">MySQL</a>, <a href="http://www.postgresql.org" target="_blank">PostgreSQL</a>, <a href="http://www.microsoft.com/sqlserver/" target="_blank">SQL Server</a>, <a href="http://www.oracle.com/br/" target="_blank">Oracle</a>).</p>
<p>Na maioria das vezes não encontramos problema algum ou apenas uma pequena mudança de atributo ou <em>tag</em> na definição dos .dbs. Mas as vezes encontramos problemas que fogem da simples configuração do data service, e como aconteceu agora conosco: um <em>bug</em>.</p>
<p>Para tentar minimizar esse trabalho gerei um projeto que tem a ideia de automatizar ao máximo esse tipo de trabalho! E, para com isso, irmos além dos testes unitários que são realizados pelo pessoal do desenvolvimento do WSO2, testar as interfaces em real funcionamento, nos mais variados bancos de dados.</p>
<p>E assim nasceu o pequeno projeto <a href="http://github.com/WSO2Brasil/wso2-ds-tests" target="_blank">wso2-ds-tests</a>. Que é um apanhando de data services, sql&#8217;s e projeto do <a href="http://www.soapui.org/" target="_blank">SOAPUI</a>. Para maiores informações basta <a href="http://github.com/WSO2Brasil/wso2-ds-tests" target="_blank">acessar o projeto</a> no <a href="http://github.com" target="_blank">Github</a>!</p>
<p>Deem uma olhadela por lá e qualquer contribuição é muito bem vinda, basta fazer um <em>fork</em> e mandar um <em>pull request</em>.</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/" title="Utilizando o Array Type do WSO2 Data Services Server 2.5.x">Utilizando o Array Type do WSO2 Data Services Server 2.5.x</a></li><li><a href="http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/" title="WSO2 Business Activity Monitoring + SQL Server">WSO2 Business Activity Monitoring + SQL Server</a></li><li><a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/" title="Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0">Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novidades WSO2 Data Services Server (2.6.x)</title>
		<link>http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/</link>
		<comments>http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 18:39:37 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[arquitetura]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[carbon]]></category>
		<category><![CDATA[complex result]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[distributed transactions]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[stratos]]></category>
		<category><![CDATA[transações distribuídas]]></category>
		<category><![CDATA[transformation]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 carbon]]></category>
		<category><![CDATA[xsl]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=579</guid>
		<description><![CDATA[Tenho acompanhado os builds diários que o pessoal do WSO2 tem feito e logo percebi várias novidades na interface, alteração essa que acontecerá em todos or produtos da série Carbon 3.2.*. Mas, hoje eu tratarei apenas das novidades que teremos &#8230; <a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-home.png" rel="lightbox[579]"><img class="alignnone size-medium wp-image-581" title="WSO2 - Data Services Server 2.6.0 - Home" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-home-300x159.png" alt="WSO2 - Data Services Server 2.6.0 - Home" width="300" height="159" /></a></p>
<p>Tenho acompanhado os <a href="http://builder.wso2.org/~carbon/releases/carbon/3.2.0/"><em>builds</em> diários</a> que o pessoal do <a href="http://wso2.org/">WSO2</a> tem feito e logo percebi várias novidades na interface, alteração essa que acontecerá em todos or produtos da série Carbon 3.2.*.</p>
<p>Mas, hoje eu tratarei apenas das novidades que teremos no Data Services Server, que são muitas e algumas bem importantes e há muito esperadas!</p>
<ul>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#udt-support">UDT (User Defined Type) Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#complex-results">Complex Results</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#auto-generated-keys-support">Auto Generated Keys Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#distributed-transactions">Distributed Transactions</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#improved-boxcarring-support">Improved Boxcarring Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#improved-batch-request-support">Improved Batch Request Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#scheduled-tasks">Scheduled Tasks</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#registry-integration">Registry Integration for Excel, CSV, XSLT</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#web-scraping-support">Web Scraping Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#multiple-sql-dialect-support">Multiple SQL Dialect Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#db-to-ds-generation">Database to Data Service Generation</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#data-service-query-improvements">Data Service Query Improvements</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#service-group-hierarchy-support">Service Group/Hierarchy Support</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#database-explorer">Database Explorer</a></li>
<li><a href="/2011/06/novidades-wso2-data-services-server-2-6-x/#dss-stratos-service">Data as a Service Features &#8211; DSS Stratos Service</a></li>
</ul>
<p><span id="more-579"></span></p>
<h3><a name="udt-support"></a>UDT (User Defined Type) Support</h3>
<p>Não encontrei maiores detalhes na documentação ou no próprio WSO2 Data Services Server, talvez não tenha saído ainda nessa <em>release</em>.</p>
<h3><a name="complex-results"></a>Complex Results</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-complex-elements-list.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-582" title="WSO2 Data Services Server 2.6.0 - Complex Elements - List" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-complex-elements-list-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Complex Elements - List" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-complex-elements-insert-nested.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-583" title="WSO2 Data Services Server 2.6.0 - Complex Elements - Insert nested" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-complex-elements-insert-nested-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Complex Elements - Insert nested" width="150" height="150" /></a></p>
<p>Agora fica possível criar elementos complexos, facilitando algumas coisas em que era necessário utilizar um <em>transformation</em> (XSLT) ou <em>sub-queries</em>, ganhando &#8211; e muito &#8211; em performance.</p>
<h3><a name="auto-generated-keys-support"></a>Auto Generated Keys Support</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-generate-keys.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-585" title="WSO2 Data Services Server 2.6.0 - Generate keys" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-generate-keys-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Generate keys" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-generate-keys-invoke.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-586" title="WSO2 Data Services Server 2.6.0 - Generate keys: Invoke" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-generate-keys-invoke-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Generate keys: Invoke" width="150" height="150" /></a></p>
<p>Muito útil para recuperar a <em>primary key</em> de um registro inserido no banco, tirando a necessidade de fazer <em>stored procedures</em> ou outro método de consumo apenas para recuperar a chave inserida.</p>
<h3><a name="distributed-transactions"></a>Distributed Transactions</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-distribute-transactions.png" rel="lightbox[579]"><img class="alignnone size-medium wp-image-587" title="WSO2 Data Services Server 2.6.0 - Distribute Transactions" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-distribute-transactions-300x159.png" alt="WSO2 Data Services Server 2.6.0 - Distribute Transactions" width="300" height="159" /></a></p>
<p>Uma maneira de realizar transações distribuídas (na maioria das vezes em <em>databases</em> separados), será usado JTA para controlar as transações e também é necessário que usará XA. Com isso ganhamos em não mais precisarmos controlar isso manualmente com um serviço no WSO2 Application Server.</p>
<h3><a name="improved-boxcarring-support"></a>Improved Boxcarring Support</h3>
<p>Apenas melhorias no suporte que já existia desde a versão 2.5.0, não encontrei nenhuma alteração visual ou no processo de desenvolvimento.</p>
<h3><a name="improved-batch-request-support"></a>Improved Batch Request Support</h3>
<p>Apenas melhorias no suporte que já existia desde a versão 2.5.0, não encontrei nenhuma alteração visual ou no processo de desenvolvimento.</p>
<h3><a name="scheduled-tasks"></a>Scheduled Tasks</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-scheduled-tasks.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-588" title="WSO2 Data Services Server 2.6.0 - Scheduled Tasks" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-scheduled-tasks-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Scheduled Tasks" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-scheduled-tasks-inserting.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-589" title="WSO2 Data Services Server 2.6.0 - Scheduled Tasks: Insert" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-scheduled-tasks-inserting-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Scheduled Tasks: Insert" width="150" height="150" /></a></p>
<p>Agora, ao invés de fazermos <em>shell scripts</em> que ficam na <em>crontab</em> do servidor para agendar alguns consumos, podemos fazer isso diretamente no WSO2 Data Services Server.</p>
<h3><a name="registry-integration"></a>Registry Integration for Excel, CSV, XSLT</h3>
<p>Não encontrei maiores detalhes na documentação ou no próprio WSO2 Data Services Server, talvez não tenha saído ainda nessa <em>release</em>.</p>
<h3><a name="web-scraping-support"></a>Web Scraping Support</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-web-scraping-data-source.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-590" title="WSO2 Data Services Server 2.6.0 - Web Scraping: Data Source" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-web-scraping-data-source-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Web Scraping: Data Source" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-web-scraping-query.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-591" title="WSO2 Data Services Server 2.6.0 - Web Scraping: Query" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-web-scraping-query-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Web Scraping: Query" width="150" height="150" /></a></p>
<p>Poderemos consumir dados diretamente de sites, fazendo <em>parser</em> em conteúdo de páginas, por exemplo.</p>
<h3><a name="multiple-sql-dialect-support"></a>Multiple SQL Dialect Support</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dialects-options.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-594" title="WSO2 Data Services Server 2.6.0 - Multiple Dialects SQL: Options" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dialects-options-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Multiple Dialects SQL: Options" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dialects-sql-add.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-595" title="WSO2 Data Services Server 2.6.0 - Multiple Dialects SQL: Add" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dialects-sql-add-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Multiple Dialects SQL: Add" width="150" height="150" /></a></p>
<p>Apesar de ter encontrado referências na <em>wizard</em> de criação/alteração de serviços, não encontrei nada na documentação ou entendi como funcionará, vamos aguardar outros <em>releases</em>.</p>
<h3><a name="db-to-ds-generation"></a>Database to Data Service</h3>
<p><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-596" title="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-choise-type.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-597" title="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation: Choise Type" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-choise-type-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation: Choise Type" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-select-tables.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-598" title="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation: Select Tables" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-select-tables-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation: Select Tables" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-tryit.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-599" title="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation: Try-it" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-db-to-ws-tryit-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Database to Data Service Generation: Try-it" width="150" height="150" /></a></p>
<p>Nessa versão é possível gerar automaticamente os métodos para um database e tabela específico, mas apenas para Carbon Data Sources. Apesar de não ter gostado no padrão gerado, pode ser bom para gerar o CRUD básico e ser alterado posteriormente.</p>
<h3><a name="data-service-query-improvements"></a>Data Service Query Improvements</h3>
<p>Imagino que tenha sido apenas melhorias nas rotinas internas de montagem e processamento de <em>queries</em>. Porque as opções avançadas de <em>query</em> já existiam na versão 2.5.*.</p>
<h3><a name="service-group-hierarchy-support"></a>Service Group/Hierarchy Support</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-group-option.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-601" title="WSO2 Data Services Server 2.6.0 - Service Group: Option" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-group-option-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Service Group: Option" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-group-list.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-602" title="WSO2 Data Services Server 2.6.0 - Service Group: List" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-group-list-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Service Group: List" width="150" height="150" /></a></p>
<p>Apenas um agrupamento de serviços, imagino que venha como padrão em todo aplicativo da suíte Carbon, pois em alguns outros aplicativos já existia essa opção.</p>
<h3><a name="database-explorer"></a>Database Explorer</h3>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dbconsole-login.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-603" title="WSO2 Data Services Server 2.6.0 - Database Console: Login" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dbconsole-login-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Database Console: Login" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dbconsole-simple-query.png" rel="lightbox[579]"><img class="alignnone size-thumbnail wp-image-604" title="WSO2 Data Services Server 2.6.0 - Database Console: Simple Query" src="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-dbconsole-simple-query-150x150.png" alt="WSO2 Data Services Server 2.6.0 - Database Console: Simple Query" width="150" height="150" /></a></p>
<p>Uma novidade muito interessante e prática, eles colocaram dentro do WSO2 Data Services Server uma maneira de explorarmos as bases de dados. E a interface lembra bastante o <a href="http://www.squirrelsql.org/" target="_blank">SQuirreL SQL</a>, ficou muito prático.</p>
<h3><a name="dss-stratos-service"></a>Data as a Service Features &#8211; DSS Stratos Service</h3>
<p>Existem algumas novidades também sobre os produtos como serviço na nuvem, que chamam de <a href="http://www.mcorp.com.br/2010/06/lancamento-do-wso2-stratos-alpha/">Stratos</a>, mas não encontrei documentação nesse <em>build</em>.</p>
<p>E algumas outras pequenas alterações que foram percebidas, como:</p>
<ul>
<li><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-generate-response.png" rel="lightbox[579]">Generate response</a>: baseado na <em>query</em> é gerada a resposta do serviço;</li>
<li><a href="http://www.mcorp.com.br/wp-content/uploads/2011/06/wso2-data-services-server-2.6.0-force-stored-procedure.png" rel="lightbox[579]">Force stored procedure</a>: força a executar a <em>query</em> como uma <em>stored procedure</em>;</li>
<li>Entre outras inúmeras pequenas alterações que vão sendo notadas no uso dia-a-dia.</li>
</ul>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/" title="Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0">Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</a></li><li><a href="http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/" title="Utilizando o Array Type do WSO2 Data Services Server 2.5.x">Utilizando o Array Type do WSO2 Data Services Server 2.5.x</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2011/11/wso2-soa-workshop-em-sao-paulo/" title="WSO2: SOA Workshop em São Paulo">WSO2: SOA Workshop em São Paulo</a></li><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Segurança de informações através de filtragem de dados no WSO2 Data Services</title>
		<link>http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/</link>
		<comments>http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 22:30:30 +0000</pubDate>
		<dc:creator>José Nogueira</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[ws-security]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wss]]></category>
		<category><![CDATA[xml encryption]]></category>
		<category><![CDATA[xml signature]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=499</guid>
		<description><![CDATA[Em alguns casos, podemos nos deparar com a necessidade de confidencializar alguns dados no retorno de Data Services, exibindo-os apenas para determinados grupos de usuários, tanto por questão de segurança (quando algum grupo específico não pode ter acesso a algumas informações),  &#8230; <a href="http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/cadeado.jpg" rel="lightbox[499]"><img class="alignnone size-medium wp-image-543" title="Cadeados (por: MissTessmacher @ Flickr)" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/cadeado-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>Em alguns casos, podemos nos deparar com a necessidade de confidencializar alguns dados no retorno de <a href="http://www.mcorp.com.br/glossario/#DataServices" target="_blank">Data Services</a>, exibindo-os apenas para determinados grupos de usuários, tanto por questão de segurança (quando algum grupo específico não pode ter acesso a algumas informações),  quanto por não ter a necessidade de utilizar esse retorno, para que assim não precisemos criar dois serviços com a mesma finalidade. O WSO2 Data Services Server oferece a possibilidade de filtrar esses dados no retorno de uma <em>query</em>, através do <a href="http://www.mcorp.com.br/glossario/#WS-Security" target="_blank">WS-Security</a> (tem como foco principal o uso de <a href="http://www.mcorp.com.br/glossario/#XML-Signature" target="_blank">XML Signature</a> e <a href="http://www.mcorp.com.br/glossario/#XML-Encryption" target="_blank">XML Encryption</a>).<br />
Nesse caso irei exemplificar a seguinte situação: um serviço que retorna dados referente aos funcionários, sendo consumido por dois departamentos: o RH (que necessita dos dados referente aos pagamentos dos honorários) e o setor de segurança (que utiliza apenas os dados cadastrais para acesso dos funcionários as dependências da empresa).</p>
<p>Iremos utilizar nesse exemplo o WSO2 Data Services Server em sua versão 2.5.1 (nesse caso considerando um conhecimento básico da suíte <a href="http://www.mcorp.com.br/glossario/#WSO2" target="_blank">WSO2</a>, caso contrário consulte os <a href="http://www.mcorp.com.br/tag/wso2"><em>posts</em> relacionados ao WSO2</a>):</p>
<ul>
<li><a href="http://www.leandroprado.com.br/2010/07/criando-um-ambiente-soa-com-wso2/" target="_blank">Criando um ambiente SOA com WSO2</a></li>
<li><a href="http://www.leandroprado.com.br/2010/09/criando-servicos-com-o-wso2-parte-1-wso2-data-services/" target="_blank">Criando serviços com WSO2 Data Services</a></li>
</ul>
<p>Supondo que possuímos o banco de dados, com uma tabela simples chamada de TB_FUNCIONARIOS, com os campos: ID, NOME E SALARIO.</p>
<h2>Etapa 1 &#8211; Criando o usuário</h2>
<p>Logado ao WSO2 Data Services Server vá em &#8220;Home &gt; Configure &gt; User Management &gt; Users&#8221;, para que possamos criar novos usuários, nesse caso criaremos os usuários &#8220;Maria&#8221; que faz parte do departamento de RH da empresa e &#8220;Joao&#8221; que faz parte da segurança do prédio. Click em &#8220;Add User&#8221; para preenchermos os dados do usuário que será cadastrado.</p>
<div id="attachment_508" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.0-add-user-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-508" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.0-add-user-wso2-300x205.jpg" alt="add user wso2" width="300" height="205" /></a><p class="wp-caption-text">add user wso2</p></div>
<p>Após inserir os dados do usuário, clicar em &#8220;finish&#8221;, repetir o procedimento pro cadastro do outro usuário. Podemos listar os usuários criados como mostra a imagem.</p>
<div id="attachment_509" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.1-list-user-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-509" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.1-list-user-wso2-300x149.jpg" alt="list user wso2" width="300" height="149" /></a><p class="wp-caption-text">list user wso2</p></div>
<h2>Etapa 2 &#8211; Criando grupos de usuários</h2>
<p>Com nossos usuários criados, vamos gerar um grupo para vincular ao perfil do usuário. Vá em &#8220;Home &gt; Configure &gt; Users and Roles &gt; Roles&#8221;, serão listados os grupos existentes no WSO2, clique em &#8220;Add New Role&#8221; que abrirá a tela para cadastrarmos os grupos.</p>
<p>Crie um grupo com o nome &#8220;RecursosHumanos&#8221;, em seguida clique em &#8220;next&#8221;, aparecerá a tela com os flags de permissões e previlégios para os membros do grupo. Nesse caso vamos selecionar a opção &#8220;All permissions&#8221;, para que sejam marcadas todas as opções. Enquanto estamos criando o grupo, já podemos vincular os usuários que farão parte do mesmo, faça uma busca listando todos os usuários e selecione o usuário &#8220;Maria&#8221; criado anteriormente, como na imagem abaixo e finalize.</p>
<div id="attachment_512" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.2-select-user-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-512" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.2-select-user-wso2-300x170.jpg" alt="select user wso2" width="300" height="170" /></a><p class="wp-caption-text">select user wso2</p></div>
<p>Agora usando o mesmo processo vamos criar o grupo &#8220;Seguranca&#8221;. Observe que quando selecionamos algum usuário criado e vinculado ao grupo, o mesmo possui um ou vários grupos selecionados.</p>
<div id="attachment_513" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.3-roles-of-users-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-513" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.3-roles-of-users-wso2-300x176.jpg" alt="roles of users wso2" width="300" height="176" /></a><p class="wp-caption-text">roles of users wso2</p></div>
<h2>Etapa 3 &#8211;  Filtrando dados da consulta</h2>
<p>Com os usuários e grupos devidamente criados vamos finalmente ao que interessa, filtrar os dados de acordo com o perfil de cada grupo. Considerando que já exista um serviço &#8220;empresa&#8221;, vamos criar o método &#8220;pesquisarFuncionario&#8221; para demonstrar como filtrar os dados de retorno do método. Nesse caso, o método nos retornará os campos &#8220;ID&#8221; e &#8220;NOME&#8221; para o grupo Segurança, e &#8220;ID&#8221;, &#8220;NOME&#8221; e &#8220;SALARIO&#8221; para o grupo RecursosHumanos.</p>
<p>Iremos em &#8220;Home &gt; Manage &gt; Services &gt; List &gt; Service Dashboard &gt; Service Details &gt; Data Sources &gt; Queries&#8221;,  para inserirmos nosso novo método. Preenchemos com o SQL, o campo de entrada, e na hora em que formos preencher o retorno será onde a &#8220;mágica&#8221; acontecerá.</p>
<div id="attachment_515" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.4-edit-query-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-515" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.4-edit-query-wso2-300x176.jpg" alt="edit query wso2" width="300" height="176" /></a><p class="wp-caption-text">edit query wso2</p></div>
<p>No item &#8220;Add new output Mapping&#8221; abriremos a tela para cadastrar um novo campo de retorno, preenchemos o tipo do campo, o nome de saída e o nome do campo no SQL. Abaixo dessas opções temos o item &#8220;Allowed User Roles&#8221;, aonde aparecerão os grupos que criamos anteriormente, para os campos &#8220;ID E NOME&#8221; selecionaremos ambos os grupos, no caso do campo &#8220;SALARIO&#8221; selecionaremos apenas o grupo RecursosHumanos, com o método criado mostraremos como consumir esse método filtrando os dados.</p>
<div id="attachment_516" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.5-add-edit-output-mapping-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-516" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.5-add-edit-output-mapping-wso2-300x160.jpg" alt="add edit output mapping wso2" width="300" height="160" /></a><p class="wp-caption-text">add edit output mapping wso2</p></div>
<h2>Etapa 4 &#8211; Testando a filtragem de dados</h2>
<p>Agora vamos abrir a opção &#8221; Home &gt; Manage &gt; Services &gt; List &gt; Service Dashboard &gt; Security for the service &gt; Activate Security &gt; Service Dashboard &gt; Security for the service&#8221;, selecionamos a opção &#8220;yes&#8221; no combo e setamos o flag &#8220;UsernameToken&#8221;, assim estaremos habilitando segurança por grupo e usuário do cliente.</p>
<div id="attachment_517" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.6-security-for-the-service-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-517" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.6-security-for-the-service-wso2-300x130.jpg" alt="security for the service wso2" width="300" height="130" /></a><p class="wp-caption-text">security for the service wso2</p></div>
<p>Simulando a execução do serviço, no próprio WSO2 Data Services Server, podemos perceber que aparecem as opções &#8220;username&#8221; e &#8220;password&#8221;. O retorno será filtrado de acordo com o usuário que for preenchido nesses campos. Executando a consulta, notaremos que o campo &#8220;SALARIO&#8221; só aparece no retorno se utilizarmos o usuário &#8220;Maria&#8221;.</p>
<div id="attachment_519" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.9-full-return-service-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-519" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.9-full-return-service-wso2-300x126.jpg" alt="full return service wso2" width="300" height="126" /></a><p class="wp-caption-text">full return service wso2</p></div>
<div id="attachment_520" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.8-parcial-return-service-wso2.jpg" rel="lightbox[499]"><img class="size-medium wp-image-520" src="http://www.mcorp.com.br/wp-content/uploads/2011/02/figura1.8-parcial-return-service-wso2-300x128.jpg" alt="parcial return service wso2" width="300" height="128" /></a><p class="wp-caption-text">partial return service wso2</p></div>
<p>Espero ter colaborado, sugestões e criticas são sempre bem vindas, focando o objetivo de transformar a comunidade <a href="http://www.wso2brasil.com.br/" target="_blank">WSO2 Brasil</a> cada vez mais forte, até o próximo post.</p>
<p>Post baseado no artigo &#8220;<a href="http://wso2.org/library/articles/content-filtering-data-services-user-roles" target="_blank">content filtering data services user roles</a>&#8221; de Anjana Fernando &#8211; Software Engineer WSO2.</p>
<p>Pode ser visto um exemplo de <a href="http://www.mcorp.com.br/2010/03/consumindo-um-servico-seguro-utilizando-php/" target="_blank">consumo um servico seguro utilizando php</a>.</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/" title="WSO2 Business Activity Monitoring + SQL Server">WSO2 Business Activity Monitoring + SQL Server</a></li><li><a href="http://www.mcorp.com.br/2010/03/consumindo-um-servico-seguro-utilizando-php/" title="Consumindo um serviço seguro utilizando PHP">Consumindo um serviço seguro utilizando PHP</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</title>
		<link>http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/</link>
		<comments>http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 13:17:12 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[carbon]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 carbon]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=447</guid>
		<description><![CDATA[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- &#8230; <a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="WSO2 Data Services Server" src="http://www.mcorp.com.br/wp-content/uploads/2010/06/wso2-data-services-server.gif" alt="" width="179" height="23" />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.</p>
<p>E para não pararmos no tempo, vendo que <a href="/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/" target="_blank">as  novidades do WSO2 Data Services Server  2.5.0</a> 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 <a href="/2009/12/testes-na-versao-2-2-0-do-wso2-data-services-server/" target="_blank">WSO2 Data Services Server 2.2.1</a>.</p>
<p>Mas como nem tudo são rosas, um velho <em>bug</em> conhecido nosso na  versão 2.0 e discutido no <a href="http://wso2.org/forum/thread/5349" target="_blank">fórum &#8211; de não aceitar valores <em>null</em></a>,  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.</p>
<p><img class="alignleft" title="WSO2 Carbon" src="http://www.mcorp.com.br/wp-content/uploads/2010/06/wso2-carbon.gif" alt="" width="107" height="23" />Como já conhecemos a estrutura, fomos  direto ao site do projeto para realizar o <a href="http://wso2.org/downloads/data-services-server" target="_blank">download do fonte  do WSO2 Data Services Server</a> 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 <a href="http://wso2.org/downloads/carbon" target="_blank">WSO2 Carbon</a>.</p>
<p>Então com o arquivo de <a href="http://dist.wso2.org/products/carbon/3.0.0/wso2carbon-3.0.0-src.zip" target="_blank">código-fonte  do WSO2 Carbon 3.0.0</a> devidamente baixado, vamos colocar a mão na  massa.</p>
<h2>Baixando e descompactando o fonte</h2>
<pre class="brush: php">wget  http://dist.wso2.org/products/carbon/3.0.0/wso2carbon-3.0.0-src.zip
unzip wso2carbon-3.0.0-src.zip</pre>
<h2>Baixando e aplicando o <em>patch</em></h2>
<pre class="brush: php">wget /wp-content/uploads/2010/06/wso2-dataservices-accept-null.txt
cd wso2carbon-3.0.0-src
patch -p1 wso2-dataservices-accept-null.patch</pre>
<p>E a mensagem recebida aqui será algo como:</p>
<pre class="brush: php">patching file components/data-services/org.wso2.carbon.dataservices.core/3.0.0/src/main/java/org/wso2/carbon/dataservices/dispatch/query/SQLQuery.java</pre>
<h2>Compilando o componente</h2>
<p>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.</p>
<pre class="brush: php">cd components/data-services
mvn install</pre>
<h2>Corrigindo o Data Services Server</h2>
<p>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).</p>
<pre class="brush: php">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</pre>
<h2>Conclusão</h2>
<p>Com o <em>patch</em> criado, testado e aplicado. Abrimos um <a href="https://wso2.org/jira/browse/CARBON-7589" target="_blank">pedido de  correção no JIRA do WSO2</a>, para que eles possam corrigir na próxima <em>release</em> (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).</p>
<ul>
<li><a href="/wp-content/uploads/2010/06/carbon-dataservices-core-3.0.0.tar.gz" target="_blank">org.wso2.carbon.dataservices.core-3.0.0.jar</a></li>
<li><a href="/wp-content/uploads/2010/06/carbon-dataservices-ui-3.0.0.tar.gz" target="_blank">org.wso2.carbon.dataservices.ui-3.0.0.jar</a></li>
</ul>
<p>E tenho que falar, viva o código aberto e o software livre! (;</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/" title="Utilizando o Array Type do WSO2 Data Services Server 2.5.x">Utilizando o Array Type do WSO2 Data Services Server 2.5.x</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/" title="Novidades do próximo WSO2 Data Services Server (2.5.x)">Novidades do próximo WSO2 Data Services Server (2.5.x)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando o Array Type do WSO2 Data Services Server 2.5.x</title>
		<link>http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/</link>
		<comments>http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/#comments</comments>
		<pubDate>Thu, 06 May 2010 21:27:32 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[array type]]></category>
		<category><![CDATA[builder]]></category>
		<category><![CDATA[carbon]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[release candidate]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[soapui]]></category>
		<category><![CDATA[web services application]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 carbon]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=397</guid>
		<description><![CDATA[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 &#8230; <a href="http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uma das <a href="/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/" target="_blank">novidades do WSO2 Data Services Server 2.5.x</a>, já listada anteriormente, é que agora poderemos trabalhar com <em>Array Types</em>. 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 <em>string</em> e posteriormente (em uma <em>procedure</em> ou algo do gênero) realizar o <em>parser</em>.</p>
<p>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 <em>parser</em> na <em>procedure</em>; mas, de uma forma ou outra, resolviam o problema. Só que com a implementação de <em>Array Type</em> resolvemos esse problema de maneira simples, eficiente e elegante!</p>
<h2>Colocando a mão na massa</h2>
<p>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 <em>productById</em> que recebe um <em>id</em>, algo como abaixo:</p>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/try-it-method-productById-without-array-type.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-398" title="Try-it: method productById without array type" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/try-it-method-productById-without-array-type-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/soap-ui-method-productById-without-array-type.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-399" title="SOAPUI: method productById without array type" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/soap-ui-method-productById-without-array-type-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Mas agora tudo foi facilitado, vamos a &#8220;mágica&#8221;! Para alteração do método que aceite a entrada de um <em>Array Type</em>, serão necessários apenas dois passos.</p>
<h3>Passo 1: editando a <em>query</em></h3>
<p>Teremos que trocar a <em>query</em> que antigamente aceitava apenas um parâmetro como entrada &#8220;id = :id&#8221; e colocaremos uma que aceita &#8220;N&#8221; parâmetros &#8220;id in (:id)&#8221;. Então na tela de edição da <em>query</em> do WSO2 Data Services Server, basta trocarmos, como fiz abaixo:</p>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/query-without-array.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-400" title="query without array" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/query-without-array-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/query-with-array.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-401" title="query with array" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/query-with-array-150x150.png" alt="" width="150" height="150" /></a></p>
<h3>Passo 2: editando o tipo da entrada</h3>
<p>E o segundo passo, editando os <em>Input Mappings,</em> basta trocarmos o tipo <em>scalar</em> para <em>array</em>, novamente, como fiz abaixo:</p>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/input-scalar.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-402" title="input scalar" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/input-scalar-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/input-array.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-403" title="input array" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/input-array-150x150.png" alt="" width="150" height="150" /></a></p>
<h2>O resultado</h2>
<p>E agora vamos a parte legal: o resultado!</p>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/try-it-method-productById-with-array-type.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-404" title="Try-it: method productById with array type" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/try-it-method-productById-with-array-type-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/soap-ui-method-productById-with-array-type.png" rel="lightbox[397]"><img class="alignnone size-thumbnail wp-image-405" title="SOAPUI: method productById with array type" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/soap-ui-method-productById-with-array-type-150x150.png" alt="" width="150" height="150" /></a></p>
<h2>Conclusão</h2>
<p>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 <em>releases candidates</em>, que podem ser acompanhadas pelo <a href="http://builder.wso2.org/~carbon/releases/carbon/3.0.0/" target="_blank">repositório de <em>builders</em> do WSO2 Carbon 3.0.0</a>.</p>
<p>Deixo aqui o <a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/wso2tutorial-array-type.zip">download dos arquivos utilizados para implementar o <em>Array Type</em></a> nesse exemplo, contém os arquivos abaixo:</p>
<ul>
<li><em>Data Service</em> antes da implementação do <em>Array Type</em></li>
<li><em>Data Service</em> depois da implementação do <em>Array Type</em></li>
<li>Script de criação do banco de dados utilizado (MySQL)</li>
</ul>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/" title="Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0">Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</a></li><li><a href="http://www.mcorp.com.br/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/" title="Novidades do próximo WSO2 Data Services Server (2.5.x)">Novidades do próximo WSO2 Data Services Server (2.5.x)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novidades do próximo WSO2 Data Services Server (2.5.x)</title>
		<link>http://www.mcorp.com.br/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/</link>
		<comments>http://www.mcorp.com.br/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 16:24:27 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[batch mode]]></category>
		<category><![CDATA[boxcarring]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[eventing]]></category>
		<category><![CDATA[jmx]]></category>
		<category><![CDATA[lançamento]]></category>
		<category><![CDATA[wip services]]></category>
		<category><![CDATA[wsdl]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 carbon]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=312</guid>
		<description><![CDATA[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 &#8230; <a href="http://www.mcorp.com.br/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<ul>
<li><a href="#Dashboard">Dashboard</a></li>
<li><a href="#CarbonDataSources">Carbon Data Sources</a></li>
<li><a href="#ArrayType">Array type</a></li>
<li><a href="#DefaultValuesInputMappings">Default values in input mappings</a></li>
<li><a href="#DataValidationLogic">Data Validation Logic</a></li>
<li><a href="#WIPServices">WIP services</a></li>
<li><a href="#ContractFrist">Contract first</a></li>
<li><a href="#BatchMode">Batch mode</a></li>
<li><a href="#Boxcarring">Boxcarring</a></li>
<li><a href="#Eventing">Eventing</a></li>
<li><a href="#BinaryData">Binary Input/Output data</a></li>
<li><a href="#JMX">JMX</a></li>
<li><a href="#QueryProperties">Query Properties</a></li>
<li><a href="#Conclusao">Conclusão</a></li>
</ul>
<h2><a name="Dashboard">Dashboard</a></h2>
<p>Com a atualização para o WSO2 Carbon 3.0, foi implantando um <em>Dashboard</em> que pode conter informações variadas. Essas informações podem ser personalizadas utilizando <em>gadgets</em>. Aliás, essa atualização pode ser notada em toda a suíte que utilizam o novo Carbon.</p>
<h2><a name="CarbonDataSources">Carbon Data Sources</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-CarbonDataSources-01.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-318" title="Gerenciando um Carbon Data Source (adicionando)" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-CarbonDataSources-01-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-CarbonDataSources-02.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-320" title="Configurando um serviço para utilizar um Carbon Data Source" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-CarbonDataSources-02-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Agora ficará muito mais fácil gerenciar conexões às várias base de dados. Com <em>Carbon Data Sources</em>, será possível apontar no <a href="/glossario/#DataServices" target="_blank">Data Service</a> qual <em>data source</em> utilizar, e cada ambiente (teste, desenvolvimento, homologação ou produção) terão suas próprias configurações, bastará manter o mesmo nome.</p>
<h2><a name="ArrayType">Array Type</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-ArrayType-01.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-326" title="Escolhendo o tipo Array para entrada" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-ArrayType-01-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-ArrayType-02.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-327" title="Escolhendo o tipo Scalar para entrada" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-ArrayType-02-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Poderemos ter entradas do tipo <em>array</em> ou <em>scalar</em>, onde essas entradas podem conter valores de diferentes tipos, como: <em>string</em>, <em>integer</em>, <em>real</em>, <em>double</em>, <em>numeric</em>, <em>tinyint</em>, <em>smallint</em>, <em>bigint</em>, <em>date</em>, <em>time</em>, <em>timestamp</em>, <em>bit</em>, <em>oracle ref cursor</em> ou <em>binary</em>.</p>
<h2><a name="DefaultValuesInputMappings">Default values in input mappings</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-DefaultValuesInputMappings.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-328" title="Escolhendo um valor padrão para a entrada" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-DefaultValuesInputMappings-150x150.png" alt="" width="150" height="150" /></a></p>
<p>No caso do tipo de entrada <em>scalar</em>, poderá ser indicado um valor padrão para a entrada.</p>
<h2><a name="DataValidationLogic">Data Validation Logic</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-DataValidationLogic-01.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-329" title="Validação de dados (da maioria) com mínimo e máximo" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-DataValidationLogic-01-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-DataValidationLogic-02.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-330" title="Validação de dados de entrada (personalizado)" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-DataValidationLogic-02-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Os dados de entrada poderão ser validados utlizando alguns validadores padrões:</p>
<ul>
<li><strong>Long Range</strong>: com mínimo e máximo de opção;</li>
<li><strong>Double Range</strong>: com mínimo e máximo de opção;</li>
<li><strong>Length</strong>: com mínimo e máximo de opção;</li>
<li><strong>Pattern</strong>: com pattern de opção;</li>
<li><strong>Custom</strong>: com a classe de opção.</li>
</ul>
<h2><a name="WIPServices">WIP Services</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wip_dbs.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-418" title="wip_dbs" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wip_dbs-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wip_service_list.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-419" title="WIP Service list" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wip_service_list-150x150.png" alt="" width="150" height="150" /></a></p>
<p>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: &#8220;Work in progress&#8221;. Isso evitará erros e os clientes não conseguirão consumir o serviço.</p>
<h2><a name="ContractFrist">Contract first</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wsdl_upload.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-416" title="WSDL Upload" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wsdl_upload-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/dummy_data_source.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-417" title="Dummy data source" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/dummy_data_source-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Com essa funcionalidade, criar <em>data services</em> poderá fica ainda mais simples. Basta adicionar um contrato (WSDL) com todas as definições e ele criará um <em>WIP Service</em> para você, sendo necessário apenas você configurar conexões e preencher as <em>queries</em>.</p>
<h2><a name="BatchMode">Batch mode</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-BatchMode-01.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-331" title="Habilitando o Batch Mode num serviço" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-BatchMode-01-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-BatchMode-02.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-332" title="Métodos criados automaticamente" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-BatchMode-02-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Um recurso bastante interessante implementado é o <em>Batch Mode</em>, esse recurso implementa automaticamente, em todos os métodos que realizam alguma função de escrita no banco de dados (<em>INSERT</em>, <em>DELETE</em> e <em>UPDATE</em>), o recurso de invocar uma única vez o serviço, mas realizando operações em vários objetos de uma única vez, como &#8211; por exemplo &#8211; um inserir uma listagem de pessoas.</p>
<h2><a name="Boxcarring">Boxcarring</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-Boxcarring-01.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-335" title="Habilitando o boxcarring num serviço" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-Boxcarring-01-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-Boxcarring-02.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-336" title="Boxcarring e os métodos que são criados automaticamente" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-Boxcarring-02-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Implementação importante para essa nova versão, <em>boxcarring</em> nada mais é que o suporte a transações nos serviços, pelas informações coletadas, essa transação pode ser de dois tipos: <em>SOAP</em> ou <em>Transport</em>.</p>
<h2><a name="Eventing">Eventing</a></h2>
<p>Será um recurso que dará a opção de implementarmos eventos em cima de determinadas operações, funciona basicamente como uma <em>trigger</em> de banco de dados.</p>
<h2><a name="BinaryData">Binary Input/Output Data</a></h2>
<p>Será possível utilizar dados binários (tipo Base64) tanto para enviar, quanto para receber.</p>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/binary-input-mapping.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-422" title="binary input mapping" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/binary-input-mapping-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/binary-output-mapping.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-423" title="binary output mapping" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/binary-output-mapping-150x150.png" alt="" width="150" height="150" /></a></p>
<h2><a name="JMX">JMX</a></h2>
<p>O WSO2 Data Services Server proverá informações dos serviços publicados, utilizando Java Management Extensions (JMX).</p>
<h2><a name="QueryProperties">Query Properties</a></h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-QueryProperties-01.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-339" title="Query Properties: clicando no &quot;+&quot; você exibe as opções" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-QueryProperties-01-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-QueryProperties-02.png" rel="lightbox[312]"><img class="alignnone size-thumbnail wp-image-340" title="Query Properties: As opções expandidas" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2ds-2.5.0-r2-QueryProperties-02-150x150.png" alt="" width="150" height="150" /></a></p>
<p>As <em>queries</em> podem ter algumas propriedades específicas na execução, ajudando na questão de performance e limitações.</p>
<h2><a name="Conclusao">Conclusão</a></h2>
<p>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 <em>release</em>, diferentemente da atualização da versão 2.0.x para a 2.2.x.</p>
<p>Os tópicos que não documentei ainda, provavelmente consiga documentar nas próximas <em>releases</em>, 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 <a href="http://builder.wso2.org/~carbon/releases/carbon/3.0.0/" target="_blank">repositório</a> com os <em>builders</em> (com gerações quase que diárias).</p>
<p>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 <em>feed</em>.</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li><li><a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/" title="Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0">Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</a></li><li><a href="http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/" title="Utilizando o Array Type do WSO2 Data Services Server 2.5.x">Utilizando o Array Type do WSO2 Data Services Server 2.5.x</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2010/04/novidades-do-proximo-wso2-data-services-server-2-5-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WSO2 Business Activity Monitoring + SQL Server</title>
		<link>http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/</link>
		<comments>http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 18:44:57 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[bam]]></category>
		<category><![CDATA[business activity monitoring]]></category>
		<category><![CDATA[business process]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[governance registry]]></category>
		<category><![CDATA[h2]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[instalação]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=265</guid>
		<description><![CDATA[A pedidos do &#8220;chefe&#8221;, 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 &#8230; <a href="http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2-bam.gif" rel="lightbox[265]"><img class="alignright size-full wp-image-266" style="border: 0pt none; margin: 5px;" title="WSO2 Business Activity Monitoring" src="http://www.mcorp.com.br/wp-content/uploads/2010/04/wso2-bam.gif" alt="" width="180" height="21" /></a>A pedidos do &#8220;chefe&#8221;, realizei o download e a instalação do <a href="http://wso2.org/downloads/bam" target="_blank">WSO2 Business Activity Monitoring</a> (versão 1.0.1) e parti para os testes.</p>
<p>Mas como migramos toda a suíte para rodar sobre o SQL Server, configurei tudo para apontar para o banco de dados do <a href="http://wso2.org/downloads/governance-registry" target="_blank">WSO2 Governance Registry</a> (arquivo <em>conf/registry.xml</em>) e do <a href="http://wso2.org/downloads/identity" target="_blank">WSO2 Identity Server</a> (arquivo <em>conf/user-mgt.xml</em>) &#8211; maiores explicações ficam para uma outra oportunidade.</p>
<p>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 <a href="/glossario/#BAM" target="_blank">BAM</a> propriamente dito? Pesquisando nos arquivos instalados encontrei um diretório &#8220;bam&#8221;, e para minha não-surpresa, lá estavam mais dois diretórios:</p>
<ul>
<li><strong>./bam/database/</strong>: diretório com arquivos da base de dados do H2;</li>
<li><strong>./bam/sql/</strong>: scripts de criação da base de dados em diferentes bancos (H2, SQL Server, MySQL e Oracle).</li>
</ul>
<p>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.</p>
<pre class="brush: php">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</pre>
<p>Ops, não encontrei nada. Nova tentativa:</p>
<pre class="brush: php">leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r h2 *
[milhões de respostas - ocultadas por mim - que não ajudam em nada]</pre>
<p>Vamos lá, filtrar um pouco mais para quem sabe ser mais feliz:</p>
<pre class="brush: php">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</pre>
<p>E agora sim! Com isso descobrimos que ele utiliza alguns <a href="/glossario/#DataServices" target="_blank">data services</a> que realizam o trabalho &#8220;sujo&#8221;.</p>
<p>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:</p>
<ul>
<li>repository/dataservices/BAMSummaryGenerationDS.dbs</li>
<li>repository/dataservices/BAMConfigurationDS.dbs</li>
<li>repository/dataservices/BAMStatQueryDS.dbs</li>
<li>repository/dataservices/BAMDataCollectionDS.dbs</li>
<li>repository/dataservices/BAMSummaryQueryDS.dbs</li>
</ul>
<p>E carregar o arquivo <em>bam/sql/bam_schema_mssql.sql</em> na base de dados e&#8230; <em>voilà</em>.</p>
<pre class="brush: php">INFO -  Server  :  WSO2 Business Activity Monitor-1.0.1
INFO -  WSO2 Carbon started in 6 sec</pre>
<p>Os estudos sobre o WSO2 Business Activity Monitoring continuarão num próximo capítulo, sempre acompanhado de dicas e descobertas. (:</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/" title=" Segurança de informações através de filtragem de dados no WSO2 Data Services"> Segurança de informações através de filtragem de dados no WSO2 Data Services</a></li><li><a href="http://www.mcorp.com.br/2010/05/utilizando-o-array-type-do-wso2-data-services-server-2-5-x/" title="Utilizando o Array Type do WSO2 Data Services Server 2.5.x">Utilizando o Array Type do WSO2 Data Services Server 2.5.x</a></li><li><a href="http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/" title="Compilando o plugin do WSO2 Data Services Server para o Eclipse">Compilando o plugin do WSO2 Data Services Server para o Eclipse</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consumindo um serviço seguro utilizando PHP</title>
		<link>http://www.mcorp.com.br/2010/03/consumindo-um-servico-seguro-utilizando-php/</link>
		<comments>http://www.mcorp.com.br/2010/03/consumindo-um-servico-seguro-utilizando-php/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 23:03:58 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ws-security]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=256</guid>
		<description><![CDATA[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 &#8230; <a href="http://www.mcorp.com.br/2010/03/consumindo-um-servico-seguro-utilizando-php/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dia desses precisei colocar autenticação em um serviço que desenvolvi e passeando pelas opções da interface administrativa da <a href="http://wso2.org/downloads/esb" target="_blank">WSO2 Enterprise Service Bus</a> encontrei facilmente minha solução. Um pouco depois, li no twitter do @<a href="http://twitter.com/wso2" target="_blank">WSO2</a> um comentário sobre um novo artigo publicado sobre segurança nos <a href="/glossario/#DataServices">Data Services</a>, onde ensinava a fazer toda a parte de configuração: <a href="http://wso2.org/library/articles/content-filtering-data-services-user-roles" target="_blank">Content Filtering in Data Services with User Roles</a>.</p>
<p>Só que pouco tempo depois de configurar e entregar ao cliente o serviço, veio o problema: como consumir em <a href="http://www.php.net/" target="_blank">PHP</a> o serviço? No artigo a solução entregue por eles para consumo é em <a href="http://java.sun.com/" target="_blank">Java</a>, como a capacidade do cliente deixa a desejar, fiquei de fazer e enviar um exemplo de consumo do serviço desenvolvido.</p>
<p>Então&#8230; mãos na massa!</p>
<h2>Configurando a ESB</h2>
<p>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: <a href="http://wso2.org/library/articles/content-filtering-data-services-user-roles#step_4" target="_blank">Step 4 – Enable User Authentication for the Data Service</a>.</p>
<h2>Consumo sem segurança</h2>
<p>Um pequeno trecho de PHP que mostra como consumir o serviço sem nenhum tipo de segurança. Código pequeno, limpo e objetivo.</p>
<pre class="brush: php">
$client = new SoapClient(&quot;http://localhost:8280/services/Tutorial?wsdl&quot;);
try {
$obj = $client-&gt;searchProductsByGroupId(array(&quot;group_id&quot; =&gt; 1));
print_r($obj);

} catch (Exception $e) {
echo &quot;ERRO: &quot; . $e-&gt;getMessage();
}</pre>
<p>Mas mesmo com toda essa objetividade, o problema do cliente não estava resolvido e eu recebia o seguinte erro:</p>
<pre class="brush: php">ERRO: SOAP header missing</pre>
<p>E, para resolver, faltava adicionar o cabeçalho com os dados de segurança.</p>
<h2>Consumo com segurança</h2>
<p>Agora um não-tão-pequeno trecho em PHP.</p>
<pre class="brush: php">// configurações de conexão
$username = &quot;admin&quot;;
$password = &quot;admin&quot;;
$created = date (&quot;Y-m-d\TH:i:s&quot;, mktime (date(&quot;H&quot;), date(&quot;i&quot;), date(&quot;s&quot;), date(&quot;m&quot;), date(&quot;d&quot;), date(&quot;Y&quot;))).&quot;Z&quot;;

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

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

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

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

// criando header
$headers = new SOAPHeader($ns, &#039;Security&#039;, $wsec);

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

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

} catch (Exception $e) {
echo &quot;ERRO: &quot; . $e-&gt;getMessage();
}</pre>
<p>E tudo rodou normalmente, sem problemas, o cliente ficou feliz e eu matei um pouco da saudade de programar em PHP.</p>
<p>Na pesquisa por soluções, tentei utilizar o <a href="http://wso2.org/projects/wsf/php" target="_blank">WSO2 Web Services Framework <em>for PHP</em></a> mas descobri que depende de instalação de módulo no <a href="http://httpd.apache.org" target="_blank">Apache</a> e não servia para meu cliente, mas anotei na pauta para testá-lo em outro momento.</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li><li><a href="http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/" title=" Segurança de informações através de filtragem de dados no WSO2 Data Services"> Segurança de informações através de filtragem de dados no WSO2 Data Services</a></li><li><a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/" title="Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0">Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</a></li><li><a href="http://www.mcorp.com.br/2009/11/novidades-nos-lancamentos-nov2009-da-plataforma-wso2/" title="Novidades nos lançamentos (nov/2009) da plataforma WSO2">Novidades nos lançamentos (nov/2009) da plataforma WSO2</a></li><li><a href="http://www.mcorp.com.br/2009/11/wso2-e-a-quinta-feira-agitada-muitos-lancamentos/" title="WSO2 e a quinta-feira agitada: muitos lançamentos">WSO2 e a quinta-feira agitada: muitos lançamentos</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2010/03/consumindo-um-servico-seguro-utilizando-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Testes na versão 2.2.0 do WSO2 Data Services Server</title>
		<link>http://www.mcorp.com.br/2009/12/testes-na-versao-2-2-0-do-wso2-data-services-server/</link>
		<comments>http://www.mcorp.com.br/2009/12/testes-na-versao-2-2-0-do-wso2-data-services-server/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 20:46:09 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dbs]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=236</guid>
		<description><![CDATA[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&#8230; &#8230; <a href="http://www.mcorp.com.br/2009/12/testes-na-versao-2-2-0-do-wso2-data-services-server/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Estava eu, numa calma sexta-feira, realizando testes na recém lançada versão 2.2.0 do <a href="http://wso2.org/projects/data-services-server/java" target="_blank">WSO2 Data Services Server</a>, e para começá-los resolvi fazer <a href="/glossario/#Deploy">deploy</a> dos serviços que já temos desenvolvido, pensando que tudo seria tranquilo, como estava o meu dia, mas&#8230; ledo engano.</p>
<h2>Erro &#8211; Primeiro ato</h2>
<p>Fui no básico: &#8220;Add &gt; Data Service &gt; Upload&#8221; e&#8230;</p>
<p><a href="http://www.mcorp.com.br/wp-content/uploads/2009/12/wso2-data-services-faulty-01.png" rel="lightbox[236]"><img class="aligncenter size-medium wp-image-239" title="wso2-data-services-faulty-01" src="http://www.mcorp.com.br/wp-content/uploads/2009/12/wso2-data-services-faulty-01-300x199.png" alt="wso2-data-services-faulty-01" width="300" height="199" /></a>Um erro que não me diz muito, então o jeito foi ver o que poderia ser por &#8220;tentativa&#8221; 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.</p>
<pre class="brush: xml">&lt;query id=&quot;productsByGroup&quot; useConfig=&quot;default&quot;&gt;
&lt;sql&gt;call sp_productsByGroup @group_id = ?&lt;/sql&gt;
&lt;param name=&quot;cliente&quot; ordinal=&quot;&quot; sqlType=&quot;INTEGER&quot; type=&quot;IN&quot;/&gt;
&lt;result defaultNamespace=&quot;http://ds.ws.mcorp.com.br/products&quot; element=&quot;products&quot; rowName=&quot;product&quot;&gt;
&lt;element column=&quot;id&quot; name=&quot;id&quot;/&gt;
&lt;element column=&quot;name&quot; name=&quot;name&quot;/&gt;
&lt;/result&gt;
&lt;/query&gt;</pre>
<p>Então peguei a linha 3 e corrigi, deixando assim:</p>
<pre class="brush: xml">&lt;query id=&quot;productsByGroup&quot; useConfig=&quot;default&quot;&gt;
&lt;sql&gt;call sp_productsByGroup @group_id = ?&lt;/sql&gt;
&lt;param name=&quot;cliente&quot; ordinal=&quot;1&quot; sqlType=&quot;INTEGER&quot; type=&quot;IN&quot;/&gt;
&lt;result defaultNamespace=&quot;http://ds.ws.mcorp.com.br/products&quot; element=&quot;products&quot; rowName=&quot;product&quot;&gt;
&lt;element column=&quot;id&quot; name=&quot;id&quot;/&gt;
&lt;element column=&quot;name&quot; name=&quot;name&quot;/&gt;
&lt;/result&gt;
&lt;/query&gt;</pre>
<p>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.</p>
<h2>Erro &#8211; Segundo ato</h2>
<p>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&#8230;</p>
<p><a href="http://www.mcorp.com.br/wp-content/uploads/2009/12/wso2-data-services-faulty-02.png" rel="lightbox[236]"><img class="aligncenter size-medium wp-image-240" title="wso2-data-services-faulty-02" src="http://www.mcorp.com.br/wp-content/uploads/2009/12/wso2-data-services-faulty-02-300x199.png" alt="wso2-data-services-faulty-02" width="300" height="199" /></a>E voltamos a busca do erro perdido&#8230; E dessa vez não foi falta de atenção nossa, apenas o plugin que o pessoal do WSO2 disponibiliza (e que ensinei a <a href="http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/" target="_blank">compilar</a>) que não preencheu o atributo como devia. Na chamada da operação estava assim:</p>
<pre class="brush: xml">&lt;operation name=&quot;productsByGroup&quot;&gt;
&lt;call-query href=&quot;productsByGroup&quot;&gt;
&lt;with-param name=&quot;group_id&quot; query-param=&quot;&quot;/&gt;
&lt;/call-query&gt;
&lt;/operation&gt;</pre>
<p>Enquanto deveria estar assim:</p>
<pre class="brush: xml">&lt;operation name=&quot;productsByGroup&quot;&gt;
&lt;call-query href=&quot;productsByGroup&quot;&gt;
&lt;with-param name=&quot;group_id&quot; query-param=&quot;group_id&quot;/&gt;
&lt;/call-query&gt;
&lt;/operation&gt;</pre>
<p>E feito todas essas alterações na definição dos data service, tudo correu bem e tranquilo com essa nova versão.</p>
<p>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 <em>patches</em> que aplicamos na versão anterior deixaram de ser necessário. Mas isso fica pra uma próximo oportunidade.</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/" title="Compilando o plugin do WSO2 Data Services Server para o Eclipse">Compilando o plugin do WSO2 Data Services Server para o Eclipse</a></li><li><a href="http://www.mcorp.com.br/2009/09/wso2-data-services-instalacao-do-servidor/" title="WSO2 Data Services &#8211; Instalação do servidor">WSO2 Data Services &#8211; Instalação do servidor</a></li><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2011/06/novidades-wso2-data-services-server-2-6-x/" title="Novidades WSO2 Data Services Server (2.6.x)">Novidades WSO2 Data Services Server (2.6.x)</a></li><li><a href="http://www.mcorp.com.br/2011/02/seguranca-de-informacoes-atraves-de-filtragem-de-dados-no-wso2-data-services/" title=" Segurança de informações através de filtragem de dados no WSO2 Data Services"> Segurança de informações através de filtragem de dados no WSO2 Data Services</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2009/12/testes-na-versao-2-2-0-do-wso2-data-services-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compilando o plugin do WSO2 Data Services Server para o Eclipse</title>
		<link>http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/</link>
		<comments>http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 15:21:41 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[código aberto]]></category>
		<category><![CDATA[compilação]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[dss]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[instalação]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[repositório]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=223</guid>
		<description><![CDATA[Como 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 &#8230; <a href="http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-230 alignright" title="Eclipse + WSO2 Data Service" src="http://www.mcorp.com.br/wp-content/uploads/2009/12/eclipse-wso2-ds.png" alt="Eclipse + WSO2 Data Service" width="270" height="130" />Como não encontrei uma versão final do plugin para o <a href="http://www.eclipse.org" target="_blank">Eclipse</a> para criação, edição e deploy de serviços do <a href="http://wso2.org/projects/data-services-server/java" target="_blank">WSO2 Data Services Server</a> na página de downloads do site, o jeito foi compilar o plugin a partir do fonte disponível no <a href="http://wso2.org/svn" target="_blank">repositório</a> (e viva o código aberto). E seguem abaixo os passos necessário para o procedimento.</p>
<h2>Requisitos</h2>
<p>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 <a href="http://www.google.com.br" target="_blank">Google</a> esse problema deve ser facilmente resolvido:</p>
<ul>
<li><a href="http://subversion.tigris.org/" target="_blank">Subversion</a></li>
<li><a href="http://maven.apache.org/" target="_blank">Maven2</a></li>
</ul>
<h2>Baixando fontes</h2>
<p>Primeiro passo é baixar do <a href="http://wso2.org/svn" target="_blank">repositório</a> o código fonte da última versão:</p>
<pre class="brush: bash">svn co https://wso2.org/repos/wso2/trunk/tools/ide/eclipse/data-service/org.wso2.ws.dataservices.ide/</pre>
<h2>Compilação</h2>
<p>Depois de baixados os fontes, basta entrar na pasta que foi gerada e mandar compilar:</p>
<pre class="brush: bash">cd org.wso2.ws.dataservices.ide
mvn install</pre>
<p>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 &#8220;target&#8221; com o arquivo &#8220;org.wso2.ws.dataservices.ide_1.0.0.jar&#8221; que deve ser instalado no seu Eclipse.</p>
<h2>Instalação</h2>
<p>No meu caso, o Eclipse está instalado no meu <em>home</em> e é para lá que copiei o arquivo.</p>
<pre class="brush: bash">cp target/org.wso2.ws.dataservices.ide_1.0.0.jar ~/Applications/eclipse/plugins/.</pre>
<h2>Finalização</h2>
<p><a href="http://www.mcorp.com.br/wp-content/uploads/2009/12/wso2-data-services-wizard-new.png" rel="lightbox[223]"><img class="aligncenter size-medium wp-image-232" title="WSO2 Data services: Wizard new" src="http://www.mcorp.com.br/wp-content/uploads/2009/12/wso2-data-services-wizard-new-300x234.png" alt="WSO2 Data services: Wizard new" width="300" height="234" /></a>E com isso, no menu de &#8220;Novo&#8221;, do seu Eclipse, deve ter a opção de <em>wizard</em> 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 (<em>Edit Data Service</em>) ou realizar o <a href="/glossario/#Deploy" target="_blank">deploy</a> (<em>Deploy Data Service</em>).</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2009/09/wso2-data-services-instalacao-do-servidor/" title="WSO2 Data Services &#8211; Instalação do servidor">WSO2 Data Services &#8211; Instalação do servidor</a></li><li><a href="http://www.mcorp.com.br/2011/10/wso2-data-services-server-e-suas-atualizacoes/" title="WSO2 Data Services Server e suas atualizações">WSO2 Data Services Server e suas atualizações</a></li><li><a href="http://www.mcorp.com.br/2010/06/compilando-o-wso2-carbon-3-0-0-e-corrigindo-o-wso2-data-services-server-2-5-0/" title="Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0">Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data  Services Server 2.5.0</a></li><li><a href="http://www.mcorp.com.br/2010/04/wso2-business-activity-monitoring-sql-server/" title="WSO2 Business Activity Monitoring + SQL Server">WSO2 Business Activity Monitoring + SQL Server</a></li><li><a href="http://www.mcorp.com.br/2009/12/testes-na-versao-2-2-0-do-wso2-data-services-server/" title="Testes na versão 2.2.0 do WSO2 Data Services Server">Testes na versão 2.2.0 do WSO2 Data Services Server</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2009/12/compilando-o-plugin-do-wso2-data-services-para-o-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

