CN101361042A - 用于管理分层相关的软件组件的系统和方法 - Google Patents

用于管理分层相关的软件组件的系统和方法 Download PDF

Info

Publication number
CN101361042A
CN101361042A CNA2007800017462A CN200780001746A CN101361042A CN 101361042 A CN101361042 A CN 101361042A CN A2007800017462 A CNA2007800017462 A CN A2007800017462A CN 200780001746 A CN200780001746 A CN 200780001746A CN 101361042 A CN101361042 A CN 101361042A
Authority
CN
China
Prior art keywords
component software
assembly
software
mutual relationship
component
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.)
Pending
Application number
CNA2007800017462A
Other languages
English (en)
Inventor
I·莫尔克斯
王宁宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101361042A publication Critical patent/CN101361042A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种用于针对用户或企业的计算需求,生成随需应变的、定制运行时解决方案的方法。建立相应于企业情况的不同计算任务的软件组件库。每个软件组件与一个或多个元描述符有关。建立定义软件组件与其他软件组件之间、软件组件与聚合体描述符(Aggregate descriptors)之间、以及聚合体描述符之间的关系的聚合体描述符。借助于软件组件元管理系统(SCMMS)管理软件组件和相关的元以及聚合体描述符。由于采用SCMMS,基于软件组件与聚合体描述符之间的相互关系,以分层结构寄存和管理软件组件。分层结构是多层的,不同层具有不同范围。用户规定层的数量以及如何定义层。每一层上定义元描述符。

Description

