WebpushEdit

a proposta do Webpush da Internet Engineering Task Force é um protocolo simples que utiliza a versão HTTP 2 para entregar eventos em tempo real, tais como chamadas recebidas ou mensagens, que podem ser entregues (ou “empurrados”) em tempo útil. O protocolo consolida todos os eventos em tempo real em uma única sessão que garante uma utilização mais eficiente dos recursos de rede e rádio. Um único serviço consolida todos os eventos, distribuindo esses eventos para aplicações à medida que chegam. Isto requer apenas uma sessão, evitando custos adicionais duplicados.,

As notificações Web fazem parte da norma W3C e definem uma API para as notificações do utilizador final. Uma notificação permite alertar o Usuário fora do contexto de uma página web de uma ocorrência, como a entrega de E-mail. Como parte desta API de Push padrão definida pelo W3C, agora está sendo implementada pelo Chrome, Firefox, Edge e Safari.

HTTP server pushEdit

HTTP server push (também conhecido como HTTP streaming) é um mecanismo para enviar dados não solicitados (assíncronos) de um servidor web para um navegador web. HTTP server push pode ser alcançado através de qualquer um dos vários mecanismos.,

Como parte do HTML5, a API WebSocket permite que um servidor web e cliente comuniquem através de uma conexão TCP full-duplex.

geralmente, o servidor web não termina uma conexão após os dados de resposta terem sido servidos a um cliente. A web servidor deixa a conexão aberta, de modo que, se ocorrer um evento (por exemplo, uma alteração de dados interno, que precisa ser comunicada para um ou vários clientes), ele pode ser enviado imediatamente; caso contrário, o evento teria que ser em fila de espera até que o cliente é o próximo pedido é recebido. A maioria dos servidores web oferecem esta funcionalidade via CGI (e.g.,, ‘Scripts’ de cabeçalhos não processados no Servidor HTTP Apache). O mecanismo subjacente para esta abordagem é a codificação de transferência chunked.

outro mecanismo está relacionado a um tipo MIME especial chamado multipart/x-mixed-replace, que foi introduzido pelo Netscape em 1995. Os navegadores da Web interpretam isto como um documento que muda sempre que o servidor empurra uma nova versão para o cliente. Ele ainda é suportado pelo Firefox, Opera e Safari hoje, mas é ignorado pelo Internet Explorer e é apenas parcialmente suportado pelo Google Chrome., Ele pode ser aplicado a documentos HTML, e também para streaming de imagens em aplicações webcam.

A proposta do WHATWG web Applications 1.0 inclui um mecanismo para empurrar o conteúdo para o cliente. Em 1 de setembro de 2006, o navegador Opera implementou este novo sistema experimental em um recurso chamado “Server-Sent Events”. Está agora a ser padronizado como parte do HTML5.

PushletEdit

nesta técnica, o servidor aproveita as conexões HTTP persistentes, deixando a resposta perpetuamente “aberta” (i.e.,, o servidor nunca termina a resposta), efetivamente enganando o navegador para permanecer no modo “carregamento” após a carga inicial da página pode ser considerada completa. O servidor então envia periodicamente trechos de JavaScript para atualizar o conteúdo da página, alcançando assim a capacidade de empurrar. Ao usar esta técnica, o cliente não precisa de applets Java ou outros plug-ins, a fim de manter uma conexão aberta ao servidor; o cliente é automaticamente notificado sobre novos eventos, empurrados pelo servidor., Uma desvantagem séria para este método, no entanto, é a falta de controle que o servidor tem sobre o timing do navegador; uma atualização de página é sempre necessária se um tempo-limite ocorre no final do navegador.

polinização longa

sondagem longa não é, por si só, um verdadeiro empurrão; a sondagem longa é uma variação da técnica de sondagem tradicional, mas permite emular um mecanismo de pressão em circunstâncias em que um empurrão real não é possível, tais como sites com políticas de segurança que exigem rejeição de pedidos de HTTP/s recebidos.,

com sondagens longas, o cliente solicita informações do servidor exatamente como nas sondagens normais, mas com a expectativa o servidor pode não responder imediatamente. Se o servidor não tiver nenhuma nova informação para o cliente quando a pesquisa é recebida, em vez de enviar uma resposta vazia, o servidor mantém a solicitação aberta e espera que a informação de resposta fique disponível. Uma vez que ele tem novas informações, o servidor imediatamente envia uma resposta HTTP/S para o cliente, completando o pedido HTTP/S aberto., Ao receber a resposta do servidor, o cliente muitas vezes emite imediatamente outro pedido do servidor. Desta forma, a latência de resposta habitual (o tempo entre o momento em que a informação se torna disponível pela primeira vez no próximo pedido do cliente) de outra forma associada com os clientes de votação é eliminada.por exemplo, BOSH é uma popular técnica de HTTP de longa duração usada como uma alternativa de pesquisa para uma conexão TCP contínua quando tal conexão é difícil ou impossível de empregar diretamente (ex.,, em um navegador web); é também uma tecnologia subjacente no XMPP, que a Apple usa para seu suporte de push iCloud.

