# Atendimento ao cliente proativo com OpenWhisk e Watson IoT Este projeto demonstra a tecnologia sem servidor - desenvolvida com Apache OpenWhisk no IBM Bluemix - em um cenário de casa mais inteligente, em que os eletrodomésticos enviam leituras de diagnóstico para a Cloud em busca de análise e manutenção proativa. O aplicativo integra Watson IoT Platform, OpenWhisk e serviços do Bluemix em um caso de uso direcionado por evento e orientado pelas mensagens de status de eletrodomésticos conectados à Internet. Isso destaca o modelo de programação sem servidor e fala sobre os benefícios dessa abordagem em relação ao desenvolvimento tradicional de Cloud para a manipulação de cargas de trabalho da IoT. Para ver o contexto, confira a história do desenvolvedor no Código IBM. Você deve ter um conhecimento básico do modelo de programação OpenWhisk. Caso contrário, tente primeiro a demonstração de ação, acionador e regra. Também precisará ter uma conta do Bluemix e a ferramenta de linha de comando do OpenWhisk (wsk
) mais recente instalada e no seu CAMINHO. Caso esteja interessado apenas na integração do pacote OpenWhisk para o Watson IoT MQTT, poderá encontrá-la no repositório do próprio pacote. ## Componentes - Watson IoT Platform on Bluemix - Apache OpenWhisk on Bluemix - Cloudant NoSQL Service on Bluemix - SendGrid Email Service on Bluemix ## Melhorando o atendimento ao cliente com analytics orientada por dispositivo de IoT A Internet das Coisas permite que fabricantes e seus clientes utilizem dispositivos de hardware de forma mais eficiente ao conectá-los a uma rede. O software em execução em um dispositivo pode ser emparelhado com analytics na Cloud para aumentar a qualidade do atendimento ao cliente e diminuir o custo da manutenção para o consumidor e o fabricante. Neste caso de uso, um fabricante de eletrodomésticos gerencia eventos de diagnóstico de maneira proativa a partir das máquinas na casa de um cliente. Um refrigerador conectado à rede consegue informar que precisa da manutenção de uma peça (como um filtro de água que precisa ser substituído porque a leitura da vida útil do filtro está baixa). Esses eventos de mensagem podem acionar uma lógica de analytics para enviar alertas (como para informar que uma peça substituta foi solicitada automaticamente porque o cliente ainda estava coberto pela garantia). A computação direcionada por evento e baseada em uma arquitetura sem servidor é um modelo de programação interessante para a IoT, porque proporciona estes benefícios ao desenvolvedor: - Ajuste automático de escala – Um dos principais benefícios da computação direcionada por evento é não haver a necessidade de prever a demanda dos serviços implementados; isso é muito importante uma vez que o número de dispositivos adicionados à Internet continua superando o número de seres humanos. O número de instâncias de um aplicativo (escrito como uma função única) aumenta ou diminui automaticamente em resposta à carga de trabalho atual; neste caso, leituras de refrigeradores. - Menor custo – O modelo de custo direcionado por evento permite que os desenvolvedores paguem somente pelo tempo em que a lógica de negócios realmente está em execução. Compare isso com a necessidade de pagar por aplicativos ou servidores que são fornecidos previamente em antecipação à demanda de pico e que estão sempre ativos (inclusive quando não estão respondendo às solicitações dos clientes) em um modelo de PaaS ou IaaS. - Curto prazo de lançamento no mercado – A programação sem servidor possibilita um desenvolvimento rápido e aplica modularidade e flexibilidade; isso resulta na entrega mais rápida dos aplicativos, porque o desenvolvedor se dedica mais à criação dos aplicativos e menos às preocupações operacionais. - Manutenção simplificada – A unidade de implementação do modelo de programação sem servidor é uma função única. Essas funções podem ser atualizadas de forma independente e montadas ou orquestradas usando mapeamentos declarados como acionadores e regras. O diagrama abaixo mostra como uma solução desenvolvida na plataforma Watson IoT e no OpenWhisk pode possibilitar esse caso de uso de casa conectada, além de proporcionar os benefícios de uma arquitetura sem servidor. ## Fluxo de trabalho primário Um refrigerador envia leituras de diagnóstico periodicamente a um serviço em Cloud para indicar o status das suas peças. Pode enviá-las somente quando um limite específico for atingido (usando edge analytics) ou permitir que um serviço em Cloud determine um intervalo normal para todas as leituras recebidas (cloud analytics). json { "appliance_serial": "aaaabbbbcccc", "part_number": "ddddeeeeffff", "reading": "15", "timestamp": 1466632598 }
* Esta mensagem JSON é enviada pelo dispositivo para um tópico de MQTT (como iot-2/evt/refrigerator-simulator/fmt/json
) na Watson IoT Platform on Bluemix. Os dispositivos também podem enviar formatos binários arbitrários para melhorar o desempenho. * Um aplicativo Node.js Cloud Foundry assinado para um evento de tópico de evento curinga para dispositivos de refrigeradores (como iot-2/type/+/id/+/evt/+/fmt/json
) aciona ações do OpenWhisk quando mensagens novas são recebidas. (É reutilizado o código do tutorial de OpenWhisk e MQTT de James Thomas). * Uma ação de analytics é acionada pelo evento de mensagem do aplicativo Cloud Foundry e inspeciona a mensagem, determinando se é necessário realizar uma ação adicional. Se, por exemplo, a leitura de vida útil do filtro estiver inferior ao normal, será criado um novo registro de serviço em um banco de dados do Cloudant. * Outra ação é acionada pela criação de registro do serviço para a inserção de um registro de pedido. Ela consulta o registro do serviço e mapeia o eletrodoméstico até o proprietário registrado, com o objetivo de avaliar se o cliente ainda está coberto pela garantia. Se o eletrodoméstico ainda estiver coberto, um pedido aprovado referente à peça será criado automaticamente. Caso contrário, será criado um pedido pendente que exigirá aprovação e pagamento do cliente. * Uma ação de notificação será acionada pelo novo registro do pedido. Se o eletrodoméstico estiver coberto pela garantia, a ação enviará um e-mail para informar ao usuário que a peça foi solicitada e enviada. Caso contrário, ela enviará um e-mail pedindo ao proprietário para concluir a compra da peça fora da garantia. ## Fluxos de trabalho complementares * Uma ação é acionada todas as noites, de forma planejada, em busca de expirações de garantia pendentes (nos próximos 30 dias, por exemplo) e envia um alerta aos clientes sugerindo que comprem um novo plano de suporte antes de perderem a cobertura. * A mesma ação pode ser utilizada, conforme a demanda, para alertar o cliente sempre que o estado de um pedido mudar no banco de dados (como na progressão from ordered to shipped to delivered). ## Reunindo tudo isso Esses fluxos de trabalho se unem para demonstrar um cenário de ponta a ponta capaz de melhorar o atendimento ao cliente com OpenWhisk, IBM Bluemix e serviços do Watson. ## Executando o aplicativo de amostra 1. Configure os serviços do Bluemix (Cloudant, SendGrid, Watson IoT e um aplicativo Cloud Foundry). 2. Configure as ações, acionadores e regras do OpenWhisk. # Licença Apache 2.0
This repository has been archived by the owner on May 24, 2019. It is now read-only.