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

基于LiveConnect技術的SVN Java Web插件的設計與開發

2015-09-18 05:54:00周文峰任洪敏
現代計算機 2015年13期
關鍵詞:功能

周文峰,任洪敏

(上海海事大學信息工程學院,上海201306)

基于LiveConnect技術的SVN Java Web插件的設計與開發

周文峰,任洪敏

(上海海事大學信息工程學院,上海201306)

隨著計算機和網絡技術的高速發展,互聯網已經日益成為人們默認的工作環境,而目前使用最為廣泛的Subversion版本控制系統,只能在客戶端工作副本上工作,滿足不了人們在Web上管理文件的需求,因此重點研究基于LiveConnect技術和SVNKit技術開發一款實現SVN基本功能的SVN JavaWeb插件,該插件可以在Web環境上實現對工作區文件的管理,操作靈活,并且可以輕松嵌入其他JavaWeb項目中,以使該插件可以廣泛使用。

LiveConnect;SVN;SVNKit;Applet數字簽名;JNLP

0 引言

自20世紀70年代,配置控制理論第一次被提出以來,在版本控制工具領域中出現了很多配置管理工具如CVS、VSS、Git、SVN等,其中CVS是很多中小軟件公司使用最頻繁的版本控制工具,但由于它不能對目錄實現版本控制,不能記錄目錄的版本歷史,在軟件開發中不能實現文件的“移動”、“重命名”、“拷貝”等操作,使之逐漸被SVN(Subversion)取代。2000年2月, CollabNet公司啟動SVN項目,它的目標就是實現CVS的絕大部分功能,并充分考慮現有的CVS用戶,使用方式上類似CVS。由于SVN的源代碼是公開的,所以最近幾年來,Subversion在國內發展很迅速,被廣泛應用于大小軟件公司,對各種資源文件進行管理。Subversion目前使用最為廣泛的開源版本控制系統,和客戶端TortoiseSVN一起管理工作區文件。它的核心是版本庫,儲存所有隨時間而變化的數據。

隨著Web技術的不斷發展,互聯網已經日益成為人們默認的工作平臺,傳統的客戶端工作區及管理客戶端工作區文件的版本控制軟件因不能滿足人們在Web環境上工作的需求而逐漸向互聯網上轉移。因此,本文開發的LiveSVNPlugin能夠解決在Web工作區管理文件的問題,且是采用最新的RIA(Rich Internet Application,富互聯網應用)[1]技術開發的Java Web插件。RIA既具有傳統B/S結構的Web應用在開發、部署和維護方面的便利優勢,也具有桌面應用在交互能力和表現能力上所具有的美好體驗。LiveSVNPlugin采用了最新的Web開發技術,如HTML5、CSS3、JQuery、LiveConnect等,操作靈活,集成方便,很容易嵌入其他Web項目中,用于實現對Web工作區上文件的版本控制。該插件實現了Subversion客戶端的基本功能,相對于目前使用的客戶端版本控制軟件,在Web領域具有很大使用價值,必定會是版本控制系統領域的一個突破。

1 基于LiveConnect技術的LiveSVNPlugin框架

1.1LiveConnect技術介紹

LiveConnect技術[1]是Web瀏覽器允許Java和JavaScript在Web頁面內彼此交互溝通的一個新特性。它是目前實現Java App let應用的一個DOM接口,允許每個程序操縱其包含的網頁,包括Java類調用JavaScript方法和訪問JavaScript環境及JavaScript訪問Java對象和調用Java方法。LiveConnect技術提供了兩個Java Applet的API包用于與JavaScript通信。這兩個包是netscape.javascript和netscape.plugin。其中netscape. javascript在客戶端和服務器端上都可以使用,包含兩個類:

netscape.javascript.JSObject和netscape.javascript. JSException,但netscape.plugin只能使用在客戶端,包含一個類:netscape.plugin.Plugin。

雖然LiveConnect通過連接JavaScript與Java可以創建非常強大的應用程序,但是LiveConnect并不完全支持所有瀏覽器,目前,僅Netscape瀏覽器和Mozilla Firefox完全支持這個特性。通過LiveConnect技術可以開發出各種瀏覽器和客戶端交互的豐富的應用程序。Applet與JavaScript的具體通信過程如下:

