999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

支持高吞吐量彩票交易的消息服務子系統的設計與實現

2008-12-31 00:00:00陳衛衛
電腦知識與技術 2008年15期

摘要:本文主要說明一個用來支持高吞吐量彩票交易的消息服務子系統的設計與實現過程。該子系統提供基于Socket的簡單消息服務,屏蔽了Socket通信細節,提供高效的同步及異步請求/響應消息服務。文中對該子系統的流程進行了分析,并對調用其服務的過程進行了詳細的描述。

關鍵詞:高吞吐量;彩票交易;同步請求/響應;異步請求/響應

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)15-20ppp-0c

The Design and Development of Message Service Subsystem Supporting High Throughput Lottery Trading

CHEN Wei-wei

(Computer Academy,National University of Defense Technology,Changsha 410073,China)

Abstract:This paper illuminates the design and development procedure of a message service subsystem which supports high throughput lottery trading on Internet. The subsystem offers a message request/response service based on Socket. During the use of the subsystem, you don't have to deal with any Socket communication detail and can get high speed communication service. There are detailed analysis of this subsystem’s working process and detailed usage of this subsystem’s message service in this paper.

Key words:High throughput;Lottery trade;Synchronous request/response;Asynchronous request/response

1 引言

對于兩個遠程通信的程序來說,可以采用的大多數常見方法在底層都是基于Socket來通信的,由于這些方法都需要做一些額外的處理,所以最快速的通信方式就是直接采取Socket通信。對于一個要求高吞吐量的彩票系統來說,采用Socket通信是一個合適的選擇。但是由于Socket通信有一些底層細節需要處理,而且大多數普通開發者都很少接觸Socket編程。因此,如果能夠在Socket之上做一個簡單封裝,屏蔽掉Socket編程細節,又將對效率的影響控制在很小的范圍內,那么這樣的產品對于開發高吞吐量的彩票系統而言,具有很大的好處。我們將上面所述的這樣一直服務稱為基于Socket的簡單消息服務,簡稱SMS-BOS。

本文首先提出SMS-BOS的建設目標,然后討論如何設計與實現這樣一個服務,并在第4部分提供了一個基于Java NIO的實現原型。通過我們在開發高吞吐量系統的過程來看,SMS-BOS包括以下內容:

1)封裝所有Socket通信的底層細節;

2)實現同步的請求/響應消息交互模型;

3)實現異步的請求/響應消息交互模型;

4)分別提供一個服務端的API包和一個客戶端的API包供程序調用。

2 系統流程分析

2.1 同步請求/響應模型

當請求方調用SMS-BOS的發送消息的API時,當前線程會一直阻塞到接收到響應方的響應消息為止;在接受到響應消息以后,當前線程會回調請求時傳入的某個實現了處理響應消息接口的類的實例,執行完之后返回到發起請求處,接著執行后面的代碼。

響應方在收到請求消息之后,會自動調用在配置文件中配置的處理請求消息的指定類的處理響應消息的方法。該類實現了SMS-BOS子系統中提供的處理請求消息的接口。

詳細的過程如圖1所示。

2.2 異步請求/響應模型

當請求方調用SMS-BOS的發送消息的API時,當前線程在發送完消息之后就直接返回執行后面的代碼;在接收到響應消息之后,系統會自動新開啟一個線程,回調請求時傳入的某個實現了處理響應消息接口的類的實例。

響應方在收到請求消息之后,會自動調用在配置文件中配置的處理請求消息的指定類的處理響應消息的方法。該類實現了與同步模型中同樣的接口。

具體流程如圖2所示。

3 消息請求/響應過程

SMS-BOS數據傳輸服務的使用者無需區分服務端與客戶端,在通信兩端所使用的消息處理接口是完全一致的。在下文中,使用請求方與響應方來表示一個消息請求/響應過程的參與雙方。下面詳細描述消息請求/響應過程的每一步。

1)發送請求消息

// 獲得通道

SmsChannel channel = SmsProvider.getSmsChannel(channelID);

if (channel != 1) {

try {

channel.sendMessage(msg,回調對象);

} catch (SmsTimeoutException e) {

e.printStackTrace();

}

}

發送方首先通過通道的ID獲得需要的通道channel,然后調用channel.sendMessage()方法來發送消息。需要傳入一個實現了ISmsResponseDealor接口的類的對象來接受回調。

發送消息代碼如下:

byte[] msgByte = msg.getBytes();

ByteBuffer buffer=ByteBuffer.allocate(msgByte.length);

buffer.clear();

buffer.put(msgByte);

buffer.flip();

channel.write(buffer);

2)接受請求消息

SMS-BOS為每個通道開啟一個線程,然后用Java NIO的方式讀取數據,通道線程內讀數據的過程如下:創建緩沖區、打開Selector,然后注冊NIO的Channel的讀事件到Selector中去;然后就是等待讀數據了,當讀到一個消息數據后,新啟動一個線程,由該線程負責處理該消息。