Flash XMLSocket relaysEdit

Esta técnica, usada por aplicações de chat, faz uso do objeto XMLSocket em um único pixel Adobe Flash filme. Sob o controle do JavaScript, o cliente estabelece uma conexão TCP a um relé unidirecional no servidor. O servidor de retransmissão não lê nada deste socket; em vez disso, envia imediatamente ao cliente um identificador único. Em seguida, o cliente faz um pedido HTTP para o servidor web, incluindo com ele este identificador., A aplicação web pode então empurrar mensagens endereçadas ao cliente para uma interface local do servidor de retransmissão, que as relés sobre o socket Flash. A vantagem desta abordagem é que ela aprecia a assimetria natural de leitura-escrita que é típica de muitas aplicações web, incluindo chat, e, como consequência, oferece alta eficiência. Uma vez que não aceita dados em sockets de saída, o servidor de retransmissão não precisa de pesquisar conexões TCP de saída, tornando possível manter abertas dezenas de milhares de conexões simultâneas., Neste modelo, o limite à escala é a pilha TCP do sistema operacional servidor subjacente.em serviços como a computação em nuvem, para aumentar a confiabilidade e disponibilidade de dados, é geralmente empurrado (replicado) para várias máquinas. Por exemplo, o Hadoop Distributed File System (HDFS) faz 2 cópias extras de qualquer objeto armazenado. RGDD se concentra em eficientemente lançar um objeto de um local para muitos, enquanto economiza largura de banda, enviando um número mínimo de cópias (apenas um no melhor caso) do objeto sobre qualquer link através da rede., Por exemplo, Datacast é um esquema para entrega a muitos nós dentro datacenters que se baseia em topologias regulares e estruturadas e Dcccast é uma abordagem semelhante para entrega entre datacenters.

Push notificationEdit

a push notification is a message that is “pushed” from backend server or application to user interface, e.g. (but not limited to) mobile applications and desktop applications. Notificações Push foram introduzidas pela primeira vez pela Apple in 2009.In 2010 Google lançou seu próprio serviço, Google Cloud para mensagens de dispositivo., (Desde então foi substituído pelo Google Cloud Messaging e, em seguida, Firebase Cloud Messaging.Em novembro de 2015, a Microsoft anunciou que o serviço de notificação Windows seria expandido para fazer uso da arquitetura da Plataforma Universal Windows, permitindo que os dados push fossem enviados para Windows 10, Windows 10 Mobile, Xbox, bem como outras plataformas suportadas usando chamadas de API universal e pedidos de POST.

Push notifications are mainly divided into 2 approaches, local notifications and remote notifications., Para notificações locais, a aplicação Agenda a Notificação com o SO do dispositivo local, ou, alternativamente, define como um temporizador na própria aplicação se ele é capaz de executar continuamente em segundo plano. Quando a hora programada do evento é alcançada, ou a condição programada do evento é cumprida, a mensagem é exibida na interface de usuário da aplicação.

As notificações remotas são tratadas por um servidor remoto. Neste cenário, a aplicação cliente precisa ser registrada no servidor com uma chave única (por exemplo, UUID)., O servidor então dispara a mensagem contra a chave única para entregar a mensagem para o aplicativo cliente através de um protocolo cliente/servidor acordado, como HTTP ou XMPP e o cliente exibe a mensagem recebida. Quando a notificação push chega, ele pode transmitir notificações curtas e mensagens, definir distintivos nos ícones da aplicação, piscar ou acender continuamente a notificação LED, ou tocar sons de alerta para atrair a atenção do Usuário. As notificações Push são normalmente usadas por aplicações para chamar a atenção dos utilizadores., O conteúdo das mensagens pode ser classificado nas seguintes categorias de exemplo:

  • mensagens de Chat, por exemplo: mensagens do Mensageiro do Facebook enviadas por outros usuários.
  • ofertas especiais de vendedor, por exemplo: um vendedor pode querer anunciar suas ofertas sociais aos clientes.chamada de atenção de Eventos, por exemplo: alguma aplicação pode permitir ao cliente criar chamada de atenção ou alerta por um tempo específico.
  • os tópicos subscritos mudam, por exemplo: os usuários podem querer obter atualizações sobre o tempo em sua localização, ou monitorar uma página web para acompanhar as alterações, por exemplo.,

notificações push em tempo Real podem levantar problemas de privacidade, uma vez que podem ser usados para ligar identidades virtuais de pseudônimos de rede social às identidades reais dos proprietários de smartphones.