1 數據分發服務
數據分發服務(DDS)的核心是以數據爲中心的發佈-訂閱DCPS(Data-Centric Publish-Subscribe),即發佈者能高效地將正確的信息傳遞給適當的訂閱者。
2 數據分發模型
數據分發歸結爲一種獨立的系統軟件或服務程序的中間件,分佈式應用藉助這種軟件在不同的技術之間共享資源;中間件位於客戶機/服務器的操作系統之上,管理計算資源和網絡通訊。中間件在分佈式系統中的位置如圖2-1
圖2-1
3 客戶機/服務器模型
客戶進程發送請求到一個服務進程,該服務進程接受到請求後進行處理,然後返回結果給客戶。如圖3
圖3(一對多)
4 發佈/訂閱模型
發佈和訂閱數據服務可分爲一下三種:如圖4
一對多 多對一
圖4
5 發佈和訂閱通信模型
6 發佈/訂閱時序圖
(1)首先將DCPS信息倉庫建立起來,並作相應的初始化工作
(2)發佈者在中間件註冊數據類型,然後設置主題QoS便建立主題,同樣訂閱者設置QoS也能建立主題。主題建立後,經過中間件服務的檢查機制,若符合連接要求的發佈者/訂閱者便建立連接
(3)連接建立後,發佈者設置數據記錄者發佈數據,訂閱者設置數據接收者讀取數據
7 數據庫設計
7.1 用戶(t_user)
字段名 |
類型 |
說明 |
userid |
Varchar(16) |
用戶ID |
username |
Varchar(20) |
用戶名 |
password |
Varchar(16) |
密碼 |
provinceid |
Varchar(2) |
省份ID |
provincename |
Varchar(20) |
省份名稱 |
cityid |
Varchar(6) |
城市ID |
cityname |
Varchar(20) |
城市名稱 |
|
|
|
7.2發佈者
字段名 |
類型 |
說明 |
userid |
Varchar(16) |
發佈者id |
username |
Varchar(20) |
發佈者名稱 |
7.3歷史發佈者
字段名 |
類型 |
說明 |
userid |
Varchar(16) |
發佈者id |
username |
Varchar(20) |
發佈者名稱 |
7.4生效的訂閱者
字段名 |
類型 |
說明 |
topicid |
Varchar(6) |
主題id |
userid |
Varchar(16) |
訂閱者id |
bigintime |
data |
訂閱開始時間 |
endtime |
data |
訂閱結束時間 |
7.5 發佈內容信息
字段名 |
類型 |
說明 |
topicid |
Varchar(6) |
主題id |
userid |
Varchar(16) |
發佈者id |
content |
text |
發佈數據的內容 |
|
|
|
7.6 歷史發佈內容信息
字段名 |
類型 |
說明 |
themeid |
Varchar(6) |
主題id |
userid |
Varchar(16) |
發佈者id |
content |
text |
發佈數據的內容 |
|
|
|
7.7 訂閱數據信息(t_receive_data)
字段名 |
類型 |
說明 |
topicid |
Varchar(6) |
主題id |
userid |
Varchar(16) |
訂閱者者id |
content |
text |
訂閱數據的內容 |
|
|
|
7.8 歷史訂閱數據信息(t_receive_data)
字段名 |
類型 |
說明 |
id |
Varchar(16) |
主題id |
id |
Varchar(16) |
訂閱者者id |
content |
text |
訂閱數據的內容 |
|
|
|
7.9 主題
字段名 |
類型 |
說明 |
topicid |
Varchar(6) |
主題id |
themename |
Varchar(200) |
主題名 |
themedescription |
text |
主題描述 |