<?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>Blog do Alone &#187; Open Source</title>
	<atom:link href="http://www.nelsonalone.com.br/category/opensource-free-fsf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nelsonalone.com.br</link>
	<description>A tecnologia de forma simplificada</description>
	<lastBuildDate>Fri, 27 Jan 2012 11:27:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Twitter Storm no GitHub</title>
		<link>http://www.nelsonalone.com.br/2011/09/26/twitter-storm-no-github/</link>
		<comments>http://www.nelsonalone.com.br/2011/09/26/twitter-storm-no-github/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 15:08:18 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[storm]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=595</guid>
		<description><![CDATA[A equipe de desenvolvimento do Twitter disponibilizou nessa segunda a ultima versão do storm. Pra quem não conhece, assim como eu a duas horas atrás, é uma API do Twitter, desenvolvida pela BackType, utilizada para solucionar problemas de processamento em tempo real com tolerância a falhas. Referências abaixo: Artigo na Infoq: Link Repositório no GitHub:<a href="http://www.nelsonalone.com.br/2011/09/26/twitter-storm-no-github/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A equipe de desenvolvimento do Twitter disponibilizou nessa segunda a ultima versão do storm. Pra quem não conhece, assim como eu a duas horas atrás, é uma API do Twitter, desenvolvida pela BackType, utilizada para solucionar problemas de processamento em tempo real com tolerância a falhas.</p>
<p style="text-align: justify;">Referências abaixo:</p>
<p style="text-align: justify;">Artigo na Infoq: <a title="infoq" href="http://www.infoq.com/news/2011/09/twitter-storm-real-time-hadoop">Link</a></p>
<p style="text-align: justify;">Repositório no GitHub: <a title="github download" href="https://github.com/nathanmarz/storm/downloads">Link</a></p>
<p style="text-align: justify;">Wiki: <a title="wiki github" href="https://github.com/nathanmarz/storm/wiki">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2011/09/26/twitter-storm-no-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dica de repositório de fontes: Assembla</title>
		<link>http://www.nelsonalone.com.br/2011/03/09/dica-de-repositorio-de-fontes-assembla/</link>
		<comments>http://www.nelsonalone.com.br/2011/03/09/dica-de-repositorio-de-fontes-assembla/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 13:26:32 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[repositorio]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=569</guid>
		<description><![CDATA[Utilizo o github a um bom tempo simplesmente pelo fato de  ser um excelente repositório que pode ser utilizado para projetos opensource e para projetos fechados, isso de acordo com os pacotes disponíveis para seus clientes. Recentemente, precisei de um repositório que fosse aberto para uso, mas, que fosse possível manter projetos fechados com possibilidade<a href="http://www.nelsonalone.com.br/2011/03/09/dica-de-repositorio-de-fontes-assembla/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --><span style="font-family: Arial, sans-serif;">Utilizo o github a um bom tempo simplesmente pelo fato de  ser um excelente repositório que pode ser utilizado para projetos opensource e para projetos fechados, isso de acordo com os pacotes disponíveis para seus clientes.</span></p>
<p style="text-align: justify;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --><span style="font-family: Arial, sans-serif;">Recentemente, precisei de um repositório que fosse aberto para uso, mas, que fosse possível manter  projetos fechados com possibilidade de abrir para uma determinada quantidade de usuários. Encontrei o <a href="http://www.assembla.com/">Assembla</a>. O <a href="http://www.assembla.com/">Assembla</a> permite trabalhar com SVN ou Git, possui trambém recursos para trackin de projetos, wiki e outras ferramentas de colaboração que podem ser utilizadas de forma integrada com o repositório. Muitas dessas ferramentas estão disponíveis também para o pacote free, porém, diminui consideravelmente os recursos de armazenamento.</span></p>
<p style="text-align: justify;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --><span style="font-family: Arial, sans-serif;">A administração é feita inteiramente Através do site, tornando possível atribuir e remover acesso aos usuários ao projeto, inclusive gerenciar permissões.</span></p>
<p style="text-align: justify;"><span style="font-family: Arial, sans-serif;">Achei essa ferramenta muito boa. É ideal para quem tem um projeto com vários colaboradores e que tem necessidade de mante-lo fechado. Taí a dica: <a href="http://www.assembla.com/">Assembla</a>; monte seu plano, pague baratou ou utilize de graça.</span></p>
<p style="text-align: justify;"><span style="font-family: Arial, sans-serif;">[]s. </span></p>
<p style="text-align: justify;"><span style="font-family: Arial, sans-serif;"><br />
</span></p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2011/03/09/dica-de-repositorio-de-fontes-assembla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problemas com modens HUAWEY 3G</title>
		<link>http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/</link>
		<comments>http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:00:49 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[huawei]]></category>
		<category><![CDATA[moden]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=424</guid>
		<description><![CDATA[Recentemente adquiri um modem 3G da marca HUAWEY da VIVO com pacote de internet ilimitado para suprir minhas necessidades de internet, já que, onde estou morando ainda não há cabeamento de voz nem de dados. Verifiquei os valores das soluções via Radio, mas, aqui em Manaus ainda é um absurdo. A única solução foi adquirir<a href="http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Recentemente adquiri um modem 3G da marca HUAWEY da VIVO com pacote de internet ilimitado para suprir minhas necessidades de internet, já que, onde estou morando ainda não há cabeamento de voz nem de dados. Verifiquei os valores das soluções via Radio, mas, aqui em Manaus ainda é um absurdo. A única solução foi adquirir o modem para ter acesso a rede 3G.</p>
<p style="text-align: justify;">Instalei o discador que veio no modem e a conexão foi feita normalmente com velocidade média de 50 a 60 KBps, uma velocidade excepcional pra quem mora em Manaus, já que a internet por aqui é precária. Naveguei cerca de dez minutos e uma surpresa, minha máquina travou. Reiniciei, conectei novamente e depois de dois minutos torna a travar. Fiquei frustrado com isso, tentei várias vezes e aconteceu a mesma coisa.</p>
<p style="text-align: justify;">Anotei o modelo do modem e fui ao Google pra tentar resolver o problema. Em um dos fóruns que pesquisei tinha um post que recomendava atualizar o firmware do modem e o discador, lá tinha o <a href="http://www.huawei.com/pt/catalog.do?id=1681">link para o site do fabricante</a> onde tinha os pacotes para tal, baixei imediatamente e instalei em seguida tudo conforme tava no manual. Reinstalei o software discador e tornei a discar.</p>
<p style="text-align: justify;">Na primeira tentativa veio a frustração, travou novamente. Muito decepcionado, cogitei  em voltar para o Ubuntu, mesmo ignorando os softwares que uso no Windows, o que importava era solucionar esse problema e voltar a trabalhar o mais rápido possível. Hoje, utilizo o Windows 7, sistema operacional onde o problema ocorria constantemente, e para minha surpresa, o problema acontecia também no Linux. Cogitei em ir para a operadora para trocar o modem, porém, tinha que fazer uma ultima tentativa, tinha que fazer a conexão com o discador nativo do Windows.</p>
<p style="text-align: center;"><a href="http://www.nelsonalone.com.br/blog/wp-content/uploads/2010/01/modem1.png"><img class="aligncenter size-full wp-image-426" title="modem" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2010/01/modem1.png" alt="" width="486" height="344" /></a></p>
<p style="text-align: justify;">Quando o modem é utilizado pela primeira vez no PC é instalado os drivers de conexão para Windows automaticamente. Portanto, ao configurar no discador nativo, para Windows, o modem 3G aparece para ser lincado ao discador. Copiei as configurações do software discador que vem com o modem a adicionei no discador e efetuei a discagem. Funcionou perfeitamente e não travou mais.</p>
<p style="text-align: justify;">Conclusão, o problema todo era software discador que veio com o modem. Quando havia uma quantidade muito grande de dados em transmissão, o travamento ocorria e não era registrado nos logs do sistema operacional.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Detalhes da solução:</strong></p>
<p style="text-align: justify;">Sistema Operacional: Windows 7</p>
<p style="text-align: justify;">Modem: Huawey E1756 MODEM USB 3G</p>
<p style="text-align: justify;">Discador: VIVO Internet 11.302.06.20.149, plugins 1.01</p>
<p style="text-align: justify;">Operadora: VIVO</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hibernate: Schema export através de tasks do ANT</title>
		<link>http://www.nelsonalone.com.br/2009/08/27/hibernate-schema-export-atraves-de-tasks-do-ant/</link>
		<comments>http://www.nelsonalone.com.br/2009/08/27/hibernate-schema-export-atraves-de-tasks-do-ant/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 04:33:19 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Persistência]]></category>
		<category><![CDATA[annotation]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[persistence]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=336</guid>
		<description><![CDATA[É inegável que o hibernate é um excelente framework de mapeamento objeto relacional. Seus recursos de mapeamento, persistência, transação simplificadas, suporte a queries SQL, HQL, criteria, entre outros, justificam a sua utilização em massa pela comunidade Java. Não foi por acaso sua utilização como modelo para a especificação JPA. Alem das funcionalidades do contexto de<a href="http://www.nelsonalone.com.br/2009/08/27/hibernate-schema-export-atraves-de-tasks-do-ant/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">É inegável que o hibernate é um excelente framework de mapeamento objeto relacional. Seus recursos de mapeamento, persistência, transação simplificadas, suporte a queries SQL, HQL, criteria, entre outros, justificam a sua utilização em massa pela comunidade Java. Não foi por acaso sua utilização como modelo para a especificação JPA.</p>
<p style="text-align: justify;">Alem das funcionalidades do contexto de persistência também podemos contar com as funcionalidades extras que foram desenvolvidas pelo time de desenvolvimento, hoje pertencente a JBoss. Estou falando do pacote hibernate-tools.jar, contido no plugin feito para o eclipse, com o intuito de auxiliar no processo de configuração, mapeamento, importação de schemas e mecanismo de interpretação e execução de HQL. O link para download do plugin encontra-se <a href="http://downloads.sourceforge.net/jboss/HibernateTools-3.2.4.GA-R200905070146-H18.zip">aqui</a>.</p>
<p style="text-align: justify;">Tive a necessidade de fazer com que todo o schema fosse exportado para o banco de dados ao executar uma simples task do Ant. Funcionalidade que facilitaria muito a vida da equipe ao modificar o mapeamento das entidades do projeto, sendo apenas necessário executar a task para exportar as modificações para o SGBD. Para isso, desenvolvi uma task personalizada para solucionar esse problema. A task funcionava bem, mas chegou um ponto que não nos atendia. Portanto, vi que uma boa alternativa seria utilizar as tasks do hibernate-tools.</p>
<p style="text-align: justify;">O pacote hibernate-tools.jar contem um conjunto de tasks que permitem a execução de procedimentos básicos de persistência através de simples tasks do <a href="http://ant.apache.org/">Ant</a>. As tasks são variadas, portanto é possível utiliza-las para; exportar schemas, gerar os inserts do mapeamento em um arquivo .sql, gerar os hbm.xml (se não tiver utilizando anotações) entre outras coisas. Mais um detalhe: o pacote hibernate-tools.jar é completamente independente do plugin.</p>
<p style="text-align: justify;">A configuração para utilizar as tasks a princípio é simples, porém levei um tempo para acertar, já que meu projeto estava mal configurado e gastei muito tempo para descobrir o problema. Vou levar em conta que o seu projeto está devidamente configurado e fazendo todas as operações básicas (insert, update e delete) no banco de dados.</p>
<p style="text-align: justify;">Para uma simples exportação do schema para o banco de dados, a primeira coisa que você deve fazer é adicionar o pacote hibernate-tools.jar no classpath do projeto. Após isso é necessário incluir uma referencia a classe que representa a task. Nesse caso, assim como está abaixo:</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong><code>&lt;taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="path.lib" /&gt;</code></strong></p>
<p style="text-align: justify;"><strong><br />
</strong></p>
<p style="text-align: justify;">Após isso, é necessário incluir um target que fará todo o trabalho sujo. Nessa target deve conter, dentro do <code>&lt;hibernatetool&gt;</code>, no mínimo as tasks <code>&lt;annotationconfiguration/&gt;</code> e <code>&lt;hbm2ddl/&gt;</code> para fazer o processo de configuração e a exportação de todas as configurações de mapeamento incluídas nas classes. Vamos ver o detalhe abaixo:</p>
<p style="text-align: justify;"><code><br />
<strong> &lt;target name="generate" depends="compile"&gt;<br />
&lt;hibernatetool destdir="${dir.build}/generated"&gt;<br />
&lt;classpath&gt;<br />
&lt;path location="${dir.out.classes}"&gt;&lt;/path&gt;<br />
&lt;/classpath&gt;<br />
&lt;annotationconfiguration propertyfile="${dir.out.classes}/hibernate.properties"  configurationfile="${dir.out.classes}/hibernate.cfg.xml" /&gt;<br />
&lt;hbm2ddl drop="true" create="true" export="true" outputfilename="../schema.sql" delimiter=";" format="true" /&gt;<br />
&lt;hbm2dao /&gt;<br />
&lt;/hibernatetool&gt;<br />
&lt;/target&gt;</strong></code></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Reparem que é necessário ter os .class incluídos no <code>&lt;classpath/&gt;</code> como descrito acima, pois é daí que vem todo o mapeamento dos objetos. A propriedade <code>&lt;annotationconfiguration/&gt;</code> representa as configurações do seu SGBD (hibernate.properties) e das classes persistentes (hibernate.cfg.xml). Claro que o arquivo cfg.xml pode conter as configurações do SGBD mas eu achei melhor separá-los.</p>
<p style="text-align: justify;">A task <code>&lt;hbm2dll/&gt;</code> é o elemento principal do processo de exportação do schema. Nela é possível definir se, ao exportar o schema, irá dropar as tabelas existentes e criar uma nova estrutura e além do mais irá criar um arquivo .sql contendo tudo o que foi feito no banco.</p>
<p style="text-align: justify;">Adicionei a task <code>&lt;hbm2dao/&gt;</code> apenas para mostrar o DAO gerado conforme as entidades geradas. Acredito que isso seja útil para os projetos que não utilizam o suporte aos DAOs do Hibernate do Spring.</p>
<p style="text-align: justify;">Bom pessoal, esse foi um processo que me atendeu perfeitamente nos projetos que desenvolvo, portanto, segue a dica para os leitores. Chega de ficar mexendo nas propriedades <code>hibernate.hbm2ddl.auto create-drop</code> e escrever tarks personalizadas para essa tarefa.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2009/08/27/hibernate-schema-export-atraves-de-tasks-do-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por onde anda o Prevayler ?</title>
		<link>http://www.nelsonalone.com.br/2009/08/01/por-onde-anda-o-prevayler/</link>
		<comments>http://www.nelsonalone.com.br/2009/08/01/por-onde-anda-o-prevayler/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 20:57:13 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Persistência]]></category>
		<category><![CDATA[Prevayler]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=321</guid>
		<description><![CDATA[Lembro-me como fosse hoje quando, fuçando na net, encontrei um texto escrito por Klaus Wuestefeld. O texto iniciava com uma pergunta: Você ainda usa banco de dados? A primeira vista aparentava ser um texto provocativo e por isso decidi da uma lida. Ao ler o texto, o que me chamou mais atenção, foi o fato<a href="http://www.nelsonalone.com.br/2009/08/01/por-onde-anda-o-prevayler/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Lembro-me como fosse hoje quando, fuçando na net, encontrei um texto escrito por <a href="http://www.bileblog.org/2004/12/the-real-interview-with-klaus-wuestefeld/">Klaus Wuestefeld</a>. O texto iniciava com uma pergunta: <a href="http://imasters.uol.com.br/noticia/1368/tecnologia/prevayler_-_voce_ainda_usa_banco_de_dados/">Você ainda usa banco de dados?</a> A primeira vista aparentava ser um texto provocativo e por isso decidi da uma lida. Ao ler o texto, o que me chamou mais atenção, foi o fato do framework ser 10.000 vezes mais rápido que bancos de dados relacionais.</p>
<p style="text-align: justify;">Com a curiosidade a tona decidi baixar o JAR, junto com os fontes do projeto, para ver do que se tratava e como era feito essa proeza. Notei que era um framework que fazia um processo de serialização da JVM de forma mais elaborada com logs, transações e integridade dos objetos persistidos. Ou seja, um mecanismo de persistência simples e que atendia a aplicações de pequeno porte. A empolgação foi tanta que até fiz minha monografia da faculdade sobre ele.</p>
<p style="text-align: justify;">Ter disponível um framework que implemente um novo conceito de persistência chamou atenção não só de brasileiros, tanto que muitos desenvolvedores se juntaram no desenvolvimento do <em>frameworks, </em>plugins para Eclipse e uma implementação do SQL para consultar objetos &#8220;prevalecidos&#8221;. Ma o que aconteceu? Porque não vingou? Bom, a resposta dessas perguntas eu não tenho. As suposições são muitas. Uma delas seria a aceitação e a barreira da mudança de paradigmas. Muitos até tiveram boa intenção de utilizar em suas aplicações. Um exemplo disso é o <a href="http://thinfeeder.sourceforge.net/">ThinFeeder</a> e portal <a href="http://www.javafree.org/">JavaFree</a>. Lembro que o JavaFree teve uma série de problemas de concorrência ao disponibilizar o portal com a camada de persistência com <a href="http://www.prevayler.org/">prevayler</a>.</p>
<p style="text-align: justify;">Deixei de acompanhar a evolução do framework já faz um tempo, acredito que tenham resolvido os velhos problemas de concorrência, portanto não tenho em detalhes das melhorias e de novas funcionalidades do framework. Porém, acredito que seria uma boa oportunidade de investir na evolução desse framework polêmico. Quem tiver curiosidade o site do projeto está <a href="http://www.prevayler.org/">aqui</a>.</p>
<p style="text-align: justify;">O projeto encontra-se maduro, porém, a quebra de paradigmas ainda é uma barreira para a adoção do framework em suas aplicações. Tentar aceitar que um framework de persistência de objetos possa dar conta de suas aplicações tendo uma série de SGDBs disponíveis realmente é uma coisa difícil.</p>
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2009/08/01/por-onde-anda-o-prevayler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MMOGs sobre P2P -&gt; Protocolos de Roteamento</title>
		<link>http://www.nelsonalone.com.br/2009/05/30/mmogs-sobre-p2p-protocolos-de-roteamento/</link>
		<comments>http://www.nelsonalone.com.br/2009/05/30/mmogs-sobre-p2p-protocolos-de-roteamento/#comments</comments>
		<pubDate>Sun, 31 May 2009 00:57:47 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[P2P - Peer to Peer]]></category>
		<category><![CDATA[can]]></category>
		<category><![CDATA[chord]]></category>
		<category><![CDATA[jxta]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[pastry]]></category>
		<category><![CDATA[tapestry]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=282</guid>
		<description><![CDATA[Os protocolos de roteamento nas redes P2P são os principais elementos para manter a conectividade entre os nodos. Assim como nas redse TCP/IP, a tarefa dos protocolos consiste principalmente no recebimento e encaminhamento de pacotes e busca de nodos. Porém os protocolos P2P são mais complexos, pois são inúmeras vezes mais abstratos e dinâmicos. Como<a href="http://www.nelsonalone.com.br/2009/05/30/mmogs-sobre-p2p-protocolos-de-roteamento/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<p style="text-align: justify;">Os protocolos de roteamento nas redes P2P são os principais elementos para manter a conectividade entre os nodos. Assim como nas redse TCP/IP, a tarefa dos protocolos consiste principalmente no recebimento e encaminhamento de pacotes e busca de nodos. Porém os protocolos P2P são mais complexos, pois são inúmeras vezes mais abstratos e dinâmicos. Como as redes P2P consistem, na maioria das vezes, de protocolos localizados na camada de aplicação, segundo o modelo de referência OSI, muito de suas características são no momento desconhecidas da maioria dos profissionais da área.</p>
<p style="text-align: justify;">Nesse post, estarei falando sobre o básico do básico de alguns protocolos, que considero os mais interessantes, para que possam ser implementados nas redes P2P.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Chord</strong></p>
<p style="text-align: justify;">O protocolo Chord é baseado no mecanismo de DHT &#8211; <em>Distributed Hash Table. </em>Esse protocolo consiste na utilização de chaves para mapear, localizar e remover nodos em uma rede P2P.</p>
<p style="text-align: justify;">Seu funcionamento consiste em mapear os peers conectados a rede através de um código hash que identifica cada elemento. Com esse código, cada peer pode localizar e identificar seus vizinhos através de um emaranhado de peers conectados. A maneira como isso é feita consiste de uma única operação (<em>lookup</em>) que mapeio o endereço IP com o hash gerado.</p>
<p style="text-align: justify;">Os DHTs diferenciam das tabelas tradicionais tabelas hash nos seguintes aspectos;</p>
<ul style="text-align: justify;" type="disc">
<li>Devem suportar a inserção e      remoção de nós, pois será necessário atualizar o novo mapeamento dos nós.</li>
<li>Outra questão é a      necessidade de um protocolo de roteamento para que o mapeamento possa ser      feito constantemente.</li>
</ul>
<p style="text-align: justify;">No caso do Chord, o protocolo de roteamento seria descartado para dar lugar ao <em>consistent hashing. </em></p>
<p style="text-align: justify;">Esse mecanismo mantem o mapeamento das chaves e nodos responsáveis por essas chaves. Com isso, torna-se desnecessário o conhecimento de todos os nós da rede por cada peer. Com isso, a escalabilidade da rede aumenta consideravelmente.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-300" title="chord1" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/05/chord1.jpg" alt="chord1" width="640" height="514" /></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Pastry</strong></p>
<p style="text-align: justify;">O protocolo pastry atribui um identificador de 128 bits, também gerado através de uma função hash, baseada no endereço IP ou em uma chave publica do peer. Esse identificador é utilizado para localizar um nodeIp no universo P2P que consiste no universo de chaves. Com isso, podemos rotear uma mensagem, em uma rede de <em>N </em>nós, em O(<em>log</em><em>2b</em><em>N</em>).</p>
<p>O protocolo tem uma característica interessante. Ele roteia mensagens de um nó cujo <em>nodeId </em>esteja mais próximo da chave autorizada. Isto é feito da seguinte forma: a cada etapa do roteamento, um nó normalmente encaminha as mensagens para outro nó cujo <em>nodeId </em>compartilhe com a chave pelo menos um digito (ou <em>b bits</em>) a mais do que é  compartilhado com o nó atual. Se nenhum nó é conhecido, a mensagem é encaminhada para um nó cujo <em>nodeId </em>compartilha um prefixo com a chave e está numericamente mais próximo da chave do que o presente nó. Para suportar este procedimento deroteamento, cada nó mantém uma tabela de roteamento, um conjunto de vizinhanças e um conjunto de folhas.</p>
<p><img class="aligncenter size-full wp-image-303" title="patry1" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/05/patry1.jpg" alt="patry1" width="533" height="333" /></p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Tapestry </strong></p>
<p style="text-align: justify;">O tapestry tem uma certa semelhança com o pastry. Entre essas semelhanças estão a utilização do sufixo/prefixo no roteamento. Com isso, quando a tabela de roteamento de um nó não possui não possui uma referência para um nó que não compartilhe o sufixo com a chave a mensagem é encaminhada para um nó numericamente mais próximo da chave do nó em questão.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>CAN </strong>(<em>Content Addressable Network</em>)</p>
<p style="text-align: justify;">O CAN possui uma abstração maior, podendo ser melhor compreendida, pois é baseada em um plano cartesiano de N dimensões. Esse plano é dinamicamente dividido entre todos os nós de maneira que cada nó possua sua própria zona, como abaixo:</p>
<p><img class="aligncenter size-full wp-image-299" title="can1" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/05/can1.jpg" alt="can1" width="376" height="236" /></p>
<p style="text-align: justify;">O espaço virtual é usado para armazenar todos os pares (chave, valor) entre os nós participantes da rede. As chaves são mapeadas para um determinado ponto no espaço utilizando a nossa função hash. O par(chave,valor) é então armazenado no nó responsável pela zona onde o ponto se encontra. Quando um nó deseja encontrar o valor correspondente de uma chave, ele deve aplicar a mesma função hash para encontrar o valor correspondente a chave e então encontrar o nó que está procurando. Caso a pesquisa não tenha êxito, a busca é passada a seus vizinhos para que seja feita a busca até encontrar o nó na zona da rede.</p>
<p style="text-align: justify;">Em minha opinião, esse é um protocolo mais adequado para os MMOGs, já que existe a possibilidade de dividir o espaço em zonas, talvez possa ser aplicada a mesma idéia do conceito de mundos e campos de visão. Mas isso ainda é pesquisa.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>PT-BR</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 3.0cm 70.85pt 3.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabela normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-fareast-language:EN-US;} --> <!--[endif]--></p>
<p class="MsoNormal" style="text-align: justify;"><strong>Referências</strong></p>
<p class="MsoNormal" style="text-align: justify;">Utilizei algumas referências na elaboração desse texto, pois esses protocolos fazem parte de pesquisas na área de redes e muita coisa está sendo desenvolvida no momento, principalmente sobre a adaptação dos protocolos nos MMOGs.</p>
<p class="MsoNormal" style="text-align: justify;">Utilizei o texto de Carlos Kamienski, Eduardo Souto, João Rocha, Marco Domingues, Arthur Callado, Djamel Sadok, cujo título é; Colaboração na Internet e a Tecnologia Peer-to-Peer, publicado no XXV Congresso da sociedade Brasileira da Computação, e o texto de Guan-Yu Huang1, Shun-Yun Hu2, Jehn-Ruey Jiang3 com o título; Scalable Reputation Management for P2P MMOGs de Department of Computer Science and Information Engineering National Central University, Taiwan.</p>
<p>Nos próximos post s estarei disponibilizando uma visão geral sobre o &#8220;elefante branco&#8221;, porém o mais completo, do P2P, o JXTA.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2009/05/30/mmogs-sobre-p2p-protocolos-de-roteamento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIT Robocraft &#8211; Ensino divertido de programação de computadores</title>
		<link>http://www.nelsonalone.com.br/2009/05/26/mit-robocraft-ensino-divertido-de-programacao-de-computadores/</link>
		<comments>http://www.nelsonalone.com.br/2009/05/26/mit-robocraft-ensino-divertido-de-programacao-de-computadores/#comments</comments>
		<pubDate>Tue, 26 May 2009 03:45:09 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Robocode]]></category>
		<category><![CDATA[Robocraft]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=288</guid>
		<description><![CDATA[Fiquei curioso ao ler uma reportagem de uma revista informando sobre a iniciativa do MIT de disponibilizar o conteúdo de seus cursos na Web. O nome do projeto é entitulado de OpenCourses que consiste também da publicação de vídeos e exames sem a necessidade registro ou autenticação. Passeando pelo tópico de Electrical Engineering and Computer<a href="http://www.nelsonalone.com.br/2009/05/26/mit-robocraft-ensino-divertido-de-programacao-de-computadores/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>PT-BR</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabela normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} --> <!--[endif]--></p>
<p class="MsoNormal" style="text-align: justify;">Fiquei curioso ao ler uma reportagem de uma revista informando sobre a iniciativa do MIT de disponibilizar o conteúdo de seus cursos na Web. O nome do projeto é entitulado de OpenCourses que consiste também da publicação de vídeos e exames sem a necessidade registro ou autenticação.</p>
<p class="MsoNormal" style="text-align: justify;"><img class="aligncenter size-medium wp-image-286" title="chp_robocraft" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/05/chp_robocraft-300x152.jpg" alt="chp_robocraft" width="300" height="152" /></p>
<p class="MsoNormal" style="text-align: justify;">Passeando pelo tópico de <a href="http://ocw.mit.edu/OcwWeb/web/courses/courses/index.htm#ElectricalEngineeringandComputerScience">Electrical Engineering and Computer Science</a>, vi uma disciplina um tanto quanto curiosa: <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-370January--IAP--2005/CourseHome/index.htm">6.370 Robocraft Programming Competition</a>, é um curso de extensão que tem o objetivo de ensinar programação, de forma divertida, através de uma engine de simulação de uma batalha de robôs que são programados pelos alunos. Esse é um dos brinquedos<span> </span>que o <span> </span>pessoal do MIT utiliza nos momentos de lazer.</p>
<p class="MsoNormal" style="text-align: justify;"><img class="aligncenter size-medium wp-image-287" title="robocraft1" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/05/robocraft1-300x261.jpg" alt="robocraft1" width="300" height="261" /></p>
<p class="MsoNormal" style="text-align: justify;">Software bem parecido com o projeto <a href="http://robocode.sourceforge.net/">Robocode</a>, antes patrocinado pela IBM, que oferece um ambiente de desenvolvimento completo para desenvolver o seu tanque e incluir a lógica de batalha. Um projeto interessante tido como auxílio ao ensino de programação. É válido ressaltar que tudo isso é feito com Java.</p>
<p class="MsoNormal" style="text-align: justify;">Simples dica de diversão geek.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2009/05/26/mit-robocraft-ensino-divertido-de-programacao-de-computadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grid Gain, o pequeno notável</title>
		<link>http://www.nelsonalone.com.br/2008/10/28/grid-gain-o-pequeno-notavel/</link>
		<comments>http://www.nelsonalone.com.br/2008/10/28/grid-gain-o-pequeno-notavel/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 17:17:42 +0000</pubDate>
		<dc:creator>Nelson</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Grid Computing]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[grid computing]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=59</guid>
		<description><![CDATA[Desenvolver softwares para grades computacionais, além de ser uma tarefa árdua é extremamente complexa, principalmente pela necessidade de manter a escalabilidade dos peers(participantes) estáveis sobre a arquitetura de grid. É necessário se preocupar com detalhes referentes a comunicações, protocolos, paralelismo, tolerância a falhas, entre outras dificuldades que a plataforma apresenta. Pelo fato da plataforma ser<a href="http://www.nelsonalone.com.br/2008/10/28/grid-gain-o-pequeno-notavel/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>PT-BR</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val=" " /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--> Desenvolver softwares para grades computacionais, além de ser uma tarefa árdua é extremamente complexa, principalmente pela necessidade de manter a escalabilidade dos peers(participantes) estáveis sobre a arquitetura de grid. É necessário se preocupar com detalhes referentes a comunicações, protocolos, paralelismo, tolerância a falhas, entre outras dificuldades que a plataforma apresenta.</p>
<p class="MsoNormal">Pelo fato da plataforma ser complexa, foram criados inúmeros frameworks com o objetivo de minimizar os detalhes. Entre os mais populares e robustos está o Globus <a title="Globus Toolkit Home Page" href="http://www.globus.org/toolkit" target="_blank">ToolKit </a> , recomendado pela <a title="Globus Aliance" href="http://www.globus.org" target="_blank">Globus Aliance</a> . O Globus ToolKit é um conjunto de ferramentas que tenta cobrir todas as necessidades relacionadas a Grid Computing. Porém, é complexa e ao mesmo tempo pesada.</p>
<p class="MsoNormal">Uma alternativa para aplicações de pequeno e médio porte é o <a title="Grid Gain" href="www.gridgain.com" target="_self">Grid Gain</a>. Framework escrito em Java, mantido por <a title="Nikita Ivanov" href="http://www.jroller.com/nivanov" target="_blank">Nikita Ivanov</a>, que demonstra ser muito eficiente e simples de utilizar, já que não necessita de muitas das funcionalidades contidas no Globus Toolkit.</p>
<p class="MsoNormal">Agora, se você for construir uma aplicação que roda na infraestrutura do <a title="LHC in Grid Computing" href="http://press.web.cern.ch/Press/PressReleases/Releases2003/PR13.03ELCG-1.html" target="_self">LHC</a>, <a title="SETI homepage" href="http://setiathome.berkeley.edu/" target="_blank">SETI@HOME</a> ou similares, aconselho você usar o Globus ou implementar um do zero.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2008/10/28/grid-gain-o-pequeno-notavel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>P2P &#8211; Da Anarquia ao Triunfo</title>
		<link>http://www.nelsonalone.com.br/2008/10/27/p2p-da-anarquia-ao-triunfo/</link>
		<comments>http://www.nelsonalone.com.br/2008/10/27/p2p-da-anarquia-ao-triunfo/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 10:00:53 +0000</pubDate>
		<dc:creator>Nelson</dc:creator>
				<category><![CDATA[Grid Computing]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[P2P - Peer to Peer]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=53</guid>
		<description><![CDATA[No fim da década de 90 nos deparamos com o formato de arquivos de áudio chamado mp3, que eliminava a maioria das freqüências não audíveis ao homem para comprimir o seu conteúdo, tornando a transmissão de faixas de CDs possíveis através desse formato extremamente compacto. A partir desse momento, iniciou-se uma grande revolução na comercialização<a href="http://www.nelsonalone.com.br/2008/10/27/p2p-da-anarquia-ao-triunfo/"> <br /><br /> (More)…</a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-indent: 35.4pt; text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">No fim da década de 90 nos deparamos com o formato de arquivos de áudio chamado mp3, que eliminava a maioria das freqüências não audíveis ao homem para comprimir o seu conteúdo, tornando a transmissão de faixas de CDs possíveis através desse formato extremamente compacto.<span> </span>A partir desse momento, iniciou-se uma grande revolução na comercialização musical e conseqüentemente a ira das gravadoras que não se adéquam, até hoje, ao novo modelo de negócio existente. </span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">A transmissão de arquivos digitais veio à tona com a utilização de software que utilizavam uma espécie de protocolo simples, porém desconhecida, o <a title="P2P" href="http://gnomo.fe.up.pt/~eol/MEMBERS/nuno_sousa/old/ppc/artigo.html" target="_blank">P2P</a>. O Pear to Pear (Par para Par) é um protocolo descentralizado que não necessita de nenhum elemento que gerencie conexões entre dois pontos, transferindo a responsabilidade para o usuário e não para o criador do software. Advento que tornou popular a distribuição de softwares como Napster, Kaaza, EDonkey, Emule e entre outros derivados. </span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">A tecnologia foi completamente disseminada e ao mesmo tempo marginalizada. Já que, sempre que possível, artistas, gravadoras, ou seja, profissionais que viam suas criações protegidos pelas leis da propriedade intelectual ser disseminadas como propaganda, criticavam erroneamente a infra-estrutura que permitia o compartilhamento da obra. Logo, o problema se alastrou com a possibilidade de compartilhar livros, filmes e software. O pior de tudo são as leis não podiam agir para proibir esse ato, já que não existia uma entidade centralizadora que permitisse, ou até mesmo, contribuísse para o compartilhamento de conteúdo digital. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>O que as pessoas não davam conta é que o protocolo de compartilhamento, o principal ator de todo o processo, era utilizado em massa e mostrando a robustez do mesmo em uma rede gigantesca e de funcionamento em larga escala. Muitos não se davam conta da tecnologia que estava utilizando e no que poderia ser aplicada no futuro próximo. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Aplicações:</span></strong></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>A utilização do protocolo de comunicação P2P para a resolução de problemas computacionais e construção de aplicações que poderiam usufruir dessa infra-estrutura foi projetada em pequena escala. Um exemplo disso foram os comunicadores <a title="MSN" href="http://home.live.com/" target="_blank">MSN </a>e <a title="Skype" href="http://www.skype.com/intl/pt/" target="_blank">Skype </a>. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Era impossível de encontrar software que utilizassem a tecnologia, de forma expressiva, através de aplicações comerciais. Porém, em virtude das qualidades exploradas apenas por cientistas, era sim visível dentro dos laboratórios em diversas universidades espalhadas pelo mundo. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Cientistas e engenheiros perceberam o potencial da tecnologia através da ausência do elemento centralizador. Normalmente, elementos centralizadores, como servidores e datacenters, tornam elevados os valores das soluções propostas.<span> </span>Portanto, explorar o fator custo seria a chave para o sucesso da tecnologia na utilização em larga escala que também demonstrava ser flexível, permitindo também a colaboração mútua de usuários no redor do mundo. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Recurso que foi utilizado para a colaboração em diversos projetos importantes. Entre os mais famosos estão o projeto de mapeamento dos genes humanos, o Projeto Genoma, o sistema de busca de vida alienígena no espaço, o <a title="SETI@HOME" href="http://setiathome.berkeley.edu/" target="_blank">SETI@HOME</a> e o ultimo porém não mais importante está o <a title="CERN" href="http://public.web.cern.ch/public/" target="_blank">HLC </a>. Esses projetos utilizam uma tecnologia derivada do <a title="Atigo sobre P2P" href="http://gnomo.fe.up.pt/~eol/MEMBERS/nuno_sousa/old/ppc/artigo.html" target="_blank">P2P</a>, chamada de <a title="Grid Computing" href="http://en.wikipedia.org/wiki/Grid_computing" target="_blank">Grid Computing</a> que será discutida mais tarde. Essa tecnologia utiliza um modelo de protocolo P2P e um conjunto extra de funcionalidades que<span> </span>serão discutidas posteriormente, já que é o assunto quente do momento. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">GAMES</span></strong></p>
<p class="MsoNormal" style="text-align: justify;"><strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span></span></strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Aplicar os recursos da tecnologia para o desenvolvimento de jogos é o objetivo das principais softwarehouses da área, principalmente em games estilo <a title="MMOG" href="http://en.wikipedia.org/wiki/MMO" target="_blank">MMOG</a>. <span> </span>A razão principal para o investimento nessa área é de cortar custos com servidores. Ou seja, o desenvolvimento de games é uma tarefa árdua. Requer investimento em áreas como design, desenvolvimento de software, antropologia, cinema e música. Produzir um bom produto para o usuário final requer investimento maciço nessas áreas, olha que eu não citei o pós game como a publicidade e marqueting do produto. <span> </span></span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Os <a title="MMOGs" href="http://en.wikipedia.org/wiki/MMO" target="_self">MMOGS </a>são jogos que representa um mundo no qual usuários de diversas partes do mundo interagem seguindo o objetivo do game. Normalmente encaixam-se nesses gêneros jogos de RPG, já que devido a longevidade, o estilo adapta-se muito bem para os <a title="MMOGs" href="http://en.wikipedia.org/wiki/MMO" target="_blank">MMOGs</a>. Jogos como <a title="World of Warcraft" href="http://www.worldofwarcraft.com/splash-wrathdate.htm" target="_blank">World of <span> </span>Warcraft</a> levaram o estilo a tona com boa jogabilidade e muita diversão.</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>No entanto, fazer bons jogos não basta. Quando se trata de MMOGs a interatividade entre os participantes é a parte mais complicada, já que existem pessoas de todo o mundo conectado ao servidor central aprendendo a jogar, travando batalhas, conversando, negociando itens, se fortalecendo,fazendo campanhas, fazendo alianças, entre outras coisas que a plataforma nos permite fazer. Para que tudo isso possa ser feito torna-se necessário um grande investimento na infra-estrutura que irá suportar essa demanda. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Neste ponto, a tecnologia descentralizada P2P entra em ação fazendo com que o investimento na infra-estrutura de MMOGs seja o mínimo possível em comparação com o anterior. Portanto, com a utilização da infra-estrutura P2P, toda a interatividade ficaria sob responsabilidade apenas dos participantes do jogo.</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Bom, se isso é tão bom e lucrativo para os desenvolvedores, porque não foi implementado? A resposta é simples. Nesse ponto, a tecnologia se mostra imatura. Fazer com que todo o controle de interatividade fique com o usuário é uma faca de dois gumes. Com um ambiente centralizado já é extremamente difícil controlar os cheets(trapaça), imagina com o controle de tudo isso feito no cliente. Além do mais, nesse tipo de jogo é necessário que o usuário salve o estado atual, ou seja, seus pontos de habilidade, itens armazenados, energia, pontuação, etc. Se isso tudo for salvo na máquina do usuário seria uma grande oportunidade de usuários alterarem seus atributos para trapacearem. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>O que eu citei aqui foi uma das barreiras que tecnologia necessitará resolver quando for utilizada para efetuar a comunicação entre os pares. Além disso, existe outros inúmeros problemas que devem ser resolvidos como: mecanismos de tolerância a falhas, reconhecimento de jogadores, alocação de jogadores em mundos, roteamento de pacotes através de peears, etc. Isso é assunto para outros post. Não vamos ficar só em jogos não é&#8230;</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">VOIP</span></strong></p>
<p class="MsoNormal" style="text-align: justify;"><strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span></span></strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">A tecnologia de voz sobre protocolo da internet está em constante evolução. A necessidade de conversar sobre tarifas mais baratas, e através da internet, fizeram com crescesse a demanda sobre essa tecnologia. Com isso, criaram os protocolos <a title="H323" href="http://pt.wikipedia.org/wiki/H.323" target="_blank">H323 </a>e <a title="SIP" href="http://pt.wikipedia.org/wiki/SIP" target="_blank">SIP </a>que visam a qualidade no tráfego de voz através dos protocolos de internet. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>Até ai tudo bem. Mas onde está a aplicabilidade do protocolo sobre essas tecnologias? Na verdade, a aplicabilidade é feita a partir da integração das tecnologias de transmissão de voz com o P2P. Essa é uma idéia que já está sendo desenvolvida pelas empresas de celulares a aplicações móveis. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>A integração dos protocolos de voz com o P2P consiste em utilizar a mobilidade e o para integrar e a flexibilidade do protocolo para possibilitar a comunicação VOIP entre telefones celulares através da internet. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Futuro do Protocolo</span></strong></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>No momento, aplicações que utilizam protocolos P2P de forma massiva são escassas, principalmente pelo fato de ser um protocolo que não é visto com bons olhos para o usuário final. Porém, pesquisas em aplicações que tentam resolver problemas científicos utilizam a tecnologia de forma massiva. </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span> </span>No momento, pesquisar P2P, ou desenvolver pesquisas que utilizam a tecnologia, poderá ter resultados em longo prazo, principalmente pelo fato das tarefas executadas pela centralização serão todas feitas nos peers. Isso significa que tecnologias derivadas, como Grid Computing e Cloud Computing, tornarão tecnologias populares e acessíveis a todos os usuários como técnologia doméstica ou prestação de serviço.<br />
</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2008/10/27/p2p-da-anarquia-ao-triunfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

