MDA常见问题解答

2024-02-27 02:32
文章标签 常见 问题解答 mda

本文主要是介绍MDA常见问题解答,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是MDA?它和其他架构有什么区别?
MDA
是一种新的用于编写规范(specifications)和开发应用程序的途径,它基于平台无关的模型(PIMplatform-independent model)
一个完整的MDA规范包含:
1
、一个权威的基于UML的平台无关模型PIM
2
、一个或者多个与特定平台相关的模型PSM
3
、接口定义集合- 每个集合描述了基础模型再不同中间件平台上的实现。
一个完整的MDA应用程序包含:
1
、一个权威的PIM
2
、一个或者多个PSM
3
、一个或者多个完整的实现- 开发人员决定支持的所有平台上的应用程序实现。
基于MDA的开发首先关注于分布式系统或者应用程序的功能和行为,而不是它将采用哪种具体的技术来实现。MDA使得业务逻辑和实现细节相分离。因此,每当一种新的技术(例如XML/SOAP)到来的时候,我们不必再重复对系统或者应用进行建模的过程,而其他架构往往都和某种特定的技术或者平台捆绑在一起,无法达到这一目的。使用MDA,我们对系统的功能和行为的建模只需一次,而且是仅需一次。将PIM映射到某个特定平台的PSM的工作是由工具自动完成的,当我们需要支持新的技术的时候,这就简化了我们的工作。
为什么OMG朝着一个新的方向发展?是什么原因驱使的?
如果你重新审视OMG的发展历史你会发现,其实MDA并不算是一个新的方向。1997年,OMG将其
工作范围进行了扩展,接纳了使用UMLMOF进行建模的工作。虽然平台无关的UML模型可以在任何平台上实现,但是问题在于,随着项目的进展,UML模型和实现往往会出现脱节,不能很好地同步--树桩仍然固定在地上,但是随时间的推移,它周围的组织结构已经发生了变化。MDAOMG组织定义良好的建模标准(不仅仅指CORBA,还包括过去的、现在的、将来的其他所有的中间件技术)结合起来,来将你已经创建的、正在创建的,或者将要创建的应用程序集成起来。MDA提高了设计工作的门槛,它在建模这一层次上设计轻便的、可户操作的应用程序。

UMLMDA中扮演什么角色?
UML是使能MDA技术的一把钥匙:使用MDA技术创建的所有应用程序都基于标准化的、平台独立
UML模型。通过将这一通用的、被普遍接受的建模标准作为杠杆,MDA使得开发人员可以创建能被轻便地访问、天生具有良好的互操作性的应用程序。而且这些应用程序能被嵌入式系统、桌面应用系统、服务器、大型机等广阔领域的应用程序所访问,也能够被跨Internet访问,具有广阔的应用前景。
中间件平台在MDA中扮演什么角色?
MDA中,一个规范的PIM被用来定义一个或者多个PSM和接口定义集合。每种定义描述了基础
模型在不同的中间件平台上是如何实现的。由于PIMPSMs和接口定义集合都将被作为MDA规范的一部分,OMG将采用多种中间件平台的规范。CORBA技术具有平台和语言的独立性、经过检验的事务和安全的天性。这使得它仍然是从嵌入式系统到桌面系统,再到Internet应用的最佳选择。MDA的方向是使得它与其他中间件平台更容易交互,而且更加廉价。
CORBA
将何去何从?
OMG将继续开发CORBA并推动其发展,CORBA的市场将会继续扩展,特别是在实时嵌入式、大型的任务紧急的、高容错性的企业计算环境中。由于CORBA是仅有的集成多平台的、多语言的应用程序的解决方案,许多企业将会使用CORBA去创建和集成由MDA定义的应用程序。OMG和它的成员一直都认可与其他标准(例如具有所有权的平台和语言)具有互操作性的价值。OMG1995年创建了COM/CORBA互操作标准,并在1997年对它进行了扩展,同时也设计和建立了CORBAJavaXML协同工作的方式。MDA将继续定义跨中间件的互操作工作,而且将提供工具以加速和自动化这一过程。这将会给用户带来好处,因为他会发现自己的应用程序可以支持多种中间
件平台。
MDA
如何使得跨平台的互操作性成为可能?