用于管理分层相关的软件组件的系统和方法
技术领域
本发明一般涉及计算机应用开发,并且更具体地说,涉及用于管理分层相关的软件组件的系统和方法。
背景技术
New York,Armonk的国际商用机器公司(IBM)已处于商业计算的新模式的最前沿。几十年来,商业计算的典型模式是针对每个企业需求明确地设计和建立定制商业应用。当然,大多数定制商业应用得益于通用的、标准化的应用。例如,需要数据库管理系统(DBMS)的企业具有可供选择的若干供应商,并且每个选择通常会给应用开发者提供许多相同的所需特征和接口。然而,DBMS仅是可能需要用来实现企业解决方案的众多可能的组件中的一个。
随着因特网(有时被称作″web″)的出现,商务通信也发生了演变。企业和消费者具有以前所没有的多种通信手段,包括但不限于企业-企业(B2B)和企业-消费者(B2C)链接。由于企业设法利用web,一些公司已提供了被称作″电子商务″应用、在该特定环境中工作的专用的应用。此外,诸如New York,Armonk的国际商业机器公司的公司已开发了推动电子商务应用的部署、集成、执行和管理的产品。一个这样的IBM产品是″WebSphere″,其包括用于开发电子商务应用的工具和用于运行基于Web的应用的中间件。WebSphere的一部分是WebSphere应用服务器(WAS),其为WebSphere系列产品的运行时组件。基本上,WAS是带有JAVA虚拟机(JVM)的JAVA进程。
存在多种用于开发针对特定企业的商务软件解决方案的方法。一种方法涉及将多个软件组件集成为″应用包″的独立软件厂商(ISV)。另一种方法涉及对软件和硬件组件以及应用包进行集成的系统集成商(SI)。SI确定所需的功能,选择实现所需功能的各部分的商用硬件和软件组件,并且生成最终的″解决方案包″。除了由SI执行的任何任务,解决方案供应商(SP)可生产定制软件来集成并增强商用的硬件和软件组件以及基础设施软件。术语SI和SP经常被互换使用。被ISV或SP用以与软件组件相集成的软件组件称为定制代码(有时也称为″应用″或″胶合″(glue)代码)。典型的软件组件的示例包括但不限于IBM HTTP服务器和相关的插件、WebServer ApplicationServer-Express运行时应用和IBM DB2通用数据库(UDB)组件。所要求保护的主题会被SI、SP或ISV采用,因此在整个说明书中,将SI、SP和ISV都称作″开发者″或″用户″(如针对所要求保护的主题所提供的工具的用户)。
可能有必要澄清的两个术语是″应用″和″解决方案″。在有些情况下,应用解决若干个问题,因此,可被认为是一种解决方案。然而,因为解决方案解决目标问题组,通常术语″解决方案″是指应用,虽然一些开发者将他们的应用称作解决方案。解决方案通常比应用更广泛,因为其分解或解决水平以及垂直的企业问题。通常出于端到端企业运营的目的(而非仅仅关注于一部分(或企业的应用))而交付解决方案。应用被用于解决企业的一组问题,并且可被用于解决另一客户的相同种类的另一组问题。
需要一种方法和系统或软件组件元管理系统(SCMMS),用于使开发者(例如ISV、SP或SI)能基于客观评分系统(objective scoringsystem)查看和选择特定应用或解决方案的可用组件。理想的是,客观评分系统可以被调节以反映与客户的具体需求和完善度(sophistication)有关的知识,并且包含反馈,使得特定应用或解决方案的产生会提供相对于后续应用或解决方案的产生来说更准确的评分,由此提供更好的结果。
发明内容
提供了一种用于针对用户或企业的计算需求生成随需应变的(ondemand)、定制运行时解决方案的方法。创建对应于企业情况的不同计算任务的软件组件库。每个软件组件与一个或多个元描述符相关联。创建定义软件组件与其他软件组件之间、软件组件与聚合体描述符(Aggregate descriptor)之间、以及聚合体描述符之间的关系的聚合体描述符。借助于软件组件元管理系统(SCMMS)来管理软件组件和相关的元以及聚合体描述符。
采用SCMMS,基于软件组件与聚合体描述符之间的相互关系,以分层结构来注册和管理软件组件。分层结构是多层的,不同层具有不同范围。例如,具有宽范围的高层可以是软件产品系列和/或品牌。低一层的层是软件产品。低两层的层是软件组件功能组。最低层是软件组件。用户规定层的数量以及如何定义层。在每一层上定义元描述符。
元描述符描述组件的静态以及动态属性。与每一组件相关联的静态属性的示例包含但不局限于表征该组件的ID、相互依赖性、外部依赖性、版本信息、与组件相关联的日期、组件之间的关系、与供应商有关的类别、生命周期信息、价格信息以及关键字。与每一组件相关联的动态属性的示例包含但不局限于应用信息,即之前已经如何使用该组件,以及关联信息,即该组件与其他组件一起使用的频繁程度。
附图说明
当结合以下附图考虑所公开的实施例的以下详细描述时,可以获得对本发明更好的理解,在附图中:
图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或快闪存储器),以及便携式光盘只读存储器或可以存储程序和/或数据的其他合适的介质。
根据要求保护的主题,一个实施例涉及用于管理分层相关的软件组件的方法的编程方法。本文所使用的术语″编程方法″被定义成是指当前所执行的一个或多个处理步骤;或者,作为另一种选择,是指能够在未来某时刻被执行的一个或多个处理步骤。术语“编程方法”预期有三种可选形式。首先,编程方法包括当前执行的处理步骤。其次,编程方法包括含有计算机指令的计算机可读介质,当由计算机执行时,其执行一个或多个处理步骤。最后,编程方法包括计算机系统,该计算机系统由软件、硬件、固件或其任意组合编程以执行一个或多个处理步骤。应当理解,术语″编程方法″不应被解释为同时具有不止一种可选形式,而应被解释为真正意义上的可选形式,在任意给定时刻,仅存在多个可选形式中的一个。
现在参照附图,图1是引入了要求保护的主题的示例性计算系统架构100的框图。中央处理器(CPU)102耦合到监视器104、键盘106和鼠标108,它们一起使得人类便于与计算系统100进行交互。接合到CPU102的是数据存储组件110,其可以被并入CPU 102,即,成为内部设备,也可以借助于诸如但不局限于通用串行总线(USB)端口(未示出)的各种通用连接设备从外部接合到CPU 102。数据存储设备110被例示为存储若干示例性计算机编程模块,即″Module_1″112、″Module_2″114和″Module_3″116。应该注意,典型的应用或系统会包含比三个模块多很多的模块,但是为了简单起见本文仅示出三个。module_1112、module_2 114和module_3 116代表软件组件库中的组件,开发者从中选择与企业情况的不同计算任务相对应的特定组件。
同样存储在数据存储设备110上的是软件组件元管理系统(SCMMS)118。SCMMS 118是用于针对用户或企业的计算需求而生成随需应变的、定制运行时解决方案的系统。每个软件组件112、114和116都与存储在SCMMS数据区120中的一个或多个元描述符(未示出)相关联。借助于SCMMS 118来管理软件组件112、114和116以及存储在数据区120中的相关元描述符。
CPU 102连接到因特网122,因特网122还连接到服务器计算机124。虽然在本示例中,经由因特网122将CPU 102与服务器124通信地耦合,但是也可以通过诸如但不局限于局域网(LAN)(未示出)的许多通信介质将它们耦合起来。此外,应当指出,存在许多种计算系统配置,计算系统100仅是其中的一个简单的示例。
图2是采用要求保护的主题的解决方案或应用-开发系统130的框图。在开发者交付定制企业解决方案的特定软件市场中,可以将该过程分成至少三个不同阶段:解决方案浏览132、解决方案开发或解决方案编写134,以及解决方案打包136。解决方案测试(未示出)是解决方案开发134的子集。解决方案部署阶段138可被认为是第四阶段。
虽然主要参照解决方案浏览阶段132进行描述,但是也可以将如SCMMS 118(图1)例示的要求保护的主题应用于解决方案开发134、解决方案打包136和解决方案部署138。
在解决方案浏览102期间,开发者访问SCMMS 118以选择开发者确定必须包括在提出的企业解决方案(在本示例中是应用142中)中的组件,如module_1 112(图1)、module_2 114(图1)和module_3 116(图1)。应该注意到,可以选择许多组件,其中每个组件都可以由技术专家来创建或是现成产品。下面结合图5-10更详细地描述选择包含到应用142中的组件的过程。
在该示例中,在解决方案浏览142期间,开发者选择用于提供专用于特定企业问题的功能的定制软件和其他组件。SCMMS 118通过提供查看名称、相关特性和可用组件的排名来协助该过程。
在解决方案开发134期间,核心组件包括例如但不局限于HTTP服务器和相关插件144、Websphere应用服务器快速运行时模块146、以及DB2通用数据库(UDB)快速运行时模块148。组件144、146和148给应用142提供必需的功能。如上面所说明的,SCMMS 118用于使开发者能在针对每个组件144、146和148的各种选择中进行选择。如在解决方案浏览132中那样,在解决方案开发134期间增加的各种组件可以是专门设计的或″现成″的模块、应用和/或设备。
在解决方案打包136期间,通过SCMMS 118的协助,开发者通常提供用以产生部署包152所需的附加组件。例如,除了应用112和组件144、146和148以外,开发者可能需要提供诸如安装模块150的组件,在本示例中,该组件对计算机存储器文件进行解压并且将解决方案包136安装在诸如客户系统156的目标系统上。SCMMS 118可以被开发者用来在若干可用安装模块中做出基于可靠信息的判断。在解决方案打包136期间,产生部署包152以便通过如本示例中的CD 154和/或诸如服务器124(图1)的分级服务器来交付。
解决方案部署138例示了将解决方案包152分发给最终客户或用户的一些方法。这样的分发技术的示例包含但不局限于:光盘(CD)154,其被邮寄给或被交付给客户以便安装在客户系统156上;和服务器124(图1),客户系统156可从其下载产品或解决方案,例如部署包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 Portal服务器168和WebSphere应用服务器(WAS)170。第二供应商应用164也由与WebSphere Portal服务器168相关联的组件组成。
WAS170包含图形用户界面(GUI)176和安全组件178。GUI 176包含WAS管理控制台184。安全组件178包含安全服务器186、安全合作者188和安全插入式模块190。
DB2组件166包含下一层DB2通用数据库(DB2 UDB)组件172和DB2信息集成器(II)组件174。DB2 UDB 172包含可扩展标记语言(XML)使能器(enabler)组件180,其包含XML扩展器组件192。DB2II组件174包含适配器组件182,其包含Oracle适配器组件194。
在本示例中,供应商软件161处于顶层,而树160中的每个其他组件处于比供应商软件161低的层。按类似方式,WebSphere 165是比处于下一层上的WebSphere Portal服务器168和WAS 170高的层。特定组件在树160中的位置的意义确定了应用于一个组件的特定规则会如何影响其他组件。应用于树160的规则的类型示例包含但不局限于生命周期规则、版本控制(versioning)规则、相互关系规则和访问控制规则。
一些示例性规则如下:
生命周期规则
●注册/建立:注册发生在多层上。当注册发生在较高层时,以较高层的元描述符200中的信息自动地填充较低层的组件的元描述符200(参见图4)。
●修改/更新:较低层节点可对继承的元描述符200进行重载,以更好地描述其自身。对较高层节点的更新会填充子节点,如果如此配置的话。换言之,有可选的传播方式。
●删除:删除操作会传播到较低层节点。
版本控制
●相同软件或组件的多种版本可被SCMMS 118(图1)维护,并在请求时被取回。
●查询:当一条查询不包含版本控制专用信息时,取回当前版本。
●创建/注册新版本:版本控制发生于不同层。将当前版本标签从前一版本组件移动到较新版本组件。
●版本标签:版本标签用于将不同版本的组件分组成虚拟组,以便于取回。例如,″稳定版本″可包含WebSphere Portal服务器168的版本1.0和WAS 170的版本1.2等等。在本示例中,稳定版本组表示已被测试过或被证明为相兼容的组件组。
相互关系
●定义了三个基本相互关系:包含、依赖性以及互排它性,包含和依赖性具有方向。
●如果创建从诸如DB2 166的组件A到诸如DB2 UDB 172的组件B的包含关系,则创建了从组件A的所有祖先(ancestor)组件(例如供应商软件161和IBM软件162)到组件B的所有后代组件(例如XML使能器180和XML扩展器192)的相同关系。
●如果创建从诸如DB2166的组件A到诸如DB2 UDB 172的组件B的依赖性关系,则建立了从组件A的所有祖先组件(例如IBM软件162和供应商软件161)起的相同关系。
●如果建立诸如XML扩展器192的组件A与诸如Oracle适配器194的组件B之间的互排它性关系,则建立了组件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″属性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中。
MddID属性208是包含对象200的具体实例的引用(reference)的类型为MDDObjectID的变量。对象200的每个实例具有针对属性208的唯一值,其使得可以唯一地标识每个实例。ComponentID属性210是存储与对象200的具体实例相关的具体组件的引用的类型为ComponentID的变量。mddID属性208和ComponentID属性210两者都由选择组件处理300(参见图5-10)用以查找有关在选择该资源之前的具体组件的信息。
InternalDependencies属性212是向量类型的变量,其存储由对象200的该实例所引用的组件所依赖的组件以及依赖于该具体实例的那些组件的记录。换言之,属性212是引用与对象200的具体实例相关的组件的类型为ComponentID 210的变量的列表。
ExternalDepencies属性214是向量类型的变量,其存储由对象200的该实例所引用的组件所依赖的外部软件或系统的记录。一些示例包含但不局限于特定操作系统、中间件平台、适配器等。
版本属性216是对特定数据结构(未示出)进行标识的类型为VersionInfo的变量,其存储诸如但不局限于由对象200引用的组件的版本号、最新版本的号码和标签信息(例如″Beta″、″GA″、″测试″等)等之类的信息。
日期属性218是对特定数据结构(未示出)进行标识的类型为DateInfo的变量,其存储包括但不限于创建对象200的具体实例的日期、修改对象200实例的日期、以及实例到期或不再可用于选择的日期的信息。
关系属性220是存储其他组件的记录的类型为向量的变量,对象200的具体实例与所述其他组件共享某种关系。例如,一些组件可以是子组件、超组件、其他组件的″父″、″子″或″兄弟″。
分类属性222是存储预定义的与供应商相关的类别的记录的类型为向量的变量。Lcstatus属性224是存储与对应对象200的生命周期状态有关的信息的类型为整数的变量。例如,特定对象200可以是″废止的″、″反对的(Deprecated)″、″已发布的(Released)″、″已撤消的″等等。
定价属性226是对特定数据结构(未示出)进行标识的类型为PriceID的变量,其存储与相应组件相对应的定价信息。例如,定价数据结构可包含与特定组件的批发和零售价格、或用于基于结合其他组件使用该组件所采用的方式来确定价格的公式有关的信息。
关键字属性228是存储关键字的类型为向量的变量,其通常与相应组件的核心功能相关。在″搜索关键字″块310期间搜索属性228,下面结合图5对此进行说明。
应用属性230是存储与其他用户或开发者之前已经如何使用相应组件有关的记录的类型为向量的变量。属性230随时间而改变,以将用户的要求动态地反馈给相应组件,从而通过提供基于经验的智能来补充SCMMS 118(图1)。存储在属性230中的用户反馈的一些示例是当选择相应组件时由先前开发者所使用的类别和关键字。
关联属性232是存储与已经结合相应组件所采用的其他组件有关的记录的类型为向量的变量。例如,module_1 112(图1)和module_2114(图1)通常可相互结合使用,因此,相应于module_1 112的属性232列出module_2 114以及两个模块112和114已被相互结合使用的次数。当然,在本示例中,相应于module_2 114的属性232也会存储与module_1 112有关的相应信息。
对象200的方法部分206包含两个示例性函数或者方法。为了简单起见,仅例示了两个方法。编程领域中的技术人员应当理解,诸如对象200的对象通常会包含许多种附加方法,包括但不限于构造器、析构器、以及设定和获取各种属性的值的方法。
在下面结合图5和7更详细地说明的集成组件块316期间调用″updateApplications″方法234。如上面说明的,调用方法234的目的是更新相应组件的属性230,使得SCMMS 118能够从过去经验中学习。在本示例中,利用两个参数调用方法234:″类别″,其为存储在″检查类别″308(参见图5)期间所采用的各种类别的类型为向量的变量;以及″关键字″,其为存储在搜索关键字块310期间所采用的各种关键字的类型为向量的变量。
在下面结合图5和7更详细说明的集成组件块316期间调用″updateAssociations″方法236。如上面所说明的,调用方法236的目的是更新相应组件的属性232,使得SCMMS 118能够从过去经验中学习。在本示例中,利用一个参数调用方法236:″关联″,其为存储在″确定关联″块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针对潜在组件(例如在本示例中的module_1(图1)、module_2(图1)和module_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,在块329中处理300结束。
图6是更详细地例示图5的选择组件处理300的评分组件块314的流程图。与块314相关联的处理始于″开始评分组件″块332,并且立即进行到″检索组件″块334。在块334期间,处理300扫描存储在SCMMS数据120(图1)中的组件(这些组件是在选择组件处理300的其他块期间被选择,例如module_1 112、module_2 114和module_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)的常数。换言之,为了最大化SCMMS118的结果而选择常数A、B和C。选择常数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,在块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)期间利用该得分来确定在处理300的排名结果块346(图6)中所使用的合成得分或S_final。
在″存储S_k″块378期间连同相应组件的引用一起存储在块376期间计算出的得分。最后,处理300进行到″结束计算S_k″块379,在该块379中结束处理300的块336。
图9是更详细地例示与图5的选择组件处理300的评分组件块314相关联的计算S_app块338(图6)的流程图。与块336相关联的处理始于″开始计算S_app″块382,然后立即进行到″检索组件应用MetaDescriptor(CAMD)″块384。在块394期间,处理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)期间利用该得分来确定在处理300的排名结果块346(图6)中所使用的合成得分或S_final。
在″存储S_app″块390期间连同相应组件的引用一起存储在块388期间计算出的得分。最后,处理300进行到″结束计算S_app″块399,在该块399中结束处理300的块338。
图10是更详细地例示与图5的选择组件处理300的评分组件块314相关联的计算S_ass块340(图6)的流程图。与块340相关联的处理始于″开始计算S_ass″块402,然后立即进行到″初始化S_ass″块404。在块404期间,处理300初始化S_ass的值,其在块340的剩余期间被用以计算被评分的特定组件的S_ass得分。该特定组件来自于上面结合图5描述的在处理300的块304、306、308、310和312期间过滤后的组件列表。
在″检索关联″块406期间,处理300检索关联属性232(图4)中列出的第一关联。在″计算得分″块410期间,处理300利用基于在块406期间检索出的关联与在集成组件块316(图4)期间已被选择的组件之间存在的相似关联的数量,计算得分。在″更新S_ass″块410中,处理300基于块408期间计算出的得分来更新S_ass的对应值,其在块404期间曾被第一次初始化。
在″更多关联?″块412期间,处理300确定属性232中是否存储有需要被计算到S_ass得分中的其他关联。若是,处理300返回到块408,在此期间选择属性232中的下一个关联,然后处理如上所述地继续进行。如果在块412期间处理300确定存储在属性232中的全部关联都已被用于S_ass的计算,则处理300继续到″存储S_ass″块414,在此期间处理300连同目标组件一起存储所计算出的S_ass得分。最后,在″结束计算S_ass″块419期间,结束处理300的块340。
虽然已经示出并且描述了本发明的特定实施例,但是本领域技术人员会理解,可以在本发明中进行形式和细节方面的上述和其他改变,包括但不限于按相同或不同顺序进行的添加、较少的或修改的单元和/或附加的、较少的或修改的块。