3)處理請求

ISmsRequestDealor是處理請求消息的接口,我們首先定義一個實現該接口的類SmsRequestDealor,然后在配置文件中指定response-class屬性值為該類,這樣當收到請求消息時,首先創建一個指定類的實例:

ISmsRequestDealor dealor = (ISmsRequestDealor) Class.forName(

channel.getRequestDealor()).newInstance();

return dealor.dealRequestMsg(msg);

然后調用該類的dealRequestMsg()方法來處理消息。

4)返回響應消息

SMS-BOS會將第3步中的dealRequestMsg()方法的返回值發送給請求方。

發送消息的代碼與第1步中一樣。

5)接受響應消息

接受響應消息的代碼與第3步中接受請求消息的一樣。

6)處理響應消息

第1步中的dealResponseMsg()就是用來處理響應消息的。

4 結束語

通過以上的分析、設計及部分代碼實現,我們可以比較清晰的看出SMS-BOS服務的結構及調用方法,通過我們的測試工作得知該系統較好的實現了預期目標:提供了一個屏蔽了通信細節的支持同步、異步兩種請求/響應模型的高效通信服務,為構建高吞吐量系統提供了必要的支持。

參考文獻:

[1]杜成龍,龍紹軍.分布式系統開發優化策略[J].電腦知識與技術:學術交流,2007(18).

[2]George Coulouris,Jeam Dollimore,Tim Kindberg.分布式系統概念與設計[M].金蓓弘,譯.機械工業出版社,2006:1-2.

[3]Herber Schildt.Java2:The Complete Reference[M].4th Edition.2002.

[4]李卓恒,翟華.LINUX網絡編程[M].北京:機械工業出版社,2000.

[5]劉彥明.JAVA語言及其程序實現[M].西安電子科技大學出版社,1997.

收稿日期:2008-03-09

作者簡介:陳衛衛(1978-),男,江蘇如東人,軟件架構師,軟件工程碩士,研究方向:大型網絡應用系統架構,J2EE技術。

主站蜘蛛池模板: 中日韩一区二区三区中文免费视频| 91国内视频在线观看| 亚洲高清无码久久久| 青青青伊人色综合久久| 亚洲无码视频一区二区三区| 亚洲Va中文字幕久久一区| 亚洲欧洲自拍拍偷午夜色| 国产手机在线观看| 日本精品视频一区二区| 国产真实乱子伦视频播放| 国产成人免费观看在线视频| 首页亚洲国产丝袜长腿综合| 激情亚洲天堂| 久996视频精品免费观看| 亚欧乱色视频网站大全| 国产在线一区二区视频| 亚洲成人在线网| 亚洲 欧美 日韩综合一区| 香蕉网久久| 中文毛片无遮挡播放免费| 成人综合久久综合| 国产精品亚洲va在线观看| 亚洲欧美一区二区三区麻豆| 国产成人综合在线观看| 午夜无码一区二区三区| 欧美日本在线观看| 久久精品无码一区二区日韩免费 | 亚洲婷婷丁香| 幺女国产一级毛片| 日韩精品毛片| 亚洲高清资源| 国产色伊人| 亚洲妓女综合网995久久| 一级香蕉视频在线观看| 99热这里只有精品国产99| 亚洲AV成人一区国产精品| 国产区人妖精品人妖精品视频| 91av国产在线| 国产黄在线观看| 国产清纯在线一区二区WWW| 国产av无码日韩av无码网站| 永久天堂网Av| 国产传媒一区二区三区四区五区| 亚洲欧美激情另类| 国产经典三级在线| 久久国产免费观看| 亚洲人成电影在线播放| 亚洲精选高清无码| 亚洲日韩精品欧美中文字幕| 精品国产一区91在线| 97免费在线观看视频| 精品福利视频网| 精品欧美一区二区三区久久久| 在线欧美日韩| 亚洲swag精品自拍一区| 香蕉网久久| 亚洲成人一区二区三区| 亚洲va精品中文字幕| 秘书高跟黑色丝袜国产91在线| 狠狠色狠狠综合久久| 中文字幕在线观看日本| 天堂av综合网| 波多野吉衣一区二区三区av| 精品久久久无码专区中文字幕| 亚洲三级色| www.亚洲天堂| 国语少妇高潮| 国产免费精彩视频| 日韩123欧美字幕| 欧美无专区| 国产精品片在线观看手机版| 国产在线第二页| 亚洲午夜国产精品无卡| 精品三级网站| 超碰精品无码一区二区| 免费A级毛片无码无遮挡| 欧美国产日韩另类| 国产成人亚洲无码淙合青草| 久久6免费视频| 福利小视频在线播放| 97国内精品久久久久不卡| 日本91在线|