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

        ?

        基于Z39.50的數(shù)字圖書館信息檢索的研究

        2016-05-14 01:37:50齊俊霞
        現(xiàn)代電子技術(shù) 2016年5期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)圖書館信息

        齊俊霞

        摘 要: 圖書館的信息檢索是面向讀者服務(wù)的重要方式,讀者可以方便地檢索到所需要書刊的詳細(xì)信息和借閱情況?;赯39.50協(xié)議的圖書館信息系統(tǒng)能夠?qū)崿F(xiàn)多個(gè)圖書館之間信息的相互訪問,有利于資源共享。Z39.50協(xié)議在數(shù)字圖書館的應(yīng)用雖然比較廣泛,但用Java語(yǔ)言實(shí)現(xiàn)的卻很少見,而Java語(yǔ)言在網(wǎng)絡(luò)中的應(yīng)用越來(lái)越廣泛,且具有優(yōu)良的跨平臺(tái)特性,因此用純Java語(yǔ)言實(shí)現(xiàn)Z39.50協(xié)議很有必要。在分析Z39.50協(xié)議和JZKit2最新版本軟件的基礎(chǔ)上,對(duì)JZKit2提出了改進(jìn)意見,并應(yīng)用較先進(jìn)的技術(shù)和工具加以實(shí)現(xiàn)。

        關(guān)鍵詞: 信息檢索; Z39.50協(xié)議; Maven2; JZKit2項(xiàng)目; JavaI

        中圖分類號(hào): TN911?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)05?0143?04

        基于Z39.50協(xié)議的圖書館自動(dòng)化系統(tǒng)能夠?qū)崿F(xiàn)多個(gè)圖書館之間信息的相互訪問,有利于資源共享[1]?,F(xiàn)在絕大多數(shù)的圖書館自動(dòng)化系統(tǒng)、聯(lián)合目錄系統(tǒng)與數(shù)據(jù)發(fā)布系統(tǒng)均把Z39.50協(xié)議作為主要的檢索協(xié)議來(lái)實(shí)現(xiàn)[2]。

        Z39.50協(xié)議是分布式虛擬聯(lián)合數(shù)據(jù)庫(kù)檢索體系,其目的是實(shí)現(xiàn)網(wǎng)上多個(gè)數(shù)據(jù)庫(kù)檢索、規(guī)范查詢格式、簡(jiǎn)化檢索過(guò)程、實(shí)現(xiàn)異構(gòu)系統(tǒng)和不同圖書館系統(tǒng)之間的通信[3]。

        目前世界上已開發(fā)了不少軟件工具包支持Z39.50協(xié)議[4]。Z39.50本身的特點(diǎn)及應(yīng)用范圍很適合用Java語(yǔ)言實(shí)現(xiàn)[5]。JZKit項(xiàng)目是Knowledge Integration公司維護(hù)的、100%開放源碼的純Java工具包,它不依賴任何有知識(shí)產(chǎn)權(quán)的工具包(它引入的工具包如a2j,log4j,xalan,xerces等都是開源且免費(fèi)的)[6]。

        1 Z39.50協(xié)議

        1.1 Z39.50協(xié)議的內(nèi)容

        Z39.50協(xié)議的目的是使客戶端和服務(wù)器端的開放互聯(lián)變得便利。由于數(shù)據(jù)庫(kù)完成的方法大不相同、不同的系統(tǒng)描述數(shù)據(jù)存儲(chǔ)的格式不同,需要采用一種通用的、抽象的模型來(lái)描述數(shù)據(jù)庫(kù),各個(gè)系統(tǒng)可以將其具體實(shí)現(xiàn)映射到該抽象模型上。這就使得不同的系統(tǒng)在一個(gè)標(biāo)準(zhǔn)的、相互理解的基礎(chǔ)上進(jìn)行通信,使客戶端可以將不同數(shù)據(jù)庫(kù)的信息集成在一起。

        Z39.50協(xié)議定義了一組服務(wù)器端(Target)與客戶端(Origin)通信的規(guī)范,它是定義在OSI中應(yīng)用層上的協(xié)議,主要提供查詢與獲取功能。

        完整的Z39.50應(yīng)用系統(tǒng)由Z39.50服務(wù)端(簡(jiǎn)稱Z Server)、數(shù)據(jù)資源、Z39.50客戶端(Z Client)組成。Z39.50支持在分布式的、客戶/服務(wù)器的環(huán)境中進(jìn)行信息查詢與提取,給另一個(gè)扮演服務(wù)器的計(jì)算機(jī)發(fā)出查詢請(qǐng)求,由服務(wù)器軟件對(duì)一個(gè)或多個(gè)數(shù)據(jù)庫(kù)進(jìn)行搜索,創(chuàng)造一個(gè)滿足查詢條件的結(jié)果集,并將結(jié)果集中的記錄返回客戶端??蛻舳嗽诮邮盏讲樵冋?qǐng)求的響應(yīng)后,針對(duì)服務(wù)器端所創(chuàng)造的查詢結(jié)果集提取所需記錄的信息或要求服務(wù)器端對(duì)此查詢結(jié)果集作進(jìn)一步的操作,如圖1所示。

        圖1 Z39.50系統(tǒng)的操作過(guò)程

        1.2 Z39.50協(xié)議的實(shí)現(xiàn)和存在問題

        Z39.50協(xié)議實(shí)際上就是一個(gè)中間協(xié)議層,通過(guò)它的轉(zhuǎn)換,可以實(shí)現(xiàn)異構(gòu)機(jī)型、異種操作平臺(tái)之間的交互式通信,實(shí)現(xiàn)分布式異構(gòu)數(shù)據(jù)源之間的無(wú)縫連接。

        Z39.50協(xié)議是一個(gè)較為成熟的網(wǎng)絡(luò)檢索標(biāo)準(zhǔn),但在目前的推廣實(shí)踐中也存在一些問題。

        (1) Z39.50是一個(gè)過(guò)于完美復(fù)雜的重量級(jí)協(xié)議。其系統(tǒng)配置復(fù)雜,不利于非專業(yè)用戶的使用,也不利于其推廣。

        (2) Z39.50協(xié)議和萬(wàn)維網(wǎng)之間融合的障礙。主要是Z39.50協(xié)議和萬(wàn)維網(wǎng)所使用的HTTP協(xié)議是兩種不同機(jī)制的協(xié)議。

        (3) Z39.50缺少良好的發(fā)現(xiàn)機(jī)制。Z39.50客戶端軟件一般都必須由人工來(lái)收集Z39.50服務(wù)器地址(有些軟件預(yù)置了一些地址),無(wú)規(guī)律可循。

        Z39.50協(xié)議的下一代版本(ZING)將定義一個(gè)結(jié)合Z39.50的Web服務(wù),開發(fā)人員可以在一個(gè)已經(jīng)存在的Z39.50系統(tǒng)上很容易地構(gòu)建自己的網(wǎng)關(guān)系統(tǒng)。并且ZING應(yīng)用SOAP和URL為基礎(chǔ)的信息獲取機(jī)制,減少了網(wǎng)關(guān)中Z協(xié)議方面的網(wǎng)絡(luò)通信瓶頸,并且信息能夠輕易地通過(guò)互聯(lián)網(wǎng)進(jìn)行通信,而無(wú)需擔(dān)心遭到防火墻等網(wǎng)絡(luò)安全技術(shù)的攔截。

        2 項(xiàng)目管理工具M(jìn)aven

        JZKit2項(xiàng)目工程是用Maven管理的,Maven現(xiàn)在的版本是Maven2。Maven是構(gòu)建、管理任何基于Java的項(xiàng)目,最早始于JarkartaTurbine項(xiàng)目。Maven的目標(biāo)是讓Java開發(fā)者的日常工作更加輕松,并有助于理解基于Java的項(xiàng)目。Maven一個(gè)重要特性是定義了項(xiàng)目的標(biāo)準(zhǔn)模板??梢酝ㄟ^(guò)命令: mvn archetype:create?DgroupId=com. My company.app?DartifactId=my?app創(chuàng)建一個(gè)單一的Maven項(xiàng)目。創(chuàng)建好的項(xiàng)目,具有了特定的項(xiàng)目結(jié)構(gòu)。在項(xiàng)目進(jìn)程中,cmd使用簡(jiǎn)單的Maven命令,就可以完成初始化→開發(fā)→測(cè)試→發(fā)布的全過(guò)程。

        在校園內(nèi),很多情況上國(guó)外網(wǎng)站不方便,而Maven的自動(dòng)下載一般都是訪問國(guó)外網(wǎng)站的,這可以通過(guò)設(shè)置代理來(lái)解決。在配置文件settings.xml中,將下面一段去掉注釋,并填入實(shí)際代理服務(wù)器的信息即可:

        optional

        truehttp

        proxyuserproxypass

        proxy.host.net80local.net,some.host.com

        在處理客戶請(qǐng)求的程序中,轉(zhuǎn)發(fā)之前先判斷是否請(qǐng)求本地?cái)?shù)據(jù)源,若是直接處理,不要再轉(zhuǎn)發(fā),如下(在jzkit2_z3950_plugin子模塊的Z3950Origin.java文件中):

        ArrayList v = new ArrayList(q.collections);

        LocalResourceDBO r = (LocalResourceDBO) user_info;

        if (r != null)

        { log.info("LocalResourceDBO: " + r.getName());

        if (v.contains(r.getName()))

        { st.setStatus(IRResultSetStatus.COMPLETE);

        st.setFragmentCount(10); return st; } }

        4.4 測(cè)試方法

        分別先后啟動(dòng)服務(wù)端和客戶端。在客戶端輸入任意字符(不合法的命令)就會(huì)提示正確的請(qǐng)求格式,按照提示輸入要查詢的數(shù)據(jù)庫(kù)和查詢請(qǐng)求,觀察服務(wù)端輸出。為測(cè)試需要,目前采用MySQL數(shù)據(jù)庫(kù),在其中的各個(gè)表格中暫時(shí)插入以下數(shù)據(jù):

        LOCK TABLES;

        jz_search_service_props;

        WRITE; INSERT INTO;

        jz_search_service_props;

        (search_service_id, prop_value, prop_name)

        VALUES (1, ′usmarc′, ′defaultRecordSyntax′),

        (1, ′f′, ′defaultElementSetName′),

        (1, ′10.1.0.203′, ′host′), (1, ′9999′, ′port′), (1, ′F′, ′smallSetElementSetName′),

        (1, ′UTF?8′, ′charsetEncoding′),

        (2, ′usmarc′, ′defaultRecordSyntax′),

        (2, ′f′, ′defaultElementSetName′),

        (2, ′10.1.0.236′, ′host′),

        (2, ′9999′, ′port′),

        (2, ′F′, ′smallSetElementSetName′),

        (2, ′UTF?8′, ′charsetEncoding′);

        UNLOCK TABLES;

        設(shè)置了兩個(gè)數(shù)據(jù)源:Default和gqj,這也是客戶端可以指定的數(shù)據(jù)庫(kù)名。在表格jz_search_service_props中存放了兩個(gè)數(shù)據(jù)源的信息,這里重點(diǎn)關(guān)注它們的主機(jī)IP信息(即列Host)。其中Default對(duì)應(yīng)的數(shù)據(jù)源在本機(jī)(腳本中把主機(jī)信息設(shè)為了實(shí)際IP:10.1.0.203,沒有用回送地址127.0.0.1,這樣用該腳本可以無(wú)需修改地插入到其他機(jī)器的數(shù)據(jù)庫(kù)),gqj對(duì)應(yīng)另一臺(tái)機(jī)器的數(shù)據(jù)源(這臺(tái)機(jī)器也要啟動(dòng)JZKit2的服務(wù)端)。在表jz_collection_instance中每一個(gè)可以查詢的數(shù)據(jù)庫(kù)名都有一個(gè)局部名稱local_id與之對(duì)應(yīng)。

        在客戶端指定要查詢的數(shù)據(jù)庫(kù)是Default(即本機(jī)),服務(wù)端處理該請(qǐng)求,按照前面修改的方案,要先檢查請(qǐng)求的數(shù)據(jù)庫(kù)是否在本地,這就要求服務(wù)端“知道”本地?cái)?shù)據(jù)庫(kù)的局部名稱,這一點(diǎn)是通過(guò)在前面增加的表格local_resource來(lái)實(shí)現(xiàn)的。在本地?cái)?shù)據(jù)庫(kù)中插入以下數(shù)據(jù):

        LOCK TABLES ′local_resource′ WRITE;

        INSERT INTO ′local_resource′ (id, name) VALUES(1, ′lmx′); UNLOCK TABLES;

        這樣服務(wù)端查詢表就知道,請(qǐng)求的數(shù)據(jù)庫(kù)Default就是本地的lmx,于是就直接查詢本地?cái)?shù)據(jù),并返回結(jié)果給客戶端。如果在客戶端指定要查詢的數(shù)據(jù)庫(kù)是gqj,服務(wù)端也要進(jìn)行上面查詢local_resource的過(guò)程,通過(guò)比較知道這不是本地?cái)?shù)據(jù)庫(kù),就把請(qǐng)求轉(zhuǎn)發(fā)到表jz_collection_instance中描述的該數(shù)據(jù)庫(kù)所對(duì)應(yīng)的主機(jī)10.1.0.236。在此主機(jī)的數(shù)據(jù)庫(kù)的數(shù)據(jù)也是根據(jù)前面的腳本插入的,因此描述數(shù)據(jù)資源的信息數(shù)據(jù)都相同,惟有表格local_resource的內(nèi)容不同,它的數(shù)據(jù)庫(kù)有不同的本地名稱qgj,如下:

        LOCK TABLES ′local_resource′;

        WRITE; INSERT INTO ′local_resource′ (id, name) VALUES (1, ′gqj′);

        UNLOCK TABLES;

        該主機(jī)啟動(dòng)的JZKit2服務(wù)端收到請(qǐng)求后進(jìn)行同樣的步驟,發(fā)現(xiàn)請(qǐng)求的是本地?cái)?shù)據(jù)庫(kù),于是根據(jù)請(qǐng)求查詢數(shù)據(jù),并將數(shù)據(jù)結(jié)果返回給10.1.0.203的服務(wù)端,服務(wù)端再返回給客戶端。

        5 結(jié) 論

        本文在分析、研究Z39.50協(xié)議和JZKit2程序包的基礎(chǔ)上,對(duì)JZKit2的服務(wù)端還沒有實(shí)現(xiàn)的功能提出了一種實(shí)現(xiàn)思路,并用該包所涉及的工具和技術(shù)加以實(shí)現(xiàn)。 現(xiàn)在JZKit2客戶端的功能比較完善,可以用來(lái)測(cè)試其他Z39.50產(chǎn)品服務(wù)端的功能。由于JZKit2的開源特性及支持多平臺(tái),相信它的實(shí)現(xiàn)不僅能吸引大量客戶廣泛采用,對(duì)Z39.50協(xié)議的推廣和普及也會(huì)做出不小的貢獻(xiàn)。

        參考文獻(xiàn)

        [1] 牛振東,師雪霖,葉成林.數(shù)字圖書館支撐技術(shù)領(lǐng)域標(biāo)準(zhǔn)規(guī)范的現(xiàn)狀和發(fā)展[J].我國(guó)數(shù)字圖書館標(biāo)準(zhǔn)規(guī)范建設(shè),2003(7):11?12.

        [2] 牟有靜,候麗梅.淺談數(shù)字圖書館與全文檢索技術(shù)[J].情報(bào)科學(xué),2012(5):535?537.

        [3] 閔峰,張福炎,黃偉紅,等.基于Z39.50的分布式聯(lián)機(jī)書目檢索[J].情報(bào)學(xué)報(bào),2012(5):538?543.

        [4] 黃如花.數(shù)字圖書館原理與技術(shù)[M].武漢:武漢大學(xué)出版社,2011:123?124.

        [5] 師雪霖.Web集成信息檢索及其在數(shù)字圖書館中的應(yīng)用研究[D].北京:北京理工大學(xué),2012:21?22.

        [6] 楊萌.圖書館防盜系統(tǒng)漏洞的研究[J].現(xiàn)代電子技術(shù),2014,37(5):94?96.

        猜你喜歡
        數(shù)據(jù)庫(kù)圖書館信息
        圖書館
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        數(shù)據(jù)庫(kù)
        飛躍圖書館
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        展會(huì)信息
        去圖書館
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        亚洲红杏AV无码专区首页| a级毛片高清免费视频就| 国产精品内射后入合集| 国产精品无码久久久久久蜜臀AV| 国产视频一区二区三区久久亚洲| 国产精品白丝久久av网站| 免费无码又爽又刺激聊天app| 九九99国产精品视频| 漂亮人妻被强中文字幕乱码| 亚洲乱码中文在线观看| 成人免费一区二区三区| 国产成人亚洲综合无码DVD| 亚洲国产精品成人一区| 女优一区二区三区在线观看| 人妻少妇久久中文字幕一区二区| 97人妻碰免费视频| 日本岛国视频在线观看一区二区 | 国产亚洲欧美精品久久久| 免费在线亚洲视频| 亚洲高清自偷揄拍自拍| 国产精品国产三级国产密月| 大陆极品少妇内射aaaaaa| 国产精品一区二区av片| 日本一区二区偷拍视频| 成人欧美一区二区三区在线 | 国产中文aⅴ在线| 日本中文字幕人妻精品| 豆国产96在线 | 亚洲| 久久日本三级韩国三级| 一区二区三无码| 国产高清精品一区二区| a级毛片100部免费观看| 樱花AV在线无码| 搞黄色很刺激的网站二区| 国产欧美日韩中文久久| 又黄又爽又色又刺激的视频| 免费无码黄网站在线观看| 亚洲精品一区三区三区在线 | 无遮无挡爽爽免费视频| 久久久久成人精品免费播放网站| 漂亮人妻出轨中文字幕|