Claims (20)

1.一种用于管理分层相关的软件组件的方法,包括:
创建包含与软件组件有关的信息的软件组件描述符;
创建包含与一组相关软件组件或软件组件的聚合体有关的信息的一个或多个聚合体描述符;
定义软件组件与软件组件的聚合体之间的分层相互关系,以产生组件分层结构;以及
对软件组件的生命周期、访问控制、相互关系和版本进行管理,以维护所述组件分层结构的相容性。
2.如权利要求1所述的方法,还包括:
基于所述分层相互关系,过滤软件组件的列表;
从过滤后的软件组件的列表中选择软件组件;以及
将所述软件组件集成为软件应用。
3.如权利要求2所述的方法,其中所述过滤步骤基于与所述分层相互关系相关联的类别信息。
4.如权利要求2所述的方法,还包括基于通过选择所述子集而生成的关联来修改所述分层相互关系。
5.如权利要求2所述的方法,还包括:
对所述软件组件的列表上的软件组件进行评分;以及
基于通过所述评分步骤而产生的得分来选择所述子集。
6.如权利要求1所述的方法,其中基于所述相应组件或聚合体之间的关联,定义所述分层相互关系。
7.如权利要求1所述的方法,其中所述分层相互关系由多个层组成,所述多个层中的每个层都限定了相应软件组件或软件组件的聚合体之间的连接性的不同范围。
8.一种用于管理分层相关的软件组件的系统,包括:
多个软件组件;
包含与所述软件组件有关的信息的一个或多个软件组件描述符;
包含与所述软件组件或所述软件组件的聚合体有关的信息的一个或多个聚合体描述符;
所述软件组件与软件组件的聚合体之间的分层相互关系的组件分层结构;以及
用于对软件组件的生命周期、访问控制、相互关系和版本进行管理,以维护所述组件分层结构的相容性的逻辑。
9.如权利要求8所述的系统,还包括:
用于基于所述分层相互关系,过滤所述软件组件的列表的逻辑;以及
用于将从软件组件的子集中选择出的软件组件集成为软件应用的逻辑。
10.如权利要求9所述的系统,其中所述过滤基于与所述分层相互关系相关联的分类信息。
11.如权利要求9所述的系统,还包括用于基于通过选择所述子集而生成的关联,修改所述分层相互关系的逻辑。
12.如权利要求9所述的系统,还包括用于对软件组件的列表上的软件组件进行评分的逻辑。
13.如权利要求8所述的系统,其中基于所述相应软件组件或聚合体之间的关联,定义所述分层相互关系。
14.如权利要求8所述的系统,其中所述分层相互关系包括多个层,所述多个层中的每个层都定义了相应软件组件或软件组件的聚合体之间的连接性的不同范围。
15.一种用于管理分层相关的软件组件的计算机编程产品,包括:
存储器;
存储在所述存储器上的软件组件描述符,其包含有关软件组件的信息;
存储在所述存储器上的、包含与一组相关软件组件或软件组件的聚合体有关的信息的一个或多个聚合体描述符;
在所述存储器上存储的、用于定义软件组件与软件组件的聚合体之间的分层相互关系以产生组件分层结构的逻辑;以及
在所述存储器上存储的、用于对软件组件的生命周期、访问控制、相互关系和版本进行管理以维护所述组件分层结构的相容性的逻辑。
16.如权利要求15所述的计算机编程产品,还包括:
在所述存储器上存储的、用于基于所述分层相互关系来过滤所述软件组件的逻辑;以及
在所述存储器上存储的、用于将针对过滤后的软件组件所选择的软件组件集成为软件应用的逻辑。
17.如权利要求16所述的计算机编程产品,其中所述过滤基于与所述分层相互关系相关联的分类信息。
18.如权利要求16所述的计算机编程产品,还包括在所述存储器上存储的、用于基于通过选择所述软件组件而生成的关联修改所述分层相互关系的逻辑。
19.如权利要求15所述的计算机编程产品,其中基于所述相应组件或聚合体之间的关联,定义所述分层相互关系。
20.如权利要求15所述的计算机编程产品,其中所述分层相互关系由多个层组成,所述多个层中的每一层都定义了相应软件组件或软件组件的聚合体之间的连接性的不同范围。
CNA2007800017462A 2006-01-30 2007-01-24 用于管理分层相关的软件组件的系统和方法 Pending CN101361042A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/343,188 2006-01-30
US11/343,188 US7617224B2 (en) 2006-01-30 2006-01-30 System and method for managing hierarchically related software components

