摘 要: 從互操作的對(duì)象、交換的信息、核心技術(shù)、支持的系統(tǒng)或工具、互操作的效果五個(gè)角度對(duì)已有的復(fù)用庫的互操作方法進(jìn)行綜合比較和分類,并針對(duì)目前已有的方法,提出了復(fù)用庫互操作領(lǐng)域中一些需要解決的問題。
關(guān)鍵詞: 復(fù)用庫;互操作;分類比較框架
隨著Internet與網(wǎng)絡(luò)技術(shù)的發(fā)展,Internet上運(yùn)行的復(fù)用庫也日益增多,每個(gè)復(fù)用庫的開發(fā)者和管理者都會(huì)針對(duì)特定的領(lǐng)域或用戶群對(duì)復(fù)用庫中的資源進(jìn)行組織和管理,并提供相應(yīng)的服務(wù)[1]。然而,用戶所需的許多構(gòu)件往往并不只在一個(gè)軟件復(fù)用庫中存在,而這些獨(dú)立的復(fù)用庫的存在就會(huì)要求用戶分別訪問多個(gè)復(fù)用庫以獲取所需的構(gòu)件,這會(huì)導(dǎo)致冗余和檢索效率的降低。允許這些復(fù)用庫可以按照自己特定的方式管理和維護(hù)庫中存放的構(gòu)件,同時(shí)又使用戶通過一個(gè)界面透明地訪問和檢索多個(gè)復(fù)用庫中的構(gòu)件,這對(duì)于提高構(gòu)件復(fù)用效率和復(fù)用的可能性非常必要,因此出現(xiàn)了軟件復(fù)用庫互操作方法[2]。
以前對(duì)于復(fù)用庫互操作方法的研究只是簡單地從操作對(duì)象角度出發(fā),將復(fù)用庫的互操作分為描述資源的目錄層次上的互操作和實(shí)際資源層次上的互操作兩個(gè)層次[2],并沒有給出各種方法的全面綜合比較和分析。
1 復(fù)用庫互操作方法比較
本文將從互操作對(duì)象、交換的信息、使用的核心技術(shù)、支持的系統(tǒng)/工具以及互操作的效果五個(gè)方面對(duì)現(xiàn)有的復(fù)用庫的互操作方法BIDM、OML、UDDI、DCH、Uranus、DROO和統(tǒng)一檢索機(jī)制進(jìn)行分類比較。
1.1 在互操作對(duì)象上的分類比較
不同的方法進(jìn)行互操作的對(duì)象有所不同,如表1所示。
1.2 在交換的信息上的分類比較
復(fù)用庫互操作的一個(gè)重要方面就是要在復(fù)用庫之間交換信息[3]。要進(jìn)行信息交換,就需要特定的描述方法或者特定的表示格式來描述需要交換的信息,這可以劃分為三個(gè)層次。
(1)數(shù)據(jù)模型層:數(shù)據(jù)模型層抽象定義了復(fù)用庫之間要交換的信息。不同的方法由于互操作的對(duì)象不同,所以使用的數(shù)據(jù)模型通常都是不一樣的。
(2)表示格式層:表示格式層指定了如何正確描述數(shù)據(jù)模型實(shí)例的格式,常見的表示格式有HTML、XML、GML等。
(3)協(xié)議層:協(xié)議層描述了兩個(gè)結(jié)點(diǎn)之間用于交換信息的“會(huì)話”方式。主要分為通訊協(xié)議和目錄訪問協(xié)議兩類。常見的通訊協(xié)議有HTTP、FTP、SOAP、Z39.50[4],常見的目錄訪問協(xié)議有X.500[5]、URL、LDAP[6]、ID等。
由于每個(gè)方法的互操作對(duì)象不同,從而導(dǎo)致每個(gè)方法在交換的信息上也有所不同。表2給出了復(fù)用庫互操作方法在交換的信息上具體的分類比較結(jié)果。
可以看出,大部分方法都支持Internet上的通訊協(xié)議,但是采用的目錄訪問協(xié)議卻各有不同。每個(gè)方法使用的數(shù)據(jù)模型也有所差異,提供的表示格式也略有不同,但為了能在Internet上進(jìn)行交互,大部分方法都支持HTML或者XML的表示格式。
1.3 在核心技術(shù)上的分類比較
復(fù)用庫互操作方法主要解決交換數(shù)據(jù)信息和使用數(shù)據(jù)信息進(jìn)行可復(fù)用資源的查詢兩個(gè)問題。“核心技術(shù)”角度說明了這些方法在解決這兩個(gè)問題上使用的主要技術(shù)和常見的體系結(jié)構(gòu)。
常見的體系結(jié)構(gòu)主要有集中式和分布式。在集中式方法中,存在一個(gè)虛擬庫核心結(jié)點(diǎn)或者中間轉(zhuǎn)換結(jié)點(diǎn),每個(gè)復(fù)用庫將自己的數(shù)據(jù)信息交換給該結(jié)點(diǎn),用戶通過這個(gè)結(jié)點(diǎn)使用這些數(shù)據(jù)信息。在分布式方法中,每個(gè)復(fù)用庫之間按照特定的通訊圖直接進(jìn)行數(shù)據(jù)信息的交換,用戶可以在復(fù)用庫結(jié)點(diǎn)直接使用這些數(shù)據(jù)信息。
表3給出了復(fù)用庫互操作方法在“核心技術(shù)”角度上的分類比較結(jié)果??梢园l(fā)現(xiàn),分布式體系結(jié)構(gòu)的系統(tǒng)大多都支持本地查詢,大部分方法都提供重定向技術(shù),因?yàn)橥綇?fù)制技術(shù)會(huì)造成數(shù)據(jù)冗余的問題,但是同步復(fù)制機(jī)制能較好地保證數(shù)據(jù)一致性。
1.4 在支持的系統(tǒng)和工具上的分類比較
一般而言,要實(shí)現(xiàn)復(fù)用庫互操作都需要有相應(yīng)的系統(tǒng)或工具支持互操作方法的實(shí)現(xiàn)。復(fù)用庫互操作的支持系統(tǒng)或工具通??梢苑譃楣芾砉ぞ吆筒樵児ぞ邇深悺F渲?,管理工具負(fù)責(zé)與數(shù)據(jù)信息交換相關(guān)的操作,主要從是否支持新結(jié)點(diǎn)的注冊(cè)、數(shù)據(jù)信息的修改、數(shù)據(jù)信息的實(shí)時(shí)修改等三方面進(jìn)行分類比較,根據(jù)不同的需求和實(shí)現(xiàn)技術(shù),不同的支持系統(tǒng)或工具會(huì)提供不同功能的管理工具。查詢工具負(fù)責(zé)與使用交換的數(shù)據(jù)信息進(jìn)行查詢的相關(guān)操作,主要從是否提供查詢轉(zhuǎn)換功能、是否進(jìn)行查詢結(jié)果合并、是否對(duì)查詢結(jié)果進(jìn)行排序等子功能進(jìn)行分析比較。
各方法提供的支持系統(tǒng)或工具主要是在傳統(tǒng)意義的復(fù)用庫提供的功能基礎(chǔ)上還需要額外提供的工具或系統(tǒng)。通常情況下,采用集中式體系結(jié)構(gòu)的方法大多會(huì)提供支持系統(tǒng)來輔助完成庫結(jié)點(diǎn)之間的互操作;采用分布式體系結(jié)構(gòu)的方法大多會(huì)在原有系統(tǒng)上增加互操作所需要的一些額外管理設(shè)施或者互操作工具。
表4給出了復(fù)用庫互操作方法在“支持的系統(tǒng)和工具”角度上的分類比較結(jié)果。
1.5 在互操作效果上的分類比較
不同方法采用的技術(shù)不同,從而導(dǎo)致每種方法的互操作效果不同。本文主要從解決的問題場(chǎng)景、查詢效率、數(shù)據(jù)冗余度和可擴(kuò)展性四個(gè)方面對(duì)不同的方法所產(chǎn)生的效果進(jìn)行分類比較。“問題的場(chǎng)景”說明了方法所能解決的問題范圍以及要達(dá)到的目標(biāo)。“查詢效率”從查準(zhǔn)率、查全率和查詢速度三個(gè)角度說明每個(gè)方法在查詢效果上的情況。“數(shù)據(jù)冗余度”是從(高、中、低)三個(gè)程度來說明各個(gè)方法的冗余相對(duì)度。“可擴(kuò)展性”指的是方法中對(duì)進(jìn)行互操作的復(fù)用庫結(jié)點(diǎn)是否需要額外的操作或修改。如果需要額外的操作或修改越多,可擴(kuò)展性就越低,反之額外的操作和修改越少,可擴(kuò)展性就越高。
從“互操作效果”這個(gè)角度對(duì)復(fù)用庫互操作方法進(jìn)行分類比較,可以發(fā)現(xiàn)復(fù)用庫互操作問題中還存在哪些可以解決或者可以提高的問題。由于方法之間并沒有進(jìn)行量化的實(shí)驗(yàn)數(shù)據(jù)比較,因此,僅采用相對(duì)方式比較各種方法的互操作效果,如表5所示。
2 結(jié)果分析
通過分析比較,可以推斷出目前的方法和系統(tǒng)具有以下特性:
(1)大多數(shù)方法或系統(tǒng)提供的都是對(duì)描述模型和描述信息的互操作。由于實(shí)體的互操作涉及到知識(shí)產(chǎn)權(quán)問題,并且會(huì)造成數(shù)據(jù)冗余度的提高,因此大多方法并不支持多結(jié)點(diǎn)上復(fù)制相同的實(shí)體,對(duì)語義信息的互操作也很少提供。OML方法和統(tǒng)一檢索機(jī)制提供了語義信息上的互操作,但也只是通過同義詞詞典實(shí)現(xiàn)。同義詞詞典的建立是由管理員進(jìn)行的,增大了管理員的工作量和工作難度。
(2)每個(gè)方法交換的信息的數(shù)據(jù)模型都不相同,但基本上都提供Internet上可以通訊和訪問的表示格式和協(xié)議。
(3)每個(gè)方法采用的核心技術(shù)不相同,但主要為集中式的查詢分發(fā)技術(shù)和分布式的本地查詢機(jī)制兩類。
(4)每個(gè)方法都會(huì)提供合適的管理工具和簡單的查詢工具,但很少有方法提供較好的結(jié)果合并和結(jié)果重排序的功能。
(5)每個(gè)方法的問題需求不同,因此使用的技術(shù)和數(shù)據(jù)模型不同,從而導(dǎo)致每個(gè)方法的互操作效果上也有所差異。但是,它們?cè)诓闇?zhǔn)率和查全率、查詢速度、數(shù)據(jù)冗余度、可擴(kuò)展性等方面都存在有待提高的地方。此外,針對(duì)不同的問題需求和場(chǎng)景,需要選擇合適的方法才能達(dá)到較好的效果。
參考文獻(xiàn)
[1] BROWNE S, MOORE J. Reuse library interoperability and the world wide web. In Proceedings of the 19th International Coference on Software Engineering, USA. ACM, 1997:684-691.
[2] BROWNE S, DONGARRA J, HORNER J, et al. Technologies for repository interoperation and access control.In Proceedings of the 3rd ACM International Conference on Digital Libraries, Pittsburgh, PA, USA. ACM, 1998:40-48.
[3] IEEE. IEEE guide for information technology-software reuse-concept of operations for interoperating reuse libraries.IEEE std 1430, 1996.
[4] ANSI/NISO. Information retrieval(Z39.50): application service definition and protocol specification. ANSI/NISO Z39. 50-2003. 2003.
[5] WEIDER C, REYNOLDS J K, HEKER S. Rfc 1390-technical overview of directory services using the X.500 protocol.Technical report, Internet RFC/STD/FYI/BCP. 1992.
[6] HOWES T. LDAP-programming directory enabled applications with lightweight directory access protocol. MacMillan Technology, 1997.