免费智能真题库 > 历年试卷 > 系统架构设计师 > 2012年下半年 系统架构设计师 上午试卷 综合知识
  第9题      
  知识点:   中间件技术   软件中间件   中间件
  关键词:   中间件        章/节:   基于构件的开发       

 
以下关于软件中间件的叙述,错误的是(9)。
 
 
  A.  中间件通过标准接口实现与应用程序的关联,提供特定功能的服务
 
  B.  使用中间件可以提高应用软件可移植性
 
  C.  使用中间件将增加应用软件设计的复杂度
 
  D.  使用中间件有助于提高开发效率
 
 
 

 
  第38题    2020年下半年  
   37%
中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的基本功能包括:为客户端和服务器之间提供(..
  第37题    2020年下半年  
   55%
中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的基本功能包括:为客户端和服务器之间提供(..
  第36题    2020年下半年  
   29%
中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的基本功能包括:为客户端和服务器之间提供(..
   知识点讲解    
   · 中间件技术    · 软件中间件    · 中间件
 
       中间件技术
        为解决分布异构问题,人们提出了中间件的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。目前还没有对中间件形成统一的定义,相对来说,业界比较认可的两种定义如下:
        (1)在一个分布式系统环境中处于操作系统和应用程序之间的软件。
        (2)中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。
        从这些定义中可以看出:
        (1)中间件是一类软件,而非一种软件。
        (2)中间件不仅仅实现互连,还要实现应用之间的互操作。
        (3)中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
        中间件是处于操作系统和应用程序之间的软件,也有人认为它应该是属于操作系统中的一部分。这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台。随着中间件应用的不断增长,中间件的范围已经覆盖了分布式对象和组件、消息通信,以及移动应用等软件系统。
                      中间件的功能
                      中间件的基本功能包括以下几个:
                      (1)负责客户机和服务器间的连接和通信。
                      (2)提供客户机与应用层的高效率通信机制。
                      (3)提供应用层不同服务之间的互操作机制。
                      (4)提供应用层与数据库之间的连接和控制机制。
                      (5)提供一个多层结构应用开发和运行的平台。
                      (6)提供一个应用开发框架,支持模块化的应用开发。
                      (7)屏蔽硬件、操作系统、网络和数据库。
                      (8)提供交易管理机制,保证交易的一致性。
                      (9)提供应用的负载均衡和高可用性。
                      (10)提供应用的安全机制与管理功能。
                      (11)提供一组通用的服务去执行不同的功能,为的是避免重复的工作和使应用之间可以协作。
                      中间件作为一大类系统软件,与操作系统、数据库管理系统并称“三驾马车”,它的优越性体现在这样几个方面:缩短应用的开发周期,节约应用的开发成本,减少系统初期的建设成本,降低应用开发的失败率,保护已有的投资,简化应用集成,减少维护费用,提高应用的开发质量,保证技术进步的连续性,增强应用的生命力。
                      具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
                      中间件为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。
                      中间件的分类
                      中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。中间件分类有很多方式和很多种类型。
                      从中间件的层次上来划分,可分为底层型中间件、通用型中间件和集成型中间件3个大的层次。底层型中间件的主流技术有JVM(Java Virtual Machine,Java虚拟机)、CLR(Common Language Runtime,公用语言运行时)、ACE(Adaptive Communication Environment,自适应通信环境)、JDBC和ODBC等,代表产品有Sun的JVM和Microsoft的CLR;通用型中间件的主流技术有CORBA、EJB、COM/DCOM等,代表产品主要有IONA Orbix、BEA WebLogic和IBM MQSeries等;集成型中间件的主流技术有WorkFlow和EAI等,代表产品主要有BEA WebLogic和IBM WebSphere等。
                      由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通信服务,我们将这种通信服务称之为平台。基于目的和实现机制的不同,可将平台分为远程过程调用(Remote Procedure Call,RPC)、面向消息的中间件(Message-Oriented Middleware,MOM)、对象请求代理(Object Request Brokers,ORB)3类。它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等,在这些基本的通信平台之上,可构筑各种框架,为应用程序提供不同领域内的服务。
                             RPC
                             RPC是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来远程执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。一个RPC应用分为两个部分,分别是服务器和客户机。服务器提供一个或多个远程过程,客户机向服务器发出远程调用。要说明的是,这里的服务器和客户机并不是指计算机硬件,而是指应用程序。服务器和客户机可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上,它们通过网络进行通信。在这里,RPC通信是同步的,如果采用线程则可以进行异步调用。
                             在RPC模型中,客户机和服务器只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的服务器。因此,RPC为C/S分布式计算提供了有力的支持。同时,RPC所提供的是基于过程的服务访问,客户机与服务器进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。例如,RPC通常需要一些网络细节以定位服务器;在客户机发出请求的同时,要求服务器必须是活动的,等等。
                             :在Java开发环境中,可以使用Java远程方法调用(Remote Methode Invocation,RMI)来代替RPC。RMI提供了Java程序语言的远程通信功能,这种特性使客户机上运行的程序可以调用远程服务器上的对象,使Java编程人员能够在网络环境中分布操作。
                             MOM
                             利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,MOM可在分布环境下扩展进程间的通信,并支持多通信协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下3个主要特点:
                             (1)通信程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
                             (2)对应用程序的结构没有约束:在复杂的应用场合中,通信程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通信方式的构造并没有增加应用程序的复杂性。
                             (3)程序与网络复杂性相隔离:程序将消息放入消息队列或从消息队列中取出消息来进行通信,与此关联的全部活动,如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其他程序通话,并且它们不涉及网络通信的复杂性。
                             ORB
                             ORB是OMG推出的对象管理结构(Object Management Architecture,OMA)模型的核心组件,它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。ORB是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间C/S关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。客户机对象并不知道与服务器对象通信、激活或存储服务器对象的机制,也不必知道服务器对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。
                             :客户机和服务器角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是客户机,也可以是服务器,甚至兼有两者。当对象发出一个请求时,它是处于客户机角色;当它在接收请求时,它就处于服务角色。大部分对象都是既扮演客户机角色又扮演服务器角色。另外由于ORB负责对象请求的传送和服务器的管理,客户机和服务器之间并不直接连接,因此,与RPC所支持的单纯的C/S结构相比,ORB可以支持更加复杂的结构。
 
       软件中间件
        中间件概述
        概念:
        中间件是位于硬件、操作系统等平台和应用之间的通用服务。中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源,它位于客户端/服务器的操作系统之上,管理计算机资源和网络通信。
        目的:
        实现应用与平台的无关性。
        特点:
        满足大量应用的需要、运行于多种硬件和操作系统平台、支持分布计算、提供跨网络/硬件/操作系统平台的应用或服务的透明交互、支持标准的协议、支持标准的接口。
        现状:
        中间件为应用程序提供了一个相对稳定的高层应用环境,但是,中间件服务所应遵循的原则离实际还有很大距离。多数流行的中间件使用专有的API和专有的协议,使应用只能构建在单一厂家的产品之上,来自不同厂家的实现很难互操作。有些中间件只提供某些平台的实现,限制了应用在异构系统之间的移植。
        中间件分类:
        1.数据库访问中间件
        数据库访问中间件通过一个抽象层访问数据库,从而允许使用相同的或相似的代码访问不同的数据库资源。如Windows平台的ODBC和Java平台的JDBC等。
        2.远程过程调用
        远程过程调用(Remote Procedure Call,RPC)是一种广泛使用的分布式应用程序处理方法。一个RPC应用分为两个部分:服务器和客户端。服务器提供一个或多个远程过程,客户端向服务器发出远程调用。
        客户端和服务器之间的网络通信和数据转换通过代理程序(stub与skeleton)完成,从而屏蔽了不同操作系统和网络协议。RPC为客户端/服务器的分布计算提供了有力的支持,但它所提供的是基于过程的服务访问,客户端和服务器进行直接连接,没有中间机构来处理请求,具有一定的局限性。
        3.面向消息中间件
        概念:
        面向消息中间件(Message-Oriented Middleware,MOM)利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。典型的产品如IBM的MQSeries。通过使用MOM,通信双方程序(称为消息客户程序)可以在不同的时间运行,程序不在网络上直接通话,而是间接地将消息放入MOM服务器的消息机制中。
        特点:
        消息客户程序之间通过将消息放入消息队列或从消息队列中取出消息来进行通信。客户程序不直接与其他程序通信,避免了网络通信的复杂性。消息队列和网络通信的维护由MOM完成。
        4.分布式对象中间件
        随着对象技术与分布式计算技术的发展,两者相互结合形成了分布式对象技术,发展成为当今软件技术的主流方向。典型的分布式对象中间件如OMG的CORBA、Sun的RMI/EJB和Microsoft的DCOM等。这三种中间件的介绍见23.3.3节。
        5.事务中间件
        事务中间件,也称事务处理监控器(Transaction Processing Monitor,TPM)程序位于客户端和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,以提高系统的整体性能。典型产品如BEA的Tuxedo。
        随着对象技术与事务技术的结合,还出现了一类新产品,即对象事务监控器(Object Transaction Monitor,OTM),可以保证分布式对象的事务完整性。如支持EJB的J2EE应用服务器。
 
       中间件
        随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应运而生。
               中间件的定义
               由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精确的定义。
               普遍被接受的是IDC对中间件定义的描述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
               IDC对中间件的定义表明:中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
               人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须有一个通信中间件,即:中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和应用软件区分开来。
               中间件的主要作用是:
               ①缩短应用的开发周期。
               ②节约应用的开发成本。
               ③减少系统初期的建设成本。
               ④降低应用开发的失败率。
               ⑤保护已有的投资。
               ⑥简化应用集成。
               ⑦减少维护费用。
               ⑧提高应用的开发质量。
               ⑨保证技术进步的连续性。
               ⑩增强应用的生命力。
               中间件与电子商务
               中间件是电子商务应用集成的关键之一,不管电子商务应用分布在什么硬件平台上,使用了什么数据库系统,透过了什么复杂的网络,电子商务应用的互连和互操作是电子商务中间件首先要解决的问题。
               在通信方面,电子商务中间件要支持各种通信协议和通信服务模式,传输各种数据内容,数据格式翻译、流量控制、数据加密、数据压缩等;电子商务中间件还要解决名字服务、安全控制、并发控制、可靠性和效率保证等;在电子商务应用开发方面,要能提供基于不同平台的丰富的开发接口,支持流行的开发工具和异构互连接口标准等;在管理方面,解决电子商务中间件本身的配置、监控、调谐,为电子商务应用的易用易管理提供保证。针对不同的Web应用环境,对电子商务中间件有各种不同的要求。对工作流应用,需要根据条件以及条件满足状态,将信息、响应状态从一个应用传递到另一个应用;对联机事务处理,需要保证分布式的数据一致性、不停机作业、大量并发的高效率;对于一个数据采集系统需要保证可靠传输等。
               在这种情况下,电子商务应用应包含以下层次:
               ①浏览器。这是进入电子商务的通道。
               ②电子商务应用平台。提供电子商务不同应用类型的生成工具软件,如网上商店、网络支付、虚拟社区等。
               ③电子商务交换平台。对内集成企业内部的各种与电子商务相关的业务系统,对外连接商业合作伙伴,如银行、供应商、客户、配送结构,完成各种不同业务系统之间数据转换和整合。
               ④电子商务基础平台。用来支持大量Internet客户的并发访问,使应用开发商快速开发出灵活多变的电子商务应用,尽快把信息系统和商务活动放到Internet中。
               在电子商务交换平台和电子商务基础平台中都不能没有中间件的存在。可以说,没有中间件就不能支撑今天的网络应用。
   题号导航      2012年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第9题    在手机中做本题