O que é um Stream Service? <\/STRONG><\/P> <\/P>Além dos conhecidos e já existentes Map- & Feature Services, existe há alguns anos (primeiro lançamento com 10.3.) um novo tipo de serviço no mundo ArcGIS, que foi desenvolvido principalmente para a visualização eficiente de dados em tempo real - o Stream Service.<\/P> <\/P>O Stream Service está vinculado ao ArcGIS GeoEvent Server, a solução de software da Esri para integrar fluxos de dados em tempo real, realizar análises baseadas em eventos nos dados recebidos em tempo real e distribuí-los posteriormente, ou seja, torná-los utilizáveis dentro e fora da plataforma ArcGIS. Naturalmente, a exigência de processar os dados em tempo real e também visualizá-los desempenha um papel importante. Devido a essa exigência, a equipe de desenvolvimento do GeoEvent Server pensou em como reduzir o tempo de latência na visualização de dados dinâmicos para não apenas mostrar ONDE algo acontece, mas também exatamente QUANDO acontece!<\/P> <\/P>Um exemplo de um Stream Service que consulta e visualiza a posição atual da International Space Station a partir de uma API pode ser visto aqui<\/A> <\/STRONG>.<\/P> <\/P> <\/A><\/P> <\/P>Um novo conceito para visualização de dados dinâmicos!<\/STRONG><\/P> <\/P>Tradicionalmente, os dados que fundamentam um Feature Services dinâmico estão armazenados em uma Enterprise Geodatabase (EGDB) ou outro tipo de armazenamento de dados como o Spatiotemporal Big Data Store (SBDS*). Isso significa que, para visualizar, o cliente, por exemplo nossa aplicação web, deve consultar periodicamente o status atual do armazenamento de dados para atualizar a visualização dos recursos no mapa. Nesse contexto, fala-se em polling, que equivale a um intervalo de atualização, causando assim um atraso no processamento dos fluxos de dados em tempo real após o GeoEvent Server processá-los e gravá-los no banco de dados.<\/P> <\/P><\/P><\/P>Para minimizar esse tempo de latência, o Stream Server baseia-se em um conceito onde os dados não são primeiro gravados em um banco de dados, mas sim enviados diretamente ao cliente. Para isso, conexões WebSocket são estabelecidas diretamente entre o Stream Server e o Stream Layer no cliente, através das quais os recursos são transmitidos e visualizados sem qualquer atraso!<\/SPAN><\/P> <\/P> <\/P>Persistência dos dados<\/STRONG><\/P> <\/P>Talvez surja agora a pergunta do que acontece se um cliente se conectar inicialmente ao Stream Server e os dados existentes não foram armazenados? Isso significaria que o cliente só poderia visualizar recursos existentes quando um novo evento, ou seja, uma atualização de status para esse recurso fosse processada pelo GeoEvent Server e encaminhada ao Stream Server. Isso não é um cenário ideal, especialmente se nem todos os recursos forem atualizados em intervalos curtos regulares e assim poderiam não aparecer na aplicação por um período prolongado.<\/P> <\/P>Por isso existe para os Stream Servers o conceito do "Store Latest" Feature Service, que pode ser publicado junto com o Stream Service e onde, como o nome já sugere, os estados mais recentes dos respectivos recursos são armazenados paralelamente. Se essa opção for escolhida, as informações sobre o "Store Latest" Feature Service são armazenadas na descrição do Stream Service. Assim, os clientes podem usar essa informação para realizar uma consulta inicial ao conectar-se ao Stream Server para obter os estados atuais dos recursos do Feature Service e visualizá-los no mapa. Em seguida, o Stream Layer assume novamente e visualiza novos eventos imediatamente em tempo real!<\/P> <\/P>Junção das geometrias e atributos estáticos no cliente<\/STRONG><\/P> <\/P>Naturalmente, idealmente apenas as informações dinâmicas de um recurso devem ser constantemente atualizadas — no caso de sensores estáticos em uma rede de sensores geralmente são valores medidos que estão sempre sendo atualizados — enquanto informações como geometria ou outras propriedades do sensor são predominantemente estáticas. Por isso foi integrado ao Stream Server um conceito que permite referenciar um Feature Service com "Related Features" para esses casos de uso. Com essas informações, que também são disponibilizadas ao cliente através da descrição do Stream Server, informações estáticas podem ser adicionadas diretamente no cliente ao evento recebido por meio de uma ID única (Track ID).<\/P> <\/P>Possibilidades para desenvolvedores<\/STRONG><\/P> <\/P>O Stream Server ou o Stream Layer nas aplicações também oferecem possibilidades interessantes para desenvolvedores utilizarem essa tecnologia mais amplamente. Desde o lançamento original da tecnologia na versão 10.3., o Stream Layer está disponível em aplicações web baseadas em JavaScript através da ArcGIS API for JavaScript e está sendo continuamente integrado aos demais componentes e APIs do ArcGIS. Uma possibilidade interessante é utilizar os eventos "onMessage" (JS API) / "on_features" (Python API) do Stream Layer, que permitem analisar cada evento enviado no formato Esri JSON antes dele ser visualizado no mapa.<\/P> <\/P>Na já mencionada ISS Demo<\/A>, por exemplo, uso o evento "onMessage" de um StreamService que envia como GeoTag se a ISS está sobrevoando terra ou oceano para atualizar a exibição do texto na "mudança de terra".<\/P> <\/P>Divirta-se explorando e usando esse novo tipo de layer nas suas aplicações em tempo real! <\/P> <\/P>Tom<\/STRONG> <\p>\n<p style=\"margin:\u00a00in;font-size:\u00a011.pt\u00a07\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\n*PS:\u0026#160;<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a...
<\/P>
Um novo conceito para visualização de dados dinâmicos!<\/STRONG><\/P> <\/P>Tradicionalmente, os dados que fundamentam um Feature Services dinâmico estão armazenados em uma Enterprise Geodatabase (EGDB) ou outro tipo de armazenamento de dados como o Spatiotemporal Big Data Store (SBDS*). Isso significa que, para visualizar, o cliente, por exemplo nossa aplicação web, deve consultar periodicamente o status atual do armazenamento de dados para atualizar a visualização dos recursos no mapa. Nesse contexto, fala-se em polling, que equivale a um intervalo de atualização, causando assim um atraso no processamento dos fluxos de dados em tempo real após o GeoEvent Server processá-los e gravá-los no banco de dados.<\/P> <\/P><\/P><\/P>Para minimizar esse tempo de latência, o Stream Server baseia-se em um conceito onde os dados não são primeiro gravados em um banco de dados, mas sim enviados diretamente ao cliente. Para isso, conexões WebSocket são estabelecidas diretamente entre o Stream Server e o Stream Layer no cliente, através das quais os recursos são transmitidos e visualizados sem qualquer atraso!<\/SPAN><\/P> <\/P> <\/P>Persistência dos dados<\/STRONG><\/P> <\/P>Talvez surja agora a pergunta do que acontece se um cliente se conectar inicialmente ao Stream Server e os dados existentes não foram armazenados? Isso significaria que o cliente só poderia visualizar recursos existentes quando um novo evento, ou seja, uma atualização de status para esse recurso fosse processada pelo GeoEvent Server e encaminhada ao Stream Server. Isso não é um cenário ideal, especialmente se nem todos os recursos forem atualizados em intervalos curtos regulares e assim poderiam não aparecer na aplicação por um período prolongado.<\/P> <\/P>Por isso existe para os Stream Servers o conceito do "Store Latest" Feature Service, que pode ser publicado junto com o Stream Service e onde, como o nome já sugere, os estados mais recentes dos respectivos recursos são armazenados paralelamente. Se essa opção for escolhida, as informações sobre o "Store Latest" Feature Service são armazenadas na descrição do Stream Service. Assim, os clientes podem usar essa informação para realizar uma consulta inicial ao conectar-se ao Stream Server para obter os estados atuais dos recursos do Feature Service e visualizá-los no mapa. Em seguida, o Stream Layer assume novamente e visualiza novos eventos imediatamente em tempo real!<\/P> <\/P>Junção das geometrias e atributos estáticos no cliente<\/STRONG><\/P> <\/P>Naturalmente, idealmente apenas as informações dinâmicas de um recurso devem ser constantemente atualizadas — no caso de sensores estáticos em uma rede de sensores geralmente são valores medidos que estão sempre sendo atualizados — enquanto informações como geometria ou outras propriedades do sensor são predominantemente estáticas. Por isso foi integrado ao Stream Server um conceito que permite referenciar um Feature Service com "Related Features" para esses casos de uso. Com essas informações, que também são disponibilizadas ao cliente através da descrição do Stream Server, informações estáticas podem ser adicionadas diretamente no cliente ao evento recebido por meio de uma ID única (Track ID).<\/P> <\/P>Possibilidades para desenvolvedores<\/STRONG><\/P> <\/P>O Stream Server ou o Stream Layer nas aplicações também oferecem possibilidades interessantes para desenvolvedores utilizarem essa tecnologia mais amplamente. Desde o lançamento original da tecnologia na versão 10.3., o Stream Layer está disponível em aplicações web baseadas em JavaScript através da ArcGIS API for JavaScript e está sendo continuamente integrado aos demais componentes e APIs do ArcGIS. Uma possibilidade interessante é utilizar os eventos "onMessage" (JS API) / "on_features" (Python API) do Stream Layer, que permitem analisar cada evento enviado no formato Esri JSON antes dele ser visualizado no mapa.<\/P> <\/P>Na já mencionada
Divirta-se explorando e usando esse novo tipo de layer nas suas aplicações em tempo real! <\/P>
Tom<\/STRONG>
<\p>\n<p style=\"margin:\u00a00in;font-size:\u00a011.pt\u00a07\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\n*PS:\u0026#160;<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a...
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.