(1)JavaScript調用Java Applet:

window.document.SVNApplet.SVNFunction();

其中,SVNApp let是Java Applet應用,SVNFunction()是SVNApplet里面的public類型的方法。

(2)Java Applet調用JavaScript方法:

//獲取JavaScript窗口句柄,引用當前文檔窗口this值object類

JSObjectwin=JSObject.getWindow(this);

//調用頁面上的js方法showMsg()

Object obj[]=new Object[1];

obj[0]=info;

win.call("showMsg",obj);

其中,要加載第三方插件(import netscape. javascript.JSObject;),showMsg是JavaScript里面的函數。

function showMsg(obj)

{

......

}

1.2LiveSVNPlugin功能結構圖

LiveSVNPlugin插件是一款基于LiveConnect技術的Java Web插件,它的功能結構圖如圖1所示。

2 基于SVNkit技術的LiveSVNPlugin技術實現

2.1SVNkit技術介紹

SVNKit(JavaSVN)[5]是一個完全基于Java的訪問Subversion版本控制系統的一個客戶端工具庫,它具有很高的獨立性,具有跨操作系統的特性。Subversion是一家領先的和快速增長的開源版本控制系統,而SVNKit使Subversion更接近Java世界!SVNKit是純粹的Java工具包,它實現了Subversion所有功能,提供了在Java應用程序上操作Subversion工作副本及訪問和操作Subversion版本庫的一切API接口,并且兼容Subversion的最新版本,同時也支持SSH、HTTP、SVN和文件傳輸協議。

SVNKit對外提供的API編程接口中,主要有兩個High Level API和Low Level API,其中,通過High Level API接口,幾乎可以實現Subversion的所有操作,包括檢出、更新、提交、查看歷史、比較差異和瀏覽版本庫等。Low Level API接口封裝了Subversion版本庫的連接細節,常用它來連接和直接操作版本庫。通過SVNKit技術,可以開發出自己所需要的具有SVN特色各種應用程序。

圖1 LiveSVNPlugin功能結構圖

2.2LiveSVNPlugin內部功能結構類圖

在本項目中,登錄用戶可以看到遠程工作空間上自己有權限的目錄和文件,并可以看到這些目錄和文件受(.svn)控制的狀態。它們的實現是基于異步加載的方式和SVNKit的相關方法在Servelet里面實現的,包括ourClientManager.getStatusClient().doStatus和manager.parseRootPaths(new User(userName),null))等方法。

通過LiveSVNPlugin插件,實現了在Web環境下對客戶端的存取操作,主要包括checkout、update、commit、delete、add、rename等SVN客戶端的常用操作,這些功能主要通過SVNkit里面的High Level API接口的doStatus、doCommit、doAdd、doUpdate、doDelete等方法實現。

LiveSVNPlugin插件功能原理的結構類圖如圖2所示。

圖2 LiveSVNPlugin和SVNKit功能結構對應圖

3 LiveSVNPlugin插件簽名與部署

在LiveSVNPlugin部署方面采用的是JNLP技術。JNLP(Java Network Launching Protocol,Java網絡加載協議)是Java提供的一種可以通過瀏覽器直接執行Java應用程序的途徑,它可以在客戶端瀏覽器上運行Java小應用程序。JavaWeb應用以JNLP的方式發布,版本升級,不需要再向所有用戶發布版本,只需要更新服務器的版本,這與傳統的Windows應用的版本發布是完全不同的,使Java應用程序有了Web應用的優點。

由于Java Applet程序可以從客戶端瀏覽器上下載到本地客戶端,然后在客戶端運行,這樣就導致惡意的Applet程序也有可能會破壞客戶端系統。并且因為Java安全機制的限制[3],Java把Applet限定運行在瀏覽器規定的“沙盒(SandBox)”環境區域中,在這個區域中不能實現Applet對本地文件的存取,因此我們需要對Applet進行簽名認證,使簽名后的Applet具有普通Java應用一樣的權限,未簽名的Applet依然運行在“沙盒”中,這樣可以使客戶端的安全問題得到解決。Applet數字簽名技術就是為突破JRE安全機制的限制而提出的解決方案。在本系統中主要是通過Applet實現SVN操作來完成對遠程工作區文件的存取。

