[計算機軟件及應(yīng)用]OA消息中心詳細(xì)設(shè)計_第1頁
[計算機軟件及應(yīng)用]OA消息中心詳細(xì)設(shè)計_第2頁
[計算機軟件及應(yīng)用]OA消息中心詳細(xì)設(shè)計_第3頁
[計算機軟件及應(yīng)用]OA消息中心詳細(xì)設(shè)計_第4頁
[計算機軟件及應(yīng)用]OA消息中心詳細(xì)設(shè)計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、目錄1.概述31.1.背景31.2.參考資料32.模塊描述32.1.在系統(tǒng)中的位置32.2.功能32.3.性能43.標(biāo)準(zhǔn)化設(shè)計43.1.引用模塊說明43.2.本模塊可能輸出的共享模塊說明54.模塊設(shè)計64.1.模塊設(shè)計準(zhǔn)則64.2.實現(xiàn)原理64.3.模塊設(shè)計的備選方案64.4.功能劃分64.5.功能實現(xiàn)84.5.1.應(yīng)用管理構(gòu)件84.5.2.消息中心構(gòu)件124.5.3.應(yīng)用構(gòu)件244.5.4.調(diào)度構(gòu)件245.數(shù)據(jù)描述265.1.數(shù)據(jù)庫模型265.2.數(shù)據(jù)字典276.類設(shè)計277.接口設(shè)計287.1.用戶接口287.2.硬件接口287.3.軟件接口287.3.1.規(guī)范接口287.3.2.非規(guī)范接

2、口288.可靠性設(shè)計289.可測試性設(shè)計2810.安全性設(shè)計2811.關(guān)鍵技術(shù)說明2812.開發(fā)和運行環(huán)境2812.1.硬件環(huán)境2812.2.軟件環(huán)境281. 概述1.1. 背景工具化系統(tǒng)中需要為用戶提供靈活的消息提示機制,用戶可通過各種通訊方式獲取系統(tǒng)發(fā)送的提示信息。用戶能根據(jù)自己所關(guān)心的業(yè)務(wù)有針對性的獲取系統(tǒng)中提示的消息,可根據(jù)自己的作息時間獲取相關(guān)消息。1.2. 參考資料c4消息中心設(shè)計方案(12-01).docx2. 模塊描述2.1. 在系統(tǒng)中的位置消息中心在系統(tǒng)中處于較低的層面,需要為上層的業(yè)務(wù)模塊提供消息發(fā)送的統(tǒng)一途徑。2.2. 功能l 提供標(biāo)準(zhǔn)消息發(fā)送服務(wù)接口,應(yīng)用構(gòu)件調(diào)用此接口

3、透明發(fā)送消息;l 提供標(biāo)準(zhǔn)消息注冊服務(wù)接口,應(yīng)用管理構(gòu)件調(diào)用此接口透明注冊消息;l 提供消息訂閱功能,用戶可有選擇的通過手機短信、站內(nèi)信和電子郵件三種方式接收消息;用戶可設(shè)定訂閱消息的接收時段;l 支持消息定時發(fā)送;l 支持消息訂閱方式擴展,后期可不斷擴展消息的接收方式;l 與其它構(gòu)件耦合度最低,確保本構(gòu)件的獨立性。2.3. 性能l 能及時的將系統(tǒng)中應(yīng)用模塊的消息發(fā)送到用戶3. 標(biāo)準(zhǔn)化設(shè)計3.1. 引用模塊說明引用模塊說明模塊名稱模塊說明引用方式用戶管理提供用戶帳號及用戶相關(guān)信息管理功能可直接調(diào)用相關(guān)api獲取用戶信息郵件發(fā)送為用戶提供系統(tǒng)中收發(fā)郵件的功能通過插件,查詢消息中心的消息隊列并調(diào)用

4、郵件模塊api發(fā)送郵件手機短信提供收發(fā)送短信的功能通過插件,查詢消息中心的消息隊列并調(diào)用手機短信模塊api發(fā)送短信系統(tǒng)消息向用戶發(fā)送各種系統(tǒng)提示信息使用該模塊前臺部分,提供轉(zhuǎn)換接口將該功能原始數(shù)據(jù)來源變?yōu)橄⒅行南⒈?系統(tǒng)消息是主要方式3.2. 本模塊可能輸出的共享模塊說明模塊名稱模塊內(nèi)容消息發(fā)送向系統(tǒng)提供統(tǒng)一的消息發(fā)送方式調(diào)度管理為系統(tǒng)提供統(tǒng)一的輪詢調(diào)度機制4. 模塊設(shè)計4.1. 模塊設(shè)計準(zhǔn)則4.2. 實現(xiàn)原理4.3. 模塊設(shè)計的備選方案4.4. 功能劃分各構(gòu)建之間的依賴關(guān)系如下:4.5. 功能實現(xiàn)4.5.1. 應(yīng)用管理構(gòu)件應(yīng)用管理構(gòu)件為整個系統(tǒng)提供應(yīng)用注冊、配置文件解析的功能,并提供一個

