专利名称:一种支持异构构件的构件库统一管理方法
技术领域:
本发明涉及一种支持异构构件的构件库统一管理方法,属于软件工程技术领域。
背景技术:
随着计算机网络和Internet技术的不断发展,用户通过多样化的形式获取各种网络应用程序(服务),对Internet应用的智能化、个性化、综合化的要求越来越高。从这种发展趋势中可以看出,面向终端用户的应用程序个性化定制将是未来软件和服务开发的主要模式之一。
在这样的背景下,构件技术被提出并得到广泛应用。构件是指具有相对独立功能和可复用的软件模块(如图1所示)。它使得软件开发人员在新的系统开发中能够充分利用过去系统开发过程中积累的知识、经验和功能模块,而不必一切都“从零开始”,从而避免了软件开发中的重复劳动。目前,构件作为一种依附在计算机硬件和操作系统之上的重要的中间件系统,在金融、教育、电子商务、电子政务、医疗卫生等应用领域中得到了大量应用,为提高软件复用程度和软件开发的效率发挥了很好的作用。
为了支持构件复用,一些组织和公司纷纷推出自己的构件技术标准,如SUN公司提出的Java构件标准JavaBeans、EJB,微软公司提出的COM、DCOM标准以及对象管理组织(OMG)CORBA3.0规范中的CCM标准等等。另一方面,当前对于支持Web服务的构件库系统在国内外已经有了比较广泛的研究,也具备了相当多成熟的技术和成果,Internet上出现了很多遵循各类同构构件技术标准的专门的构件库(如Alphaworks、Flashline、ComponentPlanet、ComponentSource等),提供了多种现成的可用构件,这些构件库形成了Internet上的构件资源,为软件复用、基于构件的程序开发提供了基础。而且随着构件技术的发展,网络构件库的规模仍在不断扩大,为应用和服务的组合提供了构件资源。
但是,目前各大研究和商业机构所都使用自己特定的规范和标准来开发构件,构件描述结构各异,如EJB、COM、CORBA等,均具有独特的构件实现机制和描述方法,表现为构件之间的“异构性”,即不一致。归纳而言,各种构件开发标准和规范之间的异构性问题主要体现在以下两个方面构件描述的外部性信息,如构件组织资源和功能分类等信息很不一致,构件的许多基本开发和应用描述也不完整,造成上层应用在构件搜索、获取方面的困难;构件接口的行为信息不一致,构件接口作为行为描述的标志,却严重依赖于构件实现的编程语言,造成描述不一致,不能很好地支持异构构件之间的相互访问。
正是由于构件之间的异构性,导致现今仍没有一种合理的规范实现异构构件的统一管理和操作,构件之间的相互访问和调用还只局限于同一类型的构件之间,对不同类型构件之间一致性访问缺乏必要的支持,造成开发人员和终端用户在进行构件搜索、获取以及分析、组装等构件处理活动中只能基于同一规范的构件进行操作,对软件构件的重用局限性较大,现有Internet上的大量构件资源无法得到广泛的应用,不利于在Internet平台上实现按需个性化服务;而且,各类构件库系统之间的组织存储与检索等机制也不尽相同,无法实现统一的程序挖掘和构件管理。
可见,构件异构性已经成为了限制软件复用技术发展的瓶颈,实现各类规范的构件之间的一致性访问和操作是今后主要的研究方向。构件异构性问题主要需通过以下两步来解决首先是对异构构件进行统一封装和描述,屏蔽不同类型构件描述和调用接口的差异。在专利“一种构件封装和一致性访问的方法”(ZL200410030654.5)中,已经提出一种统一构件封装件结构,该封装件结构在现有的各种构件模型(如ActiveX,JavaBeans,EJB等)的基础上,通过对构件的封装将构件的外部信息进行归一映射,形成系统、规范的构件模型,从而实现构件的一致性访问。
其次是在上述封装基础上,对异构构件进行统一访问管理。上述专利为多种类型之间的构件资源一致性访问提供了一种可行的方法。但是,使用构件的最终目的是为了通过构件组装来创建新的应用系统,这就需要在如前所述的构件封装和一致性访问方法基础上,设置构件库来对现有构件资源进行统一描述和有效组织,按照应用需求从构件库中检索和访问到所需的构件,形成统一的支持异构构件的管理方法,为各种标准的异构构件创建统一的开发和应用平台。设计和实现支持异构构件的统一构件库管理方法的技术重点和难点主要在于1)解决构件分类的一致性问题。构件分类是以自然语言为基础,从功能、复用层次等角度对构件进行细化定位的过程,主要目的是便于构件使用者更方便、更精确地找到所需要的构件。不同构件规范导致各个构件库对构件的分类体系在表达上完全不同,因此需要设计一种能统一和规范地描述各种构件的构件分类体系结构,使各种构件都能映射到该分类体系空间中。
2)解决构件存储的一致性问题。构件存储架构模型的优劣决定了构件库对构件进行管理的效率高低。异构构件被不同组织开发后存储在不同的构件库中,其存储模式各不相同。在统一构件管理系统中,需要将异构构件的实体、封装描述等信息一体化存储到构件库的相应位置,并提供一致性访问操作接口。
3)解决构件库访问和管理的一致性问题。构件库的统一访问和管理是必须在构件异构性被完全屏蔽、且构件的分类组织体系一致的基础上实现的,根据构件的统一描述机制,实现对异构构件的入库、检索、删除等一致性操作,为进一步构件应用和组装提供操作服务。
发明内容
本发明的目的是为克服已有的针对异构构件库管理技术的不足之处,提出一种支持异构构件的构件库统一管理方法,屏蔽各类构件“异构性”特点,主要包括以下步骤在已有的针对异构构件的统一构件封装件结构基础上,创建一种以XML和SQL Server数据库相结合的网状索引结构作为构件库的体系框架;在此平台上实现异构构件的分类和组织模式;剖析各类构件的描述信息,封装和屏蔽其原有的外部信息,归一化存储到以本分类组织模式定义的构件检索库中;在构件统一分类和存储的基础上实现对构件库的一致性访问和检索。有效完成每个构件从Internet上被获取到本地并验证、信息映射规范、描述信息和实体入库、构件检索访问等操作,并形成统一的数据封装、传输和解析规范。本发明可在金融、教育、电子商务、电子政务、医疗卫生等应用领域中提高网络软件复用和软件开发的效率,为进一步实现Internet个性化按需服务中所涉及的程序挖掘和构件组装提供支持。
本发明提出一种支持异构构件的构件库统一管理方法,其操作流程如图2所示。本发明的特征在于,所述方法依次含有以下步骤步骤(1)在一台或多台计算机上设置构件库,其上存储所有构件的实体,形成构件库计算机;步骤(2)在另一台计算机上设置构件目录库,维护一个统一构件封装件库,用于存储构件描述信息的集合,形成构件目录库计算机;步骤(3)依次按以下步骤在构件目录库计算机上设计一种异构统一的构件分类组织体系,以此构造基于XML的网状构件信息索引结构表,并创建基于SQL Server数据库的构件分类检索表步骤(3.1)按构件属性把构件库划分为以下三个刻面领域构件类型、构件功能以及复用层次,该复用层次是构件在程序挖掘和软件复用各个过程阶段的复用层次;步骤(3.2)构造多刻面网状结构的空的XML信息索引结构表,在所述网状结构中,每个叶节点对应于一个包括构件的描述信息以及一个指明构件实体所在位置的标识在内的构件说明,每个非叶节点对应一个由相同类别的一组构件说明所构成的元目录,含有包括元目录的名称、定义在内的描述信息以及该元目录下的构件说明的索引信息;
步骤(3.3)遍历和提取构件库刻面领域和术语空间的关键词信息,生成包括刻面领域、一级术语、二级术语在内的以大纲形式描述的构件索引结构,然后根据XML Schema规范,以树状形式将构件索引结构写入到步骤(3.2)所述的空的XML文件中,该文档中描述三个刻面领域节点,每个节点下包含若干个子领域术语节点,最底层为各个构件节点及其ID;步骤(3.4)在构件目录库计算机的SQL Server数据库中创建构件分类检索表,表项包括构件ID、构件刻面领域和构件基本描述;步骤(4)将从Internet上各个专业构件库下载异构构件保存在临时文件夹中,并按照描述信息进行分类,用统一XML形式描述所提取的各构件的自身信息,经过映射形成统一的构件封装件,保存在统一构件封装件库中,所述的描述信息是指判断构件类型用的构件文件扩展名及内部自带的标识字段;步骤(5)根据构件的统一构件封装件信息,进行本地构件入库存储以及建立索引操作,依次包括以下步骤步骤(5.1)从待入库构件的统一构件封装件中获得构件分类信息和构件基本描述信息;步骤(5.2)按照构件库的刻面领域分类,依次提取相应领域的有效关键词,得到构件的功能、类型、复用层次各领域分别对应的描述关键词;步骤(5.3)利用已设定的自然语言处理模块,进行描述信息映射,按匹配最完全的原则确定构件的规范刻面属性;步骤(5.4)打开在构件目录库计算机上创建的XML信息索引结构表;步骤(5.5)根据步骤(3.3)获得的构件刻面各级规范术语,在XML信息索引结构表中定位术语位置,并将该构件的唯一ID包装成XML结点描述,挂在该术语节点内,同一结点描述需要挂在多个相应术语节点内;步骤(5.6)再将此构件的刻面各级规范术语与构件ID、构件基本描述信息一起,整合生成SQL记录添加命令,记录构件ID、构件类型、构件功能、复用层次和构件基本描述信息;步骤(5.7)连接SQL Server数据库,并执行步骤(5.6)生成的记录添加命令,使该构件的分类信息和基本描述信息以记录形式保存到构件分类检索表中;步骤(5.8)在构件库保存构件实体的目录下创建一个以构件ID命名的文件夹,将原来临时文件夹中的构件实体存放至该ID文件夹下;
步骤(5.9)在构件封装件中把构件地址更新为构件库中的本地地址;步骤(5.10)把修改完的构件封装件以构件ID命名,放入构件目录库的构件描述信息文件夹中;步骤(5.11)重复步骤(5.1)~(5.10),直到全部待入库的构件入库,关闭XML信息索引结构表文件,完成构件入库及索引建立的步骤;步骤(6)对构件库实行统一检索和访问管理,包括以下步骤步骤(6.1)获取构件使用方提出的构件需求条件,格式包括指定的刻面领域术语特征、关键词、接口信息,以XML的形式传递和保存;步骤(6.2)从构件需求中提取检索刻面领域术语及其术语空间;步骤(6.3)对于已获取的检索刻面术语,结合其刻面领域信息,进行SQL Server数据库查询;步骤(6.4)把刻面检索的结果保存在临时数据集DataSet1中;步骤(6.5)从步骤(6.1)的构件需求中提取检索关键词;步骤(6.6)对用户输入的关键检索词进行拆分,并以链表的形式分离保存;步骤(6.7)按链表中关键词的个数设计循环体,从链表中依次取出关键词,针对前面步骤(6.4)中得到的临时数据集DataSet1的构件基本描述信息域进行扫描,把所有包含该关键词的记录全部挖掘出来;步骤(6.8)重复步骤(6.7),依次在前一次的挖掘结果中进行再搜索,直到检索完最后一个关键词得到包含所有关键词的概要信息的记录为止;步骤(6.9)将关键词检索的结果保存在临时数据集DataSet2中,同时得到了所有满足检索条件的构件ID;步骤(6.10)根据DataSet2中的构件ID,从构件信息库中提取以这些ID命名的构件信息描述统一构件封装件;步骤(6.11)对于每个封装件,扫描其接口描述信息,确认与用户提出的接口要求一致、且数据类型匹配后,把满足检索条件的统一构件封装件以XML的形式返回给用户,供需求方进行更细致的检查;步骤(6.12)根据构件信息描述中的本地地址信息,从构件实体库中下载所需要的构件实体并保存。
本发明是为保证在Internet个性化按需服务和程序挖掘过程中能充分利用软件复用技术,提供一个包含大量可重用和组装的构件以及完备构件信息的本地资源构件库(Local ResourceComponent Warehouse),为各种类型、各种功能构件的有效组织提出了一种基于XML和SQLServer数据库的网状信息层次化索引结构,并针对该构件库实现以构件入库存储、构件检索访问等功能为主体的构件一致性访问管理,形成统一的数据封装、传输和解析规范。本发明主要有以下几个具体特点1)清晰的层次化体系结构。本构件库管理系统是基于Browser/Server的三层体系结构模式(即用户界面层、应用逻辑层、数据库层)创建的。用户界面可以采用简单的Web形式,降低客户端系统的要求,同时提高系统的安全性;应用逻辑层主要根据构件访问管理协议来提供构件入库存储、检索访问等构件管理操作;数据库层是采用XML网状信息层次化索引结构与SQL Server数据库相关联的纵横结合模式对构件进行存储。
2)多种检索机制相结合。本构件库系统提供比较完备的检索机制,根据构件的基本描述信息、关键词、构件分类信息和构件接口信息进行一体化的串行检索。因为异构构件描述方式各异,所以一方面我们对其分类信息实现了规范统一,可进行基于刻面的分类检索,另一方面对于构件的基本描述信息和关键词的检索是保证对构件的信息有比较全面的覆盖。同时,因为在构件进行复用时,构件的输入、输出接口信息的匹配极其重要,所以也必须按要求进行构件接口数量和类型的匹配检索。将上述构件检索方式串行实现,既保证检索的到位,尽量减少遗漏构件;也保证检索的精确,去除与检索要求相关度低的构件,为构件重用和组装提供有效支持。
3)简单的操作流程,可同时面向开发者和普通用户。本方法的应用不需要复杂的人工操作,既可面向软件开发者,也可为普通终端用户使用,进行构件的重用和组装。
本发明的技术效果及应用如下1、采用本发明的方法,创建以XML网状索引结构与SQL Server数据库想结合的构件描述存储体系架构,并通过对构件的统一封装,在构件库访问管理协议的操作控制下,实现对不同构件的一致性访问,使得需要访问多种构件的客户程序可以按照统一的方式来访问不同类型的构件,不仅大大简化了客户端的操作程序,也显著提高了软件集成的灵活性。
2、本发明为软件开发人员和终端用户提供了丰富、统一的构件管理平台,这样不仅可以提高软件开发人员进一步开发服务平台和构件(程序)挖掘系统的效率;同时还可以令终端用户根据其需求直接发现、定制用户需要而选择构件组装应用程序,实现面向用户的个性化主动服务。
3、本发明可在金融、教育、电子商务、电子政务、医疗卫生等应用领域中提高网络软件复用和软件开发的效率,为进一步实现Internet个性化按需服务中所涉及的程序挖掘和构件组装提供支持。本发明将来自不同供应商、不同模型的各类构件进行统一封装和描述,并通过构件库访问管理协议对各种构件进行一致性访问,从而可灵活地支持本应用领域的业务流程的形成和动态调整以及面向用户的个性化应用程序的定制和集成。
4、应用本发明可以提高软件系统的安全性。用户可以根据网络环境和应用安全的需要,随时采用本发明方法选取构件,灵活地置换软件系统所使用的安全性构件及其组装方式,如金融、电子政务等领域的安全防护方面可以起到重要作用。
图1为构件结构示意图。
图2为支持异构构件的构件库统一管理方法流程图。
图3为本发明中支持异构构件的多刻面网型结构示例图。
图4为本发明中基于XML的多刻面网状体系结构框架示意图。
图5为本发明中基于XML的构件结点入库示意图。
图6为本发明中支持异构构件的构件检索流程示意图。
图7为本发明中基于XML的构件检索需求示意图。
具体实施例方式
本发明提出的一种支持异构构件的构件库统一管理方法结合附图及实施例详细说明如下第一步,在一台或多台计算机上设置构件库,其上存储所有构件的实体,形成构件库计算机。
第二步,在另一台计算机上设置构件目录库,维护一个构件统一封装件库,用于存储构件描述信息集合,形成构件目录库计算机。
第三步,在构件目录库计算机上设计一种异构统一的构件分类组织体系,以此构造基于XML的网状构件信息索引结构表,创建SQL Server数据库构件分类检索表。
本步骤的具体过程描述如下首先对构件库划分刻面。按照精简、刻面正交、全面性和一致性这四个原则,可以选取那些在用户检索中经常用到的,又符合上述原则的属性作为刻面。在本发明中,选定了以下三个构件属性作为刻面。
刻面1构件类型(CTComponent Type)。该刻面根据现有的多种构件格式而设定。例如JavaBean、EJB、ActiveX等。
表1构件类型刻面(CT)的术语词表
刻面2构件功能(CFComponent Functionality)。构件的功能是该构件在原有或可能的软件系统中所提供的软件功能集。例如用户接口设计、网络功能、文件操作、图形处理等等。构件库中任何构件都必须提供一种或多种功能。该刻面根据构件的具体功能以及在软件开发中的作用分为电子商务(E-Commerce)、电子政务(E-Government)、教育(E-Learning)、开发工具(Development Tools)、多媒体(Multimedia)、文件处理(File Manipulation)、科学计算(Scientific Computing)、网络工具(Network Tools)、网络安全(Network Security)、杂项(Miscellaneous)、其他(Others)共11个类别,每个类别进一步细分为多个子类作为术语空间。
刻面3复用层次(LRLevel of Reusing)。构件的复用层次是构件在程序挖掘和软件复用各个过程阶段的应用层次。如有些构件本身就是一个完整的应用,它的复用层次就处于“应用”层次;而对于源代码构件,它的复用层次就处于“编码”层次。目前复用层次术语有Application-Level(应用)、Component-Level(构件)、Code-Level(编码)等。
以上三个属性彼此间完全相互隔离和独立,而且比较充分地体现了构件与复用相关的特性,也能适应程序挖掘系统和本地资源构件库今后的发展,因此将以上三个属性确定为LCRW构件库的刻面体系。
接着构造网状结构的XML信息索引结构表。网状结构是对树型结构的一种改进。与树型结构相同的地方在于,在网状结构中,每个叶节点对应于一个构件说明(ComponentDescription),它包括构件的描述信息以及一个指明构件代码所在位置的标识。每个非叶节点对应一个由相同类别的一组构件说明所构成的元目录(Metacategory),它包括元目录的名称、定义等描述信息以及该元目录下所有的构件说明的索引信息。
在采用了多刻面模式以后,构件库就从不同角度对构件进行分类,以方便用户从不同角度来检索访问构件。每一种分类角度都将对应一个树型结构来划分组织构件库中的构件资源。这使得同一个构件说明将被同时组织在不同树型结构中的多个元目录下,这样,一个叶节点将同时属于几个不同的非叶节点,从而构成一个网状的组织结构。
由于本地资源构件库同时从构件类型、构件功能、构件复用层次这三个角度来组织构件,一个构件实际上同时属于对应的三个树型结构中不同的元目录下。仍以FTP Protocol构件为例,从构件类型角度进行组织,它属于JavaBean元目录;从构件功能角度进行组织,它属于Network下的网络传输元目录;从构件复用层次角度进行组织,它属code-level元目录。这样,FTP Protocol构件所对应的FTP Protocol构件说明将被同时链接在JavaBean、网络传输和code-level这三个不同的元目录下,从而形成一个网状结构,如图3所示。
然后在构件目录库计算机上构造一个空的XML信息索引结构表文件命名为ComponentTable.xml,遍历和提取构件库刻面领域和术语空间的关键词信息,生成包括刻面领域、一级术语、二级术语等以大纲形式描述的构件索引结构,根据XML Schema规范,以树状形式将构件索引结构写入到XML文件中。在该文档中描述三个主领域节点,每个节点下包含若干个子领域术语节点,最底层为各个构件节点,描述构件的ID。该信息索引结构表的架构描述如图4所示。
完成上述对XML文件的编辑和填写后,在构件目录库计算机的SQL Server数据库中创建构件分类检索表ComponrntTable,表项包括构件ID、构件刻面领域和构件基本描述。
第四步,从Internet上的各个专业构件库中获取多种异构构件,保存在临时文件夹中。根据该构件的文件扩展名及内部自带标识字段判断要封装的构件类型,例如区分出是JavaBean构件、ActiveX构件或是其他类型构件,然后针对不同构件类型,提取构件自身信息,采用相应的映射方法,将该构件自身信息填充到封装件结构的相应部分,形成用统一XML形式描述的该构件自身信息的统一构件封装件,即以该构件ID命名的XML文件。该步骤详细过程参考专利“一种构件的封装和一致性访问的方法”(ZL200410030654.5)。
第五步,根据构件的统一封装件信息,进行本地构件入库存储以及建立索引操作按照其中的分类信息组织到构件索引信息库中,形成网状结构中的一个节点,如图5所示,同时将构件实体保存到构件库中,并在统一构件封装件中将构件的本地地址更新,接着利用XML与SQL Server数据库的转换工具,将每个构件的分类信息和基本描述信息以记录的形式完整地保存在SQL数据库中。
将构件分类信息和基本描述信息映射到刻面术语空间上之后,以记录的形式,保存在数据库中,这主要是利用刻面术语空间规范性和确定性,并充分发挥SQL Server数据库在关键词检索方面的优势,加速纵向构件检索,与基于构件索引结构XML表的横向浏览机制相辅相成,便于更高精度地定位构件。
本步骤的具体操作过程如下(1)从待入库构件的统一构件封装件中获得构件分类信息和基本描述信息;(2)按照构件库的刻面分类,依次提取相应领域的有效关键词,得到构件的功能、类型、复用层次分别对应的描述符;(3)利用已有的自然语言处理模块,进行描述信息映射,按匹配最完全的原则确定构件的规范刻面属性;(4)若尚未打开已经在构件目录库计算机上创建的XML信息索引结构表,则打开该索引结构表文件;(5)根据第三步中获得的构件刻面各级规范术语,在XML信息索引结构表定位术语位置,并将该构件的唯一ID包装成XML结点描述,挂在该术语结点内,因为构件有多个领域的术语,则在信息索引结构表中该构件的结点描述要挂在多个相应术语内,如图5所示;(6)再将此构件的刻面各级规范术语与构件ID、构件基本描述信息一起,整合生成SQL记录添加命令,该SQL语句的格式为Insert into ComponentTable(构件ID,构件类别,构件功能,复用层次,构件描述信息)Values(′构件ID′ ,′构件类别术语′,′构件功能术语′复用层次术语′构件基本描述信息′);(7)连接SQL Server数据库,并执行步骤(6)生成的记录添加命令,使该构件的分类信息和基本描述信息以记录形式保存到构件分类检索表中;(8)在构件库保存构件实体的目录下创建一个以构件ID命名的文件夹,将原来临时文件夹中的构件实体存放至该ID文件夹下;(9)在统一构件封装件中将构件地址更新为构件库中的本地地址;(10)把修改完的构件统一封装件以构件ID命名,放入目录信息库的构件描述信息文件夹中;(11)若还有其他待入库的构件,则回到步骤(1)重复此过程,否则关闭XML信息索引结构表文件,完成构件入库存储及索引建立的方法。
第六步,结合步骤5获取的构件描述信息,在步骤2设计的统一构件分类组织体系基础上,实现构件库的统一检索和访问管理。
构件检索和访问方法是根据用户提供的检索条件,结合构件索引信息库的索引结构和SQL Server数据库中的表项记录来查找构件。构件检索是构件库实现的关键模块之一,它直接影响到构件库中的构件能否最终得到复用。是否提供良好的检索方法是衡量构件库管理系统成功与否的主要标志。
构件库系统一般要提供多种方法来方便软件复用人员使用和提高检索效率,针对不同的要求采取不同的检索的方法。本发明中所阐述的构件检索方法主要是为进一步构件封装和个性化服务而设计的,包括基于刻面领域分类的检索和基于构件信息关键词的检索,最后还需要检查构件接口信息是否符合要求。
异构构件统一检索和访问方法的流程如图6所示,具体包括以下步骤(1)获取构件使用方提出的构件需求条件,以XML的形式传递和保存,文件格式如图7所示;(2)从构件需求中提取检索刻面的术语及其相应的术语空间;(3)对于有效的检索刻面的术语,结合其领域信息,进行SQL Server数据库查询,其SQL语句格式为select构件ID,构件描述信息from ComponentTable where+检索条件检索条件包括构件类型=′构件类型术语′构件功能=′构件功能术语′复用层次=′复用层次术语′
这三个条件中的一个或多个,之间用“and”操作符连接;(4)将刻面检索的结果保存在临时数据集DataSet1中;(5)从构件需求中提取检索关键词,并进行有效性检查,删除空的或者非法的查询条件;(6)根据空格或标点等条件将用户输入的多个关键词进行拆分,并以链表的形式分离保存;(7)按链表中关键词的个数设计循环体,从链表中依次取出关键词,针对前面步骤(4)中得到的临时数据集DataSet1的构件基本描述信息域进行扫描,把所有包含该关键词的记录全部挖掘出来;(8)对于每一个关键词,不断重复步骤(7),依次在前一次的挖掘结果中进行再度搜索,直到检索完最后一个关键词得到包含所有关键词的概要信息的记录为止;(9)将关键词检索的结果保存在临时数据集DataSet2中,即DataSet2中保存着所有满足条件的构件ID;(10)根据DataSet2中的构件ID,从构件信息库中提取以这些ID命名的构件信息描述统一构件封装件;(11)对于每个封装件,扫描其接口描述信息,主要检查构件输入和输出接口数量是否分别与用户提出的接口要求一致,以及各个接口的数据类型是否能匹配,然后把进一步选取的结果中所有满足检索条件的构件的统一封装件以XML的形式返回给用户,供开发人员或终端用户进行更细致的检索,如构件的基本信息、接口定义等等,便于构件的复用;(12)对于最终确定的需要获取的构件,根据构件信息描述中的本地地址信息,从构件实体库中下载构件实体并保存。
完成以上步骤后,可检索并获取满足构件组装条件的构件,包括构件统一描述信息和构件实体。
权利要求
1.一种支持异构构件的构件库统一管理方法,其特征在于,所述方法依次含有以下步骤步骤(1)在一台或多台计算机上设置构件库,其上存储所有构件的实体,形成构件库计算机;步骤(2)在另一台计算机上设置构件目录库,维护一个统一构件封装件库,用于存储构件描述信息的集合,形成构件目录库计算机;步骤(3)依次按以下步骤在构件目录库计算机上设计一种异构统一的构件分类组织体系,以此构造基于XML的网状构件信息索引结构表,并创建基于SQL Server数据库的构件分类检索表步骤(3.1)按构件属性把构件库划分为以下三个刻面领域构件类型、构件功能以及复用层次,该复用层次是构件在程序挖掘和软件复用各个过程阶段的复用层次;步骤(3.2)构造多刻面网状结构的空的XML信息索引结构表,在所述网状结构中,每个叶节点对应于一个包括构件的描述信息以及一个指明构件实体所在位置的标识在内的构件说明,每个非叶节点对应一个由相同类别的一组构件说明所构成的元目录,含有包括元目录的名称、定义在内的描述信息以及该元目录下的构件说明的索引信息;步骤(3.3)遍历和提取构件库刻面领域和术语空间的关键词信息,生成包括刻面领域、一级术语、二级术语在内的以大纲形式描述的构件索引结构,然后根据XMLSchema规范,以树状形式将构件索引结构写入到步骤(3.2)所述的空的XML文件中,该文档中描述三个刻面领域节点,每个节点下包含若干个子领域术语节点,最底层为各个构件节点及其ID;步骤(3.4)在构件目录库计算机的SQL Server数据库中创建构件分类检索表,表项包括构件ID、构件刻面领域和构件基本描述;步骤(4)将从Internet上各个专业构件库下载异构构件保存在临时文件夹中,并按照描述信息进行分类,用统一XML形式描述所提取的各构件的自身信息,经过映射形成统一的构件封装件,保存在统一构件封装件库中,所述的描述信息是指判断构件类型用的构件文件扩展名及内部自带的标识字段;步骤(5)根据构件的统一构件封装件信息,进行本地构件入库存储以及建立索引操作,依次包括以下步骤步骤(5.1)从待入库构件的统一构件封装件中获得构件分类信息和构件基本描述信息;步骤(5.2)按照构件库的刻面领域分类,依次提取相应领域的有效关键词,得到构件的功能、类型、复用层次各领域分别对应的描述关键词;步骤(5.3)利用已设定的自然语言处理模块,进行描述信息映射,按匹配最完全的原则确定构件的规范刻面属性;步骤(5.4)打开在构件目录库计算机上创建的XML信息索引结构表;步骤(5.5)根据步骤(3.3)获得的构件刻面各级规范术语,在XML信息索引结构表中定位术语位置,并将该构件的唯一ID包装成XML结点描述,挂在该术语节点内,同一结点描述需要挂在多个相应术语节点内;步骤(5.6)再将此构件的刻面各级规范术语与构件ID、构件基本描述信息一起,整合生成SQL记录添加命令,记录构件ID、构件类型、构件功能、复用层次和构件基本描述信息;步骤(5.7)连接SQL Server数据库,并执行步骤(5.6)生成的记录添加命令,使该构件的分类信息和基本描述信息以记录形式保存到构件分类检索表中;步骤(5.8)在构件库保存构件实体的目录下创建一个以构件ID命名的文件夹,将原来临时文件夹中的构件实体存放至该ID文件夹下;步骤(5.9)在构件封装件中把构件地址更新为构件库中的本地地址;步骤(5.10)把修改完的构件封装件以构件ID命名,放入构件目录库的构件描述信息文件夹中;步骤(5.11)重复步骤(5.1)~(5.10),直到全部待入库的构件入库,关闭XML信息索引结构表文件,完成构件入库及索引建立的步骤;步骤(6)对构件库实行统一检索和访问管理,包括以下步骤步骤(6.1)获取构件使用方提出的构件需求条件,格式至少包括指定的刻面领域术语特征、关键词、接口信息,以XML的形式传递和保存;步骤(6.2)从构件需求中提取检索刻面领域术语及其相应的术语空间;步骤(6.3)对于已获取的检索刻面术语,结合其刻面领域信息,进行SQL Server数据库查询;步骤(6.4)把刻面检索的结果保存在临时数据集DataSet1中;步骤(6.5)从步骤(6.1)的构件需求中提取检索关键词;步骤(6.6)对用户输入的每个经过有效性检查通过的关键检索词进行拆分,并以链表的形式分离保存;步骤(6.7)按链表中关键词的个数设计循环体,从链表中依次取出关键词,针对前面步骤(6.4)中得到的临时数据集DataSet1的构件基本描述信息域进行扫描,把所有包含该关键词的记录全部挖掘出来;步骤(6.8)重复步骤(6.7),依次在前一次的挖掘结果中进行再搜索,直到检索完最后一个关键词得到包含所有关键词的概要信息的记录为止;步骤(6.9)将关键词检索的结果保存在临时数据集DataSet2中,同时得到了所有满足检索条件的构件ID;步骤(6.10)根据DataSet2中的构件ID,从构件信息库中提取以这些ID命名的构件信息描述统一构件封装件;步骤(6.11)对于每个封装件,扫描其接口描述信息,确认与用户提出的接口要求一致、且数据类型匹配后,把满足检索条件的统一构件封装件以XML的形式返回给用户,供需求方进行更细致的检查;步骤(6.12)根据构件信息描述中的本地地址信息,从构件实体库中下载所需要的构件实体并保存。
全文摘要
本发明涉及一种支持异构构件的构件库统一管理方法,属于软件工程技术领域。其特征在于,包括以下步骤在对异构构件的统一构件封装结构的基础上,创建一种以XML和SQLServer数据库相结合的网状索引结构作为构件库体系框架;对异构构件进行分类组织;归一化后存储到所述分类组织模式定义的构件检索库中;在构件统一分类和存储的基础上实现对构件库的一致性访问和检索。本发明有效完成每个构件从互联网上被获取到本地,经过验证、信息映射规范、描述信息和实体入库、构件检索访问一系列操作,形成统一的数据封装、传输和解析规范,从而为互联网个性化按需服务所涉及的程序挖掘和构件组装提供支持。
文档编号G06F17/30GK1877523SQ20061008938
公开日2006年12月13日 申请日期2006年6月23日 优先权日2006年6月23日
发明者张尧学, 钟鸣, 方存好, 田鹏伟 申请人:清华大学