《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于JAVA實現(xiàn)基于本體的Web服務發(fā)現(xiàn)

基于JAVA實現(xiàn)基于本體的Web服務發(fā)現(xiàn)

2009-02-02
作者:張 釙 朱 倩 李涓子 王克宏

1、引言?

隨著INTERNET應用的普及和軟件技術的進步,基于Web的網(wǎng)絡計算模式或INTERNET計算模式得到了廣泛的重視和應用。目前,面向Web應用的三層結構(或多層結構)、構件化的商務邏輯封裝、基于XML和Web Services的自動電子商務等理論和技術深入人心。而現(xiàn)有的這些Web技術并不能真正解決人們期待已久的智能搜索引擎、智能信息代理、智能交易代理等基于Web的個性化、智能化的服務。這正是語義Web(Semantic Web)要解決的問題。語義Web是對當前Web的一種擴展,它允許用戶更簡便地查找、共享以及組合信息。用本體來改進目前Web Services,使之成為語義Web服務(Semantic Web Services),正是目前國際上語義Web研究中的共識?;诖?,W3C,DARPA等研究機制定了基于本體的,應用于Web的技術標準,如RDF、DAML和OWL等。?

同時,基于語義的自動Web Services發(fā)現(xiàn)機制是自動Web Services協(xié)作機制中的重要一環(huán),。提出這個問題的關鍵因素來源于Web Services本身的發(fā)展。因為隨著Web Services的不斷走向實際應用,所提供的Web Services也越來越豐富,簡單的基于UDDI的Web Services發(fā)現(xiàn)機制已經(jīng)不能滿足這種不斷發(fā)展的需要。?

本文介紹的正是這樣一種Web Services發(fā)現(xiàn)系統(tǒng),此系統(tǒng)采用Struts基礎構架實現(xiàn),并充分利用了已經(jīng)取得成果WODOS(Web Oriented Distributed Ontology System),展現(xiàn)了JAVA技術的可擴展性可重用性。?

2、Struts介紹?

Struts是Apache公司Jarkata工程提供的開發(fā)Web應用程序的框架(Framework)。它具有組件的模塊化,靈活性和重用性優(yōu)點,同時簡化了基于MVC的Web應用程序開發(fā)。Struts框架基于Java技術,Web應用程序開發(fā)人員通過Struts可以充分利用面對對象設計、代碼重用以及“編寫一次、到處運行”的優(yōu)點。除此之外,Struts主要對應用程序頁面顯示、表示和數(shù)據(jù)的后臺處理代碼進行了抽象和分離,使得模塊易于劃分和管理,代碼易于維護。?

3、用MVC分析Struts?

接下來從MVC(Model-View-Control)角度觀察Struts框架中的組件:

1 Struts概覽

?????? MVC模式劃分:

*???????? 視圖

Struts采用JSP作為視圖。JSP頁面使用定制標簽,全部表單元素都使用定制標簽? 編碼,這樣頁面能夠很方便同控制器交互。每個表單都通過映射JSPServlet的請求這個方式指向一個控制器的特定入口。同時,Struts包含擴展自定義標簽庫,可以簡化創(chuàng)建完全國際化用戶界面的過程。

*???????? 控制器

Struts中,基本的控制器組件是Struts中的Action,用Struts提供基類,負責視圖和模型的交互??刂破鞯娜肟诙加?/SPAN>struts-config.xml的配置文件設置(由ActionMapping類進行描述)。該配置文件將來自JSP的請求映射到一個Sevlet類進行相應的處理,并制定下一個視圖的位置。

*???????? 模型

Struts框架中,模型分為兩個部分:系統(tǒng)的內部狀態(tài)和可以改變狀態(tài)的操作(事務邏輯)。內部狀態(tài)通常由一組ActinFormJavaBean表示。其中JavaBean有兩種作用:一是存儲來自客戶端的請求(代表是繼承ActionForm的子類);二是保存查詢結果集,用于頁面顯示(代表是用戶自定義的JavaBean)。根據(jù)設計或應用程序復雜度不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時才獲得數(shù)據(jù)(從某個數(shù)據(jù)庫)。大型應用程序通常在方法內部封裝事務邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調用;小型程序中,操作可能會被內嵌在Action類,它是Struts框架中控制器角色的一部分,僅當邏輯簡單時適合。