Publications (1)

Publication Number Publication Date
CN101361042A true CN101361042A (zh) 2009-02-04

Family

ID=37890478

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800017462A Pending CN101361042A (zh) 2006-01-30 2007-01-24 用于管理分层相关的软件组件的系统和方法

Country Status (3)

Country Link
US (1) US7617224B2 (zh)
CN (1) CN101361042A (zh)
WO (1) WO2007085619A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010947B2 (en) * 2006-05-23 2011-08-30 International Business Machines Corporation Discovering multi-component software products based on weighted scores
US8479159B2 (en) 2006-10-20 2013-07-02 International Business Machines Corporation System and method for automatically determining relationships between software artifacts using multiple evidence sources
US9491238B2 (en) * 2010-07-22 2016-11-08 Sap Se Rapid client-side component processing based on component relationships
GB2506596A (en) * 2012-10-02 2014-04-09 Ibm Managing a set of software modules in a runtime environment
US20140331209A1 (en) * 2013-05-02 2014-11-06 Amazon Technologies, Inc. Program Testing Service
EP2854028A4 (en) * 2013-07-31 2015-06-24 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR MANAGING AN EXTENSION MODULE THEREFOR
US9785755B2 (en) 2014-05-21 2017-10-10 International Business Machines Corporation Predictive hypothesis exploration using planning
US9697467B2 (en) 2014-05-21 2017-07-04 International Business Machines Corporation Goal-driven composition with preferences method and system
EP3299955B1 (en) * 2016-09-23 2022-10-26 Siemens Aktiengesellschaft System, method and computer program product for creating an engineering project in an industrial automation environment
US10725890B1 (en) 2017-07-12 2020-07-28 Amazon Technologies, Inc. Program testing service

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104981A (ja) 1993-09-30 1995-04-21 Hitachi Software Eng Co Ltd オブジェクトリンク情報を用いたプログラム構築装置
US5933646A (en) * 1996-05-10 1999-08-03 Apple Computer, Inc. Software manager for administration of a computer operating system
US6031990A (en) * 1997-04-15 2000-02-29 Compuware Corporation Computer software testing management
US6775829B1 (en) * 1998-06-04 2004-08-10 Gateway, Inc. Method for configuring software for a build to order system
US6185734B1 (en) * 1998-07-21 2001-02-06 Hewlett-Packard Company Hierarchical registry structure for managing multiple versions of software components
US6993771B1 (en) * 1999-02-03 2006-01-31 William H. Gates, III Method and system for managing software components
US6381743B1 (en) 1999-03-31 2002-04-30 Unisys Corp. Method and system for generating a hierarchial document type definition for data interchange among software tools
US6289501B1 (en) 1999-03-31 2001-09-11 Unisys Corp. Method for generating simple document type definitions
US6411724B1 (en) 1999-07-02 2002-06-25 Koninklijke Philips Electronics N.V. Using meta-descriptors to represent multimedia information
US6490719B1 (en) 1999-07-26 2002-12-03 Gary Thomas System and method for configuring and executing a flexible computer program comprising component structures
US6539522B1 (en) 2000-01-31 2003-03-25 International Business Machines Corporation Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs
AUPQ998100A0 (en) * 2000-09-08 2000-10-05 Frostbyte Consulting Pty Ltd Application development
US7100148B2 (en) 2001-03-16 2006-08-29 Sap Ag Development computer, development program for combining components to applications, using component descriptors related to the components, method, and computer program
US7131123B2 (en) * 2001-04-30 2006-10-31 Opsware Inc. Automated provisioning of computing networks using a network database model
US20040031015A1 (en) * 2001-05-24 2004-02-12 Conexant Systems, Inc. System and method for manipulation of software
EP1300757A1 (en) 2001-10-02 2003-04-09 Sun Microsystems, Inc. Shareable installation hierarchies
US7346668B2 (en) 2002-05-17 2008-03-18 Sap Aktiengesellschaft Dynamic presentation of personalized content
WO2004010354A2 (en) * 2002-07-19 2004-01-29 Sap Aktiengesellschaft Business solution management (bsm)
US7188331B2 (en) * 2003-06-30 2007-03-06 Hewlett-Packard Development Company, L.P. Firmware development within a framework from different design centers depositing component(s) with related contextual and genealogy information in an accessible repository
US20060174216A1 (en) * 2005-01-28 2006-08-03 Trenten Peterson Providing additional hierarchical information for an object displayed in a tree view in a hierarchical relationship with other objects
US20060218528A1 (en) * 2005-03-22 2006-09-28 Microsoft Corporation Software explorer

