<?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; java</title>
	<atom:link href="http://www.mcorp.com.br/tag/java/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>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>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>Mapas interativos e Geoprocessamento</title>
		<link>http://www.mcorp.com.br/2010/05/mapas-interativos-e-geoprocessamento/</link>
		<comments>http://www.mcorp.com.br/2010/05/mapas-interativos-e-geoprocessamento/#comments</comments>
		<pubDate>Thu, 27 May 2010 19:57:36 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[geoprocessamento]]></category>
		<category><![CDATA[georeferenciamento]]></category>
		<category><![CDATA[geoserver]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jni]]></category>
		<category><![CDATA[mapa]]></category>
		<category><![CDATA[mapscript]]></category>
		<category><![CDATA[mapserver]]></category>
		<category><![CDATA[openlayers]]></category>
		<category><![CDATA[panoramio]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[street view]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=396</guid>
		<description><![CDATA[Atualmente vemos muitas aplicações e sites utilizando mapas (nem que seja apenas pra mostrar o endereço da empresa), essa facilidade que o Google trouxe com o Google Maps é muito grande, ajudou muito na disseminação dessa tecnologia. Essa facilidade de &#8230; <a href="http://www.mcorp.com.br/2010/05/mapas-interativos-e-geoprocessamento/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Atualmente vemos muitas aplicações e sites utilizando mapas (nem que seja apenas pra mostrar o endereço da empresa), essa facilidade que o <a href="http://www.google.com.br" target="_blank">Google</a> trouxe com o <a href="http://www.google.com.br/maps" target="_blank">Google Maps</a> é muito grande, ajudou muito na disseminação dessa tecnologia.</p>
<div id="attachment_430" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/05/pico-parana.jpg" rel="lightbox[396]"><img class="size-medium wp-image-430 " title="Pico Paraná" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/pico-parana-300x201.jpg" alt="" width="300" height="201" /></a><p class="wp-caption-text">Foto por: Everson Novka</p></div>
<p>Essa facilidade de implementação, nos dá maiores opções para criar sistemas e interfaces bem diferenciadas, como o <a href="http://zoomii.com" target="_blank">Zoomii Books</a> (mesmo não usando Google Maps) que implementou uma loja virtual de livros e o <a href="http://www.trulia.com/" target="_blank">Trulia</a>, um site de uma imobiliária americana que chega até o nível de visualizar a casa como se estivessemos em frente a frente (utilizando o <em>Street View</em>).</p>
<p>Abaixo vemos o Google Maps e integrado ao <a href="http://www.panoramio.com/" target="_blank">Panoramio</a>, dando até a opção de navegação panorâmica das fotos georeferenciadas.</p>
<p style="text-align: center;"><a href="http://www.google.com.br/maps?ll=-25.255525,-48.845794&amp;spn=0.027751,0.054846&amp;t=h&amp;z=15&amp;iwloc=lyrftr:com.panoramio.all,3787114327184159595,-25.255525,-48.845773&amp;lci=com.panoramio.all" target="_blank"><img class="alignnone size-thumbnail wp-image-426" title="Pico Paraná no Google Maps" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/pico-parana-google-maps-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.google.com.br/maps?ll=-25.255525,-48.85397&amp;spn=0,0.054846&amp;t=h&amp;z=15&amp;lci=com.panoramio.all&amp;layer=c&amp;cbll=-25.255525,-48.845794&amp;cbp=12,0,,0,5&amp;photoid=po-18636660" target="_blank"><img class="alignnone size-thumbnail wp-image-427" title="Pico Paraná - Vista panorâmica" src="http://www.mcorp.com.br/wp-content/uploads/2010/05/pico-parana-vista-panoramica-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Mas acontece que o pessoal do Google abstraiu muito a dificuldade que é trabalhar com informações georeferenciadas. Fez com que todas essas funcionalidades (busca de endereços, pontuação, pesquisa por polígonos) e informações (mapas, imagens de satélites, rotas) ficasse algo simples e totalmente transparente para o desenvolvedor. O desenvolvedor sabe que passando o endereço, aparece um ponto no mapa, e isso as vezes basta, mas quando precisamos ir mais além, vemos que a coisa não é tão simples assim.</p>
<p>Senti essa dificuldade tempos atrás, onde tiver que implementar um projeto utilizando tecnologias livres e nos requisitos estavam: <a href="http://java.sun.com" target="_blank">Java</a>, <a href="http://www.mapserver.org" target="_blank">MapServer</a>, <a href="http://www.mapserver.org/mapscript/" target="_blank">MapScript</a> e <a href="http://www.postgresql.org" target="_blank">PostgreSQL</a> (com <a href="http://postgis.refractions.net" target="_blank">PostGIS</a>). Descobri que não é só utilizando endereço e, a inválivel dupla, latitude/longitude que identificaremos os pontos no mapa, descobri também a existência das coordenadas <a href="http://pt.wikipedia.org/wiki/Universal_Transversa_de_Mercator" target="_blank">UTM</a> e a diferença entre as regiões.</p>
<p>Posteriormente descobri que uma alternativa de desenvolvimento ao MapServer, é o <a href="http://geoserver.org/" target="_blank">GeoServer</a>, escrito nativamente em Java, que facilitaria &#8211; e muito &#8211; o meu trabalho, pois o MapScript é uma biblioteca em C e por isso foi necessário utilizar <a href="http://pt.wikipedia.org/wiki/JNI" target="_blank">JNI</a>.</p>
<p>Com tudo isso, descobri que geoprocessamento é bem mais do que um mapa com alguns pontos e alguns polígonos, tem muito mais coelho nesse mato. O geoprocessamento e georeferenciamento não é algo tão simples, não é a toa que existem os <a href="http://pt.wikipedia.org/wiki/Engenharia_geogr%C3%A1fica" target="_blank">Engenheiros Cartográficos</a>.</p>
<p>Depois desse projeto, vi que curti demais a área e estou me aprofundando na medida do possível, todos os estudos que eu for realizando relatarei por aqui. E o primeiro estudo que relatarei será o <a href="http://www.openlayers.org" target="_blank">OpenLayers</a>.</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/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/03/consumindo-um-servico-seguro-utilizando-php/" title="Consumindo um serviço seguro utilizando PHP">Consumindo um serviço seguro utilizando PHP</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2010/05/mapas-interativos-e-geoprocessamento/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>
	</channel>
</rss>

