从分层目录中选择软件组件的方法和系统的制作方法

文档序号:6571133阅读:261来源:国知局
专利名称:从分层目录中选择软件组件的方法和系统的制作方法
技术领域
本发明一般涉及计算机应用开发,具体涉及一种用于创建商务问题的定制软件解决方案的系统和方法。
背景技术
纽约阿芒克的国际商业机器公司(IBM)处于商务计算中的新范例的前沿。几十年来,商业计算的典型范例是为每个商务需求专门设计和建立的定制商务应用。当然,多数定制商务应用受益于普遍可用的、标准化的应用。例如,需要数据库管理系统(DBMS)的商务有几个提供商可选择,并且每个选择典型地为应用开发者提供许多相同的必要特征和接口。然而,DBMS只是实现商务解决方案可能需要的众多可能组件之一。
随着因特网(有时称为“web”)的出现,商务通信也已经发展。商务和消费者具有多种以前没有的通信手段,包括(但不限于)商务到商务(B2B)和商务到消费者(B2C)链路。由于商务寻求利用web,一些公司提供了称为“电子商务”(e-business)应用的专门应用,其工作在特定环境中。此外,诸如纽约阿芒克的国际商业机器公司(IBM)之类的公司开发了便利于部署、集成、执行和管理电子商务应用的产品。IBM的一个这样的产品是“WebSphere”,它包括用于开发电子商务应用的工具和用于运行基于web的应用的中间件。WebSphere的一部分是WebSphere应用服务器(WAS),它是WebSphere产品家族的运行时(run-time)组件。基本上,WAS是具有Java虚拟机(JVM)的Java进程(process)。
对于特定商务的商务软件解决方案的开发有几种途径。一种途径涉及独立的软件提供商(ISV),他将软件组件集成到“应用包”中。另一途径涉及系统集成商(SI),他集成软件和硬件组件以及应用包。SI确定所需的功能,选择用来实现所需各功能部分的商业上可用的硬件和软件组件,并且生成最终的“解决方案包”。除了SI所执行的任何任务外,解决方案提供商(SP)可以生产定制软件,以集成和强化商业上可用的硬件和软件组件以及基础架构软件。术语SI和SP常常被互换地使用。ISV或SP将其与软件组件集成的软件组件称为定制代码(有时也称为“应用”或“粘合(glue)”代码)。典型的软件组件的例子包括(但不限于)IBM HTTP服务器以及相关插件、WebServerApplication Server-Express运行时应用和IBM DB2 Universal Database(UDB)组件。所要求保护主题可以被SI、SP或ISV采用,因此在整个说明书中,SI、SP和ISV全都将被称为“开发者”或“用户”(正如在相对于所要求保护主题提供的工具用户中)。
两个可能对于澄清有用的术语是术语“应用”和“解决方案”。在某些情况下,应用解决若干问题,结果可以被认为是解决方案。然而,通常术语“解决方案”是指一个应用,因为一个解决方案解决一目标组的问题,尽管某些开发者将他们的多个应用称为一个解决方案。解决方案通常比应用宽,因为它解决或处理水平以及垂直商务问题。解决方案典型地是为了运行商务端到端的目的而提供的,而非只针对一部分(或者该商务的应用)。应用用来解决一组商务问题,并且可以用来解决另一客户的同一类型的另一组问题。
需要的是一种方法和系统或者软件组件元(meta)管理系统(SCMMS),用于允许开发者(例如ISV、SP或SI)基于客观评分系统,查看和选择对于特定应用或解决方案的可用组件。理想地,客观评分系统可以被调整来反映关于客户的特殊需求和完善度(sophistication)的知识,并且包括反馈,使得特定应用或解决方案的生成提供更精确的评分,从而对于随后的应用或解决方案的生成提供更好的结果。

