软件架构设计(四)——构件与中间件

目录

一.构件的概念

二、构件的复用

(1).检索与提取构件

(2)理解与评价构件

(3)修改构件

(4)组装构件

三、中间件概念

四.中间件技术的优点

五、Corba(公共对象请求代理体系结构)

(1).CORBA概念

(2).CORBA体系的主要内容


 一.构件的概念

        构件的概念没有明确的定义。但是业界大多数人比较倾向于定义1。认为构件是一种组装单元,它可以可以是一个封装的对象,可以是软件包,也可以是一个子系统,甚至是一些文档。它具有规范的接口规约和显式的语境依赖,软件构件可以独立的部署并由第三方任意组装。中间件是构件的一种,主要完成构件之间的通信。

二、构件的复用

       想利用构件组成一个系统需要经历四个步骤:检索与提取构件;理解与评价构件;修改构建;组装构件

(1).检索与提取构件

        基于关键字的检索方法:系统在图形用户界面上将构件库的关键字用树形结构直观地展示给用户。复用通过对树形结构的逐级浏览,寻找需要的关键字并提取相应的构件。

        刻面检索法:该方法基于刻面分类法,首先是构造查询、而后是检索构件,最后是对构件进行排序。这种方法的优点是,它易于实现相似的构件查找,但复用者在构造查询时比较麻烦

        超文本检索法:复用者首先给出若干个关键子,系统在构件的说明文档中进行精确或模糊的语法匹配,匹配成功后,向复用者列出相应的构件说明。这种方法的优点是用户界面友好,但在某种情况下使用者难以在超文本浏览过程中正确地选取构件

(2)理解与评价构件

        要复用构件,准确地理解构件至关重要,也就是说要明白构件是干什么的,甚至要理解构件是怎么实现的,特别是对构件修改使用时;为达到目的,必须要求构件的开发过程遵循公共标准;并给构建做上注释,一般构件库的文档中应全面而准确地说明以下内容:构件的功能与行为、相关的领域知识、可适应性约束条件与例外情形、可以预见的修改部分及修改方法等。

(3)修改构件

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

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

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

(4)组装构件

        基于功能的组装技术。此方法采用子程序调用和参数传递的方式将构件组装起来。它要求库中的构件以子程序/过程/函数的形式出现,并且接口说明必须清晰。当使用这种组装技术进行软件开发时,开发人员首先要对新系统进行功能分解,将系统分解为强内聚松耦合的功能模块。然后根据各模块的功能需求提取构件,进行适应性修改后,再挂接再上述功能分解框架中。

        基于数据的组装技术。首先根据当前软件问题的核心数据结构设计出一个框架,然后根据框架中各结点的需求提取构件并进行适应性修改,再将构件逐个分配至框架中的适当位置。此后,构件的组装方法仍然是传统的子程序调用与参数传递。这种组装技术也要求库中构件以子程序形式出现,但它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如Jackson系统开发方法。

        面向对象的组装技术。由于封装和继承特征,面向对象方法比其他软件开发方法更适合支持软件复用。在面向对象的软件开发方法中,如果从类库中检索出来的基类能够完全满足新系统的需求,则可以直接应用。否则必须以基类为父类,生成相应的子类,以满足新系统的需求。

三、中间件概念

        中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。中间件主要负责构件之间的连接和通信:

  • 负责客户机与服务器之间的连接和通信,以及客户机与应用层之间高效率的通信机制
  • 提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制,如jdbc
  • 提供多层架构的应用开发和运行的平台,以及应用开发框架,支持模块化的应用开发
  • 屏蔽硬件、操作系统、网络和数据库的差异
  • 提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性
  • 提供一组通用的服务去执行不同的功能,避免重复的工作并使应用之间可以协作

 四.中间件技术的优点

  • 面向需求。即设计师集中精力于业务逻辑本身。
  • 业务的分隔和包容性。应用开发人员可以按照不同的业务进行功能的划分,体现为不同的接口或交互模式
  • 设计与实现隔离。构件对外发生作用或构件间的交互,都是通过接口进行的,构件使用者只需要知道构件的接口和作用,不需要关心其内部实现,这是设计与实现分离的关键
  • 隔离复杂的系统资源。架构很重要的一个功能就是将系统资源与应用构件隔离,这是保证构件可复用甚至"即插即用"的基础,与中间件的意图也是一致的。
  • 符合标准的交互模型。中间件则实现了架构的模型,实现了标准的协议
  • 软件复用。中间件提供了构件封装、交互规则、与环境的隔离等机制,这些都为软件复用提供了方便的解决方案。
  • 提供对应用构件的管理。基于中间件的软件可以方便地进行管理,因为构件总可以通过标识机制进行划分。

 五、Corba(公共对象请求代理体系结构)

(1).CORBA概念

        CORBA,是一种远程调用的机制。在系统整个结构中有客户端和服务端,大部分功能接口都放在了服务端。当客户端需要调用服务端的接口时,可能会遇到一些问题。比如,网络通不通,如何调用,资源竞争,数据安全等一系列问题。CORBA有一种代理机制,就是在客户端有服务端对象的引用,当客户端需要调用服务端时,只需要在客户端,访问CORBA对象的引用就可以了。剩下的操作就由CORBA中间件内部去完成。RMI也是一样的思想。

        

  • 伺服对象(Servant):CORBA对象的真正实现,负责完成客户端请求。
  • 对象适配器(Object Adapter):用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便它们使用ORB内部的某些功能。
  • 对象请求代理(Object Request Broker):解释调用并负责查找实现该请求的对象,将参数传给到的对象,并调用方法返回结果。客户方不需要了解服务对象的位置、通信方式、实现、激活或存储机制,起到了一个衔接各方,充当了信息交换的一个总线结构。

               

 (2).CORBA体系的主要内容

  1. 对象请求代理(Object Request Broker,ORB)。负责对象在分布环境中透明地收发请求和响应,它是构建分布对象应用、在异构或同构环境下实现应用间互操作的基础。
  2. 对象服务(Object Services).为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域
  3. 公共设施(Common Facilities)。向终端用户提供一组共享服务接口,例如系统管理、组合文档和电子邮件等。
  4. 应用接口(Application Interfaces).由销售商提供的可控制其接口的产品,相当于传统的应用层标识,处于参考模型的最高层。
  5. 领域接口(Domain Interfaces).为应用领域服务而提供的接口,如OMG组织为PDM系统制定的规范。


 

猜你喜欢

转载自blog.csdn.net/superSmart_Dong/article/details/129000731