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

Java非阻塞I/O在鄉村可視化遠程醫療系統中的應用*

2011-05-17 09:08:42顧和明
網絡安全與數據管理 2011年6期
關鍵詞:可視化

顧和明

(長江師范學院 數學與計算機學院,重慶408100)

1 鄉村可視化遠程醫療系統的應用前景

目前我國廣大的農村地區醫療條件比較差,這些地區的大量患者因為得不到及時有效的治療,給患者以及家屬帶來了不必要的痛苦。使用網絡多媒體通信技術實現的鄉村可視化遠程醫療系統可以讓高水平的醫療專家給鄉村的患者進行遠程診病,以及指導治療與護理。鄉村衛生所、鄉鎮醫院等醫療單位可以和具有優質醫療資源的醫院或直接與專家建立醫療合作關系,雙方合作使用可視化醫療系統,讓專家為病人進行遠程診療服務。在鄉村這一端,一般由專業醫務人員指導病人接受專家遠程診療,醫療專家通過可視化醫療系統實時對病人進行診斷、處方、治療甚至指導手術等。患者也可以在家中使用遠程醫療系統直接接受遠程專家的指導,尤其在處理突發性疾病時,可以在第一時間內得到醫療專家的幫助。目前隨著生活水平的大幅度提高,不少需要“私人醫生”的人員也可以方便地使用該系統得到醫療專家的服務。可見,可視化醫療系統有著很廣闊的應用市場和較好的發展前景。

2 鄉村可視化遠程醫療系統功能簡介

鄉村遠程醫療系統可以同時提供若干對醫療服務,每一對服務有2個或2個以上的客戶端進行通信。客戶端分別由醫療專家和患者使用,醫療專家使用的客戶端稱為專家端,患者接受診療的客戶端稱為醫務端。每個客戶(醫務端和專家端)首先登錄服務器,服務器將每個登錄客戶的用戶名、IP地址等相關信息發送給相關的其他客戶,然后客戶端之間建立直接連接,并可進行文件傳送、文字和多媒體等通信。通過這種綜合的通信方式,醫療專家可以遠程為患者提供醫療服務。為了建立醫療檔案,服務器需要保存診療時間、參與人員、患者檢驗報告、病情診斷、處方等信息。患者還可以通過服務器進行專家預約,專家和患者均可以在服務器上進行診療信息查詢。由于視頻信息量比較大,且保存意義不是十分大,因此并不保存在服務器上。系統結構如圖1所示。

3 使用多線程和阻塞通信模式存在的局限

可視化遠程醫療服務器需要同時為多個專家端和醫務端提供服務,在傳統的阻塞通信模式中使用多線程技術來處理多客戶連接,一般需要服務器為每個客戶端建立一個線程。但使用多線程技術存在以下局限:

(1)Java虛擬機會為每個線程分配獨立的堆棧空間,工作線程數目越多,系統開銷就越大,而且增加了Java虛擬機調度線程的負擔,增加了線程之間同步的復雜性,提高了線程死鎖的可能性;

(2)當主線程接收客戶連接,在醫療服務過程中,服務器從網絡發送或接收數據時,線程常常進入阻塞狀態,這就使工作線程的許多時間都浪費在阻塞操作上,CPU的利用率降低,此外Java虛擬機需要頻繁地轉讓CPU的使用權。

由此可見,工作線程并不是越多越好。實驗表明,適量的工作線程會提高服務器的并發性能,但是當工作線程的數目達到某個極限而超出系統的負荷時,反而會降低并發性能,使得許多客戶端得不到服務器的及時響應。為了改善服務器性能,在遠程醫療系統中采用了Java非阻塞I/O通信技術。

4 Java非阻塞I/O工作原理簡介

在傳統的阻塞通信模式中,服務器在接受客戶連接后創建Socket對象與客戶進行通信,Socket對象由線程進行管理。當有多個客戶連接時,就需要多個線程分別處理服務器與各個客戶的通信。Java非阻塞I/O通信服務器程序只需要一個線程就能夠實現多個客戶端的連接、同時接收多個客戶端發送的數據,以及同時向多個客戶端發送響應數據。這種非阻塞通信采用了基于Channel(通道)、Selector(選擇器)、Buffer(緩沖器)的新模式。

