CN104166546B - 一种基于mda的面向dds应用软件的实现方法及系统 - Google Patents
一种基于mda的面向dds应用软件的实现方法及系统 Download PDFInfo
- Publication number
- CN104166546B CN104166546B CN201410378498.5A CN201410378498A CN104166546B CN 104166546 B CN104166546 B CN 104166546B CN 201410378498 A CN201410378498 A CN 201410378498A CN 104166546 B CN104166546 B CN 104166546B
- Authority
- CN
- China
- Prior art keywords
- model
- dds
- data
- platform
- converted
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013499 data model Methods 0.000 claims abstract description 39
- 238000005516 engineering process Methods 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims abstract description 14
- 238000013519 translation Methods 0.000 claims abstract description 10
- 241001269238 Data Species 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 37
- 238000009826 distribution Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 15
- 238000007726 management method Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 6
- 238000005538 encapsulation Methods 0.000 abstract description 2
- 230000000875 corresponding effect Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 7
- 101000871498 Homo sapiens m7GpppX diphosphatase Proteins 0.000 description 4
- MIQYPPGTNIFAPO-CABCVRRESA-N PS(6:0/6:0) Chemical compound CCCCCC(=O)OC[C@@H](OC(=O)CCCCC)COP(O)(=O)OC[C@H](N)C(O)=O MIQYPPGTNIFAPO-CABCVRRESA-N 0.000 description 4
- 102100033718 m7GpppX diphosphatase Human genes 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000013523 data management Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于MDA的面向DDS应用软件的实现方法,该方法包括:将DDS应用层数据模型转换为DDS分发层数据模型;将联合所述分发层数据模型、功能模型及结构模型的平台无关模型转换为平台相关模型;将所述平台相关模型转换为可执行程序代码。本发明还提供了一种基于MDA的面向DDS应用软件的实现系统,该系统包括数据模型转换模块、平台模型转换模块及代码生成模块。本发明利用模型驱动方法最大程度地屏蔽了技术平台变化对软件系统的影响,解决了现有技术中模型不易管理、缺少封装、开发流程复杂及与总线耦合困难等问题。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于MDA的面向DDS应用软件的实现方法及系统。
背景技术
面向服务的体系架构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。当前,面向服务的体系架构已经在国内外企业中得到了成功地应用。但由于军事应用对消息传输的实时可靠性和安全性的特殊需求,无法利用侧重于解决互联互通问题的企业服务总线技术解决相关问题,因此对象管理组织(Object Management Group,简称OMG)提出了数据分发服务(Data DistributionService,简称DDS)标准,以实现系统内和不同系统之间的信息快速共享,提高系统的抗毁性。
目前,实时服务总线技术针对分布式实时系统中的数据发布、传递和接收的接口和行为,定义了与平台无关的以数据为中心的发布/订阅模型,较好地解决了网络通信中数据的自发现、可靠性和冗余性等问题。但是,实时服务总线系统结构复杂,其应用层存在开发难度高、与总线耦合困难等缺点。
发明内容
针对现有技术的缺陷,本发明提供的基于MDA的面向DDS应用软件的实现方法及熊,利用模型驱动方法最大程度地屏蔽了技术平台变化对软件系统的影响,解决了现有技术中模型不易管理、缺少封装、开发流程复杂及与总线耦合困难等问题。
第一方面,本发明提供了一种基于MDA的面向DDS应用软件的实现方法,该方法包括:
将预设的数据分发服务DDS应用层数据模型转换为DDS分发层数据模型;
将联合所述分发层数据模型、预设的功能模型及预设的结构模型的平台无关模型转换为平台相关模型;
将所述平台相关模型转换为用于执行特定功能的可执行程序代码。
优选地,将预设的数据分发服务DDS应用层数据模型转换为DDS分发层数据模型的步骤之前,所述方法还包括:
建立为DDS数据分发提供基准的应用层数据模型、提供应用层与DDS中间件耦合功能的功能模型及提供DDS实体结构的结构模型;
以及设置与所述DDS对应的QoS策略。
优选地,所述功能模型具体实现的功能包括:数据操控功能、数据缓存功能及数据一致性保证功能。
优选地,所述DDS实体包括:域管理节点DomainParticipants、发布者Publishers、订阅者Subscribers、数据写入者DataWriters及数据读取者DataReaders。
优选地,所述将联合所述分发层数据模型、功能模型及结构模型的平台无关模型转换为平台相关模型具体包括:
针对不同的实现技术平台制定不同的映射规则,通过所述映射规则及辅助工具将平台无关模型转换为平台相关模型。
优选地,所述将平台相关模型转换为可执行程序代码具体包括:通过代码生成工具和技术将平台相关模型转化为特定运行平台上的代码。
一种基于MDA的面向DDS应用软件的实现系统,该系统包括:数据模型转换模块、平台模型转换模块及代码生成模块;
数据模型转换模块,用于将预设的DDS应用层数据模型转换为DDS分发层数据模型;
平台模型转换模块,用于将联合所述分发层数据模型、功能模型及结构模型的平台无关模型转换为平台相关模型;
代码生成模块,用于将所述平台相关模型转换为用于执行特定功能的可执行程序代码。
优选地,所述系统还包括模型预设模块,用于建立为DDS数据分发提供基准的应用层数据模型、提供应用层与DDS中间件耦合功能的功能模型及提供DDS实体结构的结构模型;以及设置与所述DDS对应的QoS策略。
基于上述技术方案,本发明整合了应用层完整的开发流程,将实时服务总线的应用层和中间件更加紧密地耦合在一起,为开发者提供了数据信息建模功能、应用程序模型设计及转换功能,从而提供了应用层程序软件开发的效率,明确开发流程,降低了软件设计难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1是本发明第一实施例提供的基于MDA的面向DDS应用软件的实现方法的流程图;
图2是本发明第二实施例提供的基于MDA的面向DDS应用的实现方法的结构示意图;
图3是本发明第三实施例提供的基于MDA的面向DDS应用的软件开发平台的结构示意图;
图4是本发明第三实施例提供的软件开发平台中应用层设计模块提供的数据管理机制的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,图1示出了本发明提供的一种基于模型驱动架构(Model DrivenArchitecture,简称MDA)的面向数据分发服务(Data Distribution Service,简称DDS)应用软件的实现方法,该方法包括如下步骤:
步骤S1:将预设的数据分发服务DDS应用层数据模型转换为DDS分发层数据模型。
步骤S2:将联合所述分发层数据模型、预设的功能模型及预设的结构模型的平台无关模型转换为平台相关模型。
具体来说,本实施例中首先针对不同的实现技术平台制定不同的映射规则,然后通过所述映射规则及辅助工具将平台无关模型转换为平台相关模型。
步骤S3:将所述平台相关模型转换为用于执行特定功能的可执行程序代码。
本实施例中,通过代码生成工具和技术将平台相关模型转化为特定运行平台上的代码。
其中,MDA按照模型的抽象层次,将模型分为两大类:一是平台无关模型(PlatformIndependent Model,简称PIM):完整描述系统业务功能和逻辑的模型,忽略具体实现平台和技术的细节;二是平台相关模型(Platform Specific Model,简称PSM):在特定平台上描述系统的模型,依赖于该平台上所提供的功能和服务,设计在该平台上的实现细节。PIM表征着满足功能需求的概念设计,能够在实现技术和软件架构的变革中保持生命力。PIM被抽象出来,可以针对不同的实现技术平台制定不同的映射规则,通过这些映射规则及辅助工具将PIM转换为PSM,通过代码生成工具和技术将PSM转化为特定运行平台上的代码。(Quality of Service,简称QoS)
本实施例中,在步骤S1之前该方法还包括:建立为DDS数据分发提供基准的应用层数据模型、提供应用层与DDS中间件耦合功能的功能模型及提供DDS实体结构的结构模型;以及设置与所述DDS对应的QoS策略。
所述功能模型,提供应用层与DDS中间件的耦合功能。而所述功能模型具体实现的功能包括:数据操控功能、数据缓存功能及数据一致性保证功能。
所述结构模型,提供DDS实体的结构。而所述DDS实体包括:域管理节点DomainParticipants、发布者Publishers、订阅者Subscribers、数据写入者DataWriters及数据读取者DataReaders。
如图2所示,图2示出了基于MDA的面向DDS应用软件的实现系统的结构示意图,由图可知,该系统包括:数据模型转换模块、平台模型转换模块及代码生成模块。
数据模型转换模块,用于将预设的DDS应用层数据模型转换为DDS分发层数据模型。
平台模型转换模块,用于将联合所述分发层数据模型、预设的功能模型及预设的结构模型的平台无关模型转换为平台相关模型。
代码生成模块,用于将所述平台相关模型转换为用于执行特定功能的可执行程序代码。
本实施例中,所述系统还包括模型预设模块,用于建立为DDS数据分发提供基准的应用层数据模型、提供应用层与DDS中间件耦合功能的功能模型及提供DDS实体结构的结构模型;以及设置与所述DDS对应的QoS策略。
下面通过一个具体的例子,对本发明做出进一步的说明。
如图3所示,图3示出了本发明另一实施例提供的基于MDA的面向DDS应用的软件开发平台的结构示意图,本实施例是基于Windows7平台提供了一个基本实现,如图所示,本实施例中的软件开发平台包括:模型预设模块、模型转换模块及代码生成模块,其中模型预设模块、模型转换模块均位于应用层,且模型转换模块包括数据模型转换模块和平台模型转换模块,而代码生成模块位于应用层和DDS数据分发层。本平台利用建模工具提供统一建模语言(Unified Modeling Language,简称UML)建模可视化方法,EclipsePDE提供整体插件环境,整合工具,Flex和Bision提供编译器和代码生成方法。本实施例中的平台具体包括以下几个部分:
(1)数据模型预设模块
利用建模工具对模型进行可视化的预设,用户可以根据自己的数据模型创建UML可视化结构描述的模型实例,并利用模型预设模块的相关工具进行修改。数据模型用相比于DDS数据分发层模型更加自然的方法提供了一种整体的视角,允许开发者使用面向对象的信息模型。在这种由用户数据模型设计工具创建的数据模型中,对象之间的继承和关联关系也是可以被使用的。
(2)数据模型输出模块
在用户对数据进行可视化设计之后,将数据模型转换成为本地数据的接口描述语言(Interface Description Language,简称IDL)文件。模型输出模块保存用户的UML设计信息,并将其直接转换成为IDL文件描述输出。
(3)本地数据模型映射模块
模型转换工具的作用是帮助应用层完成数据模型从本地到数据分发层的映射,使得应用层不再依赖于数据分发层较为简单的数据模型,并能够利用面向对象的特性和优势。
本实施例中,使用文档类型定义(Document Type Definition,简称DTD)来对可扩展标记语言(Extensible Markup Language,简称XML)标记进行规定。通过DTD,XML文件可以自带对本身格式进行描述的信息,并且可以通过这个标准的格式来交换数据,验证数据格式。通过DTD来描述映射规则,完成模型之间的映射细节的实施。
其中,标记方法如下:
●标记定义根
■enumDef:给枚举项明确的名称,以防默认的命名方法(用长整型命名)不合适。
■templateDef:定义类型集合或者一个引用(给出模型以及它的元素类型,由于IDL中,List<Foo>的形式并不适用,在这种情况下,templateDef会代替它)。
■compoRelationDef:表明一个给定的关系实际上是组合。
■associationDef:将两个关系联合起来。
■classMapping:定义从DLRL类到中心的发布/订阅模型(Data-CentricPublish-Subscribe,简称DCPS)主题的映射关系,它由下列元素组成:
◆monoAttribute:单值属性
◆multiAttribute:多值属性
◆monoRelation:一对一关系
◆multiRelation:一对多关系
◆local:表明一个属性并不是DDS属性(不会在生成过程中考虑它)
●枚举定义(EnumDef)
EnumDef包含了一个属性名称,也就是IDL枚举所在范围的名称,以及需要给出值的的子标签,比如:
●模版定义(TemplateDef)
TemplateDef包含了以下三种属性:
■name:类型的名称。
■patter:给出构建的模式,支持的结构有:链表(List),字符串映射(StrMap),整型映射(IntMap),和集合(Set)。
■itemType:给出集合中每个元素的类型。
●联合定义(AssociationDef)
AssociationDef将两个关系作为一个联合而联系起来,它其中嵌入了两个必要的代表关系的子标记来确认相关的关系。每个子标记都有两个必要的属性:
■class:表明class在域中的名称;
■attribute:表明在本类中支持这个关系的属性的名称。
●组合关系定义(compoRelationDef)
compoRelationDef表明某种关系实际上是一种组合,它有两个必要的属性组成:
■class:表明class在域中的名称;
■attribute:表明class中支持此关系的属性的名称。
●类映射(ClassMapping)
ClassMapping中包含一个属性名称,它给出了域内类的名称。
●主要主题(MainTopic)
这个标记给出了类所涉及的主要的DDS分发层主题。主要Topic是指给出了对象存在的Topic。如果声明一个对象是存在的,那么在这个Topic中一定存在同它关键值匹配的实例。它其中包含一个属性(name),这个属性给出了这个主题的名称,一个(可选的)属性(typename),这个属性给出了类型的名称,以及一个关键字描述。
●关键字描述(KeyDescription)
这个标记描述了与关键字(Key)相关的几个元素(mainTopic,extensionTopic,placeTopic和multiPlaceTopic)。它包含了一个描述keyDescription内容的属性,这个属性可以是:
●FullOid:在这种情况下,关键字的第一部分应该包含Topic的名字域名以储存这个类的名称,而第二部分应该用来储存对象标识符(Object ID,简称OID)本身。
●SimpleOid:在这种情况下,关键字描述应该只需要包含一个关键字域。
●NoOid:在这种情况下,描述应该包含足够信息以能够在相关的
Topic当中找到唯一的一行和与之对应的对象实例。
它可以根据需要包含相关数量的关键字域。
(4)数据缓存模块
为了给应用层提供一致的数据空间和便捷、安全的管理策略,建立了本地的数据缓存模块,提供数据缓存机制(Data Cache Mechanism)。缓存中可以存在不同类型的对象,而每种对象都有对应的管理器(Object Manager)。而将实时服务总线处理信息的过程叫做刷新周期(Update Rounds),在这个周期中,所有的对象管理器从DCPS读取即将到来的信息,并且在数据缓存中刷新对应的对象。
如图4所示,为本实施例中应用层设计模块提供的数据管理机制,其中DR指与DCPS层相连接的数据读端口(DataReader),DW指数据写端口(DataWriter),DR负责从读取实时服务总线推送的数据,数据读端口一端与DCPS相连,另一端同对应的对象管理器相连,负责对数据缓存中的对应对象进行管理。
某些应用层需要能够对某些对象进行修改或者创建。由于所有对象操作都是在缓存中完成的,在某个时刻,某个对象可能会被应用层或者数据空间的其他对象修改,从而出现数据空间内某些数据的不一致。所以,在对数据进行操作时,需要相应的机制来解决这个问题。
在实际的架构设计中,本实施例中为缓存提供了一个副本,在创建对象或者修改对象的时候,需要在缓存副本(Cache Access)中进行,而在数据缓存中的所有对象并不允许直接被修改。
当应用层需要对创建对象或者修改对象的时候,首先将这些对象复制并放入缓存副本当中,这些对象允许被本地修改,并且可以在缓存副本中创建对象,实际上,对对象的操作都通过缓存副本的对象管理器写入到实时服务总线,然后通过实时服务总线重新写回数据缓存中。
通过这样的操作,保证了数据缓存中的数据不会被应用层和实时服务总线同时修改,应用层程序只能对缓存副本进行操作,而操作对象则是所有的被复制进入缓存副本的数据对象。在这样的机制保护下,如果在某一个时间段内对数据空间内的同一数据有多次操作,不会出现数据空间不一致的情况,因为实时服务总线确保了对数据的唯一操作。
其中,主要的缓存管理实体包括了:
CacheFactory:具有唯一实例的类,用来创建Cache(缓存)对象。
CacheBase:所有缓存类的基类。
Cache:缓存类的实例代表本地可以操作的对象的集合。在缓存中对象可以直接被读取,但是并不能被修改。一个缓存对象只能一个一个Publisher,一个Subscriber绑定在一起,只有属于某个缓存的对象才能被引用。
CacheAccess:封装了可以被操作的对象的集合。为与之相关的对象提供了刷新和写的方法。缓存副本对象可以在读模式中创建对象,保证数据空间的一致性。
CacheListener:应用层需要实现这个接口,应用层在缓存数据更新到来时得到通知。
Contract:代表了数据缓存和缓存副本之间的契约类,当缓存副本里的内容被刷新后,它将规定会复制到缓存副本里的对象。
ObjectHome:代表应用程序已定义类型的实例。
ObjectListener:为应用层提供对象管理器的监听器,每当某一类对象的状态改变时,应用层都会得到通知。
Selection:代表了给定的某个子集的对象的实例,这个子集由Selection内的表达式给定。
SelectionCriterion:本类的实例是Selection对象的过滤器,当用户创建Selection时,必须定义SelectionCriterion。
FilterCriterion:具体的基于用户定义的过滤算法的过滤器。
QueryCriterion:具体的基于查询表达式的过滤器。
SelectionListener:当属于某个Selection的对象得到更新时,应用层若实现本接口,那么将得到通知。
ObjectRoot:所有应用称定义对象的基类。
Collection,List,Set,StrMap,IntMap。
(5)应用层模型预设模块
应用层模型预设模块可以为DomainParticipants,Publishers,Subscribers,DataWriter,DataReaders提供应用层建模功能,并提供服务质量的设置功能。下面具体介绍组成组件。
应用层程序:
在这里,应用层程序作为一个总体概念,是模型设计器内的一个总体组件,它可以完成发布和订阅消息的功能。应用层程序包含了相关的实时服务总线实体:
DomainParticipant,Publiser,Subscriber,DataWriter,DataReader,TopicTopic,TypeQoS policy。
应用层程序只能和那些发布或者订阅相同主题的应用层许进行通信,并且服务质量的设置要保持一致。
1、域管理节点(DomainParticipant)
它是所有实时服务总线都必须包含的实时服务总线实体,其中包含了所有的其他实体,并将这些实体联系起来,比如publisher和subscriber。
2、发布者(Publisher)
负责数据分发,通过DataWriter发布数据。
3、订阅者(Subscriber)
负责接受发布的数据并使其对于应用程序可用,通过DataReader读数据。
4、分区(Partition)
这是对于在发布者和订阅者之间的逻辑分区,同时也代表了一种分区的服务质量保证策略。发布者和订阅者可以同一个或者多个分区相连。在模型设计器中用单独的构建模块表示。
5、监听器(Listener)
通知应用程序状态变化的机制,比如错过的截至时间,违反了服务质量的设置。
6、等待集(WaitSet)
与监听器类似,但是等待集允许一个或者多个状态满足条件时触发,或者在设置的时间前触发。
用户通过前端可视化设计构建这些部位的关系,后端通过XML描述保存它们的结构,并生成对应的IDL描述文件。
(6)代码生成模块
Lex和Yacc工具能够对IDL文件进行词法和语法分析,构成IDL的编译器。首先Lex作为语法分析器,通过对分词和正则表达式的规定,将原文拆解成词与词的组合,并保留词先后出现的顺序,这些词被称为分词(Token)。这些词将作为语法分析器的源文件,语法分析器根据规则以及源文件进行解析,得到所有的结构信息内容。
本实施例中采用了堆栈结构来保存需要的数据类型,所有的在IDL文件当中定义的数据类型都会被解析并压入堆栈当中,包括外层域名和内部的结构。另外,还用单独的信息堆栈来保存关键字的结构,关键字列表总同样包含了外部的域名信息,以同数据类型堆栈对应起来。
除此之外,需要一个符号表,用于在生成函数方法时,替换掉模板中数据类型和函数的对应符号,换为堆栈中的数据类型名称和结构。所以,从堆栈中数据类型结构到符号表的映射是要处理的关键问题。
符号表大体包含Type_Name,NameSpace,BaseName,DLLImport等,同实时服务总线标准所提供的函数模版相对应。其中$(ScopedTypeName)形式的符号表明需要替换的模版符号,通过符号表的映射,能够找到唯一对应的数据类名,然后根据数据类型进行替换即可生成对应的函数代码。
除此之外,没有关键字结构的数据不会被处理,因为他们属于本地属性和数据,不会参与到实时服务总线的数据分发当中。
本发明实施例采用模型驱动方法最大程度的屏蔽了技术平台变化对软件系统的影响,极大地加强模型在整个软件生命周期中的复用,增加了软件系统在不同平台的移植性。本发明实施例整合了应用层完整的开发流程,将实时服务总线的应用层和中间件更加紧密地耦合在一起,为开发者提供了数据信息建模功能、应用程序模型设计及转换功能,从而提供了应用层程序软件开发的效率,明确开发流程,降低了软件设计难度。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于MDA的面向DDS应用软件的实现方法,其特征在于,该方法包括:
将预设的数据分发服务DDS应用层数据模型转换为DDS分发层数据模型;
将联合所述分发层数据模型、预设的功能模型及预设的结构模型的平台无关模型转换为平台相关模型;
将所述平台相关模型转换为用于执行特定功能的可执行程序代码;
将预设的数据分发服务DDS应用层数据模型转换为DDS分发层数据模型的步骤之前,所述方法还包括:
建立为DDS数据分发提供基准的应用层数据模型、提供应用层与DDS中间件耦合功能的功能模型及提供DDS实体结构的结构模型;
以及设置与所述DDS对应的QoS策略。
2.根据权利要求1所述的方法,其特征在于,所述功能模型具体实现的功能包括:数据操控功能、数据缓存功能及数据一致性保证功能。
3.根据权利要求1所述的方法,其特征在于,所述DDS实体包括:域管理节点DomainParticipants、发布者Publishers、订阅者Subscribers、数据写入者DataWriters及数据读取者DataReaders。
4.根据权利要求1所述的方法,其特征在于,所述将联合所述分发层数据模型、功能模型及结构模型的平台无关模型转换为平台相关模型具体包括:
针对不同的实现技术平台制定不同的映射规则,通过所述映射规则及辅助工具将平台无关模型转换为平台相关模型。
5.根据权利要求1所述的方法,其特征在于,所述将平台相关模型转换为可执行程序代码具体包括:通过代码生成工具和技术将平台相关模型转化为特定运行平台上的代码。
6.一种基于MDA的面向DDS应用软件的实现系统,其特征在于,该系统包括:数据模型转换模块、平台模型转换模块及代码生成模块;
数据模型转换模块,用于将预设的DDS应用层数据模型转换为DDS分发层数据模型;
平台模型转换模块,用于将联合所述分发层数据模型、预设的功能模型及预设的结构模型的平台无关模型转换为平台相关模型;
代码生成模块,用于将所述平台相关模型转换为用于执行特定功能的可执行程序代码;
所述系统还包括模型预设模块,用于建立为DDS数据分发提供基准的应用层数据模型、提供应用层与DDS中间件耦合功能的功能模型及提供DDS实体结构的结构模型;以及设置与所述DDS对应的QoS策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410378498.5A CN104166546B (zh) | 2014-08-01 | 2014-08-01 | 一种基于mda的面向dds应用软件的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410378498.5A CN104166546B (zh) | 2014-08-01 | 2014-08-01 | 一种基于mda的面向dds应用软件的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104166546A CN104166546A (zh) | 2014-11-26 |
CN104166546B true CN104166546B (zh) | 2017-09-22 |
Family
ID=51910380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410378498.5A Expired - Fee Related CN104166546B (zh) | 2014-08-01 | 2014-08-01 | 一种基于mda的面向dds应用软件的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166546B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502677A (zh) * | 2016-10-30 | 2017-03-15 | 合肥微匠信息科技有限公司 | 一种基于模型驱动的嵌入式控制软件开发方法 |
CN107133037A (zh) * | 2017-04-27 | 2017-09-05 | 福州大学 | 模型驱动的物联网应用开发方法 |
CN108737161B (zh) * | 2018-04-20 | 2021-07-16 | 中国人民解放军国防科技大学 | 面向智能体协同体系的实时数据总线管理方法及系统 |
CN110262795B (zh) * | 2019-03-15 | 2020-10-27 | 北京航空航天大学 | 一种应用系统部署体系结构建模和验证方法 |
CN113805882A (zh) * | 2021-09-18 | 2021-12-17 | 上海波顿诺华智能科技有限公司 | 应用程序开发的方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533349A (zh) * | 2009-04-15 | 2009-09-16 | 哈尔滨工业大学 | 一种大粒度构件的平台相关模型及其代码自动生成方法 |
CN101763262A (zh) * | 2009-10-13 | 2010-06-30 | 武汉大学 | 一种基于模型驱动的地理信息服务组合设计器生成方法 |
CN102547776A (zh) * | 2012-01-10 | 2012-07-04 | 南京邮电大学 | 基于模型驱动和进化算法的无线传感器网络模型转换方法 |
-
2014
- 2014-08-01 CN CN201410378498.5A patent/CN104166546B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533349A (zh) * | 2009-04-15 | 2009-09-16 | 哈尔滨工业大学 | 一种大粒度构件的平台相关模型及其代码自动生成方法 |
CN101763262A (zh) * | 2009-10-13 | 2010-06-30 | 武汉大学 | 一种基于模型驱动的地理信息服务组合设计器生成方法 |
CN102547776A (zh) * | 2012-01-10 | 2012-07-04 | 南京邮电大学 | 基于模型驱动和进化算法的无线传感器网络模型转换方法 |
Non-Patent Citations (1)
Title |
---|
基于DDS的实时数据分发系统的研究与实现;刘芳明;《中国科技论文在线》;20070426;正文第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104166546A (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104166546B (zh) | 一种基于mda的面向dds应用软件的实现方法及系统 | |
Robbins et al. | Integrating architecture description languages with a standard design method | |
US7219328B2 (en) | Model-based composable code generation | |
Kolovos et al. | Taming EMF and GMF using model transformation | |
CN101699397B (zh) | 实现Java与XML数据绑定的方法 | |
EP1576439A2 (en) | A method, a language and a system for the definition and implementation of software solutions | |
WO2006099046A2 (en) | Automated interface-specification generation for enterprise architectures | |
Tietze | A framework for developing component based cooperative applications | |
Jurack et al. | A component concept for typed graphs with inheritance and containment structures | |
Wada et al. | Modeling turnpike frontend system: A model-driven development framework leveraging UML metamodeling and attribute-oriented programming | |
Cheong et al. | Frame-based method for customizing generic software architectures | |
D'Ambrogio et al. | A MDA-based approach for the development of DEVS/SOA simulations | |
Renggli et al. | Magritte–a meta-driven approach to empower developers and end users | |
Yoder et al. | Adaptive object models for implementing business rules | |
CN101055521B (zh) | 映射规则的可视化生成方法及系统 | |
Meyer et al. | A simulation framework for heterogeneous agents | |
Kalnina et al. | Tree based domain-specific mapping languages | |
WO2001008007A1 (en) | Method and system of automated generation of program code from an object oriented model | |
Robbins et al. | Integrating C2 with the unified modeling language | |
Kulkarni et al. | A model-driven approach for developing business applications: experience, lessons learnt and a way forward | |
Nelson et al. | Implementing first-class relationships in Java | |
Dong et al. | Extending UML to Visualize Design Patterns In Class Diagrams. | |
Senthil et al. | An improved component model for component based software engineering | |
Ryoo et al. | AVDL: A highly adaptable architecture view description language | |
Heberling et al. | Visual Modelling and Managing the Software Architecture Landscape in a large Enterprise by an Extension of the UML |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170922 Termination date: 20180801 |
|
CF01 | Termination of patent right due to non-payment of annual fee |