Dados em tempo real usando Ajax

Variação Solução: (Quase) Real-Time Data

Quando as ações de negociação ou produtos de renda fixa em um mercado, você também vai querer recuperar conjuntos de dados em tempo real. Por "tempo real" conjuntos de dados, eu quero dizer quase conjuntos de dados em tempo real, como pessoas edifício verdadeiramente em tempo real aplicativos podem ofender-se vagamente como eu defino o "tempo-real." De uma perspectiva pessoal, creio que dados em tempo real não é possível com o Ajax, pois não são simplesmente também muitas camadas de software. O que é possível é quase dados em tempo real, com cerca de meio segundo de atraso ou assim (é claro, este é baseado em minhas próprias experiências é de nenhuma maneira definitiva). Em termos de aplicações mais comerciais, não incluindo o escalpelamento, os dados quase em tempo real, é bom o suficiente. Em tempo real é uma variação do artigo, já vimos, onde uma tarefa em tempo real é similar a uma tarefa longa. Uma tarefa longa, que gera dados é uma tarefa em tempo real, em que tanto a geração de dados sempre que podem. A diferença entre uma tarefa longa e uma tarefa de tempo real é que os dados gerados por uma tarefa em tempo real tem uma fonte para além da tarefa (por exemplo, o mercado acionário, uma máquina de processo de execução, etc.) Outra diferença é que, geralmente, uma tarefa longa terá uma resposta, enquanto que uma tarefa em tempo real, não tem resposta apenas os dados que mantém a ser gerado.

A incompatibilidade do que cada cliente vê como os dados podem ser desejada ou pode ser um problema. Por exemplo, digamos que você está controlando um processo de computador que cria assentos de carro de espuma. Cada banco tem cerca de 5 minutos para criar, e assim sua aplicação Ajax irá armazenar cerca de 7 minutos de dados. A janela de tempo para a sua aplicação é grande o suficiente para incluir um ciclo do item que está sendo vigiado.

Agora vamos voltar nossa atenção para o mercado de ações. O que seria uma janela de tempo adequado para assistir a um ticker de ações? Seria 1 minuto, 10 minutos, algumas horas, dias, semanas ou anos? E, dependendo da janela, o que é o comprimento de cada marcador gráfico individual? É 1 segundo, 5 segundos, horas, dias? Novamente, não sabemos, e temos um problema em que um usuário poderia pedir um gráfico para cada segundo do ano passado. Os dados para este gráfico é enorme. Em tempo real no lado do cliente, você só pode esperar razoavelmente manter controle de dados dentro de uma janela de tempo determinado. Manter o controle de uma janela de tempo é aceitável se você está interessado apenas na janela que está sendo apresentado. A realidade é que você vai querer saber o que aconteceu no passado. Olhando para os dados passados para uma tarefa em tempo real é chamado enchimento os dados. No caso do exemplo de eqüidade, é necessário incluir um aterramento porque os cálculos efetuados para as unidades populacionais podem não ser precisos em contrário.

  

Isto introduz, então, uma outra complicação: como você controla um aterramento ea tarefa de tempo real, ao mesmo tempo em que o cliente? A resposta é não. Um cliente do Ajax não é capaz de tal lógica complicada. O aterramento e do processo em tempo real precisam ser gerenciados pelo servidor. O cliente vê apenas uma visão dos dados como se fosse uma fonte de dados infinito. Quando o real, começa a tarefa de tempo, os dados de séries temporais precisa ter seus metadados extraídas dele. Os metadados seria então usada para determinar onde a tarefa em tempo real, acrescenta dados para o conjunto de resultados. Assim, por exemplo, se você está controlando um estoque em tempo real, os metadados seriam o ticker de ações e do tempo do carrapato estoque. Se você começou a tarefa em tempo real às 10:00 horas, em seguida, o carrapato primeira seria 10:00 Se você estiver monitorando ações na Bolsa de Nova York, então o seu conjunto de resultados completo span seria o tempo de 9:30 am às 4:00 pm, pelo menos, o horário de negociação oficial. Para o nosso exemplo, isso significa que os dados que faltam são os carrapatos das 9:30 até e inclusive 9:59:59 A falta de dados é adicionado ao resultado através da execução de uma tarefa que carrega os dados históricos de uma fonte de dados alternativo. Quando os dados históricos foi adicionada, a combinação dos dois conjuntos de dados resulta em um cadastro completo e consistente conjunto de resultados. Independentemente de quando ou como os usuários enxergam os dados, todos os usuários enxergam os mesmos dados. Pode-se chegar à conclusão de que, quando os dados são apresentados em um formato consistente, você tem mudado o problema de um gerador de dados em tempo real para um problema de gerar um conjunto de dados que só acontece a exigir um dia completo para calcular os resultados.

