2.4 实现体系结构

在2000年,对象管理组(Object Management Group, OMG)推出了模型驱动架构(Model-Driven Architecture, MDA)倡议。OMG尝试使用MDA统一其拥有的两大主要独立技术:(Common Object Request Broker Architecture, CORBA)和UML。

CORBA和UML虽然都由OMG制定,但它们服务于软件开发的不同方面。

CORBA专注于分布式系统中的对象交互和通信标准,

UML是一种通用的建模语言,用于设计和描述软件系统的不同方面。

两者在现代软件工程中各有其重要性,经常被用来配合使用:UML用于设计和描述系统,而CORBA用于实现系统部件间的交互。

OMG一直致力于系统的互操作性,无论是在分布式异构硬件上(CORBA)还是在模型层面(Unified Modeling Language, UML)。这种互操作性不仅体现在与遗留系统的集成上,还体现在与未来尚未计划的系统的集成上。MDA的主要优势在于提供了一种统一的方法论,用于设计和开发跨平台(与平台无关)的系统。

2.4.1 CORBA和UML

1. CORBA

CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)是由对象管理组织(Object Management Group,OMG)制定的一种标准,用于促进和支持不同计算机上运行的软件之间的互操作性。

核心特征

  • 语言和平台独立性:CORBA定义了一种语言中立的接口定义语言(Interface Definition Language,IDL),允许开发者定义在不同编程语言之间共享的接口。
  • ORB中间件:对象请求代理(Object Request Broker,ORB)作为中间件,处理客户端和服务端之间的通信,屏蔽底层网络和平台差异。
  • 服务和组件集成:CORBA提供一套丰富的服务和组件,支持事务、安全、事件通知等企业级特性。

应用场景

  • 分布式系统:在需要不同系统协同工作的环境中,如金融、电信和工业自动化等。
  • 遗留系统集成:将新系统与旧系统或不同技术栈的系统集成。
  • 复杂企业应用:需要高度可靠、可伸缩和安全的交互。

优点

  • 跨平台互操作性:CORBA支持不同操作系统、编程语言和硬件平台之间的互操作性。
  • 服务和组件集成:CORBA提供丰富的服务和组件,支持企业级应用的开发。
  • 开发效率:CORBA的语言中立性和ORB中间件可以提高软件开发的效率。

缺点

  • 复杂性:CORBA标准相对复杂,需要一定的学习成本。
  • 性能:CORBA的性能相对较低,在高性能应用中可能不适合。

2. UML

UML(Unified Modeling Language)是一种广泛使用的标准建模语言,用于描述、规定、构造和文档化软件系统的各个部分。UML适用于软件开发的各个阶段,从概念化和设计到实现。

核心特征

  • 图表和符号:UML定义了结构图(如类图、对象图、包图等)和行为图(如用例图、活动图、状态机图等)等多种图表类型,用于描述软件系统的不同方面。
  • 广泛的适用性:UML可用于软件系统的各个方面,包括业务流程、数据结构、算法逻辑和并发架构等。
  • 设计和文档工具:UML不仅是设计工具,也是沟通和文档化工具,帮助团队成员和利益相关者理解系统架构。

应用场景

  • 软件设计:从初步设计到详细设计,使用UML进行系统建模。
  • 业务流程和系统建模:对企业流程进行可视化,促进分析和优化。
  • 文档和沟通:作为项目文档的一部分,帮助团队成员理解系统构架。

2.4.2 MDA

随着计算环境和编程语言的持续演变,现代软件开发面临以下主要挑战:

  1. 技术多样性:软件必须兼容各种组件和分布式基础设施环境,同时适应新兴的编程语言和模型标准,这增加了开发的复杂性、成本和风险,同时影响了可维护性和扩展性。
  2. 系统互操作性:确保软件系统能在分布式异构硬件上有效运行,并与不同的系统和遗留系统集成,这增加了软件的复杂性和开发风险,同时也影响了系统的安全性和可靠性。
  3. 持续的技术演进:应对新技术的不断出现,需要确保构建的系统在未来仍然健壮和稳定,这使得设计和维护变得更加困难,维护成本也随之增加。
  4. 开发效率和质量:需要提高软件开发效率,减少负担,同时保证软件的质量、可移植性和可维护性。

为应对这些挑战,引入**模型驱动架构(MDA)**成为必要策略。MDA通过将模型作为软件开发的核心,利用层次化的模型抽象化手段优化设计、开发和实施流程,并统一CORBA、UML两大主要独立技术。MDA本质上是平台无关,通过定义计算独立模型(CIM)、平台独立模型(PIM)、平台特定模型(PSM)以及平台依赖应用(PDA)等多层次的模型,允许软件系统的各个层次独立于具体技术实现,从而提高软件的可移植性、协作性和可维护性。

标准 目标 特点
CORBA 构建分布式系统 面向对象、异构平台、多语言支持
UML 指定和描述系统需求和设计 建模语言、结构、行为、功能
MDA 提高软件开发效率、可重用性和可移植性 软件开发框架、分层模型

MDA核心概念包括:

以模型为核心:MDA将模型定位为软件开发过程中的核心元素,强调其在系统规划、设计和实现过程中的关键作用。模型在MDA中不仅是规范性文档,而且还是设计和开发的基础。
层次化的模型抽象:MDA通过定义一系列不同层次的模型来提供从业务需求到技术实现的连贯视角:

  1. 计算独立模型(CIM):聚焦于高层需求和业务逻辑,抽象描述业务规则和策略,而不涉及具体技术实现。
  2. 平台独立模型(PIM):将CIM中的抽象转化为具体模型,描述系统结构和行为,独立于任何技术实施。
  3. 平台特定模型(PSM):将PIM细化为特定技术和平台的模型,用于指导代码生成和配置。
  4. 平台依赖应用(PDA):进一步将PSM细化至应用层面,处理特定平台配置和环境中的实际应用实施。

MDA的优势包括:

提高软件开发效率:MDA通过采用层次化的模型抽象和自动化工具,可以显著提高软件开发效率。
增强软件可移植性:MDA的层次化模型抽象可以使软件系统的各个层次独立于具体的技术实现,从而提高软件的可移植性。
提升软件协作性:MDA的模型驱动方法可以促进软件开发人员之间的协作,提高软件开发的整体效率。
提高软件可维护性:MDA的层次化模型抽象可以使软件系统的各个层次独立于具体的技术实现,从而提高软件的可维护性。

待续……

你可能感兴趣的:(可扩展的体系结构》,uml)