发明内容
提供了一种用于对用户或商务的计算需求生成按需的定制运行时解决方案的方法。创建对应于商务场合的不同计算任务的软件组件库。每个软件组件与一个或多个元描述符相关联。通过软件组件元管理系统(SCMMS)管理软件组件及相关元描述符。
基于客户输入,选择或过滤各个组件以并入商务运行时解决方案中。除了用户输入外,用户查询还被反馈到SCMMS中,从而SCMMS积累关于客户使用的知识。然后采用该知识来便利和改善对该客户和其他客户将来的运行时解决方案的生成。
为了采用SCMMS来开发系统,用户输入要求,该要求表示为要求描述符,并且被映射到外部条件、分类和关键字。相对存储的组件外部依存检查外部条件,以过滤掉包括不能被满足的依存性的那些组件。还采用外部分类,通过拒绝不匹配该分类的组件来过滤组件。采用外部关键字来搜索与可用组件的元描述符相关联的关键字。基于用户的关键字与元描述符关键字之间的匹配程度,生成关键字得分。
然后提供给用户选择的过滤后组件的具体数量基于预定义的极限。如果过滤后的组件数量超过该预定义的极限,则请求用户提供更多信息,例如外部条件、分类和关键字,并且重复该过滤处理。一旦选择了各组件,就基于用户提供的要求描述符和与元描述符相关联的应用属性的匹配,对每个组件计算应用得分。采用所有选择的组件的应用得分,来生成对应于每个组件的关联得分。
然后,基于关键字、应用和关联得分,结合与SCMMS相关联的常数,生成所选组件的最终得分。该常数由SCMMS的管理员基于用户的知识选择,目的是对该用户优化结果。
按照最终得分的次序呈现结果给用户。然后用户浏览结果集,并选择期望的组件。当选择了组件时,基于所选组件和之前所选的组件生成新的关联,并且将关联信息加到相应组件的元描述符。以这种方式,SCMMS从用户的选择“学习”,并且可将这种学习应用到SCMMS将来的执行。