5、可在安裝時候進行消息類型交互設(shè)置的界面。該構(gòu)建屬于系統(tǒng)管理類型控件。4.5.1.1. 注冊應(yīng)用api該功能將其它地方傳來的應(yīng)用相關(guān)參數(shù)保存到數(shù)據(jù)庫并返回保存結(jié)果,該功能直接對外開發(fā),開發(fā)人員可調(diào)用。方法原型: /* * 將應(yīng)用信息注冊到系統(tǒng)中 * * 返回success則成功,返回其他值為失敗原因 * param string $code * param string $name * param string $desc * return string */ public function regapp($code, $name, $desc) / todo: implement4.5.1.2

6、. 應(yīng)用注冊page為用戶提供應(yīng)用注冊的界面,可錄入應(yīng)用信息。應(yīng)用列表注冊應(yīng)用4.5.1.3. 解析配置api將安裝部署包中的消息注冊配置文件進行解析,獲取其中需要注冊的應(yīng)用信息及消息類型,并調(diào)用相關(guān)api將其注冊到系統(tǒng)中。方法原型: /* * 解析配置文件內(nèi)容,并注冊配置信息 * param int $xml * return boolean */ public abstract function praseconfig($xml) / todo: implement輸入:配置文件的內(nèi)容,格式可參考輸出:解析以及注冊是否成功流程:將傳遞進來的xml配置內(nèi)容進行解析,獲取其中的應(yīng)用及消息類型信

7、息,然后調(diào)用應(yīng)用/消息注冊api將其注冊到數(shù)據(jù)庫中。配置文件結(jié)構(gòu)如如下:4.5.1.4. 獲取已注冊應(yīng)用api該功能對外提供一個函數(shù),可獲取系統(tǒng)中所有已注冊應(yīng)用對象的列表。方法原型:/* * 獲取已注冊應(yīng)用 * return array */ public abstract function getregapp() / todo: implement4.5.2. 消息中心構(gòu)件消息中心是消息系統(tǒng)的核心構(gòu)件,提供與消息有關(guān)的核心服務(wù),包括消息注冊、消息訂閱消息管理和消息處理。4.5.2.1. 應(yīng)用/消息注冊該部分只提供數(shù)據(jù)訪問的消息接口,不負(fù)責(zé)業(yè)務(wù)上的功能。應(yīng)用注冊:4.5.2.1.1. 注冊消息

8、api消息注冊api與應(yīng)用注冊類似,將其它地方傳來的參數(shù)保存到數(shù)據(jù)庫并返回保存結(jié)果。每個消息類型都屬于一個應(yīng)用中,因此在這里需要保證消息與應(yīng)用的主外鍵關(guān)系正確。方法原型:/* * 針對消息類型注冊信息表 * 1.注冊時候需要填寫應(yīng)用id、消息編號、消息名稱、備注 * 2.注冊完成后用戶動態(tài)選擇消息可訂閱方式 * * 返回值為該消息類型的編碼,返回success則成功,返回其它則為失敗原因 * param string $type_code * param string $code_app * param string $name * param string $desc * param str

9、ing $msgtype * return string */ public abstract function regmsgtype($type_code, $code_app, $name, $desc, $msgtype) / todo: implement4.5.2.1.2. 獲取已注冊消息api該功能配合已注冊應(yīng)用api來使用,同樣提供一個函數(shù),可獲取某個應(yīng)用下已注冊的消息類型對象列表。方法原型:/* * 獲取已注冊消息 * param string $app_code * return array */ public abstract function getregmsgtype(

10、$app_code) / todo: implement4.5.2.1.3. 消息類型注冊page消息類型列表注冊消息4.5.2.1.4. 獲取消息發(fā)送許可api獲取某條消息是否可發(fā)送,通過對消息注冊表進行檢查,獲取消息的消息類型及發(fā)送方式是否在系統(tǒng)中注冊,并返回檢查結(jié)果。方法原型: /* * param string $appid * param string $typeid * return boolean */ public abstract function getpermit($appid, $typeid) / todo: implement輸入:應(yīng)用識別號、消息類型識別號輸出:t

