免费智能真题库 > 历年试卷 > 系统架构设计师 > 2020年下半年 系统架构设计师 上午试卷 综合知识
  第36题      
  知识点:   中间件的功能   基本功能   一致性   中间件
  章/节:   基于构件的开发       

 
中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件基本功能包括:为客户端和服务器之间提供(36);提供(37)保证交易的一致性;提供应用的(38)。
 
 
  A.  连接和通信
 
  B.  应用程序接口
 
  C.  通信协议支持
 
  D.  数据交换标准
 
 
 

 
  第38题    2020年下半年  
   36%
中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的基本功能包括:为客户端和服务器之间提供(..
  第9题    2012年下半年  
   37%
以下关于软件中间件的叙述,错误的是(9)。
  第37题    2020年下半年  
   56%
中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的基本功能包括:为客户端和服务器之间提供(..
   知识点讲解    
   · 中间件的功能    · 基本功能    · 一致性    · 中间件
 
       中间件的功能
        中间件的基本功能包括以下几个:
        (1)负责客户机和服务器间的连接和通信。
        (2)提供客户机与应用层的高效率通信机制。
        (3)提供应用层不同服务之间的互操作机制。
        (4)提供应用层与数据库之间的连接和控制机制。
        (5)提供一个多层结构应用开发和运行的平台。
        (6)提供一个应用开发框架,支持模块化的应用开发。
        (7)屏蔽硬件、操作系统、网络和数据库。
        (8)提供交易管理机制,保证交易的一致性。
        (9)提供应用的负载均衡和高可用性。
        (10)提供应用的安全机制与管理功能。
        (11)提供一组通用的服务去执行不同的功能,为的是避免重复的工作和使应用之间可以协作。
        中间件作为一大类系统软件,与操作系统、数据库管理系统并称“三驾马车”,它的优越性体现在这样几个方面:缩短应用的开发周期,节约应用的开发成本,减少系统初期的建设成本,降低应用开发的失败率,保护已有的投资,简化应用集成,减少维护费用,提高应用的开发质量,保证技术进步的连续性,增强应用的生命力。
        具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
        中间件为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。
 
       基本功能
        路由器在网络层对分组信息进行存储转发,实现多个网络互联。因此,路由器应具有以下基本功能。
        (1)协议转换。能对网络层及其以下各层的协议进行转换。
        (2)路由选择。当分组从互联的网络到达路由器时,路由器能根据分组的目的地址按某种路由策略选择最佳路由,将分组转发出去,并能随网络拓扑的变化,自动调整路由表。
        (3)能支持多种协议的路由选择。路由器与协议有关,不同的路由器有不同的路由器协议,支持不同的网络层协议。如果互联的局域网采用了两种不同的协议,一种是TCP/IP协议;另一种是SPX/IPX协议(即Netware的运输层/网络层协议),由于这两种协议有许多不同之处,分布在互联网中的TCP/IP(或SPX/IPX)主机上,只能通过TCP/IP(或SPX/IPX)路由器与其他互联网中的TCP/IP(或SPX/IPX)主机通信,但不能与同一个局域网或其他局域网中的SPX/IPX(或TCP/IP)主机通信。问题产生的原因在于互联网主机之间的通信受到路由器协议的限制。因此,近年来推出了一种多协议路由器,它能支持多种协议,如IP,IPX,X.25及DEC Net协议等,能为不同类型的协议建立和维护不同的路由表。这样利用路由器不仅能连接同构型局域网,还能用它连接局域网和广域网。例如,利用一个多协议路由器来连接以太网、令牌环网、FDDI网、X.25网及DEC Net等,从而使大、中型网络的组建更加方便,并获得较高的性能价格比。但是,由于目前多协议路由器尚未标准化,不同厂家的多协议路由器不一定能协同工作,在选购时应加以注意。
        (4)流量控制。路由器不仅具有缓冲区,而且还能控制收发双方数据流量,使两者更加匹配。
        (5)分段和组装功能。当多个网络通过路由器互联时,各网络传输的数据分组的大小可能不相同,这就需要路由器对分组进行分段或组装。即路由器能将接收的大分组分段并封装成小分组后转发,或将接收的小分组组装成大分组后转发。如果路由器没有分段组装功能,那么整个互联网就只能按照所允许的某个最短分组进行传输,大大降低了网络的效能。
        (6)网络管理功能。路由器是连接多种网络的汇集点,网间信息都要通过它,在这里对网络中的信息流、设备进行监视和管理是比较方便的。因此,高档路由器都配置了网络管理功能,以便提高网络的运行效率、可靠性和可维护性。
 
       一致性
        在讨论一致性之前,先看一下CAP理论。它作为一种理论依据,使得在不同应用中,对一致性也有了不同的要求。CAP理论:简单地说,就是对于一个分布式系统,一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition tolerance)三个特点最多只能三选二。
        一致性意味着系统在执行了某些操作后仍处在一个一致的状态,这点在分布式的系统中尤其明显。比如某用户在一处对共享的数据进行了修改,那么所有有权使用这些数据的用户都可以看到这一改变。简言之,就是所有的结点在同一时刻有相同的数据。
        可用性指对数据的所有操作都应有成功的返回。高可用性则是在系统升级(软件或硬件)或在网络系统中的某些结点发生故障的时候,仍可以正常返回。简言之,就是任何请求不管成功或失败都有响应。
        分区容忍性这一概念的前提是在网络发生故障的时候。在网络连接上,一些结点出现故障,使得原本连通的网络变成了一块一块的分区,若允许系统继续工作,那么就是分区可容忍的。
        在数据库系统中,事务的ACID属性保证了数据库的一致性。比如银行系统中,转账就是一个事务,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和构成一个完整的逻辑过程,具有原子的不可拆分特性,从而保证了整个系统中的总金额没有变化。
        然而,这些ACID特性对于大型的分布式系统来说,是和高性能不兼容的。比如,你在网上书店买书,任何一个人买书这个过程都会锁住数据库直到买书行为彻底完成(否则书本库存数可能不一致),买书完成的那一瞬间,世界上所有的人都可以看到书的库存减少了一本(这也意味着两个人不能同时买书)。这在小的网上书城也许可以运行得很好,可是对Amazon这种网上书城却并不是很好。
        而对于Amazon这种系统,它也许会用Cache系统,剩余的库存数也许是几秒甚至几个小时前的快照,而不是实时的库存数,这就舍弃了一致性。并且,Amazon可能也舍弃了独立性,当只剩下最后一本书时,也许它会允许两个人同时下单,宁愿最后给那个下单成功却没货的人道歉,而不是整个系统性能的下降。
        由于CAP理论的存在,为了提高性能,出现了ACID的一种变种BASE(这四个字母分别是Basically Available,Soft—state,Eventual consistency的开头字母,是一个弱一致性的理论,只要求最终一致性):
        .Basically Available:基本可用。
        .Soft state:软状态,可以理解为“无连接”的,而与之相对应的Hard state就是“面向连接”的。
        .Eventual consistency:最终一致性,最终整个系统(时间和系统的要求有关)看到的数据是一致的。
        在BASE中,强调可用性的同时,引入了最终一致性这个概念,不像ACID,其并不需要每个事务都是一致的,只需要整个系统经过一定时间后最终达到一致。比如Amazon的卖书系统,也许在卖的过程中,每个用户看到的库存数是不一样的,但最终卖完后,库存数都为0。再比如SNS网络中,C更新状态,A也许可以1分钟就看到,而B甚至5分钟后才看到,但最终大家都可以看到这个更新。
        具体地说,如果选择了CP(一致性和分区容忍性),那么就要考虑ACID理论(传统关系型数据库的基石,事务的四个特点)。如果选择了AP(可用性和分区容忍性),那么就要考虑BASE系统。如果选择了CA(一致性和可用性),如Google的bigtable,那么在网络发生分区的时候,将不能进行完整的操作。
        ACID理论和BASE的具体对比如下表所示。
        
        ACID和BASE的对比表
 
       中间件
        随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应运而生。
               中间件的定义
               由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精确的定义。
               普遍被接受的是IDC对中间件定义的描述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
               IDC对中间件的定义表明:中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
               人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须有一个通信中间件,即:中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和应用软件区分开来。
               中间件的主要作用是:
               ①缩短应用的开发周期。
               ②节约应用的开发成本。
               ③减少系统初期的建设成本。
               ④降低应用开发的失败率。
               ⑤保护已有的投资。
               ⑥简化应用集成。
               ⑦减少维护费用。
               ⑧提高应用的开发质量。
               ⑨保证技术进步的连续性。
               ⑩增强应用的生命力。
               中间件与电子商务
               中间件是电子商务应用集成的关键之一,不管电子商务应用分布在什么硬件平台上,使用了什么数据库系统,透过了什么复杂的网络,电子商务应用的互连和互操作是电子商务中间件首先要解决的问题。
               在通信方面,电子商务中间件要支持各种通信协议和通信服务模式,传输各种数据内容,数据格式翻译、流量控制、数据加密、数据压缩等;电子商务中间件还要解决名字服务、安全控制、并发控制、可靠性和效率保证等;在电子商务应用开发方面,要能提供基于不同平台的丰富的开发接口,支持流行的开发工具和异构互连接口标准等;在管理方面,解决电子商务中间件本身的配置、监控、调谐,为电子商务应用的易用易管理提供保证。针对不同的Web应用环境,对电子商务中间件有各种不同的要求。对工作流应用,需要根据条件以及条件满足状态,将信息、响应状态从一个应用传递到另一个应用;对联机事务处理,需要保证分布式的数据一致性、不停机作业、大量并发的高效率;对于一个数据采集系统需要保证可靠传输等。
               在这种情况下,电子商务应用应包含以下层次:
               ①浏览器。这是进入电子商务的通道。
               ②电子商务应用平台。提供电子商务不同应用类型的生成工具软件,如网上商店、网络支付、虚拟社区等。
               ③电子商务交换平台。对内集成企业内部的各种与电子商务相关的业务系统,对外连接商业合作伙伴,如银行、供应商、客户、配送结构,完成各种不同业务系统之间数据转换和整合。
               ④电子商务基础平台。用来支持大量Internet客户的并发访问,使应用开发商快速开发出灵活多变的电子商务应用,尽快把信息系统和商务活动放到Internet中。
               在电子商务交换平台和电子商务基础平台中都不能没有中间件的存在。可以说,没有中间件就不能支撑今天的网络应用。
   题号导航      2020年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第36题    在手机中做本题