非阻塞I/O通信中Channel是一個接口,功能類似于傳統I/O中的Stream,但通道具有雙向性,既可讀入,也可寫出。SocketChannel和ServerSocketChannel均可實現Channel接口,它們是 Socket和 ServerSocket的替代類,但比Socket和ServerSocket具有更多的功能,它支持非阻塞通信、可選擇通信、異步通信和套接字對等通信等。

由于網絡接收和傳送數據均比較緩慢,常常導致線程阻塞,影響系統性能。在Java非阻塞通信模式中使用Buffer來緩沖數據。SocketChannel和ServerSocketChannel對象一端連接著緩沖區,另一端連接著網絡。

ServerSocketChannel和SocketChannel在Selector中注冊連接就緒事件、讀就緒事件和寫就緒事件。注冊時創建一個SelectionKey對象,這個SelectionKey對象用來跟蹤注冊事件的句柄,其中包含有注冊該對象的通道和緩沖區等信息。Selector會一直監控已經注冊的事件。當通道中有數據需要讀取時,Selector中就有已注冊的讀就緒事件發生,這時調用相關的程序可將通道中的數據讀到緩沖區中,然后再提供給程序進行處理。同樣地,當有數據需要通過網絡發送時,數據先進入緩沖區,這時Selector中就發生寫就緒事件,程序再利用通道向網絡發送數據[1]。

非阻塞通信模式處理流程如下:

上述處理流程采用輪詢工作方式,當某一種操作就緒時,執行該操作,否則就查看是否還有其他就緒操作可以執行,線程不會因為某一個連接、讀、寫等操作還沒有就緒,就進入阻塞狀態。在非阻塞通信模式中,只需要一個線程管理Selector對象就可以了,而不需要多線程。并且只有檢測Selector對象時才有可能導致線程阻塞,因此可以大大提高系統的性能。

5 非阻塞通信在鄉村可視化遠程醫療系統中的應用研究

在鄉村可視化遠程醫療系統中,服務器端需要和各個客戶端建立連接、接受客戶端的操作請求并將操作結果返回給客戶端。服務器只需要使用一個線程就可以處理客戶端連接請求和向各個客戶端讀寫數據,服務器自身進行的數據庫操作可以使用另外的線程。

專家端和醫務端在服務器端的數據庫中進行查詢、插入和修改等操作,這些操作信息是各種SQL語句,服務器返回給專家端和醫務端的是查詢、保存或修改結果,它們可能是一個字符串、一條記錄,也可能是多條記錄。為了方便操作,這些信息均封裝成XML格式,根標志為<teleMedi></teleMedi>。這種格式封裝數據便于檢驗數據的完整性與正確性,也容易解析。在非阻塞通信中,除boolean類型以外,每種基本數據類型都有對應的緩沖區類,在本系統中使用ByteBuffer類對象數據緩沖區。程序中需要向網絡發送數據時,數據進入緩沖區前先要把字符數據編碼成字節數據,然后再由通道向網絡發送,而從網絡上接收的字節流數據先存放進緩沖區,解碼后再由程序處理。

在非阻塞通信模式中,一次完整的數據發送可能需要多次讀緩沖區,這避免了阻塞通信模式中讀取數據時間拖得過長而導致的線程阻塞。每次讀緩沖區后都要進行數據完整性檢查,由于采用XML格式封裝數據,所以很容易檢驗是不是讀取到了完整的數據。

鄉村可視化遠程醫療系統中每次通過網絡讀寫的數據長短不同。醫療中需要傳送的數據最常見的長度小于1 KB,因此緩沖區最初設定為1 KB,當數據超過這個長度時,將緩沖區的容量擴大一倍,如果超過 2 KB,再將緩沖區擴大一倍,如此類推。使用這種可伸縮的方式可以更有效地利用內存資源。

6 非阻塞通信在鄉村可視化遠程醫療系統中的實現[2]

在非阻塞模式下,服務器主程序MedicalSever只使用一個線程,使用Selector監控接收連接就緒事件、讀就緒事件和寫就緒事件。限于篇幅,本文僅介紹幾段主要的代碼。