11、rue通過驗證、false未通過驗證流程:查詢消息注冊信息,獲取指定應(yīng)用的消息類型是否注冊,并返回判斷結(jié)果4.5.2.2. 消息訂閱4.5.2.2.1. 消息訂閱api消息訂閱api對外提供一個函數(shù),可將消息訂閱界面?zhèn)鱽淼臄?shù)據(jù)保存到數(shù)據(jù)庫。方法原型:/* * 添加一條消息訂閱 * param string $msgplugin * param string $msgtype * param string $user * param int $timesolt * param string $condition * return boolean */ public abstract functi

12、on subscibe($msgplugin, $msgtype, $user, $timesolt, $condition) / todo: implement 4.5.2.2.2. 消息訂閱page消息訂閱界面從應(yīng)用管理模塊加載已注冊應(yīng)用及消息的列表,在前臺展現(xiàn)成用戶可選擇的界面;再獲取用戶已訂閱的應(yīng)用及消息,將界面相關(guān)選項標(biāo)識成已選。界面支持用戶選擇應(yīng)用及應(yīng)用關(guān)聯(lián)的消息類型。郵件可配置消息發(fā)送篩選條件,通過標(biāo)題進行匹配。短信可配置消息發(fā)送篩選條件、接收時間段,通過標(biāo)題進行匹配消息訂閱界面原型4.5.2.3. 消息管理4.5.2.3.1. 消息提交api消息提交api對外提供一個函數(shù),該函

13、數(shù)將應(yīng)用發(fā)來的消息以系統(tǒng)消息發(fā)送給用戶,并檢查用戶是否有其它訂閱方式,再以其它訂閱方式發(fā)送給相關(guān)消息隊列。方法原型:/* * 返回成功或失敗原因代碼 * param string $應(yīng)用識別號 * param string $消息識別號 * param string $目標(biāo)用戶id * param string $消息標(biāo)題 * param string $消息內(nèi)容 * param string $鏈接地址 * param string $有效期 * return string */ public abstract function sendmsg($應(yīng)用識別號, $消息識別號, $目標(biāo)用戶id

14、, $消息標(biāo)題, $消息內(nèi)容, $鏈接地址, $有效期) / todo: implement消息提交流程以下是消息中心處理流程4.5.2.3.2. 系統(tǒng)消息查看4.5.2.3.2.1. 消息數(shù)量獲取api該api從系統(tǒng)消息表中獲取當(dāng)前登錄用戶的未讀消息數(shù)量,并以json格式將消息數(shù)量輸出,供前臺ajax進行渲染。方法原型:/* * 獲取未讀消息數(shù)量 * param int $用戶編號 * return int */ public abstract function getmsgtotal($用戶編號) / todo: implement4.5.2.3.2.2. 消息查看page該頁面根據(jù)傳來的

15、系統(tǒng)消息id展示系統(tǒng)中某條消息的詳細(xì)內(nèi)容,在第一次顯示消息內(nèi)容時候,需要將該條消息的狀態(tài)設(shè)置為已讀。4.5.2.3.2.3. 消息列表page該頁面需要顯示當(dāng)前用戶在系統(tǒng)中的所有已讀和未讀消息,并可接收一個參數(shù)只顯示已讀內(nèi)容。4.5.2.4. 擴展消息處理插件擴展消息處理插件在系統(tǒng)中承擔(dān)某種類型消息的具體發(fā)送者,通過定期循環(huán)檢查自己在系統(tǒng)中所注冊過的消息隊列,將符合條件的消息發(fā)送給用戶,并標(biāo)記消息狀態(tài)。擴展插件被調(diào)度程序定期調(diào)用,從而實現(xiàn)自動化的消息發(fā)送功能。下圖為消息處理插件流程:4.5.2.4.1. 插件信息管理該功能用來管理系統(tǒng)消息發(fā)送插件,實現(xiàn)插件信息的注冊、刪除、查看功能。在插件注冊

