14.构件与中间件的基本概念

构件的定义

  1. 软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意地组装。

  2. 构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某清晰的功能。

  3. 构件是一个独立发布的功能部分,可以通过其接口访问它的服务。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NVKh6rIx-1667093010813)(https://raw.githubusercontent.com/pccai/ubiapp/master/2022/09/03/13Vv21fmrzUmAvur.png)]

构件系统架构特性

  1. 构件系统体系结构由一组平台决策、一组构件框架和构件框架之间的互操作设计组成。

  2. 构件框架是一种专用的体系结构(通常围绕一些关键的机制),同时也是一组固定地作用于构件层次机制的策略。

  3. 概念框架的互操作设计包括系统体系结构连接的所有框架间的互操作的规则。

  4. 构件是一组通常需要同时部署原子的构件。构件和原子构件之间的区别在于大多数原子构件永远都不会被单独部署,尽管它们可以被单独部署。

  5. 一个原子构件是一个模块和一组资源。

  6. 模块是一组类和可能的非面向对象的结构体,比如过程或者函数。

  7. 资源是一个类型化的项的固定集合。

  8. 资源这个概念可以包含代码资源,进而包含模块。问题在于除了编译器编译一个模块或包生成的资源外,还可能存在其他的资源。在“纯对象”的方法中,资源是外部化的不可改变的对象一一不可改变是因为构件没有持久化的标志,而且复制不能被区分。

中间件的定义

中间件是为应用提供通用服务和功能的软件。数据管理、应用服务、消息传递、身份验证和API管理通常都要通过中间件。

中间件可以帮助开发人员更有效地构建应用。它就如同是应用、数据与用户之间的纽带。

对于具有多云和容器化环境的企业而言,中间件可以助您大规模、经济高效地开发和运行应用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2q9iIqN-1667093010815)(https://raw.githubusercontent.com/pccai/ubiapp/master/2022/09/03/Eaei1VSi8lJRhp2z.png)]

简化结构、屏蔽差异、利于复用。

采用中间件技术的优点:

  1. 面向需求。即设计师集中精力于业务逻辑本身。

  2. 业务的分隔和包容性。应用开发人员可以按照不同的业务进行功能的划分,体现为不同的接口或交互模式。

  3. 设计与实现隔离。构件对外发送作用或构件间的交互,都是通过接口进行的,构件使用者只需要知道构件的接口,而不必关心其内部的实现,这是设计与实现分离的关键。

  4. 隔离复杂的系统资源。架构很重要的一个功能就是将系统资源与应用构件隔离,这是保证构件可复用甚至“即插即用”的基础,与中间件的意图也是一致的。

  5. 符合标准的交互模型。中间件则实现了架构的模型,实现了标准的协议。

  6. 构件的复用。中间件提供了构件封装、交互规则、与环境的隔离等机制,这些都为软件复用提供了方便的解决方案。

  7. 提供对应用构件的管理。基于中间件的软件可以方便地进行管理,因为构件总可以通过表示机制进行划分。

构件的复用

复用的历史发展路线

复用的维度

水平复用:不分行业领域,各个领域通用;

垂直复用:分行业领域,领域专用。

复用流程

  1. 检索与提取构件
  • 基于关键字的检索,特点:属性或有向无回路图结构。

  • 刻面检索法,特点:利用Facet描述构件执行的功能、被操作的数据、构件应用的语境或任意其他特征。

  • 超文本检索法,特点:按照人类的联想思维方式任意跳转到包含相关概念或构件的文档。

  1. 理解与评价构件
  • 要复用构件,准确地理解构件至关重要。特别是对构件的修改使用时。

  • 为达到目标,必须要求构件的开发过程遵循公共标准。

  • 一般构件库的文档中全面而准确地说明一下内容:构件的功能与行为、相关的领域知识、可适应性约束条件与例外情形、可以预见的修改部分以及修改方法。

  1. 修改构件
  • 理想状态是直接复用构件库中现成的构件,但大多数情况下,必须对构件进行或多或少的修改,以应对新需求。

  • 为了减少构件修改的工作量,要求开发人员尽量使构件的功能、行为和接口设计更为抽象化、通用化和参数化。这样,复用者即可通过对实参的选取来调整构件的功能或行为。如果这种调整仍不足以使构件适用于新系统,复用者就必须借助设计信息和文档来修改构件。

  • 构件库中若无可修改使用的构件,则按新需求开发构件,并存入构件库。

  1. 组装构件
  • 构件组装的三种方式

  • 基于功能的组装:采用子程序调用和参数传递的方式将构件组装起来。

  • 基于数据的组装:仍然是传统的子程序调用与参数传递。但它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如,Jackson系统开发方法。

  • 面向对象的组装:如果从类库中检索出来的基类能够完全满足新系统的需求,则可以直接应用。否则必须以基类为父类,生成相应的子类,以满足新系统的需求。

  • 构件组装失配问题

  • 由构件引起的失配,包括由于系统对构件基础设施、构件控制模型和构件数据模型的假设存在冲突引起的失配;

  • 由连接子引起的失配,包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配;

  • 由于系统成分对全局体系结构的假设存在冲突引起的失配等。要解决失配问题,首先需要检测出失配问题,并在此基础上通过适当的手段消除检测出的失配问题。

构件的标准

COBRA(公共对象请求代理体系结构)

  • 伺服对象(Servant):CORBA对象的真正实现,负责完成客户端请求。

  • 对象适配器(Object Adapter):用于屏蔽ORB内核的实现细节,为服务器对象的实现提供者提供抽象接口,以便它们使用ORB内部的某些功能。

  • 对象请求代理(Object Request Broker):解释调用并负责查找实现该请求的对象,将参数传给找到的对象,并调用方法返回结果。客户方不需要了解服务对象的位置、通信方式、实现、激活或存储机制。

CORBA体系的主要内容包括以下几部分:

  1. 对象请求代理(Object Request Broker,ORB)。负责对象在分布式环境中透明地收发请求和响应,它是构件分布对象应用、在异构或同构环境下实现应用间互操作的基础。

  2. 对象服务(Object Services)。为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。

  3. 公共设施(Common Facilitites)。向终端用户提供一组共享服务接口,例如系统管理、组合文档和电子邮件等。

  4. 应用接口(Application Interfaces)。由销售商提供的可控制其接口的产品,相应于传统的应用层表示,处于参考模型的最高层。

  5. 领域接口(Domain Interfaces)。为应用领域服务而提供的接口,如OMG组织为PDM系统制定的规范。

COM

COM是个开放的组件标准,它有很强的扩充和扩展能力。COM把组件的概念融入到Windows虚用中。DCOM在COM的基础上添加了许多功能和特性,包括事务特性、安全模型、管理和配置等,使COM成为一个完整的组件架构。COM+将COM、DCOM和MTS形成一个全新的、功能强大的组件架构。

EJB

  • 会话Bean:实现业务逻辑,负责完成服务端的客户端的交互

  • 实体Bean:实现O/R映射,简化数据库开发工作

  • 消息驱动Bean:处理并发与异常访问

– THE END –

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值