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

數(shù)字圖書(shū)館統(tǒng)一檢索的實(shí)現(xiàn)

2010-12-31 00:00:00李衛(wèi)峰
現(xiàn)代情報(bào) 2010年7期

[摘 要]本文主要介紹利用.net平臺(tái)和C#語(yǔ)言,基于Web服務(wù)技術(shù),實(shí)現(xiàn)統(tǒng)一檢索系統(tǒng)的方法。基于Web服務(wù)的統(tǒng)一檢索系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單,時(shí)空性能好,可擴(kuò)展性強(qiáng),能兼顧各數(shù)據(jù)源的特點(diǎn)實(shí)現(xiàn)全局優(yōu)化。

[關(guān)鍵詞]統(tǒng)一檢索;Web服務(wù);數(shù)字圖書(shū)館

DOI:10.3969/j.issn.1008-0821.2010.07.028

[中圖分類號(hào)]G250.76 [文獻(xiàn)標(biāo)識(shí)碼]B [文章編號(hào)]1008-0821(2010)07-0099-04

Implementation of Digital Library Unified SearchLi Weifeng

(Library,Jiangsu Teachers University of Technology,Changzhou 213001,China)

[Abstract]This article described a design for unified search system based on Web service and an implementation based on.net and c#.Based on this design,unified search system could be implemented easily with good spatio-temporal performance.

[Keywords]unified search;web service;digital library

數(shù)字圖書(shū)館的數(shù)字資源越來(lái)越豐富,各數(shù)字資源的檢索相對(duì)獨(dú)立,使得檢索相對(duì)來(lái)說(shuō)越來(lái)越復(fù)雜,如何屏蔽各數(shù)字資源平臺(tái),系統(tǒng)環(huán)境,內(nèi)部數(shù)據(jù)結(jié)構(gòu)等方面的差異,對(duì)統(tǒng)一的數(shù)據(jù)模式進(jìn)行描述,進(jìn)行無(wú)縫連接,進(jìn)行統(tǒng)一檢索,是數(shù)字圖書(shū)館發(fā)展中需要解決的一個(gè)重要問(wèn)題。

本文通過(guò)Web服務(wù)技術(shù)把數(shù)字圖書(shū)館各個(gè)數(shù)字資源進(jìn)行包裝,并發(fā)布相應(yīng)的Web服務(wù);用戶在統(tǒng)一檢索界面發(fā)布檢索請(qǐng)求后,將用戶請(qǐng)求分析后分解成功能子查詢,并包裝為SOAP消息,調(diào)用相應(yīng)的Web服務(wù);Web服務(wù)執(zhí)行具體查詢?nèi)蝿?wù),并返回結(jié)果;查詢結(jié)果集成器分析查詢得到的各個(gè)XML文檔并組合成統(tǒng)一的查詢結(jié)果,用戶界面把最終結(jié)果展示給用戶。

1 統(tǒng)一檢索系統(tǒng)體系結(jié)構(gòu)

統(tǒng)一檢索系統(tǒng)采用B/S架構(gòu)實(shí)施,能夠靈活集成Web服務(wù)。用戶可以在一個(gè)統(tǒng)一的查詢界面輸入查詢請(qǐng)求,得到集成數(shù)據(jù)源的信息,返回結(jié)果也在同一界面上顯示。

利用層次結(jié)構(gòu)模型來(lái)描述統(tǒng)一檢索體系結(jié)構(gòu),主要包括客戶界面層、中間層、服務(wù)層和數(shù)據(jù)層4個(gè)層次,如圖1所示。圖1 統(tǒng)一檢索體系結(jié)構(gòu)2 .NET中服務(wù)層Web服務(wù)的實(shí)現(xiàn)

我們圖書(shū)館中目前本地資源主要有匯文圖書(shū)數(shù)據(jù)庫(kù)(ORACLE數(shù)據(jù)庫(kù)),超星數(shù)字圖書(shū)館(SQL SERVER數(shù)據(jù)庫(kù))、書(shū)生之家(SQL SERVER數(shù)據(jù)庫(kù))和自建數(shù)據(jù)庫(kù)(SQL SERVER數(shù)據(jù)庫(kù))等。下面以工藝美術(shù)自建數(shù)據(jù)庫(kù)的Web服務(wù)實(shí)現(xiàn)為例進(jìn)行說(shuō)明。

