PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS             FACULDADE DE SISTEMAS DE INFORMAÇÃOUTILIZANDO JAVASCRIPT NO S...
UTILIZANDO JAVASCRIPT NO SERVIDOR           PARA CONSTRUIR   APLICAÇÕES EM TEMPO REAL E ALTACONCORRÊNCIA NA INTERNET COM N...
SumárioSumário...............................................................................................................
41 Tema     Pretende-se com esta proposta de pesquisa investigar e elaborar aplicações em temporeal, para a internet, util...
5                         que possui 8 GB de memória RAM, que coloca teoricamente o numero máximo de                      ...
6                         cado no momento da requisição é executada [11]. A essa lógica que é executada                   ...
72 Área de conhecimento     O trabalho se insere na área de engenharia de software, pois propomos solucionar proble-mas de...
83 Justificativa     Acreditamos que ao estudar técnicas de programação orientadas por eventos no Node.Jspossa contribuir ...
94 Problema a ser abordado     No cenário atual, em termos de desenvolvimento web, para garantirmos informações emtempo re...
105 Objetivos     Intentamos com esta pesquisa investigar e demonstrar como o paradigma da linguagemorientada a eventos no...
116 Resultados Esperados     Apresentar o software executando corretamente, demonstrando mudanças de comporta-mento e exec...
127 Contextualização     Utilizaremos o livro Getting Started with GEO, CouchDB, and Node.js, de Mick Thomp-son, como base...
138 Metodologia      Iremos dividir o processo de desenvolvimento da arquitetura e do sistema como um todoem cinco etapas....
14     A quinta etapa, consiste em realizar um teste de carga no servidor Node.Js simulando aconexão de vários dispositivo...
159 CronogramaAtividade   Produto     Resposável                     Entrega            Data         ValorAlocação de - Cr...
1610 BibliografiaABERNETHY,Michael. JustwhatisNode.js?. Abril/2011. Disponível em: <http://www.ibm.-com/developerworks/lib...
17Node: Up and Running, de Tom Hughes-Croucher and Mike Wilson (OReilly). Copyright2012, Tom Hughes-Croucher and Mike Wils...
Upcoming SlideShare
Loading in...5
×

Proposta lucas simon-rodrigues-magalhaes

364

Published on