4、Struts框架應用到WSIDS

4.1 WSIDS登錄主界面

圖2 WSIDS登錄主界面

從上圖可以看到,進入WSIDS時,用戶可以選擇登錄或是進行注冊。如果是WSIDS用戶登錄,需要輸入用戶名和密碼,驗證合法才能進入功能操作主界面。這個界面對應了Struts框架里的一個ActionForm——loginForm,它由用戶名(username)和密碼(password)組成(這里本論文使用Struts中的html標簽),并帶有隱含值actionLogin,用于判斷用戶選擇的是“登錄”還是“注冊”;同時,loginForm對應的動作(action)是login.do,(Struts中的轉向頁面均用.do表示)并且用戶提交登錄信息時,會進行有效性驗證。?

4.2 Struts配置?

將Struts組件結合到一起靠配置文件struts-config.xml,它默認位置是WEB-INFstruts-config.xml,其中定義了全局轉發(fā)、ActionMapping類、ActionForm bean和JDBC數(shù)據(jù)源。下面結合WSIDS登錄,具體論述上述問題:?

n???????? 配置全局轉發(fā)?

全局轉發(fā)用來在JSP頁之間創(chuàng)建邏輯名稱映射。轉發(fā)都可以通過對調用操作映射的實例來獲得。比如,我們設置了名為“notLogin”的全局轉發(fā)名字,作用是一旦系統(tǒng)發(fā)現(xiàn)用戶沒有合法登錄就試圖進行操作時,激發(fā)的Action就會ActionMapping.findForward(“notLogin”);把用戶操作的頁面轉向NotLogin.htm,避免其進行非法操作。?

n???????? 配置ActionMapping

ActionMapping對象幫助進行框架內部的流程控制,它們可將請求URI映射到Action類,并且將Action類與ActionForm bean相關聯(lián)。ActionServlet在內部使用這些映射,并將控制轉移到特定Action類的實例。所有Action類使用execute方法(Struts1.1)實現(xiàn)特定應用程序代碼,返回一個ActionForward對象,其中包括響應轉發(fā)的目標資源名稱。由于WSIDS用戶分三種角色,不用角色登錄進入不同的功能操作主界面,因此當用戶的用戶名和密碼驗證成功,就會從數(shù)據(jù)庫中查詢出其角色,根據(jù)角色轉向下一頁面。?

n???????? 配置ActionForm Bean

ActionServlet使用ActionForm來保存請求的參數(shù),這些bean的屬性名稱與HTTP請求參數(shù)中的名稱相對應,控制器將請求參數(shù)傳遞到ActionForm bean的實例,然后將這個實例傳送到Action類。比如Login.jsp中頁面變量username和password在LoginAction中:

可直接獲得變量值,便于在Action中進行操作。?

n???????? 配置JDBC數(shù)據(jù)源

元素可以定義多個數(shù)據(jù)源。比如WSIDS使用了MySQL數(shù)據(jù)庫的org.gjt.mm.mysql.Driver驅動程序,連接到名為kpsdb數(shù)據(jù)庫上。?

n???????? 配置消息資源

Struts框架對國際化的支持是使用標記,以及使用java.util數(shù)據(jù)包中定義的Locale和ResourceBundle類來實現(xiàn)Java2平臺對這些任務的支持。定義資源文件,其后綴名為properties,需要存儲在類的路徑下,而且它的路徑要作為初始化參數(shù)傳送給ActionServlet。?

為了實現(xiàn)國際化,所有的資源文件必須都存儲在基本資源文件所在的目錄中?;举Y源文件包含的是用默認地區(qū)語言-本地語言編寫的消息。比如WSIDS的消息資源配置文件為ApplicationResources.properties,其對應的其他特定語言編寫的資源文件名稱就應該是ApplicationResources_xx.properties(xx為ISO編碼,如英語是en)。?

WSIDS的資源配置文件ApplicationResources.properties中,其中和登錄面相關的資源是:?

具體在Login.jsp中,作如下調用:

這樣做無疑使頁面所顯示的資源進行維護變得簡單。?

4.3其它頁面

圖3 管理員操作主頁面和提交加入語義注解的WSDL文件頁面

圖4 瀏覽WSIDS服務庫頁面和基本本體瀏覽頁面

圖5 WSIDS用戶注冊頁面和增加規(guī)則頁面

