<?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; desenvolvimento</title>
	<atom:link href="http://www.mcorp.com.br/categorias/desenvolvimento/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>SOAP vs REST</title>
		<link>http://www.mcorp.com.br/2011/10/soap-vs-rest/</link>
		<comments>http://www.mcorp.com.br/2011/10/soap-vs-rest/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 12:52:00 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[arquitetura]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=631</guid>
		<description><![CDATA[Tenho visto vários artigos e discussões dizendo que SOAP acabou, que a nova solução para todos os problemas do mundo é o REST (de preferência com JSON). Porém, qualquer pessoa que pare para pensar &#8211; o mínimo que seja &#8211; &#8230; <a href="http://www.mcorp.com.br/2011/10/soap-vs-rest/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tenho visto vários artigos e discussões dizendo que SOAP acabou, que a nova solução para todos os problemas do mundo é o REST (de preferência com JSON). Porém, qualquer pessoa que pare para pensar &#8211; o mínimo que seja &#8211; notará que no mundo real nem tudo é mil maravilhas como dizem ser o REST e nem tão ruim quanto dizem ser o SOAP.</p>
<p>Para quem está envolvido com serviços no dia-a-dia poderia dar vários pontos de vantagens e desvantagens sobre as duas tecnologias. Mas qualquer ponto será levantado dependendo do contexto de quem aplica ou utiliza a tecnologia.</p>
<p>Mas, antes de discussão técnica e filosófica, um ponto que eu acho bastante importante é: até onde vale a pena entrar na discussão da melhor solução e/ou tecnologia? Sei lá, mas entrarei mesmo assim.</p>
<p>As pessoas deveriam se preocupar em resolver os problemas da melhor maneira e não tentar encontrar/criar um padrão que resolva todos os problemas.</p>
<h2>Historinhas fictícias</h2>
<h3>Historinha 1</h3>
<p>&lt;History type=&#8221;ficção&#8221; context=&#8221;enterprise&#8221; description=&#8221;padrão perfeito X&#8221; observation=&#8221;Qualquer semelhança com a vida real será pura coincidência&#8221;&gt;<br />
&lt;Content&gt;<br />
1 &#8211; Temos o &#8220;padrão perfeito X&#8221;, chamado a partir de agora ppX;<br />
2 &#8211; O ppX é grande, foi criado para resolver todo tipo de problema do mundo tecnológico;<br />
3 &#8211; Muitas pessoas enterprise (vulgo PE) usam e amam o ppX e são felizes com ele;<br />
4 &#8211; Toda palestra, evento e rodinha das PE só se ouve falar do ppX, bem, é lógico;<br />
5 &#8211; Usam ele para todo e qualquer problema;<br />
6 &#8211; Eles sabem que o ppX tem seus problemas, mas é super confiável;<br />
7 &#8211; <strong>Eles resolvem seus problemas com o ppX e são felizes com o que fazem.</strong><br />
&lt;/Content&gt;<br />
&lt;/History&gt;</p>
<h3>Historinha 2</h3>
<p>history = {<br />
type: &#8216;ficção&#8217;,<br />
context: &#8216;non-enterprise&#8217;,<br />
description: &#8216;padrão perfeito X&#8217;,<br />
observation: &#8216;Qualquer semelhança com a vida real será pura coincidência&#8217;,<br />
content: &#8216;<br />
1 &#8211; Existe o &#8220;padrão perfeito X&#8221;, chamado a partir de agora ppX;<br />
2 &#8211; O ppX é grande, foi criado para resolver todo tipo de problema do mundo tecnológico;<br />
3 &#8211; Muitas pessoas enterprise (vulgo PE) usam e amam o ppX e são felizes com ele;<br />
4 &#8211; Muitas pessoas não-enterprise (vulgo PNE) pouco usam e odeiam o ppX;<br />
5 &#8211; Toda palestra, evento e rodinha das PNE só se ouve falar mal do ppX;<br />
6 &#8211; Resolvem inventar o &#8220;padrão perfeito aberto X&#8221; (adivinha? Errou. Vulgo A-ppX);<br />
7 &#8211; Usam ele para todo e qualquer problema;<br />
8 &#8211; Eles sabem que o ppX tem seus problemas, então fazem desses problemas a causa da fome no mundo;<br />
9 &#8211; Mostram a todos que o A-ppX é a perfeita solução para todos os problemas do mundo, menos a fome;<br />
10 &#8211; <strong>Eles resolvem seus problemas com o A-ppX e são felizes com o que fazem.</strong><br />
&#8216;}</p>
<h2>Se é que alguém chegou até aqui&#8230;</h2>
<p>Cada um no seu quadrado <strong>ou não</strong>.</p>
<p><strong>Espertas</strong> são as pessoas que conseguem juntar o melhor dos dois mundos indiferente do contexto onde ela esteja. Porque, no fim, o que importa REALMENTE é: <strong>resolver seus problemas e ser feliz com o que faz</strong>.</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/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/instalando-o-wso2-web-services-framework-for-php-2-0-0/" title="Instalando o WSO2 Web Services Framework for PHP (2.0.0)">Instalando o WSO2 Web Services Framework for PHP (2.0.0)</a></li><li><a href="http://www.mcorp.com.br/2010/04/marilia-techday-2010/" title="Marília TechDay 2010">Marília TechDay 2010</a></li><li><a href="http://www.mcorp.com.br/2010/02/livro-gratis-soa-adoption-for-dummies/" title="Livro grátis: SOA Adoption for Dummies">Livro grátis: SOA Adoption for Dummies</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2011/10/soap-vs-rest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Katarogu: um catálogo de produtos simples e eficiente</title>
		<link>http://www.mcorp.com.br/2011/01/katarogu-um-catalogo-de-produtos-simples-e-eficiente/</link>
		<comments>http://www.mcorp.com.br/2011/01/katarogu-um-catalogo-de-produtos-simples-e-eficiente/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 19:11:32 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[avisos]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[catálogo]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[projetos]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=482</guid>
		<description><![CDATA[Fugindo um pouco do mundo &#8220;enterprise&#8221; que normalmente é visto por aqui, apresento a vocês uma ideia que estou desenvolvendo, juntamente com o Gonzalo, o Katarogu! O que é Katarogu? Um catálogo de produtos simples, limpo e que não necessita &#8230; <a href="http://www.mcorp.com.br/2011/01/katarogu-um-catalogo-de-produtos-simples-e-eficiente/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Fugindo um pouco do mundo <em>&#8220;enterprise</em>&#8221; que normalmente é visto por aqui, apresento a vocês uma ideia que estou desenvolvendo, juntamente com o <a href="http://twitter.com/ggorosito" target="_blank">Gonzalo</a>, o Katarogu!</p>
<h2>O que é Katarogu?</h2>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2011/01/katarogu-demo-screenshot.png" rel="lightbox[482]"><img class="alignnone size-medium wp-image-488" title="katarogu-demo-screenshot" src="http://www.mcorp.com.br/wp-content/uploads/2011/01/katarogu-demo-screenshot-300x211.png" alt="" width="300" height="211" /></a></p>
<p>Um catálogo de produtos simples, limpo e que não necessita de nenhum conhecimento profundo de programação para ser instalado e usado.</p>
<h2>Tão simples assim?</h2>
<p>Claro, se você não conhecer algum dos termos aqui descritos, não se preocupe! Se você não os conhece, encontrou o produto certo.</p>
<p>Mas mesmo assim, vamos a lista de vantagens que ele terá:</p>
<ul>
<li>Não será necessária nenhuma tecnologia <em>server-side</em>, ou seja, qualquer hospedagem que conceda espaço para HTML + JavaScript tá valendo (inclusive as grátis);</li>
<li>Editando dois arquivos com texto (um de configurações e outro com a listagem dos seus produtos) e enviando suas fotos tudo estará funcionando;</li>
<li>Não precisará passar por várias telas de cadastro (aliás, nenhuma);</li>
<li>Poderá escolher qual o <em>gateway</em> de pagamento quer usar (<a href="http://www.paypal.com/br/" target="_blank">PayPal</a>, <a href="http://www.pagseguro.com.br/" target="_blank">PagSeguro</a> ou <a href="http://www.moip.com.br/" target="_blank">MoIP</a>);</li>
<li>Poderá escolher qual o sistema que contabilizará as estatísticas de visitação (<a href="http://www.google.com.br/analytics/" target="_blank">Google Analytics</a>, <a href="http://www.webtrends.com/" target="_blank">Web Trends</a>, etc).</li>
</ul>
<h2>E quanto custa tudo isso?</h2>
<p>Nada! Foi feito para uma necessidade de algo rápido sem &#8216;firulas&#8217;, e acabou que decidi ser bonzinho com o mundo! Liberei para o uso de qualquer pessoa!</p>
<h2>Finalizando&#8230;</h2>
<p>Ajudas em ideias e até mesmo em implementações, são muito bem vindas, logo sairá a versão 1.0. (:</p>
<p>Para maiores sobre o projeto, inclusive uma demonstração de funcionamento, basta visitar o site: <a href="http://www.mcorp.com.br/katarogu/">www.mcorp.com.br/katarogu/</a>.</p>
<h3  class="related_post_title">Posts randômicos</h3><ul class="related_post"><li><a href="http://www.mcorp.com.br/2010/08/promocao-livro-shell-script/" title="Promoção: Livro Shell Script">Promoção: Livro Shell Script</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/11/software-livre-codigo-aberto-e-o-mundo-soa/" title="Software livre, código aberto e o mundo SOA">Software livre, código aberto e o mundo SOA</a></li><li><a href="http://www.mcorp.com.br/2011/10/soap-vs-rest/" title="SOAP vs REST">SOAP vs REST</a></li><li><a href="http://www.mcorp.com.br/2009/12/data-services-o-que-e-isso/" title="Data Services: O que é isso?">Data Services: O que é isso?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2011/01/katarogu-um-catalogo-de-produtos-simples-e-eficiente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lançamento do WSO2 Complex Event Processing Server 1.0.0 (Alpha)</title>
		<link>http://www.mcorp.com.br/2011/01/lancamento-do-wso2-complex-event-processing-server-1-0-0-alpha/</link>
		<comments>http://www.mcorp.com.br/2011/01/lancamento-do-wso2-complex-event-processing-server-1-0-0-alpha/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 10:28:06 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[cep]]></category>
		<category><![CDATA[drools]]></category>
		<category><![CDATA[esper]]></category>
		<category><![CDATA[lançamento]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=478</guid>
		<description><![CDATA[Foi lançado ontem na lista de desenvolvedores do WSO2 (carbon-dev@wso2.org) o WSO2 Complex Event Processing Server, em sua versão 1.0.0 (alpha), faz com que tenhamos processamento de eventos complexos em nosso ambiente SOA. Alguns dos recursos que podemos encontrar no &#8230; <a href="http://www.mcorp.com.br/2011/01/lancamento-do-wso2-complex-event-processing-server-1-0-0-alpha/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-medium wp-image-479" title="WSO2 Complex Event Processing Server" src="http://www.mcorp.com.br/wp-content/uploads/2011/01/wso2-complex-event-processing-server-300x28.gif" alt="" width="300" height="28" /></p>
<p>Foi lançado ontem na lista de desenvolvedores do WSO2 (carbon-dev@wso2.org) o WSO2 Complex Event Processing Server, em sua versão 1.0.0 (alpha), faz com que tenhamos processamento de eventos complexos em nosso ambiente SOA.</p>
<p>Alguns dos recursos que podemos encontrar no WSO2 CEP:</p>
<ul>
<li>Plugable back end rutime support &#8211; WSO2 CEP supports following back end run time engines.
<ul>
<li>Drools Fusion &#8211; This back end runtime engine is distributed with the CEP pack</li>
<li>Esper     &#8211; This back end runtime is available at WSO2 GPL P2 repository : <a href="http://dist.wso2.org/wso2-gpl-p2/carbon/releases/3.1.0-alpha/" target="_blank">http://dist.wso2.org/wso2-gpl-p2/carbon/releases/3.1.0-alpha/</a> and can be added as a feature with WSO2 Carbon Feature Management.</li>
</ul>
</li>
<li>Support Multiple Broker Types &#8211; WSO2 CEP supports WS-Event and JMS-Qpid broker types;</li>
<li>GUI Support -  WSO2 CEP supports create,edit,delete operations on Buckets, Inputs and Queries;</li>
<li>Use Registry resources &#8211; WSO2 CEP supports using resources stored in registry (Queries) to create buckets;</li>
<li>Persistence   &#8211; WSO2 CEP supports persisting created buckets in the registry;</li>
<li>I18n Support for CEP &#8211; WSO2 CEP supports internationalization.</li>
</ul>
<p>O povo do WSO2 nos convida para <a href="http://wso2.org/downloads/cep" target="_blank">baixar o WSO2 CEP</a>, instalar, testar e reportar bugs (utilizando o <a href="https://wso2.org/jira/secure/project/ViewProject.jspa?pid=10190" target="_blank">Jira do WSO2</a>) &#8211; caso encontremos!</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><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><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><li><a href="http://www.mcorp.com.br/2009/10/wso2-enterprise-service-bus-esb-2-1-1-lancada/" title="WSO2 Enterprise Service Bus (ESB) 2.1.1 lançada">WSO2 Enterprise Service Bus (ESB) 2.1.1 lançada</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></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mcorp.com.br/2011/01/lancamento-do-wso2-complex-event-processing-server-1-0-0-alpha/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>Lançamento do WSO2 Stratos (alpha)</title>
		<link>http://www.mcorp.com.br/2010/06/lancamento-do-wso2-stratos-alpha/</link>
		<comments>http://www.mcorp.com.br/2010/06/lancamento-do-wso2-stratos-alpha/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 18:50:24 +0000</pubDate>
		<dc:creator>Leonardo Saraiva</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[bam]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[gadged]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[nuvem]]></category>
		<category><![CDATA[stratos]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://www.mcorp.com.br/?p=440</guid>
		<description><![CDATA[O pessoal do WSO2 anda com todo o vapor mesmo, hoje foi lançado (versão alpha ainda) o WSO2 Stratos, toda a plataforma rodando em cloud computing, ou seja, tudo &#8220;empacotado&#8221; e pronto para rodar, sem dependência de hardware e instalações. &#8230; <a href="http://www.mcorp.com.br/2010/06/lancamento-do-wso2-stratos-alpha/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-439" title="WSO2 Stratos" src="http://www.mcorp.com.br/wp-content/uploads/2010/06/wso2-stratos.png" alt="" width="107" height="23" />O pessoal do <a href="http://wso2.org" target="_blank">WSO2</a> anda com todo o vapor mesmo, hoje foi lançado (versão <em>alpha</em> ainda) o <a href="http://wso2.com/cloud/stratos/" target="_blank">WSO2 Stratos</a>, toda a plataforma rodando em <em>cloud computing</em>, ou seja, tudo &#8220;empacotado&#8221; e pronto para rodar, sem dependência de hardware e instalações.</p>
<p>Você pode conseguir maiores informações no site do produto <a href="http://wso2.com/cloud/stratos/" target="_blank">WSO2 Stratos</a> (em inglês) e, também, testar tudo funcionando (lembrando que não é uma versão final ainda) fazendo seu cadastro &#8211; grátis. <a href="http://cloud.wso2.com/" target="_blank">Testar o WSO2 Stratos</a>.</p>
<p style="text-align: center;"><a href="http://www.mcorp.com.br/wp-content/uploads/2010/06/wso2-stratos-home.png" rel="lightbox[440]"><img class="alignnone size-medium wp-image-443" title="WSO2 Stratos - Home" src="http://www.mcorp.com.br/wp-content/uploads/2010/06/wso2-stratos-home-300x228.png" alt="" width="300" height="228" /></a></p>
<p>Os produtos lançados nesse formato são:</p>
<ul>
<li>Governance</li>
<li>Identity</li>
<li>Application Server</li>
<li>Gadgets</li>
<li>Mashup Server</li>
<li>Business Activity Monitor</li>
<li>Enterprise Service Bus</li>
</ul>
<p>Assim que sobrar um tempo vou ver como ficariam implementações utilizando a versão livre deles e ver até onde ela está liberada para ser utilizada. E também a dificuldade de trabalhar dessa forma.</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/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/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/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/2010/06/lancamento-do-wso2-stratos-alpha/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>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>
	</channel>
</rss>