2.1 .NET中工藝美術(shù)自建數(shù)據(jù)庫(kù)Web服務(wù)的創(chuàng)建

下面簡(jiǎn)要介紹在Microsoft的Visual Studio.net 2005的平臺(tái)下自建數(shù)據(jù)庫(kù)建立Web服務(wù)的步驟:

在起始頁(yè)創(chuàng)建網(wǎng)站中選擇ASP.NET Web服務(wù),工具自動(dòng)產(chǎn)生默認(rèn)的Web服務(wù),名為Service,右方的解決方案資源管理器中包括兩個(gè)文件夾:AppCode,AppData;兩個(gè)文件:Service.asmx和Service.cs。

在自建工藝美術(shù)數(shù)據(jù)庫(kù)的Web服務(wù),Service.cs包含的關(guān)鍵代碼如下:

(1)添加引用

using System.Data;

using System.Data.SqlClient;

(2)更改命名空間

[WebService(Namespace=″http:∥gymszyk.jstu.edu.cn/″)]

(3)編寫(xiě)用戶調(diào)用方法,提供用戶服務(wù)功能

例如查詢工藝美術(shù)資源庫(kù)中名稱是變量title的Web服務(wù)功能代碼如下:

[WebMethod]

public System.Data.DataSet GetTitleResults(string title)

{

∥建立查詢字符串和數(shù)據(jù)庫(kù)連接

string strQuery=″select distinct*from gyp where mingcheng like’%″+title+″%’″;

SqlConnection myConnection=new SqlConnection(″Server=192.168.24.28;database=gymszyk;User ID=sa″);

∥執(zhí)行查詢

SqlDataAdapter myCommand=new SqlDataAdapter(strQuery,myConnection);

∥定義DataSet對(duì)象,并將結(jié)果存入DataSet對(duì)象中

System.Data.DataSet ds=new System.Data.DataSet();

myCommand.Fill(ds,″gyp″);

∥返回結(jié)果DataSet對(duì)象

return ds;

}

在調(diào)試過(guò)程中,可以通過(guò)CTRL+F5生成服務(wù),進(jìn)入服務(wù)測(cè)試界面,查看結(jié)果是否符合要求。

2 .NET中自建數(shù)據(jù)庫(kù)Web Service的部署

ASP.NET Web服務(wù)是由作為所謂的IIS虛擬應(yīng)用程序運(yùn)行的資源集合組成的。在使用VS.NET創(chuàng)建Web服務(wù)項(xiàng)目時(shí),可以自動(dòng)完成這種虛擬應(yīng)用程序的配置。IIS的虛擬目錄成為ASP.NET應(yīng)用程序很好的容器。因此只需要在IIS上新建一個(gè)應(yīng)用程序目錄,并包括我們創(chuàng)建Web服務(wù)時(shí)的目錄,就可以通過(guò)IIS來(lái)引用這個(gè)Web服務(wù)。下面把工藝美術(shù)資源數(shù)據(jù)庫(kù)的Web服務(wù)部署在IIS上,具體步驟如下:

(1)在Internet Services Manager管理單元中新建一個(gè)虛擬目錄,別名gymszyk,指定對(duì)應(yīng)的目錄為Web服務(wù)開(kāi)發(fā)的目錄,在設(shè)置訪問(wèn)權(quán)限時(shí),把“執(zhí)行”權(quán)限打勾,完成后則該虛擬目錄就被配置成為一個(gè)IIS虛擬應(yīng)用程序。

(2)在新建的虛擬目錄根目錄下手工添加bin目錄。因?yàn)閎in目錄是.NET查找已編程序集的第一個(gè)位置,新建這個(gè)目錄就是為了存放Web服務(wù)編譯產(chǎn)生的DLL文件。

(3)利用CSC命令編譯源代碼。

例如在VS 2005命令提示中,可以在源代碼目錄中執(zhí)行以下命令進(jìn)行源代碼編譯:

Csc/out:bin\\Service.dll/target:library/r:System.Web.Services.dll Service.cs

3 .NET中中間層統(tǒng)一檢索網(wǎng)站的實(shí)現(xiàn)

在Microsoft的Visual Studio.net 2005的平臺(tái)下網(wǎng)站建立步驟如下:

