软件复用库互操作方法比较
扫描二维码
随时随地手机看文章
随着Internet与网络技术的发展,Internet上运行的复用库也日益增多,每个复用库的开发者和管理者都会针对特定的领域或用户群对复用库中的资源进行组织和管理,并提供相应的服务。然而,用户所需的许多构件往往并不只在一个软件复用库中存在,而这些独立的复用库的存在就会要求用户分别访问多个复用库以获取所需的构件,这会导致冗余和检索效率的降低。允许这些复用库可以按照自己特定的方式管理和维护库中存放的构件,同时又使用户通过一个界面透明地访问和检索多个复用库中的构件,这对于提高构件复用效率和复用的可能性非常必要,因此出现了软件复用库互操作方法。
以前对于复用库互操作方法的研究只是简单地从操作对象角度出发,将复用库的互操作分为描述资源的目录层次上的互操作和实际资源层次上的互操作两个层次,并没有给出各种方法的全面综合比较和分析。
1 复用库互操作方法比较
本文将从互操作对象、交换的信息、使用的核心技术、支持的系统/工具以及互操作的效果五个方面对现有的复用库的互操作方法BIDM、OML、UDDI、DCH、Uranus、DROO和统一检索机制进行分类比较。
1.1 在互操作对象上的分类比较
不同的方法进行互操作的对象有所不同,如表1所示。
表1 在互操作的对象上的分类比较
1.2 在交换的信息上的分类比较
复用库互操作的一个重要方面就是要在复用库之间交换信息。要进行信息交换,就需要特定的描述方法或者特定的表示格式来描述需要交换的信息,这可以划分为三个层次。
(1)数据模型层:数据模型层抽象定义了复用库之间要交换的信息。不同的方法由于互操作的对象不同,所以使用的数据模型通常都是不一样的。
(2)表示格式层:表示格式层指定了如何正确描述数据模型实例的格式,常见的表示格式有HTML、XML、GML等。
(3)协议层:协议层描述了两个结点之间用于交换信息的“会话”方式。主要分为通讯协议和目录访问协议两类。常见的通讯协议有HTTP、FTP、SOAP、Z39.50,常见的目录访问协议有X.500[5]、URL、LDAP、ID等。
由于每个方法的互操作对象不同,从而导致每个方法在交换的信息上也有所不同。表2给出了复用库互操作方法在交换的信息上具体的分类比较结果。
表2 在交换的信息上的分类比较
可以看出,大部分方法都支持Internet上的通讯协议,但是采用的目录访问协议却各有不同。每个方法使用的数据模型也有所差异,提供的表示格式也略有不同,但为了能在Internet上进行交互,大部分方法都支持HTML或者XML的表示格式。
1.3 在核心技术上的分类比较
复用库互操作方法主要解决交换数据信息和使用数据信息进行可复用资源的查询两个问题。“核心技术”角度说明了这些方法在解决这两个问题上使用的主要技术和常见的体系结构。
常见的体系结构主要有集中式和分布式。在集中式方法中,存在一个虚拟库核心结点或者中间转换结点,每个复用库将自己的数据信息交换给该结点,用户通过这个结点使用这些数据信息。在分布式方法中,每个复用库之间按照特定的通讯图直接进行数据信息的交换,用户可以在复用库结点直接使用这些数据信息。
表3给出了复用库互操作方法在“核心技术”角度上的分类比较结果。可以发现,分布式体系结构的系统大多都支持本地查询,大部分方法都提供重定向技术,因为同步复制技术会造成数据冗余的问题,但是同步复制机制能较好地保证数据一致性。
表3 在核心技术上的分类比较
1.4 在支持的系统和工具上的分类比较
一般而言,要实现复用库互操作都需要有相应的系统或工具支持互操作方法的实现。复用库互操作的支持系统或工具通常可以分为管理工具和查询工具两类。其中,管理工具负责与数据信息交换相关的操作,主要从是否支持新结点的注册、数据信息的修改、数据信息的实时修改等三方面进行分类比较,根据不同的需求和实现技术,不同的支持系统或工具会提供不同功能的管理工具。查询工具负责与使用交换的数据信息进行查询的相关操作,主要从是否提供查询转换功能、是否进行查询结果合并、是否对查询结果进行排序等子功能进行分析比较。
各方法提供的支持系统或工具主要是在传统意义的复用库提供的功能基础上还需要额外提供的工具或系统。通常情况下,采用集中式体系结构的方法大多会提供支持系统来辅助完成库结点之间的互操作;采用分布式体系结构的方法大多会在原有系统上增加互操作所需要的一些额外管理设施或者互操作工具。
表4给出了复用库互操作方法在“支持的系统和工具”角度上的分类比较结果。
表4 在支持的系统和工具上的分类比较
1.5 在互操作效果上的分类比较
不同方法采用的技术不同,从而导致每种方法的互操作效果不同。本文主要从解决的问题场景、查询效率、数据冗余度和可扩展性四个方面对不同的方法所产生的效果进行分类比较。“问题的场景”说明了方法所能解决的问题范围以及要达到的目标。“查询效率”从查准率、查全率和查询速度三个角度说明每个方法在查询效果上的情况。“数据冗余度”是从(高、中、低)三个程度来说明各个方法的冗余相对度。“可扩展性”指的是方法中对进行互操作的复用库结点是否需要额外的操作或修改。如果需要额外的操作或修改越多,可扩展性就越低,反之额外的操作和修改越少,可扩展性就越高。
从“互操作效果”这个角度对复用库互操作方法进行分类比较,可以发现复用库互操作问题中还存在哪些可以解决或者可以提高的问题。由于方法之间并没有进行量化的实验数据比较,因此,仅采用相对方式比较各种方法的互操作效果,如表5所示。
表5 在互操作效果上的分类比较
2 结果分析
通过分析比较,可以推断出目前的方法和系统具有以下特性:
(1)大多数方法或系统提供的都是对描述模型和描述信息的互操作。由于实体的互操作涉及到知识产权问题,并且会造成数据冗余度的提高,因此大多方法并不支持多结点上复制相同的实体,对语义信息的互操作也很少提供。OML方法和统一检索机制提供了语义信息上的互操作,但也只是通过同义词词典实现。同义词词典的建立是由管理员进行的,增大了管理员的工作量和工作难度。
(2)每个方法交换的信息的数据模型都不相同,但基本上都提供Internet上可以通讯和访问的表示格式和协议。
(3)每个方法采用的核心技术不相同,但主要为集中式的查询分发技术和分布式的本地查询机制两类。
(4)每个方法都会提供合适的管理工具和简单的查询工具,但很少有方法提供较好的结果合并和结果重排序的功能。
(5)每个方法的问题需求不同,因此使用的技术和数据模型不同,从而导致每个方法的互操作效果上也有所差异。但是,它们在查准率和查全率、查询速度、数据冗余度、可扩展性等方面都存在有待提高的地方。此外,针对不同的问题需求和场景,需要选择合适的方法才能达到较好的效果。