Por Julio Cesar Fernandes*
Nos dias de hoje é difícil encontrar alguém que nunca tenha escutado falar de streaming. A primeira lembrança que surge para a maioria das pessoas são plataformas como Netflix e YouTube, que provêm serviços de streaming para entretenimento, com vídeos e filmes.
Uma característica importante do streaming é que a informação chega até nós conforme é disponibilizada ou criada. No caso de vídeos com o streaming, não precisamos fazer o download do arquivo inteiro para começar a assistir, ao contrário, os dados chegam aos poucos, mantendo a sequência de imagens e áudio para termos a experiência contínua e sem pausas.
Se o vídeo é uma transmissão online, o dado completo ainda nem existe; eles vão sendo disponibilizados assim que são gerados ou capturados em tempo real. No stream de dados com APIs é a mesma lógica.
Nos processos de integração que envolvem estabelecer conexões com diversas entidades, como sistemas, fornecedores, clientes, pessoas e coisas, temos principalmente três estilos de comunicação: File-driven (como as baseadas em transferência de arquivos e EDI – Eletronic Data Interchange); Request-driven (como as APIs, onde a aplicação que consome dados precisa requisitar uma informação e obter respostas) e Event-driven (como as API streaming, em que a aplicação aguarda a informação do servidor).
Estas três opções endereçam a grande maioria ou totalidade das conexões. Em geral, são aplicadas de acordo com questões de maturidade, limitações, conformidades e modelos de negócios.
Também existem algumas opções para viabilizar o stream de dados por meio de uma Web API, como o Web Sockets e o SSE (Server Sent Events). O SSE é um padrão baseado em HTTP e padronizado ao HTML5 pela W3C, que descreve como servidores de aplicação podem iniciar uma transmissão de dados para o cliente, como Apps, por exemplo. Ele é suportado por diversos browsers e por várias linguagens, SDKs e frameworks de desenvolvimento e programação.
Para demonstrar o streaming, podemos utilizar a solução Axway AMPLIFY Streams, que possui funções importantes, como: suporte ao SSE para disponibilizar event-driven APIs; facilitadores para que este processo seja o mais simples e rápido possível (sem a necessidade de escrever nenhuma linha de código) e a capacidade de transformar uma API tradicional em uma API event-driven, onde o cliente recebe os eventos de dados e atualizações.
Benefícios do API Streaming
Utilizar API streaming traz diversos benefícios, como, por exemplo, a redução considerável do tráfego de dados, pois apenas os dados novos são proativamente enviados (não há necessidade de ações push/pull para a sua obtenção). Com a redução do tráfego, também se reduz o consumo de recursos de infraestrutura. Outra vantagem é que o cliente recebe proativamente os dados, em tempo real, sem precisar requisitá-los.
É importante notar que os benefícios somente existem quando o API streaming é utilizado em um cenário que realmente se aproveita dos eventos. Para casos em que há uma grande quantidade de informação, que não muda com frequência, ou onde toda a informação é modificada em cada requisição, a melhor opção pode ser file-driven baseado em arquivos. Em cenários onde há a necessidade transacional com informações que não se repetem, um modelo request-driven é o mais adequado. E, por fim, em cenários onde a informação muda com frequência, podemos utilizar event-driven.
A aplicação de streaming aos negócios é relevante para várias situações onde a informação é atualizada com frequência e a experiência do cliente é significativamente influenciada pela proatividade da informação, como em casos de dados financeiros que variam frequentemente (extratos, saldos, cotações, rankings e scores), dados logísticos e da cadeia de suprimentos que variam no tempo (dados de estoque e posições de abastecimento), na indústria 4.0 com o monitoramento de dispositivos e sensores, e dados de healthcare relacionados ao monitoramento da saúde do paciente em tempo real.
Enfim, a experiência do cliente pode ser beneficiada por informação em tempo real em qualquer situação de negócio.
*Julio Cesar Fernandes é Diretor de Negócios da Axway