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/.

主站蜘蛛池模板: 欧美中文一区| 日韩欧美中文字幕在线韩免费 | 午夜视频在线观看区二区| 国产精品无码翘臀在线看纯欲| 久草视频中文| 老色鬼欧美精品| 亚洲妓女综合网995久久| 波多野结衣无码AV在线| 天天躁夜夜躁狠狠躁躁88| 日本在线欧美在线| 国产特一级毛片| 亚洲精品视频在线观看视频| 国产JIZzJIzz视频全部免费| 欧美精品三级在线| 中文字幕在线观| 久久6免费视频| 国产99视频精品免费观看9e| 又爽又大又黄a级毛片在线视频| 国产美女精品人人做人人爽| 亚洲系列无码专区偷窥无码| 91精品日韩人妻无码久久| 中文字幕 欧美日韩| 日韩欧美中文| 国产精品嫩草影院av| 国产福利大秀91| 久久午夜夜伦鲁鲁片不卡| 日韩精品一区二区深田咏美| 中文无码精品A∨在线观看不卡| 高清视频一区| 国产一级小视频| 日本不卡在线播放| 国内丰满少妇猛烈精品播| 亚洲日韩每日更新| 国产精品视频3p| 久久精品娱乐亚洲领先| 无码一区中文字幕| 成人毛片免费在线观看| 91偷拍一区| a毛片免费观看| 九九九国产| 日韩毛片在线播放| 国产人成在线观看| 伊人国产无码高清视频| 欧美第一页在线| 又粗又大又爽又紧免费视频| 国产一级视频久久| 亚洲高清国产拍精品26u| 中文字幕66页| 婷婷在线网站| 中文字幕66页| 丝袜无码一区二区三区| 国产精品美乳| 91亚洲国产视频| 日韩成人免费网站| 久久这里只有精品66| 日本www色视频| 国产一级小视频| 99国产在线视频| 亚洲AV人人澡人人双人| 成人字幕网视频在线观看| 中文字幕久久亚洲一区| 国产女人爽到高潮的免费视频 | 国产aⅴ无码专区亚洲av综合网| 国产国产人在线成免费视频狼人色| 91久久大香线蕉| 国产成人精品一区二区不卡| 精品国产一区91在线| 18禁高潮出水呻吟娇喘蜜芽| 狼友av永久网站免费观看| 99久久成人国产精品免费| 又粗又大又爽又紧免费视频| 国产丝袜无码精品| 色综合中文| 美女被操91视频| 91视频国产高清| 国产99久久亚洲综合精品西瓜tv| 丁香婷婷久久| 国产丝袜啪啪| 四虎AV麻豆| 99视频在线精品免费观看6| 素人激情视频福利| 99视频在线精品免费观看6|