Em termos de implementação, as seguintes regras de ouro são aplicadas:

• É necessário definir o que constitui um conjunto de resultados completo. Você precisa definir um resultado do jogo completo em termos de dias, horas ou em qualquer outra unidade de medida quantificável. Por exemplo, você poderia usar como unidade de medida de um barril vazio que é preenchido.

• Os dados gerados pela tarefa de tempo real deve ser descrito por seus metadados, o que pode ser usado para criar um índice.

• Quando a tarefa em tempo real é iniciado, os dados são adicionados ao conjunto de resultados usando um índice.

• Para situações onde a tarefa em tempo real é iniciado em um momento posterior, os dados em falta no índice é fornecido por uma tarefa que executa um aterramento.

• A tarefa de aterramento é executado sempre que a tarefa em tempo real falta de dados devido a um motivo ou outro. A tarefa de aterramento também serve o propósito de garantir que os dados gerados pela tarefa em tempo real, é coerente e precisa. Do ponto de vista do cliente, vemos um resultado conjunto completo com um grande número de elementos. O cliente decide em qual índice eles querem iniciar o acompanhamento em tempo real os dados gerados.

Resumo do artigoO foco deste artigo foi a criação de aplicativos aweb que manipula grandes conjuntos de dados ou lenta. Mantenha os seguintes pontos em mente:

• conjuntos de grande e lento dados são abordados de acordo com a mesma solução. A solução pode ter variações de execução, mas haverá sempre uma abordagem baseada em tarefas e da utilização de uma cache no cliente ou servidor.

• Todos os resultados são compostas de conjuntos de dados, onde cada resultado tem um elemento de metadados.

• O elemento de metadados é usado para identificar um resultado individual. Com base nos metadados, é possível determinar algorithmically uma URL para os dados. Não deve haver elementos de metadados que podem ser confundidos uns com os outros, no entanto, um descritor único elemento de metadados pode conter vários resultados individuais.

• Pense no elemento de metadados como o apoio a sua capacidade de aplicar a teoria dos conjuntos para selecionar, exibir ou navegar dados.

• Navegando grandes conjuntos de dados ou lento requer especializados de navegação.

• A navegação especializada é baseada em utilizadores a possibilidade de navegar rapidamente os metadados, permitindo que os usuários para ter uma idéia rápida e aproximada do que está contido nos dados.

• A navegação especializada deve envolver o uso de técnicas de navegação clickless tanto quanto possível.

• O desempenho da aplicação depende da execução do cache no cliente e servidor.

• Para a maioria das implementações deste artigo, você terá que ajustar o cache para que os algoritmos de cache pode determinar o que o usuário final tem de ver a seguir.

• cache mais simples para aplicativos somente leitura tipo seria um cache de cliente único pedido. Para aplicações onde as alterações de dados regularmente, uma validação HTTP-cache com base é necessária. Para qualquer outra aplicação, o cache seria uma combinação única solicitação HTTP e validação.

• Como os dados longa é mantido no servidor e armazena cliente depende da natureza do pedido, e é um parâmetro ajustável.

• A lenta e grande conjunto de dados aplicação distingue-se de um aplicativo da Web regulares em que a resposta a um post é recuperado usando um separado GET.

• O POST irá gerar uma tarefa em que a tarefa poderia ser executado em outro segmento ou em outro processo. O POST, tendo gerado a tarefa, na maioria dos casos de retorno de informações de metadados suficientes para identificar o URL dos resultados.

• Os resultados são armazenados em sua própria URL de referência que pode um cache. Os resultados são geralmente acessíveis apenas utilizando o GET e DELETE verbos. Pode haver maneiras de aperfeiçoar o conjunto de resultados utilizando subdiretórios ou parâmetros de consulta.

• Não exclua resultados usando uma abordagem baseada em pilha. O cliente, em geral, manteria um cursor sobre os últimos resultados ou constantemente o download de todos os resultados. Esta abordagem é preferido para a estabilidade e robustez.

• Real-time de dados é uma variação do lento e grande conjunto de dados do artigo. A grande diferença com relação a uma missão de longa duração é que uma tarefa em tempo real será executado durante o tempo que as informações de acompanhamento está sendo monitorado.

• Real-time de dados precisa ser combinada com um quadro mais amplo do que um conjunto de resultados é. Você quer converter os dados em tempo real em um conjunto maior de dados que inclui um conjunto de aterramento, fazendo parecer que a tarefa em tempo real de dados é, de facto, uma tarefa de dados é lenta o que acontece a necessidade de um dia completo ou unidade de tempo para concluir seus cálculos.

um artigo submetido por Sonja Lande


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "os dados em tempo real usando Ajax" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 366 users browsing the articles directory