3.1在HTML頁面嵌入Applet標簽

<applet name="SVNApplet"width="0"height="0">

<PARAM NAME="jnlp_href"VALUE="svn/svnApp let. jnlp">

</applet>

3.2JNIP部署Applet

采用JNLP文件[6]部署Applet,除了具有簡化HTML代碼,把Applet需要Logo,提示信息,引用的第三方插件等資源封裝到一個JNLP文件中,對Applet維護方便,同時可以自動下載并安裝最新JRE版本的功能。部署過程如下:

其中,SVNApplet.jar是通過MyEclipse把SVNApplet.class打的JAR包也就是上文提到的LiveSVNPlugin插件),其他JAR包是系統所引用的第三方插件包,<all-permissions/>表示允許所有簽名的Applet操作。

3.3Applet數字簽名[4]

使用JDK自帶的keytool和jarsigner工具對生成的SVNApplet.jar文件簽名。

步驟如下:

(1)將Applet class文件打成jar包,命令如下:使用JAR打包命令:jar cvfm SVNApplet.jarmanifest.mf*.class lib*.jar

或MyEclpse自帶打包工具到處JAR包

(2)生成秘鑰庫,這個過程需要輸入密匙庫的密碼,命令如下:

keytool-genkey-keystore SVNApplet.keystore-alias SVNApplet

(3)生成簽名時所要用的證書,命令如下:

Keytool-export-keystore SVNApplet.keystore-alias SVNApplet-file SVNApplet.cer

(4)用上一步產生的證書對jar文件進行簽名,命令如下:

jarsigner-keystore SVNApplet.keystore SVNApplet.jar SVNApplet

簽名結果如圖3所示:

圖3 LiveSVNPlugin簽名結果圖

如果看到“jar已簽名”,如圖1所示,并且新生成SVNApplet.keystore和SVNApp let.cer兩個文件,說明LiveSVNPlugin簽名成功。

隨著瀏覽器和JRE的不斷升級,Java的安全機制也不斷變化,從Java 7 Update 51開始,Java不在支持除Sun公司以外其他機構和個人發布的簽名證書。為解決這一問題,Java引入了“例外站點”列表功能,在Java控制臺的例外站點中加入項目URL地址即可。運行項目,初次運行會彈出簽名證書認證窗口,如圖4所示。

圖4 RIASVN項目LiveSVNPlugin安全驗證圖

其中RIASVN是項目名稱,LiveSVNPlugin在詳細信息中可以看到。如果看到簽名的姓名是自己信任的,則選中“接受”,然后點“運行”。第一次運行該網頁會有證書提示,選擇運行以后再運行此網頁將不再提示驗證信息。如果選擇“取消”,則只可以瀏覽網頁,不可以進行存取等其他交互操作,下次再運行此網頁,仍然還會有證書確認信息彈出。

在Windows Java控制臺查看緩存文件,若看到插件LiveSVNPlugin,右鍵查看到LiveSVNPlugin詳細信息,則說明JNLP部署LiveSVNPlugin成功完成,如圖5所示:

圖5 控制臺應用緩存圖

4 結語

SVN是近年來崛起的版本管理軟件系統,是使用最廣泛的版本管理軟件之一,而且功能齊全,但是隨著Web技術的不斷發展,為了適應在線管理文件的需要,版本控制軟件在富互聯網(RIA)上的需求越來越多,SVN在RIA上有很大的研究價值和發展空間,本文重點研究SVN在互聯網上的應用而開發的LiveSVNPlugin插件,實現了在Web上所具有的SVN的基本功能,主要有checkout、update、commit、delete、add、rename,資源空間和本地資源交互(上傳和下載)等。和TortoiseSVN的強大功能相比還有很大差距,相關工作還需要繼續探索,同時為了服務于Web,SVN版本倉庫在互聯網上的遠程管理也必將會是SVN以后的研究重點。

[1]Rich Internet Application高級編程:后AJAX時代,清華大學出版社,2009.01

[2]使用Subversion進行版本控制,北京出版社,2009