在起始頁(yè)創(chuàng)建網(wǎng)站中選擇ASP.NET網(wǎng)站,目錄位置定為我們新建的存入網(wǎng)站內(nèi)容的目錄d:\yjs。工具將自動(dòng)產(chǎn)生AppCode目錄和Default.aspx、Default.aspx.cx和Web.Config文件。界面設(shè)計(jì)和功能實(shí)現(xiàn)設(shè)計(jì)主要都會(huì)在這3個(gè)文件中完成。

3.1 .NET中網(wǎng)站界面的設(shè)計(jì)

網(wǎng)站界面設(shè)計(jì)即用戶界面,它是系統(tǒng)的用戶接口部分,是用戶與系統(tǒng)交互信息的窗口,主要功能是向用戶展示與系統(tǒng)功能有關(guān)的操作和服務(wù),并根據(jù)用戶操作請(qǐng)求顯示操作結(jié)果,因此,一般情況下對(duì)客戶端的設(shè)計(jì)要求都是:簡(jiǎn)單直觀,智能方便。根據(jù)這個(gè)原則設(shè)計(jì)界面。

3.2 .NET中網(wǎng)站功能的實(shí)現(xiàn)

3.2.1 .NET中Web服務(wù)的訪問(wèn)

.NET中使用Web服務(wù)模式采用了客戶代理,這些客戶代理是一些.NET類型,為客戶封裝了向Web服務(wù)發(fā)出SOAP調(diào)用的過(guò)程。特定服務(wù)的代理類通常是從它的WSDL文檔創(chuàng)建的。一旦創(chuàng)建了這個(gè)代理類,你需要做的就是在項(xiàng)目中引用它,就像使用其他任何程序集或COM對(duì)象一樣。然后,對(duì)Web服務(wù)的所有調(diào)用都將通過(guò)代理對(duì)象的一個(gè)實(shí)例進(jìn)行處理,這個(gè)實(shí)例實(shí)現(xiàn)了與服務(wù)器SOAP的對(duì)話。工藝美術(shù)資源數(shù)據(jù)庫(kù)Web服務(wù)代理的創(chuàng)建步驟如下:

(1)從統(tǒng)一檢索站點(diǎn)解決方案內(nèi)查看,在菜單“網(wǎng)站”中選擇“添加Web引用”。

(2)查找工藝美術(shù)資源數(shù)據(jù)庫(kù)Web服務(wù)后,選中,設(shè)Web引用名Gymszyk,單擊添加引用。平臺(tái)將自動(dòng)生成了文件目錄AppWebReferences,為每個(gè)服務(wù)增加一個(gè)目錄和擴(kuò)展名為disco,discomap,wsdl的3個(gè)文件。

添加了代理之后,只要在代碼中添加引用,就能方便地訪問(wèn)Web服務(wù)里面的服務(wù)了。

訪問(wèn)工藝美術(shù)資源數(shù)據(jù)庫(kù)Web服務(wù)的關(guān)鍵代碼如下:

(1)添加引用

using Gymszyk;∥Gymszyk是Web服務(wù)引用名。

(2)調(diào)用代碼

System.Data.DataSet ds;

Service gy=new Service();

ds=gy.GetCreatorResults(Scontent.Text);

GridView1.DataSource=ds;

3.2.2 檢索的分解實(shí)現(xiàn)

分解算法如圖2:

圖2 查詢分解流程

程序?qū)崿F(xiàn)流程基本如下:

If (GYCheck.Checked)∥如果工藝美術(shù)資源數(shù)據(jù)庫(kù)選中

{

If(SType.SelectedIndex==0)∥如果選中標(biāo)題

? {

∥訪問(wèn)工藝美術(shù)資源數(shù)據(jù)庫(kù)Web服務(wù)中按名稱查詢功能

}

Else If(SType.SelectedIndex==1)∥如果選中作者

{

∥訪問(wèn)工藝美術(shù)資源數(shù)據(jù)庫(kù)Web服務(wù)中按作者查詢功能

}

}

If (HWCheck.Checked)

{

If(SType.SelectedIndex==0)∥如果選中標(biāo)題

? {

?

∥訪問(wèn)匯文圖書(shū)數(shù)據(jù)庫(kù)Web服務(wù)中按名稱查詢功能

?

}

Else If(SType.SelectedIndex==1)∥如果選中作者

?

{

?

∥訪問(wèn)匯文圖書(shū)數(shù)據(jù)庫(kù)Web服務(wù)中按作者查詢功能

?

}

}

If(CXCheck.Checked)