(1)MedicalServer類的構造方法負責啟動服務器,把它綁定到一個本地端口,主要代碼如下:

(2)MedicalSever類的 serve()方法負責輪詢 Selector,主要代碼如下:

(3)處理連接就緒事件方法中的主要代碼如下:

(4)處理讀就緒事件方法中的主要代碼如下:

在非阻塞模式下,sChannel.read(buff)方法無法保證一次把全部數據都讀完,因此只好把每次讀到的數據先存放到buff中,并判斷每次讀到的數據是否以</teleMedi>結尾,當數據讀取完整了,再復制到sBuffer中提交給程序。

(5)處理寫就緒事件方法中的主要代碼如下:

(6)當每個緩沖區容量不夠時,需要擴大緩沖區,主要代碼如下:

鄉村可視化遠程醫療系統中使用Java非阻塞I/O通信技術,可以只使用一個主線程就能實現網絡連接、讀和寫操作,避免了多線程中讀或寫引起的線程阻塞,大幅降低了服務器應用程序的開銷,有效地提高了系統的性能。

[1]吳易,王凌.Java技術在 P2P環境下的應用[J].微計算機信息,2005(3):154-155.

[2]JavaTMPlatform Standard Edition 6 API Specification[S].http://download.oracle.com/javase/6/docs/api/.

猜你喜歡
可視化
無錫市“三項舉措”探索執法可視化新路徑
基于CiteSpace的足三里穴研究可視化分析
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
三維可視化信息管理系統在選煤生產中的應用
選煤技術(2022年2期)2022-06-06 09:13:12
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
可視化閱讀:新媒體語境下信息可視化新趨勢
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 干中文字幕| 精品国产aⅴ一区二区三区| 综合色在线| 久久99久久无码毛片一区二区| 亚洲色大成网站www国产| 亚洲一级毛片免费观看| 国产主播福利在线观看| 秋霞午夜国产精品成人片| 日韩视频福利| 天堂亚洲网| 亚洲色图欧美激情| 亚洲国产综合第一精品小说| 国产主播一区二区三区| 十八禁美女裸体网站| 亚洲天堂久久久| 欧美精品成人| 青青青视频蜜桃一区二区| 亚洲熟女中文字幕男人总站| 三区在线视频| 国产人妖视频一区在线观看| 国产一二三区在线| 91精选国产大片| 欧美激情首页| 老熟妇喷水一区二区三区| 精品国产亚洲人成在线| 99热国产这里只有精品无卡顿" | 九九九国产| 国产91久久久久久| 四虎国产精品永久一区| 免费国产福利| 69综合网| 色综合天天娱乐综合网| 欧美精品啪啪一区二区三区| 在线观看免费AV网| 国产人成在线视频| 国产一级视频久久| 国产无码性爱一区二区三区| 久久精品中文字幕少妇| 丝袜亚洲综合| 99热这里都是国产精品| 美女无遮挡免费视频网站| a级毛片在线免费| 日韩精品高清自在线| 亚洲日韩精品综合在线一区二区| 亚洲人成网站日本片| 在线观看无码av五月花| 亚洲无码精彩视频在线观看| 中文字幕日韩久久综合影院| 成人中文在线| 巨熟乳波霸若妻中文观看免费| 亚洲av无码成人专区| 亚洲IV视频免费在线光看| 国产一级α片| 欧美激情成人网| 风韵丰满熟妇啪啪区老熟熟女| 国产全黄a一级毛片| 国产精品成人AⅤ在线一二三四| 免费又爽又刺激高潮网址| 国产免费网址| 秋霞国产在线| 久久综合伊人77777| 精品剧情v国产在线观看| 亚洲国产精品一区二区第一页免| 欧美在线三级| 超碰精品无码一区二区| AV在线天堂进入| 亚洲人视频在线观看| 一级毛片不卡片免费观看| 欧洲在线免费视频| 啊嗯不日本网站| 在线国产欧美| 亚洲精品第一在线观看视频| 国产一区成人| 国产手机在线小视频免费观看| 日韩资源站| 一区二区午夜| 久久久久免费精品国产| 国产女人18毛片水真多1| 亚洲国语自产一区第二页| 欧美在线网| 日韩欧美国产成人| 在线观看91香蕉国产免费|