Also Published As

Publication number Publication date
US7617224B2 (en) 2009-11-10
US20070192340A1 (en) 2007-08-16
WO2007085619A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
CN101361042A (zh) 用于管理分层相关的软件组件的系统和方法
US7478093B2 (en) Design of self-adapting meta descriptors based on real use scenarios and experiences
US7577934B2 (en) Framework for modeling and providing runtime behavior for business software applications
US7730446B2 (en) Software business process model
CN100520716C (zh) 一种基于模型组件的代码自动生成装置、系统及方法
Rumbaugh The unified modeling language reference manual
US7895563B2 (en) Managing reusable software assets
US20150379061A1 (en) Managing changes to information
EP2065799A1 (en) Annotation of models for model-driven engineering
US7523077B2 (en) Knowledge repository using configuration and document templates
Gregory et al. Java persistence with hibernate
Hessellund et al. Guided development with multiple domain-specific languages
CN103119557A (zh) 云计算环境中的企业应用的基于模式的构造和扩展
CN100568175C (zh) 从分层目录中选择软件组件的方法和系统
Møller et al. Product configuration over the internet
Aguirre IPSComp—Intelligent Portal for Searching Components
Rohaľ Magento 2–Dynamics 365 Business Central Connector
Madsen The role of open source in data integration
Hess Evaluating Domain-Driven Design for Refactoring Existing Information Systems
Ranathunga Inventory and Transaction Management System for Weerawardana Family Super
Costa Sales and Inventory Management System For Samanthi Motor Stores (PVT) Ltd
Korkala Design and implementation of a production synchronization extension for Microsoft Dynamics AX
Schleicher et al. Interpreting Process Model Definitions
Röller Recovering and Modeling of Assumptions in Software Architecture
Shelley Bay Audio Repair Website & Data Management Application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20090204