Quais são as tecnologias de software por trás dos aplicativos da web em tempo real? [fechadas]

5

Quais são algumas das tecnologias de software por trás dos aplicativos da Web "em tempo real", como o Twitter, o Trello ou até mesmo o Gmail? Eu sei que há um servidor da Web e provavelmente um banco de dados no back-end, mas quais são as peças de software que contribuem para essa rica interação na web que estou vendo mais hoje?

    
por jdt141 07.12.2011 / 03:10
fonte

2 respostas

5

O cometa desempenha um papel importante nessas aplicações.

Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.

link

JavaScript é a cola entre os servidores comet e os navegadores. Software de servidor como o Node.js são usados para implementar esses servidores comet que terão que lidar com muitas conexões de longa data.

Além do cometa, esses aplicativos também precisam de um bom back-end. As soluções podem ser muito específicas para o problema.

O Twitter, por exemplo, tem que enviar tweets para todos os seus seguidores para cada um dos seus tweets. O Facebook precisa executar algoritmos de aprendizado de máquina para selecionar quais histórias transmitir em seu Feed de notícias.

Apesar de diferentes, esses aplicativos têm muitas coisas em comum: o uso pesado de cache, desnormalização de dados, tarefas assíncronas, são altamente distribuídos.

    
por 07.12.2011 / 05:00
fonte
2

Lado do cliente, Javascript e Ajax.

No lado do servidor, uma infinidade de diferentes pilhas de tecnologia. Como Raynos evitou em seu comentário, praticamente qualquer coisa pode ser usada para construir uma aplicação web em tempo real ...

Você pode usar um servidor da Web (como o Apache) para mediar a comunicação entre seus clientes e dados, mas não precisa necessariamente fazê-lo. Você também pode escrever seu próprio tratamento de HTTP em um servidor, em vez de lidar com a sobrecarga de usar um servidor da Web de terceiros. Alguns exemplos podem ser (suponha que o lado do cliente de Javascript / AJAX):

Language   / Interface / Server
-------------------------------
Python     / WSGI      / nginx
Javascript / -         / node.js
C++        / FastCGI   / Apache
Erlang     / -         / Yaws (embedded)
PHP        / mod_php   / Apache

Mais uma vez, esses são apenas alguns exemplos de possibilidades. As possíveis permutações de stacks de tecnologia para implementar soluções do lado do servidor são virtualmente infinitas.

Editar:

Parvo comigo. O HTML5 é provavelmente o maior acréscimo à pilha de tecnologia do lado do cliente que permite aplicativos da Web avançados nos dias de hoje. A adição de recursos como áudio (o Firefox até expôs dados de áudio para permitir visualização de um espectro de áudio por meio do Javascript ), vídeo , banco de dados (WebSQL, IndexedDB), sistema de arquivos (sandbox na maioria dos navegadores, acesso total ao sistema disponível no Firefox através de componentes XPCOM), WebGL e WebSockets são apenas algumas das grandes adições que o HTML5 trouxe.

    
por 07.12.2011 / 04:18
fonte

Tags