{

?

If(SType.SelectedIndex==0)∥如果選中標(biāo)題

?

{

?

∥訪問(wèn)超星數(shù)據(jù)庫(kù)Web服務(wù)中按書(shū)名查詢功能

?

}

?

Else If(SType.SelectedIndex==1)∥如果選中作者

?

{

?

∥訪問(wèn)超星數(shù)據(jù)庫(kù)Web服務(wù)中按作者查詢功能

?

}

}

3.2.3 結(jié)果融合和顯示

結(jié)果融合和顯示的實(shí)現(xiàn)流程如圖3所示。

開(kāi)始↓根據(jù)制訂的元數(shù)據(jù)標(biāo)準(zhǔn)建立一個(gè)類型化DataSet↓根據(jù)分解算法得到查詢結(jié)果后,依次將結(jié)果合并入類型化DataSet↓對(duì)類型化DataSet排序顯示↓結(jié)束圖3 結(jié)果副合和顯示流程

(1)類型化DataSet的建立

首先參照DC制訂的全局元數(shù)據(jù)是:

題名(Ttitle):存放資源名稱。

創(chuàng)建者(Tcreator):對(duì)創(chuàng)造資源知識(shí)內(nèi)容負(fù)主要責(zé)任的個(gè)人或機(jī)構(gòu)。

日期(Tdate):指與創(chuàng)建或使資源成為可利用狀態(tài)相關(guān)的日期。

類型(Ttype):資源的類別。

來(lái)源(Tsource):資源的出處,當(dāng)前資源可以從來(lái)源資源中獲取詳細(xì)資源。

來(lái)自的數(shù)據(jù)庫(kù)(Tcontributor):資源來(lái)自何數(shù)據(jù)庫(kù)。

根據(jù)這個(gè)元數(shù)據(jù)標(biāo)準(zhǔn)建立個(gè)具體預(yù)定結(jié)構(gòu)的DataSet。方法如下:

第一步,創(chuàng)建類型化表的模式文檔tDataSet.xsd。

第二步,利用模式文檔生成類型化的DataSet。

在.NET環(huán)境DOS命令行如下命令:

Xsd tDataSet.xsd/d/l:cs

運(yùn)行后將生成一個(gè)文件tDataSet.cs,包括一個(gè)類型化的tDataSet類,我們就可以像其他任何DataSet一樣實(shí)例化和使用這個(gè)類了。

(2)結(jié)果融合和顯示實(shí)現(xiàn)

結(jié)果融合算法思路如下:

設(shè)Web服務(wù)WSi返回結(jié)果Ri,UR存放結(jié)果集。

(1)取出Web服務(wù)WSi返回結(jié)果集Ri;

(2)合并、去重表Ri,得到結(jié)果集元數(shù)據(jù)表UR;

(3)對(duì)結(jié)果集元數(shù)據(jù)表UR進(jìn)行排序,按時(shí)間進(jìn)行降序排;

(4)返回結(jié)果顯示。

實(shí)現(xiàn)具體關(guān)鍵步驟如下:

第一步,定義一個(gè)公共的類型化DataSet變量。

tDataSet shareDs=new tDataSet();

第二步,將Web調(diào)用結(jié)果導(dǎo)入DataSet變量。

∥ds是Web服務(wù)返回的DataSet結(jié)果集

for(int i=0;i

{

? DataRow tempData=shareDs.Tables[0].NewRow();

∥把ds中的數(shù)據(jù)讀出一行

? tempData[″Ttitle″]=ds.Tables[0].Rows[i][″mingcheng″].ToString();

? tempData[″Tcreator″]=ds.Tables[0].Rows[i][″zuoze″].ToString();

? tempData[″Ttype″]=ds.Tables[0].Rows[i][″type″].ToString();

? tempData[″Tcontributor″]=″工藝美術(shù)資源數(shù)據(jù)庫(kù)″;

? tempData[″Tdate″]=ds.Tables[0].Rows[i][″niandai″].ToString();

? tempData[″Tsource″]=ds.Tables[0].Rows[i][″identifier″].ToString();

? ∥把ds中數(shù)據(jù)讀出一行加入到公共DataSet中

? shareDs.Tables[0].Rows.Add(tempData);

}

第三步,顯示排序結(jié)果集。

排序顯示關(guān)鍵代碼:

shareDs.Tables[0].DefaultView.Sort=″Tdate desc″;∥按時(shí)間排序

GridView1.DataSource=shareDs;∥綁定到數(shù)據(jù)控件顯示

GridView1.DataBind();

……

4 結(jié)束語(yǔ)

本文結(jié)合我館本地?cái)?shù)據(jù)庫(kù),基于Web服務(wù)技術(shù),利用.NET和C#工具,進(jìn)行了系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)。通過(guò)Web服務(wù)將各個(gè)異構(gòu)數(shù)據(jù)庫(kù)進(jìn)行包裝處理,并在ASP.NET平臺(tái)將Web服務(wù)進(jìn)行融合,以統(tǒng)一的形式為用戶提供檢索的服務(wù),為資源庫(kù)的用戶提供了一種更好的統(tǒng)一檢索服務(wù) 。集成更多數(shù)據(jù)源檢索接口,對(duì)結(jié)果融合算法進(jìn)行優(yōu)化,是今后工作的重點(diǎn)。