圖6 WSIDS服務查詢請求界面和服務查詢結果界面

5、WODOS介紹?

WODOS(Web Oriented Distributed Ontology System),即面向web的分布式本體系統(tǒng)。它本身是完全采用JAVA編寫的一個語義Web支撐平臺,具有以下功能:支持中英文,可以將本體信息存于關系型數(shù)據(jù)庫中,支持RDF/OWL文件的導入導出,支持RQL查詢,第三方軟件可以通過OdoAPI進行操作。還引入推理機制,可以對存于WODOS中的本體事實施以規(guī)則(基于F-Logic),并在這些規(guī)則的基礎上進行推理。WODOS建立了統(tǒng)一的用戶界面,可以把對它的各種操作(如原有的RQL查詢、RDF文件導入導出和新加入的F-Logic操作等)集成在一起。?

WSIDS系統(tǒng)就是基于WODOS系統(tǒng)提供的語義Web基本功能,在Web Services發(fā)現(xiàn)的應用方向上進行了一個有機的結合,這也充分體現(xiàn)出JAVA本身的可擴展性和可重用性。?

6、結束語?

本文通過對WSIDS系統(tǒng)的介紹,展示了Struts基礎構架的應用,并且基于已有的成果WODOS展示了JAVA技術的可擴展性和可重用性。并且由于JAVA的跨平臺性,本系統(tǒng)可以運行于Linux、Windows的各種操作系統(tǒng),采用Struts使得其操作簡單,易于測試和維護。?

參考文獻?

1.? 徐劍軍等,“基于本體的智能Web服務”,計算機科學,2002,第29卷第12期:92-94

2.? James Hendler. “Agents and the Semantic Web” IEEE Intelligent Systems March/April 2001:30-37

3.? Jeff Heflin and James Hendler. “A Portrait of the Semantic Web in Action” ?IEEE Intelligent Systems March/April 2001:54-59

4.? Sheila A. McIlraith, Tran Cao Son and Honglei Zeng. “Semantic Web Service” IEEE Intelligent Systems March/April 2001:46-53

5.? Tim Berners-Lee, James Hendler and Ora Lassila. “The Semantic Web”,SCIENTIFIC AMERICAN,May,2001:34-43?

6.? Omair Javed. “Semantic Web-Mobile Internet Technical Architecture”. Institute of Software Systems, Tampere University of Technology, 2003.5

7.? T. Sollazzo, S. Handshuch, S. Staab, and M. Frank: Semantic Web Service Architecture– Evolving Web Service Standards toward the Semantic Web. Proceedings of the Fifteenth International FLAIRS Conference, Pensacola, Florida, May 2002.

8.? Oussama Kassem Zein and Yvon Kermarrec. “An Approach For Describing/Discovering Services and For Adapting Them to the Needs of Users in Distributed Systems”. American Association for Artificial Intelligence,2004.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 久久久99精品久久久久久 | 99九九精品视频 | 亚洲国产精品久久婷婷 | 国内精品久久久久影院6 | 91精品国产色综合久久不卡蜜 | 婷婷丁香五 | 色婷婷激情综合 | 99久久精彩视频 | 亚洲国产精久久久久久久春色 | 亚洲精品无码不卡 | 天堂成人在线 | 99精品国产高清一区二区 | 婷婷欧美综合五月六月缴情 | 成人小视频在线观看免费 | 久久综合精品国产一区二区三区无 | 深夜久久 | 七月丁香八月婷婷综合激情 | 成年男女的免费视频网站 | 99精品久久久久久久免费看蜜月 | 欧美激情区 | 亚洲欧美另类精品久久久 | 国产一级精品高清一级毛片 | 国产精品99久久99久久久看片 | 人人爽人人爽人人片av免费 | 伊人国产精品 | 国内偷自第一二三区 | 欧美日韩国产另类在线观看 | 婷婷综合五月中文字幕欧美 | 日韩国产中文字幕 | 免费国产高清精品一区在线 | 黄连厚朴电视剧免费观看 | 97国产精品最新 | 激情综合五月 | 久久精品亚洲一级毛片 | 一级毛片一级毛片一级毛片 | 欧美日韩国产一区二区三区欧 | 精品不卡一区中文字幕 | 免费国产成高清人在线视频 | 国产人成| 欧美在线色视频 | 欧美a网|