当结合下面附图考虑下面对所公开的各实施例的详细描述时,可以获得对本发明的更好的理解,在附图中图1是包括所要求保护主题的示例性计算系统的框图。
图2是采用所要求保护主题的、包括分布元素的示例性应用开发架构的框图。
图3是示例说明所要求保护主题采用的分层结构的层次树的框图。
图4是在所要求保护主题的一个实现中采用的示例性MetaDataDescriptorObject(MDDO,元数据描述符对象)存储器对象。
图5是结合所要求保护主题执行的选择组件处理的流程图。
图6是示出图5的选择组件处理的评分组件方面的流程图。
图7是示出图5的选择组件处理的集成组件方面的流程图。
图8是示出图5的选择组件处理的计算关键字得分(S_k)方面的流程图。
图9是示出图5的选择组件处理的计算应用得分(S_app)方面的流程图。
图10是示出图5的选择组件处理的计算关联得分(S_ass)方面的流程图。
具体实施例方式
尽管具体参照基于WebSphere的系统进行描述,但所要求保护主题可以在任何其中期望组件重用的信息技术(IT)系统中实现。所公开的主题还可以应用到非同构型系统。计算领域的技术人员将认识到,所公开的实施例除了下面所述的这些以外还与多种计算环境有关。此外,所公开的发明的方法可以用软件、硬件或者软件与硬件的组合实现。硬件部分可以使用专用逻辑实现;软件部分可以存在存储器中,并且由诸如微处理器、个人计算机(PC)或大型主机之类的适合的指令执行系统来执行。
在本文档的上下文中,“存储器”或“记录介质”可以是包含、存储、通信、传播或传输由指令执行系统、装置或设备使用(或与其结合使用)的程序和/或数据的任何装置。存储器和记录介质可以是(但不限于)电子、磁、光、电磁、红外或半导体系统、装置或设备。存储器和记录介质还包括(但不限于)例如下列便携计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)和便携致密盘只读存储器,或者其上可以存储程序和/或数据的其他适合的介质。
根据所要求保护主题,一个实施例被指向用于为用户或商务的计算需求生成按需、定制的运行时解决方案的程序化方法(programmed method)。这里使用的术语“程序化方法”定义是指当前执行的一个或多个处理步骤;或者,使得能够在未来时间点执行的一个或多个处理步骤。术语程序化方法预期有三种替代形式。第一,程序化方法包括当前执行的处理步骤。第二,程序化方法包括实现计算机指令的计算机可读介质,其当被计算机执行时执行一个或多个处理步骤。最后,程序化方法包括已用软件、硬件、固件或者其任何组合编程来执行一个或多个处理步骤的计算机系统。要理解,术语“程序化方法”不要被解释为同时具有多于一种替代形式,而要在替代形式的真正意义上被解释,其中在任何给定时间点只存在多种替代形式中的一种。
现在转到附图,图1是包括所要求保护主题的示例性计算系统架构100的框图。中央处理单元(CPU)102耦合到监视器104、键盘106和鼠标108,它们一起便利于与计算系统100的交互。数据存储组件110附接到CPU 102,它既可以并入CPU 102中(即内部器件),也可以通过各种常用的连接器件(例如但不限于,通用串行总线(USB)端口(未示出))外部附接到CPU 102。数据存储体110被图示为存储若干示例性计算机程序模块,即,“模块_1”112、“模块_2”114和“模块_3”116。应当注意,典型的应用或系统将包括许多多于三个(3个)模块,但是为了简单起见,仅示出三个。模块_1 112、模块_2 114和模块_3 116表示软件组件库的组件,开发者从该软件组件库中选择对应于不同商务情形的计算任务的特定组件。
数据存储体110上还存储软件组件元管理系统(SCMMS)118。SCMMS 118是用于对用户或商务的计算需求生成按需、定制的运行时解决方案的系统。每个软件组件112、114和116与存储在SCMMS数据区域120中的一个或多个元描述符(未示出)相关联。通过SCMMS 118管理软件组件112、114和116及其存储在数据区域120中的相关的元描述符。
CPU 102连接到因特网122,后者还连接到服务器计算机124。尽管在该示例中,CPU 102与服务器124是通过因特网122通信耦合的,但它们也可以通过任何数量的通信介质耦合,例如(但不限于),局域网(LAN)(未示出)。此外,应当注意,存在许多可能的计算系统配置,其中计算系统100只是其中一个简单的示例。
图2是采用所要求保护主题的解决方案或应用、开发系统130的框图。在其中开发者提供定制商务解决方案的特定软件市场中,所述处理可以被分割成至少三个(3个)不同的阶段解决方案浏览132、解决方案开发或解决方案创作134;和解决方案打包136。解决方案测试(未示出)是解决方案开发134的子集。解决方案部署阶段138可以当作第四阶段。
尽管主要针对解决方案浏览阶段132描述,但如由SCMMS 118(图1)例示的所要求保护主题,也可以应用到解决方案开发134、解决方案打包136和解决方案部署138。
在解决方案浏览132期间,开发者访问SCMMS 118以选择开发者确定有必要包含在提出的商务解决方案(在这个示例中为应用142)中的组件,如模块_1 112(图1)、模块_2 114(图1)和模块_3 116(图1)。应当注意,可以选择任何数量的组件,每个组件可以由技术专家创建或者是现成产品。选择应用142中包含的组件的处理将在下面结合图5-10更详细描述。
在该示例中,开发者在解决方案浏览142期间选择提供特定于具体商务问题的功能的定制软件和其他组件。SCMMS 118通过提供查看可用组件的名字、相关特性和排序的能力来帮助该处理。
在解决方案开发134期间,核心组件,例如(但不限于)HTTP服务器及相关插件144、Websphere应用服务器express版运行时模块146,而DB2通用数据库(UDB)express版运行时模块148。组件144、146和148向应用142提供必要的功能。如上所述,采用SCMMS 118来允许开发者在对组件144、146和148的每一个的各个选择中选择。和在解决方案浏览132中一样,在解决方案开发134期间添加的各个组件可以是定制设计的或“现成”的模块、应用和/或设备。
在解决方案打包136期间,开发者在SCMMS 118的帮助下,典型地提供如产生部署包152所需的附加组件。例如,除了应用112和组件144、146和148外,开发者可能需要提供诸如安装模块150之类的组件,在该示例中,它解压缩计算机存储器文件并将解决方案打包136安装到目标系统(如用户(customer)系统156)上。开发者可以采用SCMMS 118,在若干可用的安装模块中进行基于信息(informed)的判断。在解决方案打包136中,产生部署包152用于通过(在该示例中)CD 154和/或诸如服务器124(图1)之类的临时分段服务器(staging server)来交付(delivery)。
解决方案部署138示出一些将解决方案包152分发到最终客户或用户的方法。这些分发技术的示例包括(但不限于)致密盘(CD)154,通过邮寄或其他方式将其交付给用户,以便安装到用户系统156上;以及服务器124(图1),用户系统156可以由服务器124下载产品或解决方案,如部署包152。计算领域的技术人员应当认识到,除了CD 154和服务器124以外,还有许多可能的交付选项。
图3是示例说明所要求保护主题的描述中采用的分层结构的示例性层次树160的框图。树160开始于提供商软件161的顶层,它表示对特定客户的商务解决方案。当然,树160仅仅是分层结构的一个示例,而提供商软件161仅仅是树160中的项的一个示例。在提供商软件161下面是两个示例性应用,即,IBM软件组件162和提供商应用163。换而言之,在这个示例中,客户的软件解决方案161包括IBM软件162和提供商自己开发的软件或应用163两者。
IBM软件162包括两个组件,即,WebSphere组件165和DB2组件166。此外,在这个示例中,提供商软件163显示为包括WebSphere 165的组件。树160中的WebSphere 165的下一层包括两个组件,即,WebSphere PortalServer(WebSphere门户服务器)168和WebSphere Application Server(WebSphere应用服务器,WAS)170。第二提供商应用164也包括与WebSphere门户服务器168相关联的组件。
WAS 170包括图形用户接口(GUI)176和安全组件178。GUI 176包括WAS管理控制台184。安全组件178包括安全服务器186、安全协作器(securitycollaborator)188和安全插件模块190。
DB2组件166包括低层DB2通用数据库(DB2 UDB)组件172和DB2信息集成器(II)组件174。DB2 UDB 172包括可扩展标记语言(XML)使能器组件180,后者包括XML扩展器组件192。DB2 II组件174包括适配器组件182,后者包括Oracles适配器组件194。
在这个示例中,提供商软件161在顶层,并且树160中的每个其他组件处在比提供商软件161低的层。按类似方式,Websphere 165处在比Websphere门户服务器168和WAS 170高的层,Websphere门户服务器168和WAS 170处在低层。特定组件在树160中的位置的意义决定应用到一个组件的特定规则如何影响其他组件。应用到树160的规则类型的示例包括(但不限于)生命周期规则、版本管理(versioning)规则、相互关系规则和访问控制规则。
下面是一些示例性规则生命周期规则·注册/创建注册发生在多个层。当注册发生在高层时,用高层的元描述符200中的信息自动生成(populate)低层的组件的元描述符200(见图4)。
·修改/更新低层节点可以覆盖继承的元描述符200以更好地描述它们自己。高层节点的更新生成子节点(如果这样配置的话)。换言之,存在可选的传播。
·删除删除操作传播到低层节点。
版本管理·同一软件或组件的多个版本可以由SCMMS 118(图1)维护,并且按请求检索。
·查询当查询不包括版本管理特定信息时,检索当前版本。
·创建/注册新版本版本管理发生在不同的层上。当前版本标签从前一版本组件移到更新版本组件。
·版本标签采用版本标签来将跨各版本的组件分成容易检索的虚拟组。例如,“稳定版本”可以包括Websphere门户服务器168的1.0版本和WAS 170的1.2版本等。在这个示例中,稳定版本组表示已测试或证明能一起工作的组件的分组。
相互关系·定义三个基本的相互关系包含;依存和互斥,包含和依存具有方向。
·如果创建从组件A(如DB2 166)到组件B(如DB2 UDB 172)的包含关系,则从组件A的所有先辈组件(如提供商软件161和IBM软件162)和组件B的所有派生组件(如XML使能器180和XML扩展器192)创建该相同的关系。
·如果创建从组件A(如DB2 166)到组件B(如DB2 UDB 172)的依存关系,则从组件A的所有先辈组件(如IBM软件162和提供商软件161)创建该相同的关系。
·如果创建组件A(如XML扩展器192)到组件B(如Oracle适配器194)之间的互斥关系,则在组件A的所有先辈(如XML使能器180和DB2 UDB 172)与组件B的所有先辈(如适配器182和DB2 II 174)之间创建该相同的关系。
访问控制·对高层组件的访问许可传播到派生低层组件。
·对低层组件的访问拒绝传播到先辈高层组件。
应当注意,上面列出的规则和特定组件仅仅是用于举例说明的目的。在所要求保护主题的任何具体实现中的一组规则可以包括这些示例的附加的、更少的或修改的版本。此外,组件的兼容性的特定示例并不一定反映示例组件的实际兼容性。
图4是在所要求保护主题的实现中采用的示例性MetaDataDescriptorObject(MDDO)存储器对象200。MDDO存储器对象200包括标题部分202,它仅仅阐述对象200的名字,即,“MetaDataDescriptorObject”;属性部分204,它包含与MDDO存储器对象200相关联的存储元素或属性;以及方法部分206,它包括可以结合MDDO存储器对象200执行的功能或方法。应当注意,所描述的属性和方法仅仅用于举例说明的目的。可以采用附加的和/或不同的属性和方法来实现所要求保护的主题。
属性部分202包括“mddID”属性208、“componentID(组件ID)”属性210、“interDependencies(之间依存)”属性212、“externalDependencies(外部依存)”属性214、“version(版本)”属性216、“dates(日期)”属性218、“relationships(关系)”属性220、“classifications(分类)”属性222、“lcStatus”属性224、“pricing(定价)”属性226、“keywords(关键字)”属性228、“applications(应用)”属性230和“associations(关联)”属性232。对象200的实例存储在数据存储体110(图1)的SCMMS数据120(图1)中。
mddID属性208是MDDObjectID型的变量,其包含对对象200的特定实例的引用。对象200的每个实例对属性208具有唯一值,以允许唯一地标识每个实例。ComponentID属性210是ComponentID型的变量,其存储对与对象200的特定实例相关联的特定组件的引用。选择组件处理300(见图5-10)采用mddID属性208和componentID属性210两者,在选择该资源之前定位关于特定组件的信息。
interDependencies属性212是Vector(向量)型的变量,其存储器对象200的该实例所引用的组件依赖的组件以及依赖该特定实例的这些组件的记录。换言之,属性212是引用与对象200的特定实例相关的组件的、componentID型的变量210的列表。
externalDependencies属性214是Vector型的变量,其存储器对象200的该实例引用的组件所依赖的外部软件或系统的记录。一些例子包括(但不限于)特定操作系统、中间件平台、适配器等等。
version属性216是VersionInfo(版本信息)型的变量,其标识特定数据结构(未示出),该数据结构存储信息,诸如(但不限于)对象200所引用的组件的版本号、最新版本号和标签信息(例如“Beta”、“GA”、“测试”等)。
dates属性218是DateInfo(数据信息)型的变量,其标识特定数据结构(未示出),该数据结构存储信息,诸如(但不限于)对象200的特定实例被创建的日期、对象200的实例被修改的日期和该实例过期或不再对选择有效的日期。
relationships属性220是Vector型的变量,其存储器对象200的特定实例对其共享关系的其他组件的记录。例如,一些组件可以是其他组件的子组件、超组件、“父”、“子”或“兄弟”。
classifications属性222是Vector型的变量,其存储预定义的取决于提供商的分类的记录。lcStatus属性224是Integer(整数)型的变量,其存储关于相应对象200的生命周期状态的信息。例如,特定对象200可以是“作废(obsolete)”、“反对(deprecate)”、“发布(release)”、“撤回(withdrawn)”等等。
pricing属性226是PriceID(价格ID)型的变量,其标识特定数据结构(未示出),该数据结构存储对应于相应组件的定价信息。例如,定价数据结构可以包括以下信息关于该特定组件的批发和零售价、或者基于结合其他组件使用该组件的方式确定价格的公式。
keywords属性228是Vector(向量)型的变量,其存储典型地关于相应组件的核心功能的关键字。在“搜索关键字”模块310期间搜索属性228,这在下面结合图5描述。
applications属性230是Vector型的变量,其存储关于其他用户或开发者在以前如何使用相应组件的记录。属性230随着时间改变,以动态反馈用户对相应组件的要求,从而通过提供基于经验的智能来补充SCMMS 118(图1)。在属性230中存储的用户反馈的某些例子是当选择相应的组件时由原先的开发者使用的分类和关键字。
associations属性232是Vector型的变量,其存储关于与相应组件结合已采用的其他组件的记录。例如,模块_1 112(图1)和模块_2 114(图1)典型地可以彼此结合使用,因此,对应于模块_1 112的属性232列出模块_2 114以及两个模块112和114已彼此结合使用的次数。当然,对应于模块_2 114的属性232在这个例子中,也存储关于模块_1 112的相应信息。
对象200的方法部分206包括两个示例性功能或方法。为了简单起见,仅示出了两个方法。编程领域的技术人员应当理解,诸如对象200之类的对象典型地将包括许多其他的方法,该许多其他的方法包括(但不限于)构造器(constructor)、析构器(destructor)以及设置和取得各个属性值的方法。
在集成组件框316(将在下面结合图5和7详细描述)期间调用“updateApplications”方法234。调用方法234以更新相应组件的属性230,从而如上所述,SCMMS 118能够从过去经验中学习。在这个例子中,以两个参数调用方法234Vector型的变量“classifications”,其存储在“检查分类”308(见图5)期间采用的各个分类;和Vector型的变量“keywords”,其存储在搜索关键字框310期间采用的各个关键字。
在集成组件框316(将在下面结合图5和7详细描述)期间调用“updateAssociations”方法236。调用方法236以更新相应组件的属性232,从而如上所述,SCMMS 118能够从过去经验中学习。在这个例子中,以一个参数调用方法236Vector型的变量“associations”,其存储在“确定关联”框358(见图7)期间找到的、与相应组件相关的组件的componentID。
应当理解,MDDO对象200仅仅是可以用于实现所要求保护主题的存储器对象的一个例子。可以采用具有更少、更多和/或不同属性和方法的其他存储器对象。此外,除了采用对象200之外,还有许多其他方式来实现所要求保护主题的功能和数据存储。例如,可以通过与关系数据库结合的计算机程序来实现所要求保护主题。
图5是由图1的SCMMS 118执行的选择组件处理300的流程图。将在下面结合图6-10详细描述处理300的各部分。在这个例子中,处理300在CPU 102(图1)上执行,并且由开发者或用户依靠与键盘106(图1)、鼠标108(图1)以及监视器104上显示的图形用户接口(GUI)(未示出)的交互进行总的控制。
处理300在“开始选择组件”框302开始,并且控制立即前进到“输入要求”框304。在框304期间,操作员(如用户或开发者)通过GUI或者以文本格式输入对应于期望组件的要求(典型地是以关键字的形式)。例如,如果某种类型的数据库组件对于实现应用或商务解决方案是必要的,则输入数据库描述符。可以包括其他描述符来进一步限制诸如数据库的类型、成本等之类的因素。可以输入的各种描述符被映射为外部条件、分类和关键字。
在“检查依存”框306期间,处理300相对潜在组件,如在这个例子中的模块_1(图1)、模块_2(图1)和模块_3(图1),检查被映射到在框304期间输入的描述符的外部依存。如果特定组件具有不能满足的外部依存,则从潜在组件的列表中移除或“过滤”该组件。在“检查分类”框308期间,处理300采用操作员定义的分类,以进一步过滤可能组件的列表。在“搜索关键字”框310期间,处理300将操作员在框304期间输入的关键字匹配关联于潜在组件的列表上的每个组件的元描述符中包含的关键字。从潜在组件的列表中过滤不包含关键字的组件。
在“计数>N?”框312期间,处理300确定在框306、308和310过滤之后在潜在组件的列表上剩余的组件数量是大于还是小于用户预定义的数量N。数量N表示操作员希望浏览来手动选择特定组件的最大组件数量。如果计数超过数量N,则处理300返回输入要求模块304,操作员在此期间输入附加的要求来进一步过滤潜在组件的列表。处理然后如上所述继续。
如果在框312期间,列表中的组件数量没有超过数量N,则处理300前进到“评分组件”框314。在框314期间,处理300对列表上剩余的每个组件计算关键字得分、应用得分、关联得分和最终得分。评分组件框将在下面结合图6-10更详细说明。将在下面结合图8-10分别更详细说明计算关键字、应用和关联得分的机制。
在“集成组件”框316期间,处理300允许操作员从潜在组件的列表上剩余的组件选择特定组件,并且将所选组件集成到正生成的商务解决方案的应用中。将在下面结合图7更详细说明框316。
在“更多组件?”框318期间,给予操作员选择更多组件或继续进行已经选择的组件的选项。如果操作员决定选择更多组件,则处理300前进到“重置列表”框320,在此期间,处理300将潜在组件的列表恢复到最初未过滤的状态。然后,处理300返回到输入要求框304,并且处理如上所述继续,以选择另外的组件。如果在框318期间,操作员决定继续已选择的组件,则处理300进行到“结束选择组件”框329,处理300在此完成。
图6是更详细示出了图5的选择组件处理300的评分组件框314的流程图。与框314相关联的处理在“开始评分组件”框332中开始,并且立即前进到“检索组件”框334。在框334期间,处理300扫描存储在SCMMS数据120(图1)中的、在选择组件处理300的其他框期间选择的组件(如模块_1112、模块_2 114和模块_3 116)的列表(未示出),从该列表中检索关于第一组件或目标组件的信息,并且检索对应于该特定组件的MDDO存储器对象200。
处理300然后前进到“计算关键字得分(S_k)”框336,在此期间处理300基于在输入要求框304(图5)期间输入的关键字、以及与各组件相关联并被结合SCMMS数据120存储为元描述符的关键字之间的匹配程度,计算关键字得分。下面结合图8更详细说明对每个组件计算S_k得分的处理。
在“计算应用得分(S_app)”框338期间,处理300将在输入要求框304期间输入的输入要求,与结合SCMMS数据120存储为元描述符的应用动态属性进行比较。对潜在组件的列表中剩余的每个组件计算S_app得分。下面结合图9更详细说明对每个组件计算S_app得分的处理。
在“计算关联得分(S_ass)”框340期间,处理300将结合SCMMS数据120存储为元描述符的关联属性,与之前在处理300期间已被选择来包含在期望应用或商务解决方案中的组件进行比较。对潜在组件的列表中剩余的每个组件计算S_ass得分。下面结合图10更详细说明对每个组件计算S_ass得分的处理。
在“计算S_final”框342期间,采用在框336、338和340期间生成的得分,对来自潜在组件的列表的目标组件生成S_final得分。生成S_final得分的公式的一个例子是下面的形式“S_final=A*S_k+B*S_app+C*S_ass,其中A、B和C是常数,由具有期望的应用和/或商务解决方案的环境知识的系统管理员为SCMMS 118(图1)定义。换言之,选择常数A、B和C以使SCMMS 118的结果最大化。选择常数A、B和C的一些示例的一般规则如下·在没有良好的知识基础的新系统中(例如,组件不是众所周知的应用),S_final更严重地依赖于关键字匹配,即,A>>B和C;·在已存在了相对长时间并且已良好建立了知识基础的系统中(例如,对各组件的应用),评分主要基于之前已使用了哪些组件以及哪些要求对于这些组件是共同的,即,B>>A和C;以及·在其中存在所选组件的高相关(即,频繁地一起选择相同或类似组件集),或者其中关心兼容性的系统中,将常数A、B和C定义使得C>>A和B。
在“更多组件?”框344期间,处理300确定在框334期间访问的组件列表中是否有任何需要评分的组件。如果有的话,则控制返回到框334,在此期间检索对应于列表中的下一组件的MDDO存储器对象200,并且如上所述地继续处理。如果在框344期间处理300确定不再有要评分的组件,则处理300前进到“排序结果”框346,在此期间,根据相应的S_final得分对在框334期间检索的所有组件的所有得分排序。在“显示结果”框348期间,处理300在这个例子中,在监视器104(图1)上的GUI中,显示根据相应S_final得分列出的潜在组件的列表中的其余组件。最后,在“结束评分组件”框349中完成与处理300的评分组件框314相关联的处理。
图7是更详细地示出图5的选择组件处理300的集成组件框316的流程图。与框316相关联的处理在“开始集成组件”框352开始,并且立即前进到“选择组件”框354。在框354期间,操作员浏览在评分组件框314(图5和6)及相关框332、334、336、338、340、342、344和349(图6)期间在监视器104(图1)上生成和显示的排序列表中的组件。此外,操作员从列表中选择组件,以包含在提出的应用或商务解决方案中。计算领域的技术人员应当理解有关浏览和选择特定组件的GUI的使用和功能。
在“导入应用”框356期间,处理300检索在框354期间选择的、要包含在提出的应用或商务解决方案中的组件。应当注意,组件可以自身是应用。在“确定关联”框358期间,确定作为包含在框354期间选择的组件的结果而创建的、与任何之前选择的组件的任何新关联。
在“更新SCMMS数据”框360期间,处理300用在框358期间检测的新关联更新SCMMS数据120(图1)。用此方式,SCMMS 118能够使处理300将来的迭代更精确和容易,或者换言之,SCMMS 118通过存储供将来参考的关联信息来学习。最后,控制前进到“结束集成组件”框369,在此完成与集成组件框316相关联的处理。
图8是更详细地示出与图5的选择组件处理300的评分组件框314相关联的、计算S_k框336(图5)的流程图。与框336相关联的处理在“开始计算S_k”框372开始,并且立即前进到“计算要求关键字组件匹配(RKCM)”框374。在框374期间,处理300确定在输入要求框304(图4)期间输入的关键字、与在检索组件框334(图6)期间检索的MDDO存储器对象200的关键字属性228中存储的关键字之间的相关程度。
在“计算S_k”框376期间,处理300基于在输入要求框304(图5)期间输入的关键字、与存储在关键字属性228中的关键字之间的匹配程度,计算得分数。在计算S_final框342(图6)期间采用该得分来确定综合得分或S_final,该综合得分用在处理300的排序结果框346(图6)中。
在“存储S_k”框378期间,结合对相应组件的引用,存储在框376期间计算的得分。最后,处理300前进到“结束计算S_k”框379,在此完成处理300的框336。
图9是更详细地示出与图5的选择组件处理300的评分组件框314相关联的、计算S_app框338(图6)的流程图。与框338相关的处理在“开始计算S_app”框382开始,并且立即前进到“检索组件应用元描述符(CAMD)”框384。在框384期间,处理300检索与在检索组件框334(图6)期间检索的存储器对象(图4)相关联的应用属性230(图4)。
在“计算CAMD与描述符要求(RQD)之间的匹配”框386期间,处理300确定在输入要求框304(图5)期间输入的关键字、与在检索组件框334期间检索的MDDO存储器对象200的关联属性230中存储的关联之间的相关程度。
在“计算S_app”框388期间,处理300基于在输入要求框304(图5)期间输入的关键字、与在检索组件框334期间检索的MDDO存储器对象200的关联属性230中存储的关联之间的匹配程度,计算得分数。在计算S_final框342(图6)期间采用该得分来确定综合得分或S_final,该综合得分用在处理300的排序结果框346(图6)中。
在“存储S_app”框390期间,结合对相应组件的引用,存储在框388期间计算的得分。最后,处理300前进到“结束计算S_app”框399,在此完成处理300的框338。
图10是更详细地示出与图5的选择组件处理300的评分组件框314相关联的、计算S_ass框340(图6)的流程图。与框340相关联的处理在“开始计算S_ass”框402开始,并且立即前进到“初始化S_ass”框404。在框404期间,处理300初始化在框340的其余部分期间采用的S_ass值,以对被评分的特定组件计算S_ass得分。该特定组件来自于上面结合图5所述的、在处理300的框304、306、308、310和312期间过滤的组件列表。
在“检索关联”框406期间,处理300检索关联属性232(图4)中列出的第一关联。在“计算得分”框408期间,处理300基于在框406期间检索的关联具有的、与已在集成组件框316(图5)期间选择的组件类似的关联的数量,计算得分。在“更新S_ass ”框410中,处理300基于在框408期间计算的得分,更新最初在框404期间被首先初始化的相应S_ass值。
在“更多关联?”框412期间,处理300确定是否有存储在属性232中的更多关联需要被计算成S_ass得分。如果有的话,则处理300返回到框408,在此期间选择属性232中的下一关联,并且如上所述地继续处理。如果在框412期间,处理300确定在S_ass的计算中已采用了存储在属性232中的所有关联,则处理300继续到“存储S_ass”框414,在此期间,处理300结合目标组件存储计算的S_ass得分。最后,在“结束计算S_ass”框419期间,完成处理300的框340。
尽管参照其特定实施例示出和描述了本发明,但本领域技术人员将理解,在不背离本发明宗旨和范围的情况下可以对其进行形式和细节的上述和其他改变,包括(但不限于)以相同或不同顺序执行的、附加的更少的或修改的元素和/或附加的、更少的或修改的框。
权利要求
1.一种从分层目录中选择软件组件的方法,包括对分层组件描述符应用关键字匹配规则,每个分层组件描述符对应于多个软件组件的特定软件组件;过滤所述多个软件组件来产生子集;对所述多个软件组件的子集评分以产生排序,所述评分基于对分层组件描述符应用关键字匹配规则;与相应排序一起显示所述多个软件组件的子集的列表;选择在列表上显示的特定软件组件;以及基于从列表中对特定软件组件的选择,修改分层组件描述符。
2.如权利要求1所述的方法,还包括将该特定软件组件集成到软件应用。
3.如权利要求1所述的方法,其中,所述过滤基于存储在分层组件描述符中的依存信息。
4.如权利要求1所述的方法,其中,所述过滤基于存储在分层组件描述符中的分类信息。
5.如权利要求1所述的方法,还包括基于过滤来修改分层组件描述符。
6.如权利要求1所述的方法,还包括基于该特定软件组件的选择,计算在多个软件组件当中的关联;以及基于所述关联,修改分层组件描述符。
7.如权利要求1所述的方法,其中,所述评分还基于存储在分层组件描述符中的关联信息和应用信息两者。
8.一种从分层目录中选择软件组件的系统,包括多个软件组件;多个分层组件描述符,每个分层组件描述符对应于所述多个软件组件的特定软件组件;用于对所述多个软件组件的每一个评分以产生排序的逻辑,所述评分基于对分层组件描述符应用关键字匹配规则;以及用于基于所述评分来修改分层组件描述符的逻辑。
9.如权利要求8所述的系统,还包括用于显示所述多个软件组件的列表和相应得分的逻辑,以便于特定软件组件的选择;以及用于将该特定软件组件集成到软件应用中的逻辑。
10.如权利要求8所述的系统,还包括用于过滤所述多个软件组件以产生所述多个软件组件的子集的逻辑;并且其中,所述过滤基于存储在分层组件描述符中的依存信息。
11.如权利要求10所述的系统,其中,所述过滤基于存储在分层组件描述符中的分类信息。
12.如权利要求10所述的系统,还包括用于基于过滤来修改分层组件描述符的逻辑。
13.如权利要求9所述的系统,还包括用于计算在软件应用中包括的其他软件组件与选择的软件组件之间的关联的逻辑;以及用于基于所述关联来修改分层组件描述符的逻辑。
14.如权利要求8所述的系统,其中,所述评分还基于结合分层组件描述符存储的关联信息和应用信息两者。
全文摘要
提供了一种用于对用户或商务的计算需求生成按需的定制运行时解决方案的方法。创建对应于商务情形的不同计算任务的软件组件库。每个软件组件与一个或多个元描述符相关联。通过软件组件元管理系统(SCMMS)管理软件组件及相关元描述符。基于客户输入,选择或过滤各个组件以并入商务运行时解决方案中。除了用户输入外,用户查询还被反馈到SCMMS中,从而SCMMS积累关于客户使用的知识。然后采用该知识来便利和改善对该客户和其他客户将来的运行时解决方案的生成。
文档编号G06F17/30GK101030136SQ20071000473
公开日2007年9月5日 申请日期2007年1月30日 优先权日2006年1月30日
发明者王宁宁, 英格里德·M·莫尔克斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1