16、時候需要向調(diào)度程序注冊插件的定時執(zhí)行信息。4.5.2.4.1.1. 插件信息列表展示系統(tǒng)中所有已注冊插件信息,通過調(diào)用本模塊下api來獲取數(shù)據(jù)。插件列表4.5.2.4.1.2. 插件信息注冊功能插件信息注冊界面完成插件信息的錄入工作,將插件基本信息保存到插件表中,同時將插件信息添加到調(diào)度表中,實現(xiàn)插件的定時調(diào)用。插件注冊4.5.2.4.1.3. 插件信息刪除可通過插件信息列表刪除插件信息,在刪除插件信息的同時還需要刪除調(diào)度表中的相關(guān)內(nèi)容。輸入:插件id輸出:是否刪除成功流程:1.刪除插件在操作系統(tǒng)中關(guān)聯(lián)的調(diào)度任務(wù)2.刪除插件在應(yīng)用系統(tǒng)中的注冊信息3.刪除插件信息4.5.2.4.1.4. 解析插

17、件配置api將安裝部署包中的插件注冊配置文件進行解析,獲取其中需要注冊的應(yīng)用信息及消息類型,并調(diào)用相關(guān)api將其注冊到系統(tǒng)中。插件配置文件結(jié)構(gòu)如下:4.5.2.4.1.5. 獲取已注冊插件api對外提供一個函數(shù),可獲取系統(tǒng)中已注冊插件信息的列表。方法原型: /* * 獲取已注冊插件信息列表 * return array */ public abstract function getregplugin() / todo: implement輸入:無輸出:插件信息列表流程:查詢插件信息及調(diào)度信息,組織插件信息表4.5.2.4.2. 郵件發(fā)送插件該插件完成郵件消息的發(fā)送功能,首先從郵件隊列表中獲取符

18、合發(fā)送要求的消息,然后調(diào)用系統(tǒng)用戶模塊的api獲取用戶接收郵箱,最后調(diào)用郵件發(fā)送api將消息發(fā)送給獲取的郵箱并標(biāo)識消息狀態(tài)。4.5.2.4.3. 短信發(fā)送插件該插件完成手機短信發(fā)送功能,從短信網(wǎng)關(guān)表中獲取需要發(fā)送的短信內(nèi)容,并檢查該短信的接收時段,如果正處于消息接收時段,那么獲取用戶手機號碼,調(diào)用短信網(wǎng)關(guān)接口將消息發(fā)送給短信網(wǎng)關(guān),并標(biāo)識消息發(fā)送狀態(tài)。4.5.3. 應(yīng)用構(gòu)件4.5.3.1. 定時消息插件定時消息插件是系統(tǒng)中業(yè)務(wù)模塊需要開發(fā)的插件,該插件被定期調(diào)用,獲取系統(tǒng)模塊中需要發(fā)送的消息,然后調(diào)用消息中心的消息提交api將消息推送給消息中心。消息發(fā)送時候需要標(biāo)識消息來源應(yīng)用及消息類型。定時消

19、息流程4.5.4. 調(diào)度構(gòu)件4.5.4.1. 調(diào)度列表以列表形式展示系統(tǒng)中已經(jīng)注冊的所有任務(wù)信息。4.5.4.2. 調(diào)度注冊提供一個表單,可填寫調(diào)度名稱、周期、調(diào)度需要執(zhí)行的程序。首先將調(diào)度信息保存到數(shù)據(jù)庫中,然后在操作系統(tǒng)中添加一條調(diào)度信息(調(diào)度名稱保證唯一)。4.5.4.3. 調(diào)度刪除從調(diào)度列表可觸發(fā)調(diào)度刪除鏈接,首先刪除操作系統(tǒng)中相關(guān)的定時任務(wù),然后刪除數(shù)據(jù)庫中調(diào)度數(shù)據(jù)。4.5.4.4. 調(diào)度修復(fù)查詢已經(jīng)注冊的調(diào)度信息,然后從操作系統(tǒng)中刪除所有與本系統(tǒng)相關(guān)的調(diào)度信息,最后再按照系統(tǒng)注冊的調(diào)度信息向操作系統(tǒng)注冊定時任務(wù)。5. 數(shù)據(jù)描述5.1. 數(shù)據(jù)庫模型5.2. 數(shù)據(jù)字典消息中心數(shù)據(jù)模型.

20、pdm5.2.1. 應(yīng)用注冊信息表名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值應(yīng)用idid發(fā)送消息時候根據(jù)模塊編碼進行唯一性確定,由證書id和應(yīng)用id兩部分構(gòu)成,確保id唯一varchar(32)truefalse應(yīng)用名稱namevarchar(32)falsefalse備注descvarchar(100)falsefalse5.2.2. 時段表名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值接收時段編號idinttruefalse名稱namevarchar(32)falsefalse時段1t10:00,23:59varchar(100)falsefalse時段2t2varchar(100)falsefals

