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