于 莉
(天津市財貿管理干部學院,天津 300170)
隨著Internet與網絡技術的發展,Internet上運行的復用庫也日益增多,每個復用庫的開發者和管理者都會針對特定的領域或用戶群對復用庫中的資源進行組織和管理,并提供相應的服務[1]。然而,用戶所需的許多構件往往并不只在一個軟件復用庫中存在,而這些獨立的復用庫的存在就會要求用戶分別訪問多個復用庫以獲取所需的構件,這會導致冗余和檢索效率的降低。允許這些復用庫可以按照自己特定的方式管理和維護庫中存放的構件,同時又使用戶通過一個界面透明地訪問和檢索多個復用庫中的構件,這對于提高構件復用效率和復用的可能性非常必要,因此出現了軟件復用庫互操作方法[2]。
以前對于復用庫互操作方法的研究只是簡單地從操作對象角度出發,將復用庫的互操作分為描述資源的目錄層次上的互操作和實際資源層次上的互操作兩個層次[2],并沒有給出各種方法的全面綜合比較和分析。
本文將從互操作對象、交換的信息、使用的核心技術、支持的系統/工具以及互操作的效果五個方面對現有的復用庫的互操作方法 BIDM、OML、UDDI、DCH、U-ranus、DROO和統一檢索機制進行分類比較。
不同的方法進行互操作的對象有所不同,如表1所示。

表1 在互操作的對象上的分類比較
復用庫互操作的一個重要方面就是要在復用庫之間交換信息[3]。要進行信息交換,就需要特定的描述方法或者特定的表示格式來描述需要交換的信息,這可以劃分為三個層次。
(1)數據模型層:數據模型層抽象定義了復用庫之間要交換的信息。不同的方法由于互操作的對象不同,所以使用的數據模型通常都是不一樣的。
(2)表示格式層:表示格式層指定了如何正確描述數據模型實例的格式,常見的表示格式有HTML、XML、GML等。
(3)協議層:協議層描述了兩個結點之間用于交換信息的“會話”方式。主要分為通訊協議和目錄訪問協議兩類。常見的通訊協議有 HTTP、FTP、SOAP、Z39.50[4],常見的目錄訪問協議有 X.500[5]、URL、LDAP[6]、ID 等。
由于每個方法的互操作對象不同,從而導致每個方法在交換的信息上也有所不同。表2給出了復用庫互操作方法在交換的信息上具體的分類比較結果。
可以看出,大部分方法都支持Internet上的通訊協議,但是采用的目錄訪問協議卻各有不同。每個方法使用的數據模型也有所差異,提供的表示格式也略有不同,但為了能在Internet上進行交互,大部分方法都支持HTML或者XML的表示格式。
復用庫互操作方法主要解決交換數據信息和使用數據信息進行可復用資源的查詢兩個問題。“核心技術”角度說明了這些方法在解決這兩個問題上使用的主要技術和常見的體系結構。
常見的體系結構主要有集中式和分布式。在集中式方法中,存在一個虛擬庫核心結點或者中間轉換結點,每個復用庫將自己的數據信息交換給該結點,用戶通過這個結點使用這些數據信息。在分布式方法中,每個復用庫之間按照特定的通訊圖直接進行數據信息的交換,用戶可以在復用庫結點直接使用這些數據信息。
表3給出了復用庫互操作方法在“核心技術”角度上的分類比較結果。可以發現,分布式體系結構的系統大多都支持本地查詢,大部分方法都提供重定向技術,因為同步復制技術會造成數據冗余的問題,但是同步復制機制能較好地保證數據一致性。
一般而言,要實現復用庫互操作都需要有相應的系統或工具支持互操作方法的實現。復用庫互操作的支持系統或工具通常可以分為管理工具和查詢工具兩類。其中,管理工具負責與數據信息交換相關的操作,主要從是否支持新結點的注冊、數據信息的修改、數據信息的實時修改等三方面進行分類比較,根據不同的需求和實現技術,不同的支持系統或工具會提供不同功能的管理工具。查詢工具負責與使用交換的數據信息進行查詢的相關操作,主要從是否提供查詢轉換功能、是否進行查詢結果合并、是否對查詢結果進行排序等子功能進行分析比較。

表2 在交換的信息上的分類比較

表3 在核心技術上的分類比較
各方法提供的支持系統或工具主要是在傳統意義的復用庫提供的功能基礎上還需要額外提供的工具或系統。通常情況下,采用集中式體系結構的方法大多會提供支持系統來輔助完成庫結點之間的互操作;采用分布式體系結構的方法大多會在原有系統上增加互操作所需要的一些額外管理設施或者互操作工具。

表4 在支持的系統和工具上的分類比較

表5 在互操作效果上的分類比較
表4給出了復用庫互操作方法在“支持的系統和工具”角度上的分類比較結果。
不同方法采用的技術不同,從而導致每種方法的互操作效果不同。本文主要從解決的問題場景、查詢效率、數據冗余度和可擴展性四個方面對不同的方法所產生的效果進行分類比較。“問題的場景”說明了方法所能解決的問題范圍以及要達到的目標。“查詢效率”從查準率、查全率和查詢速度三個角度說明每個方法在查詢效果上的情況。“數據冗余度”是從(高、中、低)三個程度來說明各個方法的冗余相對度。“可擴展性”指的是方法中對進行互操作的復用庫結點是否需要額外的操作或修改。如果需要額外的操作或修改越多,可擴展性就越低,反之額外的操作和修改越少,可擴展性就越高。
從“互操作效果”這個角度對復用庫互操作方法進行分類比較,可以發現復用庫互操作問題中還存在哪些可以解決或者可以提高的問題。由于方法之間并沒有進行量化的實驗數據比較,因此,僅采用相對方式比較各種方法的互操作效果,如表5所示。
通過分析比較,可以推斷出目前的方法和系統具有以下特性:
(1)大多數方法或系統提供的都是對描述模型和描述信息的互操作。由于實體的互操作涉及到知識產權問題,并且會造成數據冗余度的提高,因此大多方法并不支持多結點上復制相同的實體,對語義信息的互操作也很少提供。OML方法和統一檢索機制提供了語義信息上的互操作,但也只是通過同義詞詞典實現。同義詞詞典的建立是由管理員進行的,增大了管理員的工作量和工作難度。
(2)每個方法交換的信息的數據模型都不相同,但基本上都提供Internet上可以通訊和訪問的表示格式和協議。
(3)每個方法采用的核心技術不相同,但主要為集中式的查詢分發技術和分布式的本地查詢機制兩類。
(4)每個方法都會提供合適的管理工具和簡單的查詢工具,但很少有方法提供較好的結果合并和結果重排序的功能。
(5)每個方法的問題需求不同,因此使用的技術和數據模型不同,從而導致每個方法的互操作效果上也有所差異。但是,它們在查準率和查全率、查詢速度、數據冗余度、可擴展性等方面都存在有待提高的地方。此外,針對不同的問題需求和場景,需要選擇合適的方法才能達到較好的效果。
[1]BROWNE S,MOORE J.Reuse library interoperability and the world wide web.In Proceedings of the 19th InternationalCoference 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 reuseconcept 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.