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

基于JXTA的電子白板的設計與實現

2009-04-29 00:00:00黃麗萍
電腦知識與技術 2009年33期

摘要:JXTA技術主要用于提供P2P系統所需的基礎服務。該文分析了JXTA技術的體系結構和核心協議,利用JXTA技術和Java語言設計和實現了一個電子白板系統。論文對電子白板系統進行了研究與探討,介紹了圖形對象的繪制、傳輸、和遠程恢復過程中的關鍵方法,從而實現了電子白板中圖形的共享。

關鍵詞:JXTA;P2P;電子白板;消息;管道

中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2009)32-9257-03

Design and Implement of WhiteBoard System Based on JXTA

HUANG Li-ping

(Huaian College of Information Technology, Huai'an 223003, China)

Abstract: JXTA technology is used to provide an infrastructure service for P2P application system. The system structure and core protocol of JXTA technology are analyzed,A WhiteBoard system is designed and achieved by using of JXTA technology and Java language. This paper Researches and explores the whiteboard system, introduces the key methods of drawing、transmission and recovery of the graphic objects, achieving a shared whiteboard system.

Key words: JXTA; P2P; whiteboard; message; pipe

隨著社會的不斷發展和進步,對個體之間的協作程度的要求越來越高。電子白板是以計算機支持的協同工作為基礎,在多成員間實現信息實時交流與共享的網絡交流系統。分布在各地的成員都能看到電子白板中的內容,從而實現互動。

P2P網絡研究的廣泛開展和大量成果出現,使對等網絡(P2P)技術在實際應用中已經越來越被重視。同時,由于JXTA提供了P2P應用的核心模塊,并成為P2P網絡的一個開放的標準,因此利用JXTA平臺,采用P2P技術來開發一個電子白板在技術上是可行的。本文主要探討在對共享圖形對象進行傳輸時的消息處理和建立管道來進行消息的傳輸。

1 JXTA概述

JXTA是由SUN公司推出的一組開放的通用P2P協議,它為開發P2P應用程序提供了一整套開放協議和開源實現。對P2P節點的共同行為做了標準化。

1.1 JXTA應用程序的體系結構

JXTA應用程序的體系結構從下至上分為三個層次,分別為核心層、服務層和應用層。

核心層(JXTA Core)封裝了P2P網絡的一些最基礎的要素,包括為P2P應用程序提供關鍵機制的模塊。這些關鍵機制包括發現、傳輸、節點加入、創建組還有相關的安全原語。在理想的情況下,該層由所有的P2P設備共享,使得它們具有協同工作的能力。

服務層(Services)包含一些網絡服務。這些服務可能并不是P2P網絡所必不可少的,但卻非常有用。這些服務包括搜索和索引、目錄、存儲系統、文件共享、分布式文件系統、資源聚合和租借、協議轉換、驗證以及PKI服務等。

應用層(Applications)包括一些應用的實現,比如P2P即時消息、文件和資源共享、娛樂內容管理和轉發、P2P電子郵件系統、分布式驗證系統等。服務層和應用層之間并沒有嚴格的界限,一個客戶的應用可能是另一個客戶的服務。

1.2 JXTA協議

JXTA協議是JXTA技術的核心。JXTA通過定義一系列協議來進行對等體之間的交流通信。對等體通過協議可以發布自己的通告來廣播自己的資源,還可以在對等網絡中發現其他的對等體,并且發現網絡資源,以及路由消息等。

當前的JXTA定義了六種協議,如圖1所示。一類是核心協議,包括對等點解析協議和端點路由協議,這兩個協議是所有JXTA應用都必須實現的協議,它為JXTA應用提供了通信基礎。其他四種協議是標準服務協議,標準服務協議可以根據需要任意選擇,它為JXTA應用開發打下了良好的基礎。

2 電子白板的設計與實現

基于JXTA的電子白板主要包括本地圖形的繪制、圖形的傳輸以及遠程圖形的恢復三個部分。

2.1 本地圖形的繪制

在程序設計過程中,首先定義一個抽象類ShapeObj做為基類,在其中定義了抽象方法draw()、draw(Point start, Point end)、fill(Color fillColor)、SelectShape(Point pt)和move(Point pt, Point pt2)。draw()和draw(Point start, Point end)方法用于實現具體的繪圖功能,fill(Color fillColor)方法用于設置圖形的填充顏色,SelectShape(Point pt)方法用于定義圖形被選擇時的操作,move(Point pt,Point pt2)方法用于定義圖形移動時的操作。每一種圖形元素都對應的定義一個類,在各個派生類中對ShapeObj類中的抽象方法提供方法定義。電子白板的界面圖如圖2所示。

2.2 圖形的傳輸

用戶在電子白板上進行任何操作時,其結果都會傳輸給工作組的其他用戶,并同步顯示在其他用戶的電子白板上。傳輸過程中被傳送的是不同類型的消息。在創建各種類型的消息時,必須先對圖形對象序列化,然后再把它添加到消息中,通過管道發送給其他用戶。

2.2.1 消息的格式

系統中使用了很多種不同的消息,各種類型的消息并不完全一樣,有一些相同的域,有些則不一樣。為了減少傳輸的數據量,沒有使用統一的消息格式。下面是每種類型的消息都具有的公共域:

不同類型的消息特有的域如下:

繪制圖形消息(shapeMessage):

刪除圖形消息(removeMessage):

選擇圖形消息(lockMessage):

清空圖形消息(clearMessage):

clearMessage清除白板上的所有圖形,沒有設置特有的域。

2.2.2 消息的形成

在生成消息的過程中,首先生成消息的公共域,接著根據不同的消息類型,生成各類消息的數據域。在生成消息公共域的過程中,首先構造一個Message對象msg,然后調用Message類的addMessageElement()方法向msg中添加各個消息元素。其中StringMessageElement構造一個元素數據為字符串的消息元素。其中關鍵代碼如下:

//構造一個Message類的對象

Message msg = new Message();

//添加消息元素version

msg.addMessageElement(WhiteboardProtocol.nameSpace,

new StringMessageElement(versionTag,version, 1));

2.2.3 管道的建立

JXTA對等點之間使用管道來發送消息。管道對所傳送的數據沒有限制,它支持所有對象的傳送。在建立管道的過程中,首先用PeerGroup類的getPipeService()方法來獲取管道服務的實例,管道服務用于創建輸入和輸出管道。然后用createInputPipe()方法來創建帶有偵聽器的隱蔽輸入管道,輸入管道最初是未連接的。用createOutputPipe()創建隱蔽輸出管道,返回的OutputPipe對象將向具有等價輸入管道的任何點發送消息。創建管道的主要代碼如下所示:

//構建管道通告

PipeAdvertisement pipeAdvt =

(PipeAdvertisement) AdvertisementFactory.

newAdvertisement(PipeAdvertisement.getAdvertisementType());

//用createPipeID()方法生成管道ID

PipeID pid = createPipeID(pg.getPeerGroupID(), name, 1);

//設置管道ID、名稱和類型

pipeAdvt.setPipeID(pid);

pipeAdvt.setName(name);

pipeAdvt.setType(\"JxtaPropagate\");

//在本地和遠程發布管道通告

pg.getDiscoveryService(). publish(pipeAdvt);

pg.getDiscoveryService().remotePublish(pipeAdvt);

//創建輸入管道和輸出管道

outputPipe=pg.getPipeService().createOutputPipe(pipeAdvt,2000L);

inputPipe=pg.getPipeService().createInputPipe(pipeAdvt,listener);

2.2.4 消息的傳輸

在啟動電子白板模塊的時候,每個對等點根據對等組ID構建一個管道通告,然后在JXTA網絡中發布自己的管道通告,并根據管道通告建立輸入管道和輸出管道。在電子白板系統中一個用戶向對等組中的其他所有用戶發布消息。在激發相應的鼠標事件時,根據用戶的不同操作進行消息編碼,形成不同類型的消息,并通過調用輸出管道的send()方法將消息發送出去。輸入管道一直監聽是否有消息到達,一旦它發現有消息到達,將從管道中抽取出消息數據,消息解碼過程將消息中的數據提取出來,并根據所提取的數據更新白板。利用管道進行圖形數據傳輸的大概過程如圖3所示。

2.3 遠程圖形的恢復

遠程圖形恢復就是在接收到消息后進行圖形的重新繪制。它通過分析管道消息來重新繪制圖形,整個過程不需要用戶干預。

當消息到達輸入管道以后,通過對消息的解碼,得到消息的各個元素。根據消息的不同類型,執行不同的操作。如果消息類型是shapeMessage,將圖形信息反序列化后存入Vector容器中,然后更新白板;如果消息類型是clearMessage,將Vector容器清空后更新白板;如果消息類型是removeMessage,將移除Vector容器中編號為key的圖形,然后更新白板;如果消息類型為lockMessage,則鎖定Vector容器中編號為key的圖形。

3 結束語

該文在分析了JXTA的體系結構及核心協議后,研究設計了基于JXTA的電子白板系統。對系統的各個功能模塊進行了詳細設計。側重分析了在圖形對象傳輸過程中管道的建立、消息的創建和圖形對象的傳輸。采用P2P技術實現了多點之間的交流,減輕了服務器的負擔,并且實現了多人的協同操作,具有很強的互動性。在進一步的工作中,還可以增加對多媒體信息的處理,滿足用戶對聲音、視頻交流的需要,以設計出功能更加完善的電子白板系統。

參考文獻:

[1] 楊天路.P2P網絡技術原理與系統開發案例[M].北京:人民郵電出版社,2007:143-175.

[2] Oaks S,Traversat B,Li Gong等著.JXTA技術手冊[M].技橋,譯.北京:清華大學出版社,2004:16-48.

[3] 許斌.JXTA-Java P2P網絡編程技術[M].北京:清華大學出版社,2003:45-70.

[4] 沈洪敏.基于JXTA的P2P程序設計的研究[D].成都:四川大學,2006.

[5] 陶瑜.基于JXTA的P2P網上拍賣系統的設計[J].電腦知識與技術,2008(12).

[6] JXTA-Download[EB/OL].[2009-09-10].http://download.java.net/jxta/.

主站蜘蛛池模板: 97国产在线视频| 国产免费a级片| 亚洲国产清纯| 色婷婷亚洲综合五月| 国产国拍精品视频免费看| 中文国产成人精品久久| 中国国产高清免费AV片| 国产成人精品男人的天堂| 91亚洲影院| 国产精品亚欧美一区二区| 免费在线看黄网址| 亚洲最大福利网站| 一区二区三区精品视频在线观看| 91一级片| 成人福利在线视频免费观看| 国产导航在线| 午夜视频日本| av色爱 天堂网| 区国产精品搜索视频| 亚洲无码四虎黄色网站| 在线国产综合一区二区三区| 亚洲人成影视在线观看| 无遮挡一级毛片呦女视频| 久久综合激情网| 国产成人精品在线| 国产精品大尺度尺度视频| 无码日韩精品91超碰| 一级毛片免费播放视频| 免费一级无码在线网站| 亚洲无码37.| 亚洲av成人无码网站在线观看| 久久香蕉国产线看观| 久久这里只有精品66| 国产成人a在线观看视频| 国产成人亚洲欧美激情| 国产乱子伦精品视频| 久久中文字幕不卡一二区| 亚洲欧美人成电影在线观看| 真人免费一级毛片一区二区| 亚洲综合久久一本伊一区| 欧美精品另类| 刘亦菲一区二区在线观看| 呦女亚洲一区精品| 婷婷色狠狠干| 亚洲欧美日韩中文字幕在线一区| 尤物精品国产福利网站| 亚洲欧美成aⅴ人在线观看| 国产黄网永久免费| 五月天丁香婷婷综合久久| 好吊日免费视频| 国产91丝袜在线播放动漫 | jizz在线免费播放| 2021精品国产自在现线看| 国产在线97| 午夜精品福利影院| 九九久久99精品| 久久这里只有精品8| 国产成人综合日韩精品无码不卡| 波多野结衣一二三| 亚洲久悠悠色悠在线播放| 亚洲一区国色天香| 国产va在线观看免费| 亚洲人成成无码网WWW| 亚洲成人www| 日韩在线第三页| 国产精品极品美女自在线看免费一区二区| 日本福利视频网站| 91丝袜乱伦| 99热国产这里只有精品9九| 高清视频一区| 亚洲av无码成人专区| 亚洲av成人无码网站在线观看| 欧美在线视频a| 福利一区在线| 日韩中文无码av超清| 97视频在线精品国自产拍| 中文字幕va| 亚洲国产成人在线| 午夜福利视频一区| 欧美日韩在线亚洲国产人| 在线精品视频成人网| 中文字幕无码av专区久久 |