每当一个新的MDA规范或者应用程序被创建,和其他规范以及服务的互操作性已经包含在设计当中。在MDA中,每个服务、工具和应用程序的的基本描述都是一个平台无关的模型。在平台无关的模型环境中,架构师可以指定应用程序到需要的服务、工具以及其他应用程序之间的连接,并且将其作为模型的一部分。根据这些模型,MDA工具自动生成用于连接不同中间平台的程序实现。

MDA环境下有哪些服务可用?
OMG
组织成员深知具有可扩展性的服务对于企业或者跨Internet的分布式计算的必要性。对于
CORBA
OMG对同样的问题的回答是CORBAservices,这些服务已经被定义且可用。在MDA中,已经给其赋予了一个新的名称-普遍深入的服务(Pervasive Services)。因为每个服务的实现都忽略它所运行的平台, 通过MDA生成的跨平台的一座桥可以为任何需要其能力的应用程序和客户端程序服务。在MDA中,OMG将会迅速定义4个服务:
目录服务(Directory Services) *
事务服务(Transaction Services) *
安全服务(Security Services) *
分布式事件通知服务(Distributed Event and Notification Services)
其他一些服务,如CORBA services列表中被建议的服务等,将会在需要的时候被加入,以使得
MDA
环境具备完整性。
领域相关的软件和标准将如何从MDA中获益?

MDA
对于工业软件来说具有许多优点,以至于OMG的一些Domain Task Forces已经开始使用MDA
来书写他们的标准,即使MDA还并未成为一个官方的标准。为了能使一个工业获益,一个标准必须被一大批的公司所使用。跟特定技术绑定的标准由于平台的不兼容性会给大面积推广工作带来麻烦。有时候问题可能比这个还要严重:在某些工业中,有些架构上非常优秀,且被正式采纳的标准却没有获得应用,就使因为它只是为特定平台所编写的,而这个平台只有为数很少的公司使用。MDA彻底扫清了这种障碍。在MDA中,每种标准的功能性描述都使与实现技术无关的,而且它的架构也是能够在多种平台上产生可互操作的代码实现。这就允许一个工业来将他们的业务逻辑功能和行为定义为一个PIM,然后生成PSMs和多种平台的实现。
MDA
和微软.NET以及Sun ONE如何比较?如何竞争?
MDA工作在与.NETONE不同的层次上。.NETONE是被个体所拥有的平台,瞄准的是特定的应用程序领域。而MDA是模型驱动的软件架构,工作在包括.NETONE的任何中间件平台层次之上。中间件平台被合入MDA中,作为一个platform-specific profile.NETONE瞄准了相同的市场,OMG 成员将为他们定义platform-specific profile,以允许他们和其他平台(例如Java/EJBXML)、协议以及工业标准平台(例如SOAPXP)协同工作。

对于试图处理企业计算的企业来说,MDA能够带来的最大的三个好处是什么?
使用MDA方式能够带来很多的好处,最重要的三个是:基于MDA的架构总是能够随时应付昨天的、今天的和未来的下一个主流技术。MDA将会使得应用程序和工具能够跨越中间件的边界,从而变得更容易集成。OMG Domain Task Forces小组负责在MDA中定义领域相关的工具,它将会提供更广阔的互操作性。因为这些工具将会在特定领域的首选平台上可以使用,而且如果需要,也可以在多种平台上被使用。
MDA
将在什么时间、什么类型的工具中、以什么样的方式被分发?
MDA的一些关键部分已经被标准化了,这不仅包括UMLMOFXMICWM,还包括第一个中间
件的映射(针对OMG组织的CORBA平台)。一些其他的主要的MDA基础规范正迅速地成形,例如为企业系统设计的中间件无关的映射(称为UML for Enterprise Distributed Object Computing)。作为产品,MDA将被一些工具所实现。这些工具可是是单独的,也可以是一整套的,他们将建模功能和开发功能集成到一个独立的环境中,将会带领一个应用程序从最初的PIM转换为平台相关的PSM,最终针对一系列的语言和配置文件生成实现接口、连接服务以及工具的代码;如果可能,也会生成部分业务逻辑代码。一些软件生产商已经可以提供实现在这一层面上实现集成功能的工具,其包含了代码自动生成功能。由于这些工具开发时,MDA规范并未完成,所以这些工具并不是完全符合OMGMDA规范。即使这样,我们仍然很高兴地看到这些开发环境已经开始支持MDA。我们希望第一代工具能够在今年后期产生。其他厂商的产品也会加入进来,因此大多数的OMG厂商成员将会在未来的18个月中在市场中推出其代表性的产品。MDA最大的好处就是可以从MDA模型中自动或者半自动地产生应用程序代码。
OMG
如何工作?
OMG比以前更大壮大,且发展良好。拥有数百个公司成员,OMG继续保持最大的软件标准组织的
地位。现在有越来越多的系统使用OMG的标准部署,新的成功的故事正在不断上演。新近的一些故事包括了赢得一个大型的航空预定系统和两个世界上最大的跨国汽车制造厂商的系统的主要设计。OMG目前采纳的正在进行的工作是OMG标准化组织的12年历史中最多的。OMG组织的会议会吸引数百名成员和客户的注意力。
MDA
会反过来影响我已经安装的或者计划安装的基于CORBA的产品嘛?

