MDA及其同其他构架的区别

什么是MDA?它和其他架构有什么区别?

  MDA是一种新的用于编写规范(specifications)和开发应用程序的途径,它基于平台无关的模型(PIM:platform-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将其工作范围进行了扩展,接纳了使用UML和MOF进行建模的工作。虽然平台无关的UML模型可以在任何平台上实现,但是问题在于,随着项目的进展,UML模型和实现往往会出现脱节,不能很好地同步--树桩仍然固定在地上,但是随时间的推移,它周围的组织结构已经发生了变化。MDA将OMG组织定义良好的建模标准(不仅仅指CORBA,还包括过去的、现在的、将来的其他所有的中间件技术)结合起来,来将你已经创建的、正在创建的,或者将要创建的应用程序集成起来。MDA提高了设计工作的门槛,它在建模这一层次上设计轻便的、可户操作的应用程序。

  UML在MDA中扮演什么角色?

  UML是使能MDA技术的一把钥匙:使用MDA技术创建的所有应用程序都基于标准化的、平台独立的UML模型。通过将这一通用的、被普遍接受的建模标准作为杠杆,MDA使得开发人员可以创建能被轻便地访问、天生具有良好的互操作性的应用程序。而且这些应用程序能被嵌入式系统、桌面应用系统、服务器、大型机等广阔领域的应用程序所访问,也能够被跨Internet访问,具有广阔的应用前景。

  中间件平台在MDA中扮演什么角色?

  在MDA中,一个规范的PIM被用来定义一个或者多个PSM和接口定义集合。每种定义描述了基础模型在不同的中间件平台上是如何实现的。由于PIM、PSMs和接口定义集合都将被作为MDA规范的一部分,OMG将采用多种中间件平台的规范。CORBA技术具有平台和语言的独立性、经过检验的事务和安全的天性。这使得它仍然是从嵌入式系统到桌面系统,再到Internet应用的最佳选择。MDA的方向是使得它与其他中间件平台更容易交互,而且更加廉价。

  CORBA将何去何从?

  OMG将继续开发CORBA并推动其发展,CORBA的市场将会继续扩展,特别是在实时嵌入式、大型的任务紧急的、高容错性的企业计算环境中。由于CORBA是仅有的集成多平台的、多语言的应用程序的解决方案,许多企业将会使用CORBA去创建和集成由MDA定义的应用程序。OMG和它的成员一直都认可与其他标准(例如具有所有权的平台和语言)具有互操作性的价值。OMG在1995年创建了COM/CORBA互操作标准,并在1997年对它进行了扩展,同时也设计和建立了CORBA和Java、XML协同工作的方式。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工作在与.NET和ONE不同的层次上。.NET和ONE是被个体所拥有的平台,瞄准的是特定的应用程序领域。而MDA是模型驱动的软件架构,工作在包括.NET和ONE的任何中间件平台层次之上。中间件平台被合入MDA中,作为一个platform-specific profile,.NET和ONE瞄准了相同的市场,OMG 成员将为他们定义platform-specific profile,以允许他们和其他平台(例如Java/EJB、XML)、协议以及工业标准平台(例如SOAP、XP)协同工作。

  对于试图处理企业计算的企业来说,MDA能够带来的最大的三个好处是什么?

  使用MDA方式能够带来很多的好处,最重要的三个是:基于MDA的架构总是能够随时应付昨天的、今天的和未来的下一个主流技术。MDA将会使得应用程序和工具能够跨越中间件的边界,从而变得更容易集成。OMG Domain Task Forces小组负责在MDA中定义领域相关的工具,它将会提供更广阔的互操作性。因为这些工具将会在特定领域的首选平台上可以使用,而且如果需要,也可以在多种平台上被使用。

  MDA将在什么时间、什么类型的工具中、以什么样的方式被分发?

  MDA的一些关键部分已经被标准化了,这不仅包括UML、MOF、XMI和CWM,还包括第一个中间件的映射(针对OMG组织的CORBA平台)。一些其他的主要的MDA基础规范正迅速地成形,例如为企业系统设计的中间件无关的映射(称为UML for Enterprise Distributed Object Computing)。作为产品,MDA将被一些工具所实现。这些工具可是是单独的,也可以是一整套的,他们将建模功能和开发功能集成到一个独立的环境中,将会带领一个应用程序从最初的PIM转换为平台相关的PSM,最终针对一系列的语言和配置文件生成实现接口、连接服务以及工具的代码;如果可能,也会生成部分业务逻辑代码。一些软件生产商已经可以提供实现在这一层面上实现集成功能的工具,其包含了代码自动生成功能。由于这些工具开发时,MDA规范并未完成,所以这些工具并不是完全符合OMG的MDA规范。即使这样,我们仍然很高兴地看到这些开发环境已经开始支持MDA。我们希望第一代工具能够在今年后期产生。其他厂商的产品也会加入进来,因此大多数的OMG厂商成员将会在未来的18个月中在市场中推出其代表性的产品。MDA最大的好处就是可以从MDA模型中自动或者半自动地产生应用程序代码。

  OMG如何工作?

  OMG比以前更大壮大,且发展良好。拥有数百个公司成员,OMG继续保持最大的软件标准组织的地位。现在有越来越多的系统使用OMG的标准部署,新的成功的故事正在不断上演。新近的一些故事包括了赢得一个大型的航空预定系统和两个世界上最大的跨国汽车制造厂商的系统的主要设计。OMG目前采纳的正在进行的工作是OMG标准化组织的12年历史中最多的。OMG组织的会议会吸引数百名成员和客户的注意力。

  MDA会反过来影响我已经安装的或者计划安装的基于CORBA的产品嘛?

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

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在pandas中计算MDA8(Moving Average of 8-hour Maximum Ozone Concentration)可以通过以下步骤实现: 1. 首先,确保你已经导入了pandas库,并且已经读取了包含Ozone浓度数据的DataFrame。 2. 接下来,需要对Ozone浓度数据进行预处理,确保数据的格式正确。可以使用pandas的to_datetime函数将日期列转换为日期时间格式,并将其设置为DataFrame的索引。 3. 然后,使用rolling函数计算8小时滑动窗口内的最大值。可以通过指定窗口大小和min_periods参数来实现。例如,使用`df['Ozone'].rolling(window=8, min_periods=1).max()`可以计算出每个时间点的8小时内的最大Ozone浓度。 4. 接下来,使用rolling函数计算8小时滑动窗口内的平均值。同样,可以通过指定窗口大小和min_periods参数来实现。例如,使用`df['Ozone'].rolling(window=8, min_periods=1).mean()`可以计算出每个时间点的8小时内的平均Ozone浓度。 5. 最后,将计算得到的最大值和平均值相乘,得到MDA8值。可以使用pandas的multiply函数实现。例如,使用`df['MDA8'] = df['Max_Ozone'].multiply(df['Mean_Ozone'])`可以将最大值和平均值相乘,并将结果保存在名为MDA8的新列中。 下面是一个示例代码: ```python import pandas as pd # 读取包含Ozone浓度数据的DataFrame df = pd.read_csv('ozone_data.csv') # 将日期列转换为日期时间格式,并设置为索引 df['Date'] = pd.to_datetime(df['Date']) df.set_index('Date', inplace=True) # 计算8小时滑动窗口内的最大值和平均值 df['Max_Ozone'] = df['Ozone'].rolling(window=8, min_periods=1).max() df['Mean_Ozone'] = df['Ozone'].rolling(window=8, min_periods=1).mean() # 计算MDA8值 df['MDA8'] = df['Max_Ozone'].multiply(df['Mean_Ozone']) # 打印结果 print(df['MDA8']) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值