IoT Gateway Based on OSGi
1. OSGi Knowleage
2. OSGi.Net on Windows
3. OSGi with JAVA
4. OSGi with Qt and C++
5. Architecture of Gateway using EIP
5.1 EIP = Enterprise Integeration Patter
5.2 Refer to Spring Integration
5.3 Refer to Flume,Strom,Netty, MQ
5.4 Refer to SCADA and OPC Kepware
5.5 IoT Gateway
5.5.1 OSGi Runtime Platform
5.5.2 Adopte Plugin development
5.5.3 Modules
5.5.3.1 Device
5.5.3.1.1 Create Device
5.5.3.1.2 Select Device Driver
5.5.3.1.3 Device need a name, so it can be persistent
5.5.3.1.4 Need to know the relationship between Device name and its Driver ( present as plugin)
5.5.3.1.5 Need to save the configration of device
5.5.3.2 Lightweight DB (plugin)
5.5.3.2.1 Save user name and password
5.5.3.2.2 Save general configuration of gateway, as key-pair placed in header. such as ID, Name,Location,LatiLogi
5.5.3.2.3 Save the devices created by user, its name, its driver, its driver configuration
5.5.3.2.4 Save log and value of realtime variables
5.5.3.3 Channle
5.5.3.3.1 Create Channle
5.5.3.3.2
5.5.3.3.2 Channle Exports its configuraiton and its ID, its description
5.5.3.3.3 Channle is able to save and read its configuration metadata from OSGi main plugin
5.5.3.3.4 Channle's thread number
5.5.3.3.5 Sync or Asyn
5.5.3.3.6 Log system
5.5.3.3.7 Filter, Intercepter
5.5.3.4 Variables
5.5.3.4.1 Define name
5.5.3.4.2 Select device, its value will be retrieved by driver of device.
5.5.3.4.3 The details of configuration, based on protocol of driver
5.5.3.4.3 Select Channle, its value will be got by its driver and send to its channle (using Executor.submit()),
5.5.3.4.4 Channle will be started as single thread or has thread pool, cache pool to save the value of varabile temporarly
5.5.3.4.5 Channle is responsible for send value of varable to corresponding receiver server, such as EMQ, socket server, http server, db server
5.5.3.4.6 Exception handling, Log
5.5.3.5 Driver as plugin
5.5.3.5.1 Device Driver as plugin
5.5.3.5.2 Need name, UUID, description, version, author, supportive protocl as IDriverInfo
5.5.3.5.3 Configuration presention UI
5.5.3.5.4 The metadata of configuration for persistence as IDriverConfiguration
5.5.3.5.5 Special configuraiton, such as thread number, logger interface, cache pool size, Exact-once, error handling, retry-times, timeout
5.5.3.5.6 Describe how to define a varible based on protocol, need Variable definition UI
5.5.3.5.7 The definition of variable for Driver will be save to DB
5.5.3.6 Transceiver as plugin
5.5.3.6.1 Transceiver as plugin
5.5.3.6.2 Need name, ID,description, version,author
5.5.3.6.3 Configuration UI
5.5.3.6.4 The metadata of configuration for persistence
5.5.3.6.5
IoT Gateway Based on OSGi的更多相关文章
- 云中树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示
云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 1. 传感器安装及配置 1.1 DHT22 安装 DHT22 是一款温度与湿度传感器,它有3 ...
- 基于Azure IoT开发.NET物联网应用系列-全新的Azure IoT架构
物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案.我们公司主要搞新能源汽车充电,充电桩就是物联网技术的最大应用,车联网.物联网.互联网三网合一.2017年的时候重点研究过Azure Io ...
- FD.io社区中国行暨未来网络技术沙龙·南京站 会议小结
What is FD.io VPP? FD.io VPP(Fast Data Input/Output Vector Packet Processing)is a new network multi- ...
- Smart internet of things services
A method and apparatus enable Internet of Things (IoT) services based on a SMART IoT architecture by ...
- ASF (0) - ASF Java 项目总览
Apache .NET Ant Library This is a library of Ant tasks that help developing .NET software. It includ ...
- JHipster生成微服务架构的应用栈(五)- 容器编排示例
本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...
- Quick Guide to Microservices with Spring Boot 2.0, Eureka and Spring Cloud
https://piotrminkowski.wordpress.com/2018/04/26/quick-guide-to-microservices-with-spring-boot-2-0-eu ...
- 读懂SAP Leonardo物联网平台
读懂SAP Leonardo物联网平台 https://blog.csdn.net/weixin_42137700/article/details/81903290 本文比较系统.全面地介绍了SAP ...
- FD.io 社区中国行暨未来网络技术沙龙 南京站 参会小结
FD.io 社区中国行暨未来网络技术沙龙 南京站,2018 年 3 月 17 日. 开场致辞 Ray 介绍了一些有的没的 ⁃ (Future Event)DPDK summit, FD.io summ ...
随机推荐
- 【性能测试】:关于loadrunner11录制Chrome浏览器脚本的方法
有些web端的程序只能通过chrome访问,如果用lr11录制的话,会抓不到包, 现在教一种方法,可以抓到包的,主体思路就是设置代理,让报文流量绕道走一下 一,在LR中的设置: 从菜单Tools-Re ...
- ES6 三层for循环的链式写法
假设有一个很复杂的数据,并且数据嵌套层数很多.如何避免用三层for循环呢? 有以下梨子,我们需要找到val值为12的,这个对象? 'use strict' let groups = [{ conten ...
- 单独安装VS2012装mono for android
直接安装个SQL Server2012,然后就可以单独安装VS2012 来用mono for android了.如果不想装,那就装以下这些东西. 广州-PC286() 11:05:28 和 x86 ...
- 【Guava】PreConditions来校验参数
前置条件:让方法调用的前置条件判断更简单. 在我们的日常开发中,经常要对入参进行一定的参数校验,比如是否为空,参数的取值范围是否符合要求等等.这种参数校验如果我们单独进行校验的话,代码的重复率比较高, ...
- PTA (Advanced Level) 1020 Tree Traversals
Tree Traversals Suppose that all the keys in a binary tree are distinct positive integers. Given the ...
- 入门系列之在Ubuntu上安装Drone持续集成环境
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小铁匠米兰的v 发表于云+社区专栏 介绍 Drone是一个流行的持续集成和交付平台.它集成了许多流行的版本控制存储库服务,如GitHu ...
- Android服务--布局服务(LayoutInflater)
1. 基本概念 1. 概念: 参考资料:https://www.cnblogs.com/androidez/archive/2013/07/01/3164729.html 一个用于加载布局的系统服务, ...
- WebStorm配置Node.js IDE
开始刚学的时候一直用命令行来运行Node.js,网上找了些配置Node.js IDE配置的贴子,说WebStorm配置IDE最简单,自己就试了下. 1.首先安装Node这步就不说了 2.下载WebSt ...
- DateReader读取数据
DateReader对象提供了用循序的.只读的方式读取Command对象获取的数据结果集正是因为DateReader是以循序的方法连续地读取数据,所以DateReader会以独占的方式打开数据库连接. ...
- 过滤网址和输入框中的特殊字符,防止sql注入
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...