參考文獻(xiàn)

[1]韓炳黎.數(shù)字圖書(shū)館統(tǒng)一檢索研究及開(kāi)發(fā)[J].現(xiàn)代情報(bào),2006,(3):25-27.

[2]周慧貞,廖先軍.軍校圖書(shū)館統(tǒng)一檢索系統(tǒng)的研究與設(shè)計(jì)[J].現(xiàn)代圖書(shū)情報(bào)技術(shù),2006,(10):34-37.

[3]李安渝.Web Services技術(shù)與實(shí)現(xiàn)[M].北京:國(guó)防工業(yè)出版社,2003.1.

[4]柴曉路.web服務(wù)架構(gòu)與開(kāi)放互操作技術(shù)[M].北京:清華大學(xué)出版社,2002.

[5]Christian Nagel,Bill Evjen,Jay Glynn.C#高級(jí)編程.2006.

主站蜘蛛池模板: 国产欧美性爱网| 一级爆乳无码av| 亚洲 日韩 激情 无码 中出| 伊人福利视频| 亚洲欧洲日韩久久狠狠爱| 2048国产精品原创综合在线| 亚洲欧美另类日本| 看国产一级毛片| 欧洲熟妇精品视频| 极品尤物av美乳在线观看| 国产精品免费福利久久播放| 国产91色在线| 国产欧美综合在线观看第七页| 精品人妻系列无码专区久久| 在线日韩日本国产亚洲| 高清视频一区| 欧美成在线视频| 国模粉嫩小泬视频在线观看| 日本国产精品| 亚洲区一区| 中文字幕在线日本| 国产精品分类视频分类一区| 国产一级精品毛片基地| 夜夜爽免费视频| 久久亚洲国产最新网站| yjizz视频最新网站在线| 欧洲在线免费视频| 99精品欧美一区| 精品国产aⅴ一区二区三区| 欧美精品二区| 国产成人精品一区二区不卡| 2021国产精品自产拍在线| 欧美亚洲香蕉| 少妇露出福利视频| 久久激情影院| 亚洲成a人片在线观看88| 性69交片免费看| 国产视频入口| 色噜噜久久| 亚洲视频三级| 欧美日韩国产综合视频在线观看| 亚洲视频三级| 91精品久久久无码中文字幕vr| igao国产精品| 青青草原国产免费av观看| 一本大道香蕉中文日本不卡高清二区| 欧美一级视频免费| 国产欧美日韩在线一区| 欧美日韩在线亚洲国产人| 欧美中出一区二区| 国产网友愉拍精品视频| 国产高清又黄又嫩的免费视频网站| 亚洲欧美日韩综合二区三区| 欧美一区二区啪啪| 国产精品丝袜在线| 亚洲天堂网视频| 爱色欧美亚洲综合图区| 精品国产aⅴ一区二区三区| 国产一在线观看| 国产一区二区精品高清在线观看| 国产精品视屏| 伊人久久福利中文字幕| 黄色网站在线观看无码| 久热中文字幕在线观看| 欧美在线伊人| 一级福利视频| 一级做a爰片久久免费| 国产精品免费电影| 日韩在线影院| 理论片一区| 红杏AV在线无码| 欧美伦理一区| 亚洲成年人网| 国产91精品调教在线播放| 日本免费福利视频| 高清色本在线www| 色噜噜在线观看| 国产欧美另类| 色偷偷av男人的天堂不卡| 久久精品女人天堂aaa| 国产福利一区二区在线观看| 天天操天天噜|