21、e時段3t3varchar(100)falsefalse5.2.3. 消息類型注冊信息表名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值應(yīng)用idapp_idvarchar(32)truetrue消息類型idid該類型在編碼中發(fā)送消息使用varchar(32)truefalsegroup/module/msgtype可選訂閱方式rcvtyps多個訂閱方式,中間用逗號分隔,如type,typevarchar(200)falsefalse消息類型名稱name顯示在界面上的消息名稱varchar(32)falsefalse備注descvarchar(100)falsefalse5.2.4. 消息訂閱方式表(插件

22、)名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值訂閱方式ididvarchar(32)truefalse訂閱方式名稱namevarchar(128)falsefalse隊列處理sqlsql插件的名稱varchar(50)falsefalse備注descvarchar(100)falsefalse5.2.5. 消息訂閱記錄表名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值訂閱方式idmp_idvarchar(32)falsetrue消息類型idmt_id該類型在編碼中發(fā)送消息使用varchar(32)falsetruegroup/module/msgtype接收用戶編號uidvarchar(32)falsetru

23、e接收時段編號ts_idintfalsetrue過濾條件conditionvarchar(50)falsefalse5.2.6. 用戶5.2.7. 用戶消息表名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值消息流水號idvarchar(32)truefalse標(biāo)題titlevarchar(200)falsefalse消息內(nèi)容contenthtm格式,按模板生成varchar(500)falsefalse消息狀態(tài)state0 未讀,1-已讀intfalsefalse接收用戶編號uidvarchar(32)falsetrue創(chuàng)建時間send_time消息插入的時間datetimefalsefalse接收時間

24、read_time打開閱讀時間datetimefalsefalse5.2.8. 調(diào)度管理名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值調(diào)度編號idvarchar(32)truefalse調(diào)度名稱namevarchar(128)falsefalse調(diào)度時間roundvarbinary(256)falsefalse調(diào)度執(zhí)行程序handlervarbinary(256)falsefalse5.2.9. 站內(nèi)信名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值消息流水號id系統(tǒng)自動產(chǎn)生inttruefalse接收時段編號ts_idvarchar(32)falsetrue標(biāo)題titlevarchar(256)falsefa

25、lse消息內(nèi)容contenthtm格式,按模板生成textfalsefalse消息狀態(tài)state0 待發(fā), 1-正在發(fā)送,2-已發(fā), 3-放棄intfalsefalse接收用戶uidvarchar(32)falsefalse創(chuàng)建時間create_datetimedatetimefalsefalse預(yù)訂發(fā)送時間send_time定時發(fā)送時間datetimefalsefalse發(fā)送時間sended_timedatetimefalsefalse失敗重發(fā)次數(shù)resend_times失敗重發(fā)次數(shù),每次失敗減1,等于0時放棄intfalsefalse有效期限void_time超過此期限不再發(fā)送dateti

26、mefalsefalse5.2.10. 郵件消息隊列名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值消息流水號id系統(tǒng)自動產(chǎn)生inttruefalse接收時段編號ts_idvarbinary(32)falsetrue標(biāo)題titlevarchar(256)falsefalse消息內(nèi)容contenthtm格式,按模板生成textfalsefalse消息狀態(tài)state0 待發(fā), 1-正在發(fā)送,2-已發(fā), 3-放棄intfalsefalse接收郵箱rcv_mailaddrvarchar(32)falsefalse創(chuàng)建時間create_datetimedatetimefalsefalse預(yù)訂發(fā)送時間send_ti

27、me定時發(fā)送時間datetimefalsefalse發(fā)送時間sended_timedatetimefalsefalse失敗重發(fā)次數(shù)resend_times失敗重發(fā)次數(shù),每次失敗減1,等于0時放棄intfalsefalse有效期限void_time超過此期限不再發(fā)送datetimefalsefalse5.2.11. 手機短信消息隊列名稱代碼注釋數(shù)據(jù)類型主要的外來鍵默認(rèn)值消息流水號id系統(tǒng)自動產(chǎn)生inttruefalse接收時段編號ts_idvarchar(32)falsetrue標(biāo)題titlevarchar(256)falsefalse消息內(nèi)容contenttextfalsefalse消息狀態(tài)state0 待發(fā) 1-在發(fā),2-已發(fā) 3-放棄intfalsefalse接收號碼uidvarchar(32)falsefalse創(chuàng)建時間create_datet

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論