Em julho, abrimos nosso próprio centro de tecnologia e exposições em Moscou, o Digital Leadership Center. Esta é uma nova plataforma para eventos, demonstração de novos cenários inovadores desenvolvidos em conjunto com clientes e parceiros da SAP.

Durante a construção de nosso próprio Centro, decidimos que era necessário não apenas mostrar novas tecnologias como stands de demonstração, mas também apresentá-las ao trabalho do próprio Centro.
Por exemplo, todos os salões e audiências do Centro podem ser transformados - divididos em várias partes - e reunidos em um único espaço. O site também é equipado com um “escritório inteligente” - soluções de gerenciamento de recursos, câmeras com reconhecimento de rosto, sensores para a Internet das coisas.
No processo, criamos um cenário simples e eficaz baseado no SAP Cloud Platform para monitorar como as salas de reunião são usadas com eficiência. Neste artigo, mostraremos como montar rápida e facilmente esse cenário em um dia.
Além disso - sobre sensores, serviço de IoT no SAP Cloud Platform e "classificação de karma" para funcionários.
Começamos preparando serviços no SAP Cloud Platform para integração com sensores para a Internet das coisas. Para desenvolver a solução, usamos o IoT Service no SAP Cloud Platform (SCP) para automatizar a transferência de dados, bem como o ambiente de desenvolvimento Cloud Foundry no SCP.
Fizemos uma demonstração usando estes sensores:
- Sensor magnetocontato, que funciona tanto na abertura quanto no fechamento de portas
- Sensor de movimento infravermelho para detectar penetração na área protegida e, no nosso caso, também na sala de reuniões
O monitoramento das salas de reunião deve ser realizado para verificar como os funcionários realmente usam as instalações - se a reunião ocorreu ou a sala de reuniões estava vazia naquele momento, quantas pessoas acabaram participando da reunião e outros detalhes. Como resultado, você pode coletar estatísticas sobre como os funcionários usaram efetivamente as salas de reunião durante um período de tempo.
Figura 1. Arquitetura do serviço Internet das Coisas no SAP Cloud Platform
Usamos o serviço SAP Cloud Platform e o Internet of Things como base para este exemplo. A arquitetura da plataforma é mostrada na Figura 1, suporta funções para combinar dispositivos individuais e pontos de acesso (Gateways) em uma rede comum baseada no serviço Internet das Coisas no SAP Cloud Platform.
Para dispositivos sem protocolos HTTPS / MQTT, bem como para dividir dispositivos em segmentos que consolidam mensagens e as enviam centralmente para o SAP Cloud Internet of Things, o IoT GateWay Edge é usado. Este é um componente de software que pode se comunicar com dispositivos por meio de protocolos: HTTPS, MQTT, Modbus (1), CoAP, Arquivo (2), OPC UA (3), SigFox (4), SNMP (5). Além disso, o desenvolvedor pode usar o SDK para expandir os recursos do GateWay e implementar seus protocolos para troca de dados com dispositivos.
AnotaçõesNotas da documentação do SAP Cloud Platform:
1) O Modus é atualmente implementado usando:
• TCP / IP sobre Ethernet
• Transmissão serial assíncrona em várias mídias (fio: RS-232, RS-485; fibra, rádio e assim por diante)
• ModbusPLUS, uma rede de passagem de token de alta velocidade.
O Modbus define uma unidade de dados de protocolo simples que é independente das camadas de comunicação subjacentes. O mapeamento em barramentos ou redes específicos pode introduzir alguns campos adicionais na unidade de dados do aplicativo. O protocolo segue uma abordagem cliente-servidor, em que um cliente inicia uma transação Modbus para pesquisar dados no servidor.
2) O fluxo de trabalho típico do adaptador é o seguinte:
1. Leia um determinado arquivo, com base em um conjunto de parâmetros de configuração.
2. Acesse o conteúdo do arquivo e extraia campos valiosos conforme as instruções de um arquivo de esquema de análise do adaptador.
3. Mapeie esses campos para os conceitos e entidades do Serviço Internet das Coisas (por exemplo, dispositivo que aborda metadados, medições etc.), também com base no arquivo de esquema de análise do adaptador.
4. Transmitir dados normalizados até o Internet of Things Core Service.
5. Remova o arquivo de destino do local original e, opcionalmente, faça backup em outra pasta.
Os formatos de arquivo suportados são JSON, CSV e binário. Para binário, o arquivo é transferido como uma seqüência de caracteres codificada em Base64 para o Serviço Principal da Internet das Coisas.
3) O Internet of Things Gateway integra os servidores OPC UA, atuando como um cliente OPC UA. O adaptador pode se conectar ao servidor para estabelecer uma sessão do OPC UA; na primeira conexão, o adaptador navega no espaço de endereço do servidor e cria um dispositivo correspondente com um conjunto de sensores. Em seguida, configura a recuperação de dados, por duas opções possíveis:
• Modo de extração periódica: o adaptador consulta o servidor em busca de dados periodicamente, com um intervalo de pesquisa configurável
• Modo de assinatura: o adaptador cria uma assinatura nos nós do servidor, para ser notificado pelo próprio servidor sempre que o valor de um nó for alterado
4) A SigFox é uma empresa francesa que emprega uma tecnologia de rádio baseada em UNB (Ultra Narrow Band) para conectar dispositivos IoT à sua rede. Atualmente, usa a banda ISM em 868MHz (conforme definido pelo ETSI e CEPT) na Europa e em 902MHz nos EUA (conforme definido pela FCC), dependendo de regulamentos regionais específicos. Para expandir a área de cobertura de serviços, a SigFox mantém parcerias com várias operadoras de rede em todo o mundo. Ao utilizar a infraestrutura UNB fornecida por esses parceiros, o SigFox permite a comunicação entre dispositivos que operam o protocolo de rádio SigFox e a nuvem SigFox. Nesse contexto, a infraestrutura SigFox atua como a camada de transporte que envia os dados gerados pelos dispositivos para a nuvem. Essa camada é independente de dados, o que significa que não interpreta os dados, mas simplesmente os transfere. Considerando isso, os fabricantes de dispositivos que instalam o firmware SigFox em seus produtos podem usar o serviço SigFox para acessar seus dados e um conjunto de APIs REST para criar aplicativos com base nesses dados. O gráfico ilustra a rede SigFox de maneira simplificada.
5) O fluxo de dados segue duas rotas:
• O Gateway da Internet das Coisas emite uma pesquisa cíclica em todos os dispositivos, executando um MIB-WALK completo para cada dispositivo conectado.
• O Gateway da Internet das Coisas recebe traps dos dispositivos, se eles puderem enviar os traps.
Na arquitetura da Internet das Coisas, o serviço GateWay pode ser implantado como parte do SAP Cloud Platform e no dispositivo final. Uma das principais vantagens do GateWay é a integração com o SAP Cloud Platform, pois resolve o problema de transferência de dados dos dispositivos para a plataforma em nuvem. Mas também é possível integrar-se ao serviço Internet das Coisas sem o GateWay, usando os protocolos MQTT / HTTPS.
A arquitetura do serviço Internet das Coisas é construída usando o ambiente Cloud Foundry, que permite implantar seus aplicativos desenvolvidos com base nos idiomas Python, JavaScript (Nodejs), Java (Tomcat), Go, Scala
etc. na SAP Cloud Platform. Nesse cenário, usamos o servidor de aplicativos Nodejs para criar nosso próprio serviço para processar mensagens de sensores no ambiente do SAP Cloud Platform.
O código de amostra para um serviço baseado em Nodejs pode ser encontrado aqui.const http = require('http'); const hdb = require('hdb'); http.createServer(function (req, res) { if (req.method === 'POST') { let body = ''; req.on('data', chunk => { body += chunk.toString();
Para preparar o código no Nodejs, usamos o módulo node-hdb, que fornece comunicação com o HANA DBMS e já está presente no buildjs nodejs no CloudFoundry.
Em um ambiente CloudFoundry, você deve definir as dependências entre o aplicativo e os módulos utilizados. Nesse caso, o Nodejs poderá acessar o módulo e iniciar nosso aplicativo, portanto, especificamos o link no arquivo package.json
dependência"dependencies" : {
"hdb" : "0.xx"
}
Como principal armazém de dados e mecanismo para criar consultas analíticas, usamos o HANA DBMS. Usando o módulo
node-hdb , é possível usar os recursos do Bulk Insert (para acelerar a inserção de dados), gerenciamento de transações (confirmação, reversão, confirmação automática), chamando procedimentos SQL armazenados.
Os dados obtidos usando os sensores da Internet das Coisas são enviados através do Serviço Internet das Coisas para a SAP Cloud Platform - diretamente para o nosso serviço baseado em Nodej. Você deve primeiro configurar o modelo de dados e o formato da mensagem no SAP Cloud Internet of Things.
Como criar rapidamente uma interface do usuário e personalizar os componentes básicos do SAP UI5?
Para exibir o estado da sala de reuniões no serviço, usamos o componente
GenericTile . A Figura 2 mostra um exemplo de um componente GenericTile personalizado para indicar o estado da sala de reuniões.

Para desenhar ícones e exibições em cores no componente GenericTile, usamos a extensão de tela HTML5 e o método renderizador do modelo de objeto SAP UI5.
Código de exemplo pode ser encontrado aqui. renderer: function (oRM, oControl) { var model; var d; var view = sap.ui.getCore().byId("samplecontainer---mainview"); if (!this.status) this.status = {"door":"","motion":"","color":"#2bbc2d","busy":0}; if (view != undefined) model = view.getModel("DT1"); if (model != undefined){ d = JSON.parse(model.getJSON()); if (this.status){ this.status.busy = d.busy; this.status.door = d.door; this.status.motion = d.motion; this.status.color = d.color; } } oRM.write("<div"); oRM.writeControlData(oControl); oRM.write(">"); </spoiler> if (this.status.busy == 0){ oRM.write("<img id='iDT1' src='/iotex/images/room_empty.png' alt='Empty' height='64' width='70'>"); } else { oRM.write("<img id='iDT1' src='/iotex/images/room_booked.png' alt='Booked' height='64' width='70'>"); } oRM.write("<canvas id='cDT1' width='30' height='30'></canvas>"); oRM.write("<script>"); oRM.write("var canvas = document.getElementById('cDT1');"); oRM.write("var context = canvas.getContext('2d');"); oRM.write("var centerX = canvas.width / 2;"); oRM.write("var centerY = canvas.height / 2;"); oRM.write("var radius = 12;"); oRM.write("context.beginPath();"); oRM.write("context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);"); if ((this.status.busy == 1)&&((this.status.door != 0)||(this.status.motion != 0))){ oRM.write("context.fillStyle = '#f46e41';");
Como criar consultas analíticas e exibir gráficos em uma interface do usuário em um aplicativo no SCP?A maneira mais fácil de acessar dados no SAP HANA a partir da UI5 é o protocolo OData. Ele permite que você use um modelo de objeto pronto para transferir dados para um elemento de exibição da UI5. No entanto, se uma consulta analítica complexa for necessária para formar um conjunto de dados, o SQLScript e os procedimentos armazenados no SAP HANA serão úteis. Você também não pode recorrer ao desenvolvimento complexo de consultas no SQLScript, mas simplesmente usar o editor de exibição de cálculo no SAP Web IDE.
Figura 3. Um exemplo de um gráfico de gráfico de pizza da biblioteca sap.viz.ui5Exemplo de código Javascript e SAP UI5 para exibir um gráfico de pizza
mostrado aqui $.ajax ({ type: "GET", url: "/iotex/odatasource/rooms.xsodata/rooms?$format=json", dataType: 'json', async: false, success: function (data, status){ var aData = data.d.results; var UData = {Data: aData}; room_model.setData(UData); } }); View.setModel(room_model,"Rooms"); var oVizFrame = this.oVizFrame = this.getView().byId("idVizFrame"); var oDataset = new sap.viz.ui5.data.FlattenedDataset({ dimensions : [{ name : 'Time', value : "{Time}"}], measures : [{ name : 'Usage', value : '{Value}'} ], data : { path : "/Data" } }); oVizFrame.setDataset(oDataset); oVizFrame.setVizProperties({ title:{ text : " " }, plotArea: { colorPalette : ['#2bbc2d','#f46e41','#c5f442'], drawingEffect: "glossy" }}); var feedSize = new sap.viz.ui5.controls.common.feeds.FeedItem({ 'uid': "size", 'type': "Measure", 'values': ["Usage"] }), feedColor = new sap.viz.ui5.controls.common.feeds.FeedItem({ 'uid': "color", 'type': "Dimension", 'values': ["Time"] }); oVizFrame.addFeed(feedSize); oVizFrame.addFeed(feedColor);
Para exibir corretamente os dados no gráfico de pizza, verifique cuidadosamente o caminho dos dados no formato especificado na propriedade Path do objeto FlattenedDataset. Nesse caso, a propriedade Path aponta para o objeto / Data, portanto, é necessário apresentar a estrutura JSON desejada no formato mostrado
aqui var datapiechart = { "Data" : []}; var yellow = {"Time":"Abused","Value":data.yellow}; var red = {"Time":"Occupied","Value":data.red}; var green = {"Time":"Free","Value":data.green}; datapiechart.Data.push(yellow); datapiechart.Data.push(red); datapiechart.Data.push(green); var mod = viz.getModel(); mod.setData(datapiechart); viz.setModel(mod);
Para exibir estatísticas (consulte a Fig. 4) sobre usuários que reservam salas de reunião, usamos um elemento simples da tabela UI5. Ele exibe os "pontos" acumulados, dependendo do número de "visitas" aos eventos. Assim, é possível identificar funcionários sem escrúpulos que reservam salas de reunião.
Fig 4. Estatísticas de visitas para um usuário específicoUsando o serviço Internet das Coisas, bem como o ambiente CloudFoundry no SAP Cloud Platform, você pode criar rapidamente seus serviços de IoT e integrá-los facilmente a qualquer dispositivo. Como fonte de informações de referência no serviço Internet das Coisas, você pode usar o
link em que a arquitetura do serviço é descrita em detalhes e exemplos de código são fornecidos.

Você também pode usar o acesso de avaliação
aqui para testar o ambiente do Cloud Foundry pressionando primeiro o botão Login e concluindo o procedimento de registro.