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 ...
随机推荐
- Objective-C语法之类和对象
https://blog.csdn.net/totogo2010/article/details/7708731 Objective-C语法之类和对象 2012年07月02日 17:19:42 知行合 ...
- 汉诺塔的python 动画演示
1.简介 古代有一座汉诺塔,塔内有3个座A.B.C,A座上有n个盘子,盘子大小不等,大的在下,小的在上,如图所示.有一个和尚想把这n个盘子从A座移到C座,但每次只能移动一个盘子,并且自移动过程中,3个 ...
- python学习,day3:函数式编程,局部变量和全局变量
# coding=utf-8 # Author: RyAn Bi school = 'THU' #全局变量 def change_name(name): global age #在函数中,用globa ...
- 自定义 mapper
1. 定义一个接口 public interface ItemMapper { List<Item> getItemList(); } 2. 编写 xml 文件 , 将sql 语句填 ...
- javascript004引用类型
–掌握数组的概念.特性.常用方法(重点) –掌握Object,学会使用对象(重中之重) –了解其他引用类型对象 一:数组 •在ECMAScript中数组是非常常用的引用类型了.ECMAScript所定 ...
- 字符编码的来源,ascii、unicode和utf-8编码的关系
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...
- 让字体在div容器中垂直居中
1. 只显示一行数据的话: 给容器设置height和line-height,并使两个值相等,再加上over-flow:hidden .test{ height:40px; line-height:40 ...
- css定位问题的记录
postion:relative是子块级元素面向父级元素的相对定位,定位关键字使用left/right/top/bottom.兄弟块元素之间相对进行定位,但是position移动后,原位置依然保留.而 ...
- 查询各分类中最大自增ID
假如现在有表结构: CREATE TABLE `msg_detail` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT 'id', `title` ) NOT NUL ...
- 开源高性能网络库Libevent的简介
Libevent是什么? Libevent 是一个用C语言编写的.轻量级的开源高性能网络库. 官网:http://libevent.org/ 优点: (1)事件驱动,高性能 (2)轻量级,专注于网络 ...