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

 
M2M涉及若干重要的技术部分,分别是(问题 1),其中(问题 2)对获得的数据进行加工分析,提供决策依据。
 
 
  A.  智能化机器、M2M硬件、通信网络、中间件、应用
 
  B.  智能化设备、M2M软件、网络、云平台
 
  C.  传感器、执行器、网络设备、中央处理系统
 
  D.  终端设备、网络、中心管理系统、数据库
 
 
 

  相关试题:基于构件的开发          更多>  
 
  第37题    2019年下半年  
   56%
基于构件的软件开发中,构件分类方法可以归纳为三大类:   (35)   根据领域分析的结果将应用领域的概..
  第33题    2023年下半年  
   58%
M2M涉及若干重要的技术部分,分别是(问题 1),其中(问题 2)对获得的数据进行加工分析,提供决策依据。
  第58题    2023年下半年  
   35%
关于构件的说法,错误的是().
   知识点讲解    
   · 中间件技术
 
       中间件技术
        为解决分布异构问题,人们提出了中间件的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。目前还没有对中间件形成统一的定义,相对来说,业界比较认可的两种定义如下:
        (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可以支持更加复杂的结构。
   题号导航      2023年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第32题    在手机中做本题