绝对不会。首先,OMG计划至少会继续在当前的层面上对CORBA提供支持;实时的、嵌入式的、容错的系统和企业系统的CORBA用户所提出的需求将会加快CORBA的标准化速度。CORBA也将会成为MDA中一个最卓越的平台相关的模型。是完全保持现有CORBA应用程序,还是利用MDA桥接到其他平台,这取决于商业因素,而非技术的压力。

这篇关于MDA常见问题解答的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750951

相关文章

JVM 常见异常及内存诊断

栈内存溢出 栈内存大小设置:-Xss size 默认除了window以外的所有操作系统默认情况大小为 1MB,window 的默认大小依赖于虚拟机内存。 栈帧过多导致栈内存溢出 下述示例代码,由于递归深度没有限制且没有设置出口,每次方法的调用都会产生一个栈帧导致了创建的栈帧过多,而导致内存溢出(StackOverflowError)。 示例代码: 运行结果: 栈帧过大导致栈内存

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【附答案】C/C++ 最常见50道面试题

文章目录 面试题 1:深入探讨变量的声明与定义的区别面试题 2:编写比较“零值”的`if`语句面试题 3:深入理解`sizeof`与`strlen`的差异面试题 4:解析C与C++中`static`关键字的不同用途面试题 5:比较C语言的`malloc`与C++的`new`面试题 6:实现一个“标准”的`MIN`宏面试题 7:指针是否可以是`volatile`面试题 8:探讨`a`和`&a`

常见的服务器

常见的Web服务器 1、Tomcat:Tomcat和Java结合得最好,是Oracle官方推荐的JSP服务器。Tomcat是开源的Web服务器,经过长时间的发展,性能、稳定性等方面都非常优秀。 2、Jetty:另一个优秀的Web服务器。Jetty有个更大的优点是,Jetty可作为一个嵌入式服务器,即:如果在应用中加入Jetty的JAR文件,应用可在代码中对外提供Web服务。 3、Resin:

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

CSP-J基础之cmath常见函数

文章目录 前言1. **`sin` 函数**2. **`cos` 函数**3. **`exp` 函数**4. **`log` 函数**5. **`fabs` 函数**6. **`pow` 函数**7. **`sqrt` 函数**8. **`ceil` 函数**9. **`floor` 函数** 总结 前言 在计算机科学与编程中,数学函数是解决各种计算问题的基础工具。C++标准

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念:算法复杂度  三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例  四、空间复杂度 计算示例:空间复杂度 五、常见复杂度对比 六、复杂度算法题(旋转数组) 1、思路1 2、思路2 3、思路3 一、数据结构前言 1、数据结构         数据结构(D

msyql执行效率的问题以及常见基础面试题目

SQL被称为结构化查询语言(Structured Query Language )是操作和检索关系型数据库的标准语言 SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。 ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    Data Definition Language ※ 数据

C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc

文章目录 1、fatal error : sw/redis++/redis.h2、fatal error: dwarf.h: No such file or directory3、fatal error: elfutils/libdw.h: No such file or directory4、fatal error: libunwind.h: No such file or directo