CN103645908B - 网构软件全生命周期开发实现系统 - Google Patents
网构软件全生命周期开发实现系统 Download PDFInfo
- Publication number
- CN103645908B CN103645908B CN201310741873.3A CN201310741873A CN103645908B CN 103645908 B CN103645908 B CN 103645908B CN 201310741873 A CN201310741873 A CN 201310741873A CN 103645908 B CN103645908 B CN 103645908B
- Authority
- CN
- China
- Prior art keywords
- file
- pel
- module
- architecture
- model
- 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
Abstract
网构软件全生命周期开发实现系统,为客户端服务器架构,客户端包括:图形化软件体系结构建模模块、体系结构图像模型文件生成模块、软件应用代码工程框架生成模块;服务器包括:文件同步管理模块、Web Services演化接口模块。用户通过协同开发对业务层的图像化建模后,通过该系统的代码工程框架生成模块生成代码框架,从而消除了业务层到代码实现层的隔阂。通过把CCO模型思想引入并改造SCA,是整个SCA具有动态演化性,把这个动态演化机制封装成接口提供给第三方感知驱动演化系统,使整个代码框架具有了演化功能。本发明实现了为网构化大型复杂软件系统的研制提供顶层设计,为网构软件开发提供了代码生成技术,为网构软件的动态演化提供支持的总体开发目标。
Description
技术领域
本发明涉及一种网构软件全生命周期建模实现系统,属于计算机软件开发技术和软件体系结构演化领域。
背景技术
网构软件的环境是动态多变的,随时都可能产生情境元素的变化。当服务提供者的相应情境变化(如该服务实体退出网构软件体系,或被用服务状态改为不可用,或者其QoS属性发生变化)发布时,主服务实体就在第一时间感知到这一变化。当服务实体得到情境感知变化后,会根据自己的需求来筛选信息,并根据自己感兴趣的情境进行自适应调整或启动新的聚合过程,从而实现动态的演化,服务实体会将自己的动态演化逻辑定义为规则,用于感知到新的情境变化时激发。对于上层用户而言,情境感知和动态演化的过程是透明的。服务聚合、情境感知以及动态演化,是服务实体运行中的三种行为,服务聚合带来情境感知,情境感知引起动态演化,而动态演化又可能发起新的情境感知和服务聚合过程,三者彼此关联,共同作用,保证网构软件体系中的服务实体运行在一个良好的状态上。
随着互联网行业的迅猛发展,越来越多的在线商业解决方案被提出。然而任何一个服务都只能满足相对单一的客户需求。服务提供商们迫切希望现有的服务能够被方便地组合成功能更加强大的增值服务,用来满足更为多样化的需求,所以人们提出了Web服务组合的概念。在大量的Web服务中,有相当一部分服务能够实现相同功能,但是却拥有不同的非功能属性,如价格、响应时间和可靠性等。这些非功能属性被统称为QoS(Quality ofService)。
网构软件环境中的上下文信息主要包括了与运行于Internet平台之上的服务实体相关的所有上下文信息以及服务实体为了相互聚合、协同工作从而形成网构软件所需的上下文信息。通过这些上下文信息,服务实体就能够感知到其他服务实体的状态和运行时信息,从而能够为了共同的应用需求聚合到一起形成网构软件。同时,在网构软件的运行过程中,这些上下文信息还能够帮助构成网构软件的服务实体根据Internet环境的变化以及其他服务实体的状态变化作出自适应的调整,从而带动整个网构软件呈现出动态自适应和自演化的特性。然而,由于网构软件运行于Internet平台之上,因此由网构软件所构成的应用与普适计算中上下文感知领域的应用存在一定的差别。
软件演化是指在软件系统的生命周期内软件维护和软件更新的动态行为。在现代软件系统的生命周期内,演化是一项贯穿始终的活动,系统需求的改变,功能实现的增强,新功能的加入,软件体系结构的改变,软件缺陷的修复,运行环境的改变无不要求软件系统具有较强的演化能力,能够快速适应改变,减少软件维护的代价。
另外,在网构软件中,大型复杂软件需要由庞大的构件组成,构件由连接件建立连接依赖关系组成软件,连接件建立的不只是两个构件之间的二元关系,也可以是多个构件之间的依赖关系。如果使用普通图来表示由纵横交错的构件组成的体系结构,生成时开销很大,且体系图庞大不易处理。
当前基于软件体系结构的研究都主要集中在描述系统的静态表现形式上,系统的架构被认为是比较稳定的,在系统的整个生命周期中不易发生变化,系统的演化主要集中在构件的演化上"。相应的建模模型也都是静态的模型。没有一个支持动态体系结构演化的模型。设计一个支持动态演化的体系结构模型具有重要意义。
发明内容
本发明技术解决问题:为了解决上述难点问题,提供一种网构软件全生命周期开发实现系统,消除了从高层业务描述到可运行网构软件层的隔阂,支持多人协同开发保证大规模复杂软件系统的构件开发,同时支持软件运行期软件体系结构演化。
本发明技术解决方案包括:网构软件全生命周期开发实现系统,所述系统为客户端服务器架构;客户端包括:图形化软件体系结构建模模块、体系结构图像模型文件生成模块、软件应用代码工程框架生成模块;服务器端包括:文件同步管理模块、Web Services演化接口模块;
图形化软件体系结构建模模块,采用MVC(Model-View-Controller)的模式,把视图、模型、控制相分离,形成了绘图区、图元数据模型和控制中心三个子功能模块;用户通过拖拽图元即体系结构中的构件、连接件,在绘图区中构建整个应用程序的体系结构框架,此时应用程序体系结构框架包含多个图元,每个图元对应一个图元数据模型,用户单击每个图元来对图元数据模型添加属性和对应数据;然后控制中心通过分析绘图区的图元和每个图元的图元数据模型,以及各图元之间的数据流程关系,得到应用程序的体系结构数据框架,分别供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块调用;
体系结构图像模型文件生成模块,通过对图形化软件体系结构建模模块中用户在绘图区绘制各个图元的读取,确定各个图元的坐标位置,从而将绘图区的各图元位置信息以及图元的属性数据保存于XML描述文件,实现文件还原图像;系统默认将该文件发送到服务器端的图像文件同步管理模块,多个客户端能够同步下载此文件,实现多用户协同可视化建模;
软件应用代码工程框架生成模块,通过图形化软件体系结构建模模块中的控制中心得到绘图区的构件,以及各构件之间的关系逻辑,进而得出个构件的业务关系生成java代码框架;图形化软件体系结构建模模块中绘图区各个构件的业务关系生成java代码框架,java代码框架采用服务构件架构(SCA),生成直接导入IDE即eclipse开发平台进行二次开发的工程代码文件;自动把生成的java代码框架的SCA的配置文件存入服务器端的文件同步管理模块,在服务器端Web Services演化接口模块对此SCA配置文件更改;
文件同步管理模块,负责维护不同用户保存的图像文件,这些图像文件分别对应多个用户组,在同一用户组的用户共享组内文件,实现同步开发;该模块提供文件的增加、删除、修改三个基本功能,供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块调用,完成图像文件的保存和更新功能;同时该模块联合Web Services演化接口模块提供对软件应用代码工程框架生成模块生成的java工程框架的演化功能;文件同步管理模块为整个服务器与客户端交互的枢纽,同时也是实现程序框架演化功能的关键所在;
Web Services演化接口模块,基于CCO模型思想,使SOA具有演化功能;服务器端向外界即第三方程序提供两类接口:图像文件操作接口和SCA配置文件演化接口,其中图像文件操作接口功能包括构件和连接件的增加、删除、修改,文件的保存和更新功能,实现多客户端的并行开发;SCA配置文件演化接口通过调用文件同步模块的功能为第三方系统提供接口,这些接口将对应的SCA配置文件更改,实现java代码架构的更改,进而实现应用系统的演化。
所述图形化软件体系结构建模模块实现过程采用MVC(Model-View-Controller)的模式,实现如下:
(1)使用java包中的Draw2d API对图元进行绘制,图元包括体系结构中的构件、连接件,这些图元均可以添加属性和对应的属性值,用户通过鼠标拖拽图元在视图区建立应用程序的体系结构模型;此外在视图区支持鼠标响应事件、鼠标右键弹出菜单显示,用户能够可视化的处理元素的复制、粘贴、删除控制图元属性和对应的属性值;
(2)在步骤(1)中,用户对图元基本属性和图元属性的数据进行输入,这些数据保存于图元数据模型中,每个图元都对应一个图元数据模型,图元数据模型包含完成应用程序体系结构的所有的行为和数据;图元数据模型可以通过有状态的对象记录必要的信息,当图元数据模型的数据状态改变时,图元数据模型将会自动刷新与之相关的视图区;
(3)控制中心(即多个Controller控制器)是视图区和可视化图元模型之间的桥梁,通过分析步骤(1)中用户在绘图区构件的应用程序体系结构模型,以及分析步骤(2)中的各个图元数据模型的行为和数据将视图的图元和对应的数据相互联系,形成映射,得到应用程序的体系结构数据框架,供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块完成相应功能;此外控制器处理用户的输入,每个界面有一个控制器监听元素,它负责相应视图区的事件,修改模型数据;控制器的功能在于监控可视化图元模型的状态实时更新视图区的图元。
所述体系结构图像模型文件生成模块实现过程如下:
(1)根据组装描述规范的XML Schema文档格式定义好构件组装XML描述模板文档,包括每个图元的名称、坐标信息,其中图元中的构件为矩形,连接件为箭头,坐标分别为左上角顶点坐标和长宽,箭头为起点和终点的坐标值;
(2)遍历绘图区各个建模图元,遵循自左向右、自上向下的遍历规则,确定各个图元的坐标位置,利用步骤(1)中定义的XML描述模板文档把图元位置信息转化生成java中的DOM文档;
(3)遍历步骤(2)生成的DOM文档,根据图元组装结构,向DOM文档中添加图元相关组装信息;完成的DOM文档转化为组装XML描述文件,实现文件还原图像;
(4)系统默认将步骤(3)生成的XML描述文件发送到服务器端的图像文件同步管理模块多个客户端能够同步下载此文件,实现多用户协同可视化建模。
所述软件应用代码工程框架生成模块中直接导入IDE的具体实现过程如下:
(1)根据用户保存的项目工程名,生成eclipse工程下的“.project”文件,该文件用于eclipse开发环境识别项目;
(2)生成“.classpath”文件,该文件用于指出项目用哪个版本的jdk,以及源文件的所在目录;
(3)遍历图形化软件体系结构建模模块中绘图区的图元,采用服务构件架构(SCA)将各个构件实体映射成一个接口与一个具体的存在的web服务关联,同时根据各个实体之间的关系写入SCA配置文件;
(4)把上述3个步骤中生成的文件组成java语言程序框架,直接导入IDE,即eclipse开发平台进行二次开发。
所述文件同步管理模块具体实现过程如下:
(1)定义文件的命名规则:文件名_用户组ID_版本号_时间戳,由此来定义每个图像文件与SCA配置文件,文件扩展名确定具体为哪类文件,图像文件的扩展名为“cco”,SCA配置文件的扩展名为“component”;
(2)分别定义文件的结构,采用XML Scheme的形式定义,包括构件和连接件的结构定义,每个构件和连接件都有唯一id和坐标,这样就能唯一标示视图区的一个图元;
(3)根据步骤(2)中定义的格式,每个服务实体在文件中都有唯一标识,根据这一个标识进行操作,这些操作包括服务实体的删除、替换和新增。
所述Web Services演化接口模块实现多客户端的并行开发以及应用系统的演化,具体实现过程如下:
(1)选取开源Services框架CXF,来创建web services接口,定义了针对两类文件的两类接口:图像文件操作接口和SCA配置文件演化接口;
(2)步骤(1)中的图像文件操作接口分为版本控制,文件更新、删除操作,利用服务器推送技术完成与客户端交互,调用文件同步管理模块中的类实现相应功能,实现多人并发操作的实现技术主要通过文件共享文件来完成;
(3)步骤(1)中的SCA配置文件接口主要完成对构件,即web服务的替换、新增、删除操作,第三方系统调用这些接口,将对应软件应用的SCA配置文件更改,然后通过服务器推送(comet)把更新的SCA配置文件发送到客户端,客户端重新组合web服务,进而实现java代码架构的更改,完成整个软件应用体系结构的演化。
本发明与现有技术相比的优点和积极效果如下:
(1)本发明整体设计遵循“紧内聚,松耦合”的原则,把过程的模型与显示分离开来。在权利要求书2中,过程的显示由视图类实现,支持元素的复制、删除、拖动和属性设置。支持构件的属性添加。模型是整个架构的基础,它可以通过有状态的对象记录必要的信息,当模型的状态改变时,模型将会自动刷新与之相关的视图。控制器是view和model之间的桥梁,将模型映射到界面中。通过这三层模型架构,相比于同类系统,该系统易于扩展,业务流程清晰。
(2)本发明通过采用客户端服务器架构,在权利要求书3中,采用XML Scheme定义了完整视图文件图形文件,通过权利要求书5中的功能把视图文件保存于服务器并共享于同一个开发组,服务器采用服务器推技术(comet),将文件推送到客户端,实现多客户端协同开发的功能,为大规模网构软件建设提供了操作实现平台。
(3)本发明采用SOA中的实现框架SCA,在权利要求书4中的软件应用代码工程框架生成模块,将高层业务流程映射到具体的构件服务,通过引入Tuscany java SCA架构,将抽象的业务流程组合构建成具体的java应用框架,从而消除了业务层到代码实现层的隔阂。
(4)本发明在权利要求书6中基于软件体系结构的基础上建立了CCO模型(构件、连接件、操作),包括构件、连接件的定义,对构件和连接件的操作,对元模型的操作,并将这一理论与SCA框架融合,使SCA框架支持运行期演化,并通过web services演化接口将演化机制提供给第三方感知演化工具调用,实现了框架运行期的演化功能,这一技术在同类系统中是首创。
(5)总结权利要求书,本发明实现了为网构化大型复杂软件系统的研制提供顶层设计,为网构软件开发提供了代码生成技术,为网构软件的动态演化提供支持的总体开发目标。
附图说明
图1为本发明实现系统的组成框图;
图2为图1中图形化软件体系结构建模模块实现用例图;
图3为图1中体系结构图像模型文件生成模块流程图;
图4为图1中软件应用代码工程框架生成模块流程图;
图5为图1中文件同步管理模块流程图;
图6为图1中Web Services接口模块架构图。
具体实施方式
下面结合说明书附图,对本发明的具体实施方式做详细描述。
如图1所示,本发明为客户端服务器架构,客户端主要包括:图形化软件体系结构建模模块、体系结构图像模型文件生成模块、软件应用代码工程框架生成模块;服务器主要包括:多用户管理模块、文件同步管理模块、Web Services接口模块。
如图2所示,图形化软件体系结构建模模块实现过程采用MVC(Model-View-Controller)的模式,具体实现如下:
(1)使用java包中的Draw2d API对图元进行绘制,图元包括体系结构中的构件、连接件,这些图元均可以添加属性和属性值,用户通过鼠标拖拽图元在视图区建立应用程序的体系结构模型;此外在视图区支持鼠标响应事件、鼠标右键弹出菜单显示,用户能够可视化的处理元素的复制、粘贴、删除控制图元属性和属性值。
(2)在步骤(1)中,用户对图元基本属性和图元属性的数据进行输入,这些数据保存于图元数据模型中,每个图元都对应一个图元数据模型,图元数据模型包含完成应用程序体系结构的所有的行为和数据;图元数据模型可以通过有状态的对象记录必要的信息,当图元数据模型的数据状态改变时,图元数据模型将会自动刷新与之相关的视图区。
(3)控制中心(即多个Controller控制器)是视图区和可视化图元模型之间的桥梁,通过分析步骤(1)中用户在绘图区构件的应用程序体系结构模型,以及分析步骤(2)中的各个图元数据模型的行为和数据将视图的图元和对应的数据相互联系,形成映射,得到应用程序的体系结构数据框架,供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块完成相应功能;此外控制器处理用户的输入,每个界面有一个控制器监听元素,它负责相应视图区的事件,修改模型数据;控制器的功能在于监控可视化图元模型的状态实时更新视图区的图元。
如图3所示,体系结构图像模型文件生成模块具体实现过程如下:
(1)根据组装描述规范的XML Schema文档格式定义好构件组装XML描述视图模板文档。描述格式如下:
<type></type>表示构件类型,注意,当type为Relation时,表示此为连接件,否则为构件,构件类型有Class、Interface、Actor、Text、Note、Package等。
<coordinates></coordinates>表示建模元素在视图中的位置。
<panel_attributes></panel_attributes>表示构件属性,例如当type为Actor时,可以在此处列出每个Actor的名称,以及它们之间的前后与层级关系。
<additional_attributes>表示附加属性,例如表示两个构件之间的数据传输方向、调用关系。
(2)解析XML文档转化生成DOM文档。文档对象模型(DOM)是XML文档的编程接口规范,它与平台和语言无关,因而可以用各种语言在各种平台上实现。该模型定义了XML文件在内存中的逻辑结构(即为文档),提供了访问、存取XML文件的方法。利用DOM规范,可以实现DOM文档和XML之间的相互转换,遍历、操作相应DOM文档的内容。
(3)遍历生成的DOM文档,根据构件组装结构,向DOM文档中添加构件及连接子等相关组装信息。
(4)将完成的DOM文档转化为组装XML描述文档。DOM文档中的逻辑结构可以用节点树的形式进行表述。通过对XML文件的解析处理,XML文件中的元素便转化为DOM文档中的节点对象。DOM的文档节点有Document、Element、Comment、Type等等节点类型,其中每个DOM文档必须有一个Document节点,并且为节点树的根节点。它可以有子节点,或者叶子节点如Text节点、Comment节点等。任何的格式良好的XML文件中每一个元素均有DOM文档中的一个节点类型与之对应。
如图4所示,软件应用代码工程框架生成模块,所导出的工程文件可以直接导入IDE(如eclipse)进行二次开发,我们采用SOA(面向服务架构)的实现标准SCA(服务构件架构),工程代码没有实现语言限制,在这里我们仅仅给出java语言的程序框架实现,具体实现过程如下:
(1)根据用户保存的项目工程名,生成eclipse工程下的“.project”文件,该文件用于eclipse开发环境识别项目。“.project”文件模板如下:
(2)生成“.classpath”文件,该文件用于指出项目用哪个版本的jdk,以及源文件的所在目录。“.classpath”文件模板如下:
(3)遍历图形化软件体系结构建模模块中绘图区的各个节点,将各个构件实体映射成一个接口与一个具体的存在的web服务关联,同时根据各个实体之间的关系写入SCA配置文件。SCA配置文件模板如下:
A.Component元素有如下属性:
·name(必须)–构件的名字。在同一组合构件里的所有构件中名字必须唯一。
·autowire(可选)–指示包含的构件引用是否自动连线,默认是false。
·requires(可选)–策略意图的列表。查看策略框架规范对该属性的描述。
·policySet(可选)–策略集列表。查看策略框架规范对该属性的描述。
·constrainingType(可选)–强制类型的名字。
B.service元素有如下属性:
·name(必须)–服务名字。必须匹配由实现定义的服务名。
·requires(可选)--策略意图的列表。
·policySets(可选)--策略集列表。
C.reference元素有如下属性:
·name(必须)–引用名。必须匹配实现中定义的引用名称。
·autowire(可选)–指示引用是否自动连线,默认是false。
·requires(可选)–策略意图的列表。
·policySet(可选)–策略集列表。
如图5所示,文件同步管理模块,该模块在服务器端,主要用来管理客户端传来的图像文件与SCA配置文件。实现多客户端的并行开发,具体实现过程如下:
(1)定义文件的命名规则:文件名_用户组ID_版本号_时间戳,由此来定义每个图像文件与SCA配置文件,文件扩展名确定具体为哪类文件,图像文件的扩展名为“cco”,SCA配置文件的扩展名为“component”。
(2)分别定义文件的结构,采用XML Scheme的形式定义,这里分别给出构件和连接件的结构定义,每个构件和连接件都有唯一id和坐标,这样就能唯一标示视图区的一个实体符合。构件和连接件的结构定义如下:
(3)根据第(2)步中定义的格式,每个服务实体在文件中都有唯一标识,我们根据这一个标识进行操作,这些操作包括服务实体的删除、替换、新增。通过解析XML文档转化生成DOM文档,遍历、操作相应DOM文档的内容,实现实体操作。
如图6所示,Web Services演化接口模块,该模块在服务器端,主要用来管理客户端传来的图像文件与SCA配置文件。实现多客户端的并行开发,具体实现过程如下:
(1)提出软件体系结构CCO模型并把思想引入SOA,使SOA具有演化功能,CCO模型定义如下:
CCO={Components,Connectors,Operations}
此模型是基于体系结构包括构件、连接件的定义,对构件和连接件的操作,对元模型的操作,该模型中的操作方法把网构软件的演化结果归为对构件、连接件的增、删、改操作。
a)构件是指相对独立,可替换的软件系统组成部分,它遵循和提供了一组接口的物理实现,完成明晰的功能,能够在一个定义良好的体系结构下被组装成完整的软件系统。
b)连接件是一类特殊的构件,它不但具有逻辑意义上的独立性,而且与构件一样,都是独立的实体。连接件主要实现构件之间的参数传递和参数转换等功能,是构件之间建立联系的中介。
c)操作行为(Operations)是指一系列的供外部程序调用对体系结构模型操作的接口。将这些演化归结为构件和连接件的增、删、改操作,即一系列的函数接口。
(2)选取开源Services框架CXF,来创建web services接口,我们定义了针对两类文件的两类接口:图像文件操作接口和SCA配置文件演化接口。图像文件操作接口主要与客户端交互,通过文件共享来完成多人并发建模操作。SCA配置文件演化接口主要供第三方系统调用,实现软件应用运行期的演化。在这里我们主要详细介绍SCA配置文件的演化接口,相应接口定义如下:
(3)图像文件操作接口分为版本控制,文件更新操作。这一部分主要调用文件同步管理模块的接口实现同步更新。
(4)SCA配置文件接口主要通过调用以上操作行为完成对构件(即web服务)的替换、新增、删除等操作,这些接口主要将对应的SCA配置文件更改,实现java代码架构的更改,完成整个软件应用的演化。
总之,本发明中用户通过协同开发对业务层的图像化建模后,通过该系统的代码工程框架生成模块生成代码框架,从而消除了业务层到代码实现层的隔阂。通过把CCO(构件、连接件、操作)模型思想引入并改造SCA(服务构件架构),是整个SCA具有动态演化性,把这个动态演化机制封装成接口提供给第三方感知驱动演化系统,使整个代码框架具有了演化功能,最终实现了为网构化大型复杂软件系统的研制提供顶层设计,为网构软件开发提供了代码生成技术,为网构软件的动态演化提供支持的总体开发目标。
本发明未详细阐述部分属于本领域技术人员的公知技术。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.网构软件全生命周期开发实现系统,其特征在于所述系统为客户端服务器架构;客户端包括:图形化软件体系结构建模模块、体系结构图像模型文件生成模块、软件应用代码工程框架生成模块;服务器端包括:文件同步管理模块、Web Services演化接口模块;
图形化软件体系结构建模模块,采用MVC(Model-View-Controller)的模式,把视图、模型、控制相分离,形成了绘图区、图元数据模型和控制中心三个子功能模块;用户通过拖拽图元即体系结构中的构件、连接件,在绘图区中构建整个应用程序的体系结构框架,此时应用程序体系结构框架包含多个图元,每个图元对应一个图元数据模型,用户单击每个图元来对图元数据模型添加属性和对应数据;然后控制中心通过分析绘图区的图元和每个图元的图元数据模型,以及各图元之间的数据流程关系,得到应用程序的体系结构数据框架,分别供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块调用;
体系结构图像模型文件生成模块,读取图形化软件体系结构建模模块中用户在绘图区绘制各个图元,确定各个图元的坐标位置,从而将绘图区的各图元位置信息以及图元的属性数据保存为XML描述的图像文件,实现图像文件还原图像;系统默认将该图像文件发送到服务器端的图像文件同步管理模块,多个客户端能够同步下载此文件,实现多用户协同可视化建模;
软件应用代码工程框架生成模块,通过图形化软件体系结构建模模块中的控制中心得到绘图区的构件,以及各构件之间的关系逻辑,生成java代码工程框架;图形化软件体系结构建模模块中绘图区各个构件的业务关系生成java工程代码框架,java代码工程框架采用服务构件架构(SCA),生成直接导入IDE即eclipse开发平台进行二次开发的工程代码文件;自动把生成的java工程代码框架的SCA的配置文件存入服务器端的文件同步管理模块,在服务器端Web Services演化接口模块对此SCA配置文件更改;
文件同步管理模块,负责维护不同用户保存的图像文件,这些图像文件分别对应多个用户组,在同一用户组的用户共享组内图像文件,实现同步开发;文件同步管理模块提供文件的增加、删除、修改三个基本功能,供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块调用,完成图像文件的保存和更新功能;同时文件同步管理模块联合WebServices演化接口模块提供对软件应用代码工程框架生成模块生成的java工程框架的演化功能;
Web Services演化接口模块,基于CCO模型思想,使SOA具有演化功能,所述CCO模型包括构件、连接件、对构件和连接件的操作;服务器端向外界即第三方程序提供两类接口:图像文件操作接口和SCA配置文件演化接口,其中图像文件操作接口功能包括构件和连接件的增加、删除、修改,文件的保存和更新功能,实现多客户端的并行开发;SCA配置文件演化接口通过调用文件同步模块的功能为第三方系统提供接口,这些接口将对应的SCA配置文件更改,实现java代码架构的更改,进而实现应用系统的演化。
2.根据权利要求1所述的网构软件全生命周期开发实现系统,其特征在于:所述图形化软件体系结构建模模块实现过程采用MVC(Model-View-Controller)的模式,实现如下:
(1)使用java包中的Draw2d API对图元进行绘制,图元包括体系结构中的构件、连接件,这些图元均能够添加属性和对应的属性值,用户通过鼠标拖拽图元在视图区建立应用程序的体系结构模型;此外在视图区支持鼠标响应事件、鼠标右键弹出菜单显示,用户以可视化的形式处理元素的复制、粘贴、删除控制图元属性和对应的属性值;
(2)在步骤(1)中,用户对图元基本属性和图元属性的数据进行输入,这些数据保存于图元数据模型中,每个图元都对应一个图元数据模型,图元数据模型包含完成应用程序体系结构的所有的行为和数据;图元数据模型可以通过有状态的对象记录必要的信息,当图元数据模型的数据状态改变时,图元数据模型将会自动刷新与之相关的视图区;
(3)控制中心即多个Controller控制器是视图区和可视化图元模型之间的桥梁,通过分析步骤(1)中用户在绘图区构件的应用程序体系结构模型,以及分析步骤(2)中的各个图元数据模型的行为和数据,将视图的图元和对应的数据相互联系,形成映射,得到应用程序的体系结构数据框架,供体系结构图像模型文件生成模块、软件应用代码工程框架生成模块完成相应功能;此外控制器处理用户的输入,每个界面有一个控制器监听元素,它负责相应视图区的事件,修改模型数据;控制器的功能在于监控可视化图元模型的状态,实时更新视图区的图元。
3.根据权利要求1所述的网构软件全生命周期开发实现系统,其特征在于:所述体系结构图像模型文件生成模块实现过程如下:
(1)根据组装描述规范的XML Schema文档格式定义好构件组装XML描述模板文档,包括每个图元的名称、坐标信息,其中图元中的构件为矩形,连接件为箭头,坐标分别为左上角顶点坐标和长宽,箭头为起点和终点的坐标值;
(2)遍历绘图区各个建模图元,遵循自左向右、自上向下的遍历规则,确定各个图元的坐标位置,利用步骤(1)中定义的XML描述模板文档把图元位置信息转化生成java中的DOM文档;
(3)遍历步骤(2)生成的DOM文档,根据图元组装结构,向DOM文档中添加图元相关组装信息;完成的DOM文档转化为组装XML描述的图像文件,实现文件还原图像;
(4)系统默认将步骤(3)生成的XML描述的图像文件发送到服务器端的图像文件,同步管理模块多个客户端能够同步下载此文件,实现多用户协同可视化建模。
4.根据权利要求1所述的网构软件全生命周期开发实现系统,其特征在于:所述软件应用代码工程框架生成模块中直接导入IDE的具体实现过程如下:
(1)根据用户保存的项目工程名,生成eclipse工程下的“.project”文件,该文件用于eclipse开发环境识别项目;
(2)生成“.classpath”文件,该文件用于指出项目用哪个版本的jdk,以及源文件的所在目录;
(3)遍历图形化软件体系结构建模模块中绘图区的图元,采用服务构件架构(SCA)将各个构件实体映射成一个接口和一个具体的存在的web服务关联,同时根据各个实体之间的关系写入SCA配置文件;
(4)把上述3个步骤中生成的文件组成java语言程序框架,直接导入IDE,即eclipse开发平台进行二次开发。
5.根据权利要求1所述的网构软件全生命周期开发实现系统,其特征在于:所述文件同步管理模块具体实现过程如下:
(1)定义文件的命名规则:文件名_用户组ID_版本号_时间戳,由此来定义每个图像文件与SCA配置文件,文件扩展名确定具体为哪类文件,图像文件的扩展名为“cco”,SCA配置文件的扩展名为“component”;
(2)分别定义文件的结构,采用XML Scheme的形式定义,包括构件和连接件的结构定义,每个构件和连接件都有唯一id和坐标,这样就能唯一标示视图区的一个图元;
(3)根据步骤(2)中定义的格式,每个服务实体在文件中都有唯一标识,根据这一个标识进行操作,这些操作包括服务实体的删除、替换和新增。
6.根据权利要求1所述的网构软件全生命周期开发实现系统,其特征在于:所述WebServices演化接口模块实现多客户端的并行开发以及应用系统的演化,具体实现过程如下:
(1)选取开源Services框架CXF,来创建web services接口,定义了针对两类文件的两类接口:图像文件操作接口和SCA配置文件演化接口;
(2)步骤(1)中的图像文件操作接口分为版本控制,文件更新、删除操作,利用服务器推送技术完成与客户端交互,调用文件同步管理模块中的类实现相应功能,实现多人并发操作技术通过文件共享文件来完成;
(3)步骤(1)中的SCA配置文件接口主要完成对构件,即web服务的替换、新增、删除操作,第三方系统调用这些接口,将对应软件应用的SCA配置文件更改,然后通过服务器推送(comet)把更新的SCA配置文件发送到客户端,客户端重新组合web服务,进而实现java代码工程架构的更改,完成整个软件应用体系结构的演化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741873.3A CN103645908B (zh) | 2013-12-29 | 2013-12-29 | 网构软件全生命周期开发实现系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741873.3A CN103645908B (zh) | 2013-12-29 | 2013-12-29 | 网构软件全生命周期开发实现系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645908A CN103645908A (zh) | 2014-03-19 |
CN103645908B true CN103645908B (zh) | 2016-09-14 |
Family
ID=50251132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741873.3A Expired - Fee Related CN103645908B (zh) | 2013-12-29 | 2013-12-29 | 网构软件全生命周期开发实现系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645908B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204834B (zh) * | 2014-06-25 | 2018-06-29 | 成都普中软件有限公司 | 一种构造软件模型的可视软件建模编辑器 |
CN106708499B (zh) * | 2015-11-13 | 2020-10-27 | 财团法人工业技术研究院 | 绘图处理程序的分析方法与分析系统 |
CN105678508A (zh) * | 2015-12-31 | 2016-06-15 | 上海筑想信息科技股份有限公司 | 一种项目全周期管理人机交互系统 |
CN105824621A (zh) * | 2016-03-11 | 2016-08-03 | 深圳航天科技创新研究院 | 基于图形建模的嵌入式软件多人并发建模方法及系统 |
CN107040545B (zh) * | 2017-05-26 | 2019-05-31 | 中国人民解放军信息工程大学 | 工程文件全生命周期安全保护方法 |
CN109428942A (zh) * | 2017-09-05 | 2019-03-05 | 南京南瑞继保电气有限公司 | 一种多现场文件服务系统及文件服务器跨现场同步方法 |
CN108156022B (zh) * | 2017-12-04 | 2021-07-09 | 北京奇艺世纪科技有限公司 | 一种服务调用方法、装置及电子设备 |
US11196637B2 (en) * | 2018-05-15 | 2021-12-07 | Pascale VICAT-BLANC | Systems and methods for modeling and simulating an IoT system |
CN110968294B (zh) * | 2018-09-30 | 2023-03-10 | 上海羚驭信息技术有限公司 | 一种业务领域模型建立系统及方法 |
CN110389749A (zh) * | 2019-06-19 | 2019-10-29 | 深圳壹账通智能科技有限公司 | 软件开发方法、装置及存储介质、计算机设备 |
CN110633250B (zh) * | 2019-07-19 | 2023-05-09 | 完美世界(北京)软件科技发展有限公司 | 资源管理系统和方法 |
CN110515613B (zh) * | 2019-08-30 | 2023-05-16 | 苏州中弘软件技术有限公司 | 软件开发方法 |
CN111124392A (zh) * | 2019-12-30 | 2020-05-08 | 江苏徐工信息技术股份有限公司 | 一种提高物联网平台规则引擎高并发能力的方法 |
CN116643732B (zh) * | 2023-07-26 | 2023-10-24 | 成都谐盈科技有限公司 | 基于软件无线电通信的不同建模系统联合代码生成的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127236A1 (en) * | 2006-08-21 | 2008-05-29 | International Business Machines Corporation | Apparatus, system, and method for supporting service components written in non-native runtime code in a service component architecture |
CN103164224A (zh) * | 2013-03-12 | 2013-06-19 | 中国科学院软件研究所 | 一种用于网构软件体系结构演化的分层情境感知方法 |
-
2013
- 2013-12-29 CN CN201310741873.3A patent/CN103645908B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127236A1 (en) * | 2006-08-21 | 2008-05-29 | International Business Machines Corporation | Apparatus, system, and method for supporting service components written in non-native runtime code in a service component architecture |
CN103164224A (zh) * | 2013-03-12 | 2013-06-19 | 中国科学院软件研究所 | 一种用于网构软件体系结构演化的分层情境感知方法 |
Non-Patent Citations (5)
Title |
---|
基于SOA的网构软件动态配置系统设计与实现;周梁伟;《中国优秀硕士学位论文全文数据库》;20110715;全文 * |
基于构件的网构软件系统动态演化;朱庆等;《计算机工程》;20100105;全文 * |
基于监控的可信网构软件构造方法建模;闫桂玲;《计算机工程与科学》;20130215;全文 * |
基于软件体系结构的网构软件组装技术研究;杨杰;《中国优秀硕士学位论文全文数据库》;20070515;全文 * |
面向网构软件的环境驱动模型与支撑技术研究;吕建等;《中国科学》;20080615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103645908A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103645908B (zh) | 网构软件全生命周期开发实现系统 | |
US10379710B2 (en) | Modeling system for graphic user interface | |
Lankhorst | Enterprise architecture modelling—the issue of integration | |
CN111831269A (zh) | 一种应用开发系统、运行方法、设备及存储介质 | |
US20050065951A1 (en) | Visualization of commonalities in data from different sources | |
CA2860470A1 (en) | System and method for creating, deploying, integrating, and distributing nodes in a grid of distributed graph databases | |
CN105094818A (zh) | 基于soa的自然资源综合应用构建方法及系统 | |
CN110807015A (zh) | 一种大数据资产价值交付管理方法及系统 | |
Ali et al. | Ambient-PRISMA: Ambients in mobile aspect-oriented software architecture | |
CN103413041B (zh) | 一种基于复杂产品研制对象的协同感知系统构建方法 | |
Gu et al. | Web modelling languages: the gap between requirements and current exemplars | |
KR101888472B1 (ko) | BPM 기반의 IoT DIY 시스템 및 이의 구현방법 | |
KR101748548B1 (ko) | IoT네트웍 시스템 | |
Ghielmini et al. | Virtual Factory Manager for semantic data handling | |
CN105573769B (zh) | 一种水泥生产远程监控可视化配置方法和装置 | |
Sefid‐Dashti et al. | A reference architecture for mobile SOA | |
Picozzi | End user develompent of mashups: models, composition paradigms and tools | |
Maciaszek et al. | Architectural principles for service cloud applications | |
Aspin | Supporting collaboration, in colocated 3D visualization, through the use of remote personal interfaces | |
Bolcer | Flexible and customizable workflow execution on the www | |
Dolenc et al. | Semantic grid platform in support of engineering virtual organisations | |
Nykänen et al. | A socio-technical framework for visualising an open knowledge space | |
Aspin et al. | A model for distributed, co-located interaction in urban design/review visualisation | |
Tanaka | Meme Media and Knowledge Federation: Past, Present, and Future | |
Garcia et al. | Designing workflow user interfaces with UsiXML |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160914 Termination date: 20191229 |