Proposta de monografia 01/2013, PUC MINAS - São Gabriel

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
364
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Proposta lucas simon-rodrigues-magalhaes

  1. 1. PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS FACULDADE DE SISTEMAS DE INFORMAÇÃOUTILIZANDO JAVASCRIPT NO SERVIDOR PARA CONSTRUIRAPLICAÇÕES EM TEMPO REAL E ALTA CONCORRÊNCIA NA INTERNET COM NODE.JS AUTOR LUCAS SIMON RODRIGUES MAGALHÃESMONOGRAFIA DE CONCLUSÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO Orientador(a): Pasteur Ottoni de Miranda Júnior Belo Horizonte, 25 de Fevereiro de 2013. LUCAS SIMON RODRIGUES MAGALHÃES
  2. 2. UTILIZANDO JAVASCRIPT NO SERVIDOR PARA CONSTRUIR APLICAÇÕES EM TEMPO REAL E ALTACONCORRÊNCIA NA INTERNET COM NODE.JS Monografia apresentada ao Departamento de Sistemas de Informação da Pontifícia Universidade Católica de Minas Gerais, como exigência parcial para a obtenção do título de Bacharel em Sistemas de Informação. Profª orientadora: Pasteur Ottoni de Miranda Júnior Belo Horizonte, 25 de Fevereiro de 201
  3. 3. SumárioSumário.......................................................................................................................3Sumário.......................................................................................................................3Sumário.......................................................................................................................31 Tema..........................................................................................................................42 Área de conhecimento............................................................................................73 Justificativa..............................................................................................................84 Problema a ser abordado.......................................................................................95 Objetivos................................................................................................................106 Resultados Esperados..........................................................................................117 Contextualização...................................................................................................128 Metodologia...........................................................................................................139 Cronograma...........................................................................................................1510 Bibliografia...........................................................................................................16
  4. 4. 41 Tema Pretende-se com esta proposta de pesquisa investigar e elaborar aplicações em temporeal, para a internet, utilizando a linguagem JavaScript no servidor -Node.Js-. Atualmente a internet tem crescido mais depressa que o rádio e a televisão. Hoje a Inter-net, como mídia de comunicação, tem o mais amplo de todos os alcances do que as mídias ci-tadas anteriormente. E para continuar a oferecer serviços e informações, com rapidez e atémesmo em tempo real, é necessário nos preocupar com a quantidade de milhões de usuáriossimultâneos, que cresce exponencialmente, e vencermos barreiras tecnológicas de escalabili-dade e desempenho nos servidores. Segundo TILKOV (2010) para resolver problemas de que lidam com múltiplas entradas esaídas (E/S), como manipular múltiplas requisições de clientes em servidores, os programado-res adotaram utilizar técnicas de programação multithread, ou técnicas de programação para-lela, dividindo o processamento da aplicação em vários núcleos dos processadores da CPU ouaté mesmo utilizando computação distribuída. Até então este modelo de programação paraatender múltiplas entradas e saídas é fácil de entender, implementar e permite executar osprocessos de forma rápida e eficiente. Porém este modelo apresenta algumas falhas, porexemplo, quando uma thread consome um recurso X de processamento ou operação de entra-da e saída e em seguida o aplicativo executa uma nova thread que necessita consumir estemesmo recurso, teremos um deadlock (bloqueio) o qual é necessário esperar a primeira thre-ad terminar sua execução, liberar o recurso e então prosseguir com o processamento da se-gunda thread. Como dito por TILKOV: Mesmo que muitos desenvolvedores tenham tido sucesso em usar multithread em aplicações de produção, muitos concordam que a programação multithread é nada fácil. É cheia de problemas que podem ser difíceis de serem isolados e corrigidos, assim como bloqueios e falhas em proteger recursos compartilhados entre as threads. Os desenvolvedores também perdem algum grau de controle quando desenvolvem em multithreading porque o sistema operacional normalmente decide qual thread será executa e por quanto tempo.(TILKOV, 2010, p.80) Além do fator descrito anteriormente temos um complemento e um novo problema apre-sentado por Abernethy: Em linguagens como Java™ e PHP, cada conexão cria uma nova thread que potenci- almente tem um acompanhamento de 2 MB de memória com ele. Em um sistema ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  5. 5. 5 que possui 8 GB de memória RAM, que coloca teoricamente o numero máximo de conexões concorrentes em cerca de 4.000 usuários. Como sua base de clientes au- mentou, se você quiser que seu aplicativo web suporte mais usuários, você tem de adicionar mais e mais servidores. Somando-se a estes custos, temos os possíveis pro - blemas técnicos - um usuário pode usar diferentes servidores para cada requisição, portanto, qualquer recurso compartilhado tem de estar compartilhado entre todos os servidores. Por todas essas razões, o gargalo em toda a arquitetura da aplicação web (incluindo a velocidade de tráfego, velocidade do processador, e velocidade da me - mória) estaria associado ao número máximo de conexões concorrentes que um servi - dor pode manipular.(ABERNETHY, 2011) Portanto, vemos que o escalonamento horizontal, adicionando novos servidores, além docusto altíssimo, torna a arquitetura do sistema complexa pois será necessário acrescentar ser-vidores de balanceamento, uma rede bem estruturada de um datacenter confiável, capaz desuportar um alto tráfego e acompanhamento dos processos do sistema de perto para que osdeadlocks sejam consertados em tempo hábil. A utilização de escalonamento vertical, ou me-lhor, atualização de hardware - colocando mais processadores ou memória - pode inviabilizara arquitetura do sistema, visto que teremos uma barreira de hardware, mais especificamenteplacas-mãe que não suportam mais de 8 slots de memória ou determinados modelos de me-mória RAM, suporte a processadores com mais de 7 núcleos. Além dessas limitações tecnoló-gicas, temos o agravante do alto custo para atualizar este hardware, processadores com 7 nú-cleos são caros e dependendo dos casos é necessário trocar todo o equipamento – hardware -para garantir o devido funcionamento dos componentes. Pelos problemas citados acima surge a necessidade de resolver este problema, em nívelde software, que permita receber um grande número de conexões simultâneas nos servidores,capaz de ser escalável e consumir menores índices de memória RAM. Um paradigma adotadopara esta solução é a programação orientada a eventos, onde tudo gira em torno de eventos,indicando que exite um produtor do evento e um consumidor daquele evento. (Junior, 2012) Pesquisando sobre as linguagens que suportam o paradigma de programação orientada aeventos, encontramos o JavaScript como linguagem de programação que fornece o modelo deeventos assíncronos, funções anônimas e callbacks. Como JUNIOR citou um programa as-síncrono pode ser exemplificado de tal forma: Já em um programa assíncrono, ao ser feita uma requisição a um banco de dados, será especificado o que deve ser feito com os resultados da requisição. O programa não espera a finalização da requisição, e passa para outras atividades. E apenas quan- do o resultado é retornado, a lógica de manipulação dos resultados que foi especifi - ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  6. 6. 6 cado no momento da requisição é executada [11]. A essa lógica que é executada após a finalização da requisição dá-se o nome de callback.(JUNIOR, 2012, p.2) A partir dessa necessidade descrita em paragráfos anteriores surge o ambiente de desen-volvimento Node.Js, que é melhor descrito por JUNIOR at. al como uma plataforma cujo oobjetivo é a fácil construção de rápidas e escaláveis aplicações de rede. Para isto o Node.Jsemprega o paradigma de programação orientada a eventos utilizando o JavaScript Engine V8do Google, operações de entradas e saídas em eventos (assíncronos) e não bloqueantes. Abe-nerthy cita que: Ao invés de criar novas threads no sistema operacional para cada conexão ( e alocar a memória RAM que acompanha com as threads), cada conexão dispara um evento executado no processo motor do Node.JS. Node também afirma que ele nunca irá ter deadlocks -impasse-, já que bloqueios não são permitidos, e não bloqueia direta - mente chamadas de entrada e saídas. Node.Js afirma que um servidor pode suportar dezenas de milhares de conexões simultâneas.(ABENERTHY, 2011) Isso ocorre porque ao ser invocado um nó de servidor de processos (node serverprocess), ele roda apenas em uma thread que suporta um alto número de conexões, isso é pos-sível, pois há um loop implícito que cobre o código, esse loop é denominado de event loop etem como função esperar os eventos e repassá-los ao manipulador de eventos. (OLIVEIRA,2012) Por fim, buscamos com o Node.Js, o qual será a base para esta proposta de pesquisa, de-monstrar uma aplicação Web capaz de mostrar, em tempo real, a localização de pessoas oudispositivos móveis através das coordenadas de latitude e longitude utilizando o paradigma deorientação a eventos, com alta concorrência de conexões através desta plataforma de desen-volvimento. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  7. 7. 72 Área de conhecimento O trabalho se insere na área de engenharia de software, pois propomos solucionar proble-mas de rede de computadores (altos números de conexões) e escalabilidade (infraestrutura)com técnicas de programação de software orientadas a eventos. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  8. 8. 83 Justificativa Acreditamos que ao estudar técnicas de programação orientadas por eventos no Node.Jspossa contribuir com o avanço dessa tecnologia e a forma de comunicação da informaçãopara a população. Hoje, temos a necessidade de obtermos informações em tempo real para to-mada de decisões eficientes dos nossos negócios e ao processo de ensino e aprendizagem nosetor tecnológico. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  9. 9. 94 Problema a ser abordado No cenário atual, em termos de desenvolvimento web, para garantirmos informações emtempo real é necessário investimento alto em infraestrutura e largura de banda para receber eenviar respostas aos clientes. Uma maneira de fazer um simples sistema em tempo real é utili-zar chamada Ajax a cada 5 segundos para atualizar os dados. Esta não é a maneira mais inteli-gente de se realizar isso, porque continuaremos a ter consumo de memória no servidor e sere-mos limitados pelo tamanho da memória RAM. Como exemplo, durante o desenvolvimento desta pesquisa, propomos desenvolver umaplicativo em Node.JS capaz de receber os dados da localização (latitude e longitude) de umcelular ou qualquer outro dispositivo e atualizar sua posição em tempo real no Google Maps,serviço do Google. Este exemplo, similar à um GPS, tem como base os sistemas de rastrea-mento veiculares que traçam uma rota pelo caminho percorrido do veículo e que necessitamrecarregar a página para visualizar sua posição atual. Não pretendemos fazer um sistema complexo como os já existentes no mercado de rastre-amento veicular, mas sim um aplicativo simples capaz de aceitar inúmeras conexões e visuali-zar os resultados em tempo real. Com isso atingiremos nosso objetivo de demonstrar a capaci-dade do Node.Js de resolver este problema de conexões em servidores . ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  10. 10. 105 Objetivos Intentamos com esta pesquisa investigar e demonstrar como o paradigma da linguagemorientada a eventos no Node.Js é capaz de realizar funcionalidades em tempo real em conjun-to com a biblioteca JavaScript Socket.Io. Um segundo objetivo que procuramos demonstrar é a capacidade do Node.Js responder amilhares de requisições com um simples servidor web, sem a necessidade de uma infraestru-tura (escalonável) de alta tecnologia. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  11. 11. 116 Resultados Esperados Apresentar o software executando corretamente, demonstrando mudanças de comporta-mento e execuções no processamento em tempo real para os entrevistadores através de umasimples aplicação com o poucos usuários conectados a aplicação. Em seguida, demonstrar/si-mular uma quantidade massiva de usuários conectados ao servidor tendo respostas as requisi-ções. Para isso, utilizar simuladores de teste de carga com uma quantidade alta de conexõesentrantes e exibir os testes de processamento/benchmark dos servidores e da aplicação. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  12. 12. 127 Contextualização Utilizaremos o livro Getting Started with GEO, CouchDB, and Node.js, de Mick Thomp-son, como base do desenvolvimento do aplicativo e da proposta de pesquisa que se segue poisele se propõe a criar um aplicativo resgatando os dados da geo localização e API’s de dispo-sitivos móveis e então manipular esses dados com o conjunto de ferramentas a seguir: No-de.Js, banco de dados CouchDB, GeoJSON, Geohash¹, e GDAL ( Geospatial Data Abstracti-on Library). Também utilizaremos outras referências bibliográficas para assegurar o entendimento e aqualidade do servidor Node.Js, como What is Node? (Brett McLaughlin), Node: Up and Run-ning (Tom Hughes-Croucher e Mike Wilson, 2012), Learning Node (Shelley Powers, 2012) eem particular Construindo aplicações Node com MongoDB e Backbone (Mike Wilson, 2013)que possui demonstrações do uso da biblioteca JavaScript Socket.Io responsável por aplicati-vos em tempo real nos navegadores e dispositivos móveis. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  13. 13. 138 Metodologia Iremos dividir o processo de desenvolvimento da arquitetura e do sistema como um todoem cinco etapas. A primeira etapa, consistem em, desenvolver um sistema em Node.Js, utilizando o siste-ma arquitetural RESTFul. Seguindo o conceito da arquitetura REST, iremos descrever atra-vés de API’s as URI’s ( Identificador Uniforme de Recurso) de acesso e manipulação do(s)recurso(s), que em primeiro momento será somente identificado como dispositivos móveis.Como base inicial para o projeto proposto, teremos uma URI para cadastrar os celulares queestão utilizando o sistema, salvando os dados em um banco de dados NoSQL, a ser definido.Outra nova URI será utilizada com o objetivo de identificar quando o aplicativo Android ini-ciar e transmitir os dados iniciais da geo localização do dispositivo, salvando os dados nobanco. E por fim e o mais importante, criar uma URI capaz de receber as coordenadas do dis-positivo móvel, e atualizar as coordenadas do dispositivo móvel no banco de dados de acordocom o id daquele dispositivo, data timestamp e claro as coordenadas. Feito todo o desenvolvimento em ambiente de desenvolvimento, iremos hospedar o siste-ma Node.Js em um servidor web em produção. A segunda etapa, compreende em construir uma aplicação Android utilizando sua API in-terna de geo localização para coletar os dados e transmiti-los para o servidor Node.Js criadona etapa anterior. Descrevendo brevemente o funcionamento deste aplicativo, teremos um en-vio de dados de latitude, longitude, e os dados do aparelho assim que o aplicativo iniciado. Ea cada mudança das coordenadas na API de geo localização os dados serão transmitidos parao servidor com a finalidade de atualização das coordenadas conforme descrito na etapa anteri-or. Na terceira etapa iremos construir a visão exibindo e traduzindo os dados coletado pelodispositivo móvel e renderizar no Google Maps. A quarta etapa será os testes do sistema como um todo. Primeiramente iremos distribuir oaplicativo Android para amigos e familiares, que possuem um smartphone com este sistemaoperacional , e estejam disponíveis para contribuir com os testes. Terá como pré-requisito umplano de pacote de dados para transmitir os dados. Com esta etapa concluiremos o nosso pri-meiro objetivo. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  14. 14. 14 A quinta etapa, consiste em realizar um teste de carga no servidor Node.Js simulando aconexão de vários dispositivos móveis, em coordenadas aleatórias, dentro de um raio pré fixa-do. Em seguida atualizar as coordenadas a cada 7 segundos, por exemplo, para atingir o se-gundo objetivo. Com a simulação citada poderemos quantificar a porcentagem uso da CPU eda memória RAM no servidor e tê-los como base de prova do Node.Js e seu propósito. ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  15. 15. 159 CronogramaAtividade Produto Resposável Entrega Data ValorAlocação de - Cronogra- Coordenação Disponível De 04/2/2013 N/Aalunos e pla- ma do se- de TCC no SGA a 15/02/2013nejamento do mestresemestre - Alunos alo- cados1. Elabora- - Proposta de Aluno, sob a Em papel Até 20ção da pro- monografia, supervisão (orientador) 01/04/2013posta de mo- cf. modelo do orientador e no SGAnografia3. Redação - Resenhas Aluno, sob a N/A Até 20de resenhas (mínimo de supervisão 06/05/2013de textos in- 5), cf. mode- do orientadordicados pelo loorientador4. Produção - Monografia Aluno, sob a Em papel Até 60da versão 1 versão 1, for- supervisão (orientador) 10/06/2013da monogra- matada no do orientador e no SGAfia (referen- padrão PUCcial teórico e Minas.metodologia) ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  16. 16. 1610 BibliografiaABERNETHY,Michael. JustwhatisNode.js?. Abril/2011. Disponível em: <http://www.ibm.-com/developerworks/library/os-nodejs/index.html> Acesso em: 29 MAR. 2013.Construindo aplicações Node com MongoDB e Backbone, de Mike Wilson (OReilly). Copy-right 2013 Mike Wilson, 978-1-449-33739-1CouchDB – Apache CouchDB. Disponível em: <http://couchdb.apache.org/> Acesso em: 30MAR. 2013Gdal - Geospatial Data Abstraction Library. Disponível em: <http://www.gdal.org/> Acessoem: 30 MAR. 2013GeoJson - JSON Geometry and Feature Description. Disponível em: <http://www.geoj-son.org/> Acesso em: 30 MAR. 2013Getting Started with GEO, CouchDB, and Node.js, de Mick Thompson (OReilly). Copyright2011, Mick Thompson, 978-1-4493-0752-3http://shop.oreilly.com/product/0636920020806.doJAVASCRIPT V8. Disponível em <https://developers.google.com/v8/> Acesso em: 25 MAR.2013JUNIOR, Francisco de Assis Ribeiro. Programação Orientada a Eventos no lado do servidorutilizando Node.js. 2012. Disponível em: <http://www.infobrasil.inf.br/userfiles/16-S3-3-97136-Programa%C3%A7%C3%A3o%20Orientada___.pdf > Acesso em: 20 ABR. 2013.Learning Node, de Shelley Powers (OReilly). Copyright 2012, Shelley Powers, 978-1-449-32307-3 ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.
  17. 17. 17Node: Up and Running, de Tom Hughes-Croucher and Mike Wilson (OReilly). Copyright2012, Tom Hughes-Croucher and Mike Wilson, 978-1-449-39858-3OLIVEIRA, Rômulo Reis. Desenvolvimento de jogos eletrônicos online em tempo real, paramúltiplos jogadores e multiplataformas. 2012. 80f. Monografia (Conclusão do curso) - Insti-tuto Federal Sul-Rio-Grandense, Campus Passo Fundo, Passo Fundo.Socket.Io. Disponível em: <http://socket.io/> Acesso em: 30 MAR. 2013Tilkov. S, S. “Node.js: Using Javascript to Build Gugh Performance Network Programs”.Internet Computing IEEE, 2010.What is Node? de Brett McLaughlin Published by OReilly Media, Inc., 1005 GravensteinHighway North, Sebastopol, CA 95472, 978-1-449-31005-9 ¹ Geohash é um algoritmo que foi criado por Gustavo Niemeyer em 2008. Intercalando latitude e longitu-de de um modo bit a bit, é gerada uma string composta que identifica um ponto geográfico. Esta cadeia podeentão ser facilmente armazenadas ou usadas para transmitir os dados de ponto de localização.

×