牙牙窩

          BlogJava 聯(lián)系 聚合 管理
            8 Posts :: 21 Stories :: 10 Comments :: 0 Trackbacks

          1.  總體設計

          1.1            基本設計概念和處理流程

          1.1.1    程序劃分

          主要分為服務端和客戶端兩個部分。

          客戶端部分又分為同步與異步兩種模式。

          1.1.2    處理流程描述

          JAVA版接口平臺主要實現(xiàn)與外部接口的服務端和客戶端的通訊。并提供業(yè)務接口,允許基于當前內(nèi)核實現(xiàn)各種業(yè)務。

          2.  平臺設計思想

          2.1            業(yè)務無關性

          本平臺設計的核心思想是實現(xiàn)通訊平臺的核心功能,盡可能使代碼與業(yè)務剝離,提高代碼的可重用性。

          2.2            核心功能模塊

          本平臺主要由幾個核心模塊所組成對各種業(yè)務的支持

          2.2.1    通信模塊

          使用JAVA1.4+版本提供的無堵塞IO實現(xiàn)服務端和客戶端的通訊,并提供同步和異步處理兩種方式

          2.2.2    線程池服務

          使用了JDK 1.5 帶的線程池,提供一個線程池的服務,為服務端或客戶端提供多線程處理的功能。本身實現(xiàn)了Singleton模式和自帶了監(jiān)控線程,實現(xiàn)了自我管理。

          2.2.3    字節(jié)處理模塊

          為解析協(xié)議提供簡便的方法處理字節(jié)數(shù)組。

          2.3            主要接口

          為了實現(xiàn)通信平臺的業(yè)務無關性,本平臺設計了一些接口提供給業(yè)務開發(fā)實現(xiàn)。

          2.3.1    協(xié)議解析接口

          為所有解析協(xié)議提供統(tǒng)一協(xié)議解析類接口。主要是為了統(tǒng)一協(xié)議解析的方式。

          2.3.2    業(yè)務接口

          業(yè)務接口主要有兩種:業(yè)務邏輯接口和業(yè)務實現(xiàn)接口。

          2.3.2.1   業(yè)務邏輯接口

          主要為了處理每一個指令的業(yè)務流程,例如先讀取,再處理業(yè)務,再返回結(jié)果;或者先發(fā)送指令,再等待返回結(jié)果。

          2.3.2.2   業(yè)務實現(xiàn)接口

          主要處理每個協(xié)議中每一個指令所對應的業(yè)務網(wǎng)處理。

          2.3.3    注冊器接口

          專門為客戶端登錄服務器時提供的統(tǒng)一的注冊方式。

          3.  平臺設計

          3.1            服務端的設計

          3.1.1    模塊設計圖

          3.1.2    功能

          l         通訊服務

          l         并發(fā)處理客戶端請求

          l         自監(jiān)控

          l         可自定義的業(yè)務接口

          3.2            客戶端設計

          3.2.1    模塊設計圖

          3.2.2    功能

          l         與服務端通訊

          l         可自定義的業(yè)務接口

          l         支持異步模式

          4.  業(yè)務接口設計

          4.1            服務端業(yè)務接口

          4.1.1    業(yè)務邏輯接口

          通過繼承一個業(yè)務邏輯類接口和一個抽象業(yè)務邏輯類實現(xiàn)統(tǒng)一的業(yè)務邏輯接口實現(xiàn)。主要功能有:

          l         讀取請求內(nèi)容

          l         發(fā)送請求

          l         讀取配置文件

          l         協(xié)議解析

          l         反射調(diào)用業(yè)務實現(xiàn)接口

          4.1.2    業(yè)務實現(xiàn)接口

          對于單個指令的業(yè)務實現(xiàn)

          4.2            客戶端業(yè)務接口

          通過繼承客戶端類,通過調(diào)用通訊接口實現(xiàn)客戶端的業(yè)務流程,主要功能有:

          l         發(fā)送指令

          l         接收指令

          l         重置連接

          5.  系統(tǒng)自我監(jiān)控設計

          5.1            客戶端

          5.1.1    斷開連接后重連

          客戶端連接到服務端時會自動判斷是否正常連接,如果在通訊過程中,發(fā)現(xiàn)網(wǎng)絡中斷,將重新發(fā)起一個連接請求,并自動注冊到服務器上。

          5.1.2    同步通信超時

          客戶端提供異步通信和同步通信。在同步通信是一個線程堵塞的方法,該方法會等待結(jié)果的返回才退出該方法。但如果等待時間超過配置的超時時間,會拋出一個通信超時的異常,并退出該方法。

          5.2            服務端

          5.2.1    線程回收

          服務端處理請求都是使用線程池處理每個客戶端的請求。在客戶端通訊的過程中如果連接斷開了,或者發(fā)生了一些特定的異常,則線程池監(jiān)控線程會將該線程中的連接斷開,并將線程回收到線程池中。

          6.  協(xié)議解析設計

          6.1            協(xié)議接口

          實現(xiàn)一個協(xié)議接口和一個協(xié)議抽象類,每個通信節(jié)點所使用的協(xié)議都必須實現(xiàn)該接口,里面封裝了一些協(xié)議基本的信息和一些基本的協(xié)議解析方法。主要包含方法:

          l         協(xié)議完整性校驗接口

          l         指令解析接口

          l         設置包頭長度

          l         設置包體長度

          l         設置包尾長度

          6.2            指令接口

          實現(xiàn)一個協(xié)議里每個指令的調(diào)用,設計目的是將指令的字符轉(zhuǎn)化為對象,可以方便地面向?qū)ο箝_發(fā)。主要包含方法:

          l         指令初始化接口

          l         請求參數(shù)接口

          l         應答參數(shù)接口

          7.  系統(tǒng)出錯處理設計

          所有的日志信息和出錯信息會拋出到同一個方法中,由系統(tǒng)統(tǒng)一處理。

          posted on 2007-04-12 13:02 大牙 閱讀(1116) 評論(0)  編輯  收藏 所屬分類: 架構(gòu)師歷程
          主站蜘蛛池模板: 五指山市| 霍山县| 仁寿县| 时尚| 尉犁县| 上蔡县| 青岛市| 南京市| 富民县| 库伦旗| 建瓯市| 博白县| 靖远县| 海门市| 永济市| 石楼县| 老河口市| 虞城县| 桐柏县| 汤阴县| 盖州市| 蒙城县| 沽源县| 大连市| 武功县| 益阳市| 昌黎县| 潼关县| 嘉兴市| 宣威市| 巴彦淖尔市| 航空| 兴化市| 砚山县| 涞源县| 利辛县| 珠海市| 嘉峪关市| 于都县| 伊川县| 崇左市|