[3]朱連章.通過Applet與Servlet通信突破Applet的限制.微計算機信息,2004(4)

[4]劉丹,褚蓓蓓.用Java語言實現電子政務中的數字簽名[J].計算機安全,2008(9),85-87

[5]TMate.SVNKit[CP/OL].[2014-6-18].http://www.svnkit.com/.

[6]ReneW.Schmidt.Java Network Lanching Protocol and APISpecification[M].California,2001.

LiveConnect;SVN;SVNKit;Applet Digital Signature;JNLP

Design and Developm entof SVN Java Web Plug-in Based on LiveConnect

ZHOUWen-feng,REN Hong-min

(College of Information Engineering,ShanghaiMaritime University,Shanghai 201306)

With the rapid development of computer and network technology,the Internet has increasingly become the default platform.Nowadays, Subversion is amostwidely used,free and open source version control system.The working place of SVN is only limited to client's compute,it can'tmeet the needs ofmanagement files in theWeb.So,focuses to develop a plug-in that called LiveSVNPlugin tomanage resource files based on SVN and LiveConnect technology,and it has achieved the basic functions of SVN.The LiveSVNPlugin can be achieved on the workspace for file management in the Web environment,flexible operation,and can be easily embedded in other Java Web projects tomake itused widely.

1007-1423(2015)16-0051-05

10.3969/j.issn.1007-1423.2015.16.012

周文峰(1987-),男,安徽渦陽人,碩士研究生,研究方向為數據庫開發與應用、軟件開發與系統架構

任洪敏(1969-),男,上海浦東人,博士,副教授,研究方向為軟件體系結構、軟件復用、軟件項目管理

2015-04-29

2015-05-19

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产成人调教在线视频| 91精品国产福利| 亚洲动漫h| 亚洲欧洲天堂色AV| 国产在线视频福利资源站| 2021国产精品自产拍在线观看| 一级毛片免费高清视频| 欧美在线视频不卡第一页| 日本免费一级视频| 999国内精品久久免费视频| 超碰精品无码一区二区| 国产清纯在线一区二区WWW| 国产小视频免费观看| 在线日本国产成人免费的| 色噜噜综合网| 三上悠亚一区二区| 成人免费一级片| 欧美区一区| 色综合天天娱乐综合网| 中文字幕调教一区二区视频| 日韩麻豆小视频| 毛片一级在线| 国内精品视频区在线2021| 国产亚洲精久久久久久无码AV| 极品尤物av美乳在线观看| 免费观看成人久久网免费观看| 亚洲国产成人久久77| 成人在线第一页| 99热这里只有精品久久免费| 国产视频只有无码精品| 久久国产拍爱| 国产成人亚洲毛片| 欧美午夜在线观看| 精品国产一区二区三区在线观看| 人与鲁专区| 日本不卡在线播放| 国产又色又刺激高潮免费看| 亚洲熟女中文字幕男人总站| 国产日本欧美亚洲精品视| 日本免费精品| 久久性视频| 亚洲区一区| 一区二区影院| 国产女人在线观看| 99视频国产精品| 看国产毛片| 最近最新中文字幕在线第一页| 97超爽成人免费视频在线播放| 中文字幕无码中文字幕有码在线| 老司机精品一区在线视频| 亚洲人成网址| 狠狠色丁香婷婷| 夜夜拍夜夜爽| 97av视频在线观看| 欧美精品在线观看视频| 在线免费无码视频| 久久精品波多野结衣| 色综合日本| 国产菊爆视频在线观看| 波多野结衣视频网站| 99在线视频网站| 国产va在线| 啪啪啪亚洲无码| 久久精品视频一| 日韩美女福利视频| av免费在线观看美女叉开腿| 91午夜福利在线观看精品| 亚洲av片在线免费观看| 在线五月婷婷| 亚洲浓毛av| 亚洲VA中文字幕| 久久毛片网| 欧美影院久久| 玖玖免费视频在线观看| 毛片免费在线视频| 日韩av无码DVD| 超碰91免费人妻| 99久久免费精品特色大片| 91视频区| 狠狠亚洲婷婷综合色香| 国产91特黄特色A级毛片| 国产成人免费|