亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        [關(guān)鍵詞]統(tǒng)一檢索;Web服務(wù);數(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ù)字資源的檢索相對(duì)獨(dú)立,使得檢索相對(duì)來說越來越復(fù)雜,如何屏蔽各數(shù)字資源平臺(tái),系統(tǒng)環(huán)境,內(nèi)部數(shù)據(jù)結(jié)構(gòu)等方面的差異,對(duì)統(tǒng)一的數(shù)據(jù)模式進(jìn)行描述,進(jìn)行無縫連接,進(jìn)行統(tǒng)一檢索,是數(shù)字圖書館發(fā)展中需要解決的一個(gè)重要問題。

        本文通過Web服務(wù)技術(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)模型來描述統(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ù)據(jù)庫(ORACLE數(shù)據(jù)庫),超星數(shù)字圖書館(SQL SERVER數(shù)據(jù)庫)、書生之家(SQL SERVER數(shù)據(jù)庫)和自建數(shù)據(jù)庫(SQL SERVER數(shù)據(jù)庫)等。下面以工藝美術(shù)自建數(shù)據(jù)庫的Web服務(wù)實(shí)現(xiàn)為例進(jìn)行說明。

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

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

        在起始頁創(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ù)庫的Web服務(wù),Service.cs包含的關(guān)鍵代碼如下:

        (1)添加引用

        using System.Data;

        using System.Data.SqlClient;

        (2)更改命名空間

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

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

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

        [WebMethod]

        public System.Data.DataSet GetTitleResults(string title)

        {

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

        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)試過程中,可以通過CTRL+F5生成服務(wù),進(jìn)入服務(wù)測(cè)試界面,查看結(jié)果是否符合要求。

        2 .NET中自建數(shù)據(jù)庫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í)的目錄,就可以通過IIS來引用這個(gè)Web服務(wù)。下面把工藝美術(shù)資源數(shù)據(jù)庫的Web服務(wù)部署在IIS上,具體步驟如下:

        (1)在Internet Services Manager管理單元中新建一個(gè)虛擬目錄,別名gymszyk,指定對(duì)應(yīng)的目錄為Web服務(wù)開發(fā)的目錄,在設(shè)置訪問權(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)站建立步驟如下:

        在起始頁創(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ì)要求都是:簡單直觀,智能方便。根據(jù)這個(gè)原則設(shè)計(jì)界面。

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

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

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

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

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

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

        訪問工藝美術(shù)資源數(shù)據(jù)庫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ù)庫選中

        {

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

        ? {

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

        }

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

        {

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

        }

        }

        If (HWCheck.Checked)

        {

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

        ? {

        ?

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

        ?

        }

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

        ?

        {

        ?

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

        ?

        }

        }

        If(CXCheck.Checked)

        {

        ?

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

        ?

        {

        ?

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

        ?

        }

        ?

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

        ?

        {

        ?

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

        ?

        }

        }

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

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

        開始↓根據(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):資源的類別。

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

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

        根據(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ù)庫″;

        ? 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é)束語

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

        參考文獻(xiàn)

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

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

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

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

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

        亚洲a∨无码一区二区三区| 久久亚洲av午夜福利精品西区| 国产丝袜美腿一区二区三区| 亚洲狠狠婷婷综合久久久久| 亚洲午夜精品久久久久久人妖| 国产精品九九九无码喷水| 91精品国产乱码久久久| 免费亚洲老熟熟女熟女熟女| 日日碰狠狠添天天爽| 99er视频| 国产精品久久夜伦鲁鲁| 东北女人一级内射黄片| 一本一道av无码中文字幕﹣百度| 久久成年片色大黄全免费网站| 国产精品视频免费一区二区三区| 日韩一区av二区三区| 欧美性猛交xxxx富婆| √最新版天堂资源在线| 免费看男女啪啪的视频网站| 日本视频二区在线观看| 日本50岁丰满熟妇xxxx| 国产免费播放一区二区| 国产女主播一区二区三区在线观看| 日本丰满少妇xxxx| 国内a∨免费播放| 国产精品日日摸夜夜添夜夜添| 青青草免费手机直播视频| 日日天干夜夜狠狠爱| 国产nv精品你懂得| 成人性生交大片免费看7| 天天做天天爱夜夜夜爽毛片| 丁香五香天堂网| 久久91精品国产91久久麻豆| 日本a级黄片免费观看| 米奇7777狠狠狠狠视频影院| 国产精品视频久久久久| 日韩黄色大片免费网站| 性久久久久久| 久久精品国产亚洲av电影| 国产高跟丝袜在线诱惑| 午夜被窝精品国产亚洲av香蕉 |