CN1285048C - 操作系统构件库查询方法 - Google Patents
操作系统构件库查询方法 Download PDFInfo
- Publication number
- CN1285048C CN1285048C CN 200410009106 CN200410009106A CN1285048C CN 1285048 C CN1285048 C CN 1285048C CN 200410009106 CN200410009106 CN 200410009106 CN 200410009106 A CN200410009106 A CN 200410009106A CN 1285048 C CN1285048 C CN 1285048C
- Authority
- CN
- China
- Prior art keywords
- component
- relation
- annexation
- dependence
- subgraph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种操作系统构件库查询方法,属于计算机软件构件库领域。其步骤包括:在某个构件加入构件数据库的过程中,根据构件的描述信息,在构件库中添加该构件和其它构件的连接关系的信息:构件库系统利用构件之间的连接关系信息,以构件为节点,将构件之间的连接关系作为边,绘制出构件关系图;用户在查询时,指定构件的连接关系类型,构件库系统将构件关系图划分为若干个构件关系子图,在构件关系子图中定位输入构件的节点,对构件关系子图进行遍历,便可查找到与输入构件存在指定关系的目标构件。本发明通过构件关系查询,有利于提高软件复用效率,为目标系统的稳定性提供信息。
Description
技术领域
本发明属于计算机软件构件库领域,具体涉及一种操作系统构件库查询方法。
背景技术
随着软件复用力度的加大,软件构件库系统已经越来越受到人们的重视,构件库的分类与检索是关系软件复用效率的重要因素。传统的构件库系统只提供了一种从构件类似关键字的描述信息查找构件的检索方法,该方法通过关键字(术语)结合关键字同义词字典的匹配可查询到构件。但目前在操作系统构件库中,所有构件针对着操作系统不同的特定部分,作为一个操作系统的不同构成部分,构件之间关系特别紧密,如在使用构件组装软件系统过程中,为了使系统具有某些新的功能,添加一个新的构件时,需判断该构件是否和现有系统中的其他构件存在冲突,同时,在软件复用过程中,很多构件是不能独立的工作,它必须导入服务(由函数提供)才能正确被复用。因此目前构件库系统存在构件相互独立、无法通过构件直接查询与之相关构件的缺陷。
发明内容
本发明克服了上述操作系统构件库查询方法的缺陷,提供一种基于关系的操作系统构件库查询方法,可以实现由某个构件直接查询到与其存在某种特定连接关系的构件,使所有的构件连为整体。
本发明的技术内容:一种操作系统构件库查询方法,步骤包括:
1、在某个构件加入构件库的过程中,根据该构件的描述信息,在构件库中添加该构件和其它构件的连接关系的信息,构件之间的连接关系包括:依赖关系、淘汰关系、冲突关系、版本关系、包含关系和实现关系;
2、构件库系统利用构件之间的连接关系信息,以构件为节点,将构件之间的连接关系作为边,绘制出构件关系图;
3、用户查询时,在构件关系图中定位输入构件的节点,按照宽度优先的遍历算法,对构件关系图进行遍历,查找与输入构件存在连接关系的目标构件。
在用户查询时,用户指定构件的连接关系类型,构件库系统根据关系类型将构件关系图分为构件关系子图,在对构件关系子图进行遍历后,查找到与输入构件存在指定连接关系的目标构件。
在遍历构件依赖关系子图的过程中,计算每个遍历到的节点与输入构件的依赖权重值,按照依赖权重值的大小将目标构件进行排序。
将目标构件提供给输入构件使用的函数总数和输入构件需要导入的函数总数的比率作为权重值,权重取值范围是[0,1)。
如遍历构件关系子图不是构件依赖关系子图时,直接进行宽度优先遍历。。
在某个构件加入构件库的过程中,构件库系统自动解析构件描述信息,并在构件库中添加该构件和其它构件的连接关系的纪录。
在某个构件加入构件库的过程中,构件库管理员主动在构件库中添加该构件和其它构件的连接关系的纪录。
本发明的技术效果:在构件库中,由某个构件直接查询到与其存在某种特定连接关系的构件,可提高软件的复用效率,对于不能直接复用的构件,通过本发明提供的查询方法可直接在构件库中查找到为已知构件提供服务的构件,免去了自己编程实现已知构件所需导入功能的繁琐工作。另外,在本发明的关系类型中还包括有冲突关系,淘汰关系等,在增加新的功能时,可以通过冲突关系知道哪些构件不能共存,有利于实现系统的稳定性;通过淘汰关系知道添加新功能后,系统的哪些功能可能会失效。这些都能对开发人员提供有益的参考信息。
附图说明
下面结合附图,对本发明/实用新型做出详细描述。
图1为构件关系示意图;
图2为构件的依赖关系子图;
图3为构件的版本关系子图;
图4为构件的冲突关系子图;
图5为构件的使过时关系子图。
具体实施方式
构件是由领域相关人员制作或者修改得到的,所以在制作一个构件的时候,通常会提供很多该构件的信息,这些信息即构件描述信息。通过描述信息,可以确定该构件可以和哪些构件有关系,以及关系的类型。在某个构件加入构件库的过程中,添加构件可以用下面的两种方法之一,也可以采用别的方法。
1、构件信息用基于XML的语言来描述,在一个新的构件加入到系统中的时候,构件库管理系统按照XML语言格式自动解析新加入构件的描述信息,按照描述信息提供的信息,系统扫描一遍构件库中已有的构件,如果有构件与刚加入的构件存在关系,则在构件库中添加一条这种关系的记录:源构件标识符、目标构件标识符、关系类型、权重(可选)。
2、系统管理员可以手工的指定。系统管理员如果觉得此构件同构件库中已有的某个(些)构件有某种连接关系,则可以手工在构件库中添加一条这种关系的记录:源构件标识符、目标构件标识符、关系类型、权重(可选)。系统管理员还可以修改关系的权重。
操作系统构件库主要包含源代码和二进制级构件,因此定义如下几种连接关系类型:
1、依赖关系:源构件如果要正确的运行,必须要依赖其他某些构件的某些接口给它提供某个(些)服务,而目标构件就是包含一个或多个可以为源构件某个(些)服务的构件,这种关系中可以有权重(weight)。weight值通过目标构件可以提供给源构件使用的函数总数和源构件需要导入的函数总数的比率来计算,weight的取值范围是[0,1)。通过weight可以体现出构件之间的依赖程度。比如:源构件A需要导入10个函数,而某个构件B所提供的所有函数中,有5个可以让构件A使用,则构件A与B之间依赖关系的权值为0.5。
2、淘汰关系:用来定义新增构件淘汰已有构件的关系,源构件添加到一个系统中,与目标构件并存于构件库中时,优先选源构件。
3、冲突关系:定义构件之间的冲突,源构件和目标构件不能同时存在于目标系统中。
4、版本关系:源构件和目标构件实现的功能是相同的,少数的不同体现在构件实现本身,并且接口保持不变,可以认为是同一构件的不同版本。
5、包含关系:构件之间存在整体-部分关系,体现为构件包含。在具体实现中可以包含引用,也可以是包含实体本身。
6、实现关系:构件实现了另一个构件(很可能是一个抽象构件)所定义的接口、所描述的功能。多存在于不同层次的构件实体之间,也是一种精化(Refinement)关系。
两个构件之间可能同时存在多种关系。
构件库管理系统根据构件之间的连接关系信息,以构件为节点,将构件之间的连接关系作为边,绘制出构件关系图,该构件关系图表示构件之间的连接关系。
一个构件关系图是如下的一个图G=(C,L)
这里C是构件库中所有构件的集合,L是构件之间所存在的所有关系的集合。图1就是一个构件关系图的例子。
在上面的构件关系图中,按照关系的类型存在着6种边,实际上,我们在检索的时候,所用到的只是其中的一种关系,因此可以按照6种关系,把上面的构件关系图划分最多6个子构件关系图。用户在查询的时候,指定关系类型和一个查询用的构件,构件库管理系统通过指定的关系类型,从构件库中读出所有的这种关系的记录,按照这些记录信息,用传统的方法在内存中构造出相应的构件关系子图。这样在检索中可以减少检索的时间。参考图2、图3、图4、图5,为图1所示的构件关系图的几个子图。
在相应的构件关系子图进行构件查找,首先在构件关系子图中定位到查询时输入的构件节点,按照宽度优先的遍历算法,对构件关系子图进行遍历,考虑到多层依赖对用户复用有帮助和依赖关系有权重的情况,我们对在依赖关系子图上,和其他5种关系子图上采用不同的构件检索方法。
如果是依赖关系,在遍历构件关系子图的过程中,按照公式计算每个节点与输入构件的依赖权重,对所有遍历到的节点按照依赖权重从大到小排序,并且返回排序的结果。对于依赖关系,依赖的程度通过依赖权值weight表达。很明显,如果权值越大,源构件和目标构件之间的依赖关系就越强,也表明源构件和目标构件在复用的时候,同时被使用的可能性越大。依赖关系子图可以表示为一个带权图,也就是依赖关系子图的每一个边都可以有一个[0,1)之间的取值。在设计检索算法的时候,可以按照边对图进行多层的宽度有先遍历,不仅能找出与某个构件有直接依赖关系构件,也能找出与这个构件有间接依赖关系的构件(如果存在这样的构件)。这些间接依赖的构件也可能对要复用的构件起到作用。对这些构件,也提供一个与源构件相关的依赖权重。权重的计算公式如下:
这里,n表面在遍历的那一层找到这个构件,weighti是第i层遍历到的连接的权重。
比如:构件A与构件B之间有依赖关系,并且依赖关系的权重是0.6。构件B和构件C之间也有依赖关系,并且依赖惯的权重是0.5。当用户使用构件按照依赖关系查找,并且检索的层次设置为不小于2层的时后,构件C也会出现在结果中,通过上面的公式,我们可以得到构件C的与构件A之间的依赖权重:
如果是非依赖关系,对于其余的5个子图,直接做深度为1层的宽度优先遍历;即直接定位指定的构件对应的结点,然后按照它的边找到和它连接节点,把这些节点当作结果返回。
Claims (6)
1、一种操作系统构件库查询方法,步骤包括:
(1)在某个构件加入构件库的过程中,根据该构件的描述信息,在构件库中添加该构件和其它构件的连接关系信息,构件之间的连接关系包括:依赖关系、淘汰关系、冲突关系、版本关系、包含关系和实现关系;
(2)构件库系统利用构件之间的连接关系信息,以构件为节点,将构件之间的连接关系作为边,绘制出构件关系图;
(3)用户查询时,在构件关系图中定位输入构件的节点,按照宽度优先的遍历算法,对构件关系图进行遍历,查找与输入构件存在连接关系的目标构件。
2、如权利要求1所述的操作系统构件库查询方法,其特征在于:在用户查询时,用户指定构件的连接关系类型,构件库系统根据关系类型将构件关系图分为构件关系子图,在对构件关系子图进行遍历后,查找到与输入构件存在指定连接关系的目标构件。
3、如权利要求2所述的操作系统构件库查询方法,其特征在于:在遍历构件依赖关系子图的过程中,计算每个遍历到的节点与输入构件的依赖权重值,按照依赖权重值的大小将遍历到的构件进行排序。
4、如权利要求2所述的操作系统构件库查询方法,其特征在于:如遍历构件关系子图不是构件依赖关系子图时,直接进行深度为1层的宽度优先遍历。
5、如权利要求3所述的操作系统构件库查询方法,其特征在于:将目标构件可以提供给输入构件使用的函数总数和输入构件需要导入的函数总数的比率作为权重值,权重取值范围是[0,1)。
6、如权利要求1所述的操作系统构件库查询方法,其特征在于:将构件的描述信息采用XML语言格式,在构件加入构件库的过程中,构件库系统解析该描述信息,并扫描一遍构件库中的已有构件,如果有构件与刚加入的构件存在关系,则在构件库中自动添加一条连接关系的记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410009106 CN1285048C (zh) | 2004-05-20 | 2004-05-20 | 操作系统构件库查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410009106 CN1285048C (zh) | 2004-05-20 | 2004-05-20 | 操作系统构件库查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1581163A CN1581163A (zh) | 2005-02-16 |
CN1285048C true CN1285048C (zh) | 2006-11-15 |
Family
ID=34581619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410009106 Expired - Fee Related CN1285048C (zh) | 2004-05-20 | 2004-05-20 | 操作系统构件库查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1285048C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1333336C (zh) * | 2006-06-23 | 2007-08-22 | 清华大学 | 一种支持异构构件的构件库统一管理方法 |
CN101075914B (zh) * | 2007-04-29 | 2011-05-11 | 中兴通讯股份有限公司 | Ngn中具备动态发现功能的racf系统及设备 |
CN101710279B (zh) * | 2009-12-01 | 2013-07-31 | 中国建设银行股份有限公司 | 一种it系统中管理软件模块的方法和装置 |
US8786597B2 (en) * | 2010-06-30 | 2014-07-22 | International Business Machines Corporation | Management of a history of a meeting |
US8687941B2 (en) | 2010-10-29 | 2014-04-01 | International Business Machines Corporation | Automatic static video summarization |
US8914452B2 (en) | 2012-05-31 | 2014-12-16 | International Business Machines Corporation | Automatically generating a personalized digest of meetings |
CN104572125B (zh) * | 2015-01-28 | 2018-10-16 | 中国农业银行股份有限公司 | 实体关系图的绘制方法、存储方法、绘制装置及存储装置 |
CN111611419B (zh) * | 2019-02-26 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 一种子图识别方法及装置 |
CN111158676A (zh) * | 2019-12-31 | 2020-05-15 | 山东蚁动网络科技有限公司 | 基于变量传播技术的构件关联性分析方法及设备、介质 |
-
2004
- 2004-05-20 CN CN 200410009106 patent/CN1285048C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1581163A (zh) | 2005-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fernandez et al. | Optimizing regular path expressions using graph schemas | |
Trißl et al. | Fast and practical indexing and querying of very large graphs | |
US7693820B2 (en) | Use of materialized transient views in query optimization | |
Anyanwu et al. | Sparq2l: towards support for subgraph extraction queries in rdf databases | |
Rahm | Towards large-scale schema and ontology matching | |
US7958114B2 (en) | Detecting estimation errors in dictinct page counts | |
US7716167B2 (en) | System and method for automatically building an OLAP model in a relational database | |
US5544355A (en) | Method and apparatus for query optimization in a relational database system having foreign functions | |
Alviano et al. | The disjunctive datalog system DLV | |
US20110055199A1 (en) | Join order optimization in a query optimizer for queries with outer and/or semi joins | |
US10762087B2 (en) | Database search | |
EP1986108B1 (en) | Method and database system for executing an XML database query | |
EP1387297A2 (en) | Translation of object property joins to relational database joins | |
CN1285048C (zh) | 操作系统构件库查询方法 | |
Bruno | Automated Physical Database Design and Tuning | |
WO1998026360A1 (en) | System and method for optimizing database queries | |
Harth et al. | On completeness classes for query evaluation on linked data | |
Uschold | Ontology and database schema: What’s the difference? | |
Sioulas et al. | Scalable multi-query execution using reinforcement learning | |
Song et al. | Constraint-variance tolerant data repairing | |
CN115544088A (zh) | 地址信息查询方法、装置、电子设备及存储介质 | |
Wu et al. | Optimizing XML queries: bitmapped materialized views vs. indexes | |
Medina et al. | Evaluation of indexing strategies for possibilistic queries based on indexing techniques available in traditional RDBMS | |
CN115391424A (zh) | 数据库查询的处理方法、存储介质与计算机设备 | |
Gold | Hypothesis-based concept assignment to support software maintenance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061115 Termination date: 20130520 |