CN1276347C - 构件化软件系统的运行状态结构化显示方法 - Google Patents
构件化软件系统的运行状态结构化显示方法 Download PDFInfo
- Publication number
- CN1276347C CN1276347C CN 200410062416 CN200410062416A CN1276347C CN 1276347 C CN1276347 C CN 1276347C CN 200410062416 CN200410062416 CN 200410062416 CN 200410062416 A CN200410062416 A CN 200410062416A CN 1276347 C CN1276347 C CN 1276347C
- Authority
- CN
- China
- Prior art keywords
- software
- description object
- running
- software architecture
- architecture
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000012856 packing Methods 0.000 claims description 9
- 238000012800 visualization Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 abstract 1
- 238000013461 design Methods 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 201000006549 dyspepsia Diseases 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种构件化软件系统的运行状态结构化显示方法,首先,构件运行支撑平台装载构件化软件系统,获取并实例化构件化软件系统的软件体系结构;建立软件体系结构与运行系统之间的映射关系;实时访问与显示软件体系结构。本发明通过软件体系结构表示处于运行状态的构件化软件系统,为维护人员提供了一个直观的、易于理解的系统视图,基于该视图,不仅能够获取被维护系统设计时的信息,准确把握设计人员的意图,还能利用现有的软件体系结构相关技术完成系统的推理和验证,从而降低软件维护的复杂度和难度,节省软件维护的成本。
Description
技术领域
本发明涉及软件技术领域中的一种构件化软件系统的运行状态结构化显示方法,尤其是一种通过可视化工具在线访问软件体系结构来直观、真实地反映系统运行状态的方法。
背景技术
软件维护是指在软件产品已经交付使用之后,对软件进行修改的过程,从而改正软件中的错误,提高软件的性能,或是保证软件系统能持续地与用户环境相适应。软件的一些本质特性,如软件需求的变化性和不断增加的复杂性等,决定了在软件生命周期中,软件维护是不可避免的重要阶段。特别是在Internet成为主流软件运行环境之后,网络的开放性和动态性使得客户需求与硬件资源不断地变化,其结果是不可预测的软件维护不断增多。据统计,软件维护的成本占到整个软件成本的50%-80%,并且该成本还在不断增大。软件维护高成本的主要原因之一在于维护人员难以理解被维护的软件。因此,如何提供一种直观、易于理解的手段描述或表示软件系统,成为简化软件维护、降低维护成本的关键。进一步地,软件开始被看作一种服务(Software As Service),这意味着软件系统24(小时)×7(天)的不间断运行成为重要需求,因此,软件系统的描述或表示还应该准确、真实地反映系统运行状态。软件体系结构是对软件总体结构的描述,即对其计算元素和它们之间交互的高层组织的描述。其主要目标就是帮助开发人员更好地理解软件系统,显然,软件体系结构是一种描述被维护系统的有效手段。但目前的软件体系结构主要作用于软件开发阶段。而在维护阶段,主要利用程序理解技术来分析源代码然后构造软件体系结构。这种软件体系结构无法捕捉系统的运行状态和行为。对于构件化软件系统而言,构件往往在市场上购得,无法获取源代码,因此,现有的利用软件体系结构描述被维护系统的方法能力不足,适用性较差。
发明内容
本发明所要解决的技术问题在于,针对现有技术的不足,提出一种构件化软件系统的运行状态结构化显示方法,在软件系统运行时将软件体系结构可视化,直观、真实地反映系统的结构及当前的运行状态,辅助维护人员理解系统,利用软件的维护,降低成本。
该发明的核心思想就是将开发阶段构造的软件体系结构在运行阶段予以实例化,通过构件运行支撑平台建立与构件化软件系统的映射,从而真实、直观地反映系统的结构及当前的运行状态。
本发明通过以下的技术方案实现:
一种构件化软件系统的运行状态结构化显示方法,其特征在于,包括如下步骤:
步骤一、构件运行支撑平台装载构件化软件系统,获取并实例化构件化软件系统的软件体系结构;
步骤二、建立软件体系结构与运行系统之间的映射关系;
步骤三、实时访问与显示软件体系结构。
所述步骤一中构件运行支撑平台装载构件化软件系统的过程为:将应用以软件包的形式部署到构件运行支撑平台,然后实例化构件,为构件分配互操作资源,建立构件与系统服务之间的关联。
所述步骤一中获取并实例化构件化软件系统运行状态的软件体系结构的过程为:根据当前系统中的构件实例及其之间的关系对现有的软件体系结构描述语言元素进行扩展,增加构件运行实例Component元素、连接子运行实例Connector元素和系统服务Constraint元素,其中,所述的Constraint元素用于表示作用于体系结构、构件以及连接子的一组约束,Component元素包括其类型ComponentType元素与实现体ComponentImplementation元素,Connector元素包括客户端代理ClientSideProxy元素、服务端代理ServerSideProxy元素以及与上述代理之间建立的连接Connection元素,然后实例化上述所述的元素。
构件化软件系统的构件往往运行在构件运行支撑平台提供的容器中。该平台同时还提供构件之间互操作机制以及其它公共服务,如安全、事务、命名、持久、日志等等。容器利用这些机制将各个构件连接起来并保障作用于构件的各种系统约束。因此,构件化软件系统运行状态的软件体系结构表示的关键在于与容器建立紧密关联。步骤二中建立软件体系结构与运行系统之间的映射关系的过程为:
步骤21、扫描应用中的所有构件实例,同时记录每个构件的依赖关系,创建相应构件实例的Component描述对象;所述的Component描述对象用于实时收集运行构件的容器的运行状态;
步骤22、获取每个构件实例的接口信息,创建ComponentType描述对象;获取每个构件实例的实现体信息,创建ComponentImplementation描述对象;获取每个构件实例使用的系统服务信息,创建Constraint描述对象;所述的ComponentType描述对象、ComponentImplementation描述对象用于实时收集构件的运行状态;所述的Constraint描述对象用于实时收集每个构件实例使用的系统服务信息;
步骤23、根据所有构件之间的依赖关系创建Connector描述对象,判断构件之间是否存在一到多个的依赖关系,如果存在,创建一个Connector描述对象以及相应的ClientSideProxy描述对象和ServerSideProxy,并根据作为客户端的构件采用的互操作机制创建Connection描述对象;所述的Connector描述对象、ClientSideProxy和ServerSideProxy描述对象、Connection描述对象用于实时收集互操作机制的运行状态。
所述的在线访问和显示通过可视化工具完成,可视化工具通过应用编程接口在线访问软件体系结构,实时显示运行系统的软件体系结构。
本发明所述的方法可以实时地显示运行系统的软件体系结构,通过软件体系结构表示处于运行状态的构件化软件系统,为维护人员提供了一个直观、易于理解的系统视图,基于该视图,不仅能够获取被维护系统设计时的信息,准确把握设计人员的意图,还能利用现有的软件体系结构相关技术完成系统的推理和验证,从而降低软件维护的复杂度和难度,节省软件维护的成本。
附图说明
图1为本发明的流程图;
图2为本发明一实施例的实现流程图;
图3为本发明建立的构件化软件系统运行状态的软件体系结构的描述语言示意图。
具体实施方式
以下通过具体的实施例和附图对本发明的技术方案进行详细的说明。
该发明的核心思想就是将开发阶段构造的软件体系结构在运行阶段予以实例化,通过构件运行支撑平台建立与构件化软件系统的映射,从而真实、直观地反映系统的结构及当前的运行状态。
参见图1,首先,构件运行支撑平台装载构件化软件系统,获取并实例化构件化软件系统运行状态的软件体系结构;然后,建立软件体系结构与运行系统之间的映射关系,实时访问与显示软件体系结构。
以下参照图2以基于J2EE应用服务器的实现为例,进行详细的说明。
应用服务器是目前典型的构件运行支撑平台,被认为是继操作系统、数据库管理系统之后,随着计算机网络环境的发展而出现的里程碑式的系统软件。J2EE应用以软件包的形式部署到应用服务器,设计阶段的软件体系结构可随软件包一起发布,供应用服务器在实例化运行系统的软件体系结构时使用。在应用服务器内部,部署的应用和系统服务都是构件,由应用服务器统一创建与维护。
当一个应用部署到应用服务器时,应用服务器根据软件包中的部署描述符装载并实例化构件,为构件分配所需的互操作资源,然后建立构件与系统服务之间的关联以满足指定的约束。在完成这些应用服务器部署应用的标准步骤后,获取应用的软件体系结构并实例化。
如果无法直接从应用服务器中获取软件体系结构,则根据当前系统中的构件实例及其之间的关系得到软件体系结构描述语言(ArchitectureDescription Language,简称ADL)元素,所述的软件体系结构描述语言元素如图3所示,包括构件类型ComponentType元素、连接子类型ConnectorType元素,配置信息Configuration元素,同配置信息Configuration元素相关的构件实例componentInstance元素,连接子实例ConnectorInstance元素,并在上述元素的基础上扩展以下的元素:构件运行实例Component元素、连接子运行实例Connector元素和系统服务Constraint元素,其中,所述的Constraint元素用于表示作用于体系结构、构件以及连接子的一组约束,Component元素包括其类型ComponentType元素与实现体ComponentImplementation元素,Connector元素包括客户端代理ClientSideProxy元素、服务端代理ServerSideProxy元素以及与上述代理之间建立的连接Connection元素。
其中,所述的构件类型ComponentType元素、连接子类型ConnectorType元素,配置信息Configuration元素,同配置信息Configuration元素相关的构件实例componentInstance元素,连接子实例ConnectorInstance元素为设计阶段的软件结构体系的描述语言元素,构件运行实例Component元素、连接子运行实例Connector元素和用于表示作用于体系结构、构件以及连接子的一组约束——系统服务Constraint元素及实现体ComponentImplementation元素,客户端代理ClientSideProxy元素、服务端代理ServerSideProxy元素以及与这些代理之间建立的连接Connection元素为特定于运行系统软件结构的描述语言元素。
某些特定于运行系统软件结构的描述语言元素与设计阶段的软件结构体系的描述语言元素具有继承关系,如Component元素继承自ComponentInstance、Connector元素继承自ConnectorInstance、RuntimeSoftwareArchitecture继承自Configuration,因为前者需要对后者进行更详细的描述,而没有继承关系的扩展元素,如Constraint、ComponentImplementation、ClientSideProxy、ServerSideProxy、Connection,则是描述那些系统运行阶段特有的状态,以确保真实、准确反映系统的运行状态。本质上,运行系统的软件体系结构是对设计阶段软件体系结构的精化。
而后建立软件体系结构与运行系统之间的映射关系,通过可视化工具进行在线访问与显示。
需要说明的是,如果设计阶段的软件体系结构随同应用软件包一起部署到构件运行支撑平台,则可直接利用设计阶段的软件体系结构实例化上述的各个元素;如果无法获取设计阶段的软件体系结构,则根据当前系统中的构件实例及其之间的关系在线重建软件体系结构并实例化上述的各个元素。其中,前者简单快捷,后者相对复杂耗时,主要适用于设计阶段软件体系结构无法获得的情况。
软件体系结构实例化之后,进行软件体系结构与运行系统之间的映射。首先,扫描应用中的所有构件实例,并创建相应的Component描述对象,对于每个构件实例,获取其接口信息以创建ComponentType描述对象,获取其实现体信息以创建ComponentImplementation描述对象,获取其使用的系统服务的信息以创建Constraint描述对象,此时,还要记录每个构件依赖的其它构件;接下来,根据所有构件之间的依赖关系创建Connector描述对象,若两个构件之间存在一到多个依赖,则创建一个Connector描述对象以及相应的ClientSideProxy和ServerSideProxy描述对象,并根据作为客户端的构件采用的互操作机制创建Connection描述对象。至此,完整建立了软件体系结构与运行系统之间的映射。最后,将该软件体系结构与软件包中保留的设计阶段的软件体系结构进行一致性检查,并将后者记录的语义信息转存到前者的相应元素中。如果利用设计阶段的软件体系结构直接实例化运行系统的软件体系结构,则只需将前者描述的各个元素实例化成对象,然后查找到相应的运行实体并建立关联即可。
完成运行系统软件体系结构的映射后,即可通过编程接口和图形界面在线察看系统的运行状态,并进行软件维护。其中的图形界面与开发阶段使用的软件体系结构建模工具类似,往往采用简单的方框和连线等图元表示。
由于现有的软件系统在运行时,人们无法看到用于描述软件总体结构的软件体系结构,而是通过分析构件的源代码后构造软件体系结构,而且,这种软件体系结构表示的是一种静态的软件结构,无法动态的表现出系统运行的状态和行为,本发明通过扩展软件体系结构的描述语言,在系统运行时构造特定于运行系统的软件体系结构,该软件体系结构实例化后通过可视化工具以视图的方式显示,不但直观、真实地反映系统的结构,还可以反映系统当前的运行状态,便于辅助维护人员理解系统,利于软件的维护,降低成本。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1、一种构件化软件系统的运行状态结构化显示方法,其特征在于,包括如下步骤:
步骤一、构件运行支撑平台装载构件化软件系统,获取并实例化构件化软件系统的软件体系结构;
步骤二、建立软件体系结构与运行系统之间的映射关系;
步骤三、实时访问与显示软件体系结构。
2、根据权利要求1所述的构件化软件系统的运行状态结构化显示方法,其特征在于,所述步骤一中构件运行支撑平台装载构件化软件系统的过程为:将应用以软件包的形式部署到构件运行支撑平台,然后实例化构件,为构件分配互操作资源,建立构件与系统服务之间的关联。
3、根据权利要求1所述的构件化软件系统的运行状态结构化显示方法,其特征在于,所述步骤一中获取并实例化构件化软件系统的软件体系结构的过程为:根据当前系统中的构件实例及其之间的关系对现有的软件体系结构描述语言元素进行扩展,增加构件运行实例元素、连接子运行实例元素和系统服务元素,其中,所述的系统服务元素用于表示作用于体系结构、构件以及连接子的一组约束,构件运行实例元素包括构件运行实例类型元素与实现体元素,连接子运行实例元素包括客户端代理元素、服务端代理元素以及与上述代理之间建立的连接元素,然后实例化上述所述的元素。
4、根据权利要求1所述的构件化软件系统的运行状态结构化显示方法,其特征在于:步骤二中建立软件体系结构与运行系统之间的映射关系的过程为:
步骤21、扫描应用中的所有构件实例,同时记录每个构件的依赖关系,创建相应构件实例的构件运行实例描述对象;所述的构件运行实例描述对象用于实时收集运行构件的容器的运行状态;
步骤22、获取每个构件实例的接口信息,创建构件运行实例类型描述对象;获取每个构件实例的实现体信息,创建实现体描述对象;获取每个构件实例使用的系统服务信息,创建系统服务描述对象;所述的构件运行实例类型描述对象、实现体描述对象用于实时收集构件的运行状态;所述的系统服务描述对象用于实时收集每个构件实例使用的系统服务信息;
步骤23、根据所有构件之间的依赖关系创建连接子运行实例描述对象,判断构件之间是否存在一到多个的依赖关系,如果存在,创建一个接子运行实例描述对象以及相应的客户端代理描述对象和服务端代理描述对象,并根据作为客户端的构件采用的互操作机制创建连接描述对象;所述的连接子运行实例描述对象、客户端代理和服务端代理描述对象、连接描述对象用于实时收集互操作机制的运行状态。
5、根据权利要求1所述的构件化软件系统的运行状态结构化显示方法,其特征在于,所述的实时访问和显示通过可视化工具完成,可视化工具通过应用编程接口在线访问软件体系结构,实时显示运行系统的软件体系结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410062416 CN1276347C (zh) | 2004-07-02 | 2004-07-02 | 构件化软件系统的运行状态结构化显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410062416 CN1276347C (zh) | 2004-07-02 | 2004-07-02 | 构件化软件系统的运行状态结构化显示方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1588309A CN1588309A (zh) | 2005-03-02 |
CN1276347C true CN1276347C (zh) | 2006-09-20 |
Family
ID=34603695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410062416 Expired - Lifetime CN1276347C (zh) | 2004-07-02 | 2004-07-02 | 构件化软件系统的运行状态结构化显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1276347C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254764B (zh) * | 2018-09-28 | 2022-03-15 | 福州大学 | 面向客户端应用程序的获取运行时软件体系结构的方法 |
-
2004
- 2004-07-02 CN CN 200410062416 patent/CN1276347C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1588309A (zh) | 2005-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7562339B2 (en) | System architecture for business process development and execution with introspection and generic components | |
Jonkers et al. | Concepts for modeling enterprise architectures | |
US20120124133A1 (en) | Active business client | |
US20030229884A1 (en) | Interaction manager template | |
Youngs et al. | A standard for architecture description | |
JP2005505050A (ja) | ウェブベースのアプリケーションをサポートするためのフレームワークにおいてビューキャッシングを実施する方法、装置及びシステム | |
US20080010082A1 (en) | System and method for business process management | |
Raghupathi et al. | Exploring a model-driven architecture (MDA) approach to health care information systems development | |
Cámara et al. | Synthesizing tradeoff spaces with quantitative guarantees for families of software systems | |
AU2014277620A1 (en) | Method and system for information integration in industrial systems | |
Andrade et al. | Architecture based evolution of software systems | |
Mos et al. | Performance management in component-oriented systems using a Model Driven Architecture/spl trade/approach | |
CN1276347C (zh) | 构件化软件系统的运行状态结构化显示方法 | |
Brown et al. | Promoting Computer Integrated Construction Through the Use of Distribution Technology. | |
US8788513B2 (en) | Computer method and system providing access to data of a target system | |
Burt et al. | Quality of service issues related to transforming platform independent models to platform specific models | |
Rao et al. | The resultmaker online consultant: From declarative workflow management in practice to LTL | |
Kazman | Software architecture | |
CN113342297B (zh) | 一种基于平台加应用的集成管理显控系统及其方法 | |
Chimiak-Opoka et al. | Tool-supported systematic model assessment | |
O'Reilly et al. | Lightweight prevention of architectural erosion | |
EP1111541A2 (en) | Method and apparatus for the integration of data, information and knowledge | |
Emmerich | An overview of OMG/CORBA | |
Wiering et al. | Investigating the mapping of an Enterprise Description Language into UML 2.0 | |
WO2003030020A2 (en) | Handling relational metanodes in databases |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20060920 |
|
CX01 | Expiry of patent term |