鑫塔水尚-万华化学股份股票

中间件总复习题及答案
2023年10月5日发(作者:汤蕴求)

第一章 中间件产生的背景

1C/S结构与B/S结构各有何特点?

⑴系统的性能

在系统的性能方面,B/S占有优势的是其灵活性。任何时间、任何地点、任何系统,只要可以

使用浏览器上网,就可以使用B/S系统的终端。近年来,智能手机、智能家电、PDA等传统电脑之

外的上网方式发展迅速,这在一定程度上为B/S结构增加了砝码。

不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服

务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽

然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上

发布的信息必须是以HTML格式为主,其他格式文件多半是以附件的形式存放。HTML格式文件(也

就是Web页面)不便于编辑修改,给文件管理带来了许多不便。

⑵系统的开发

最新的C/S结构和B/S结构都是建立在现在被称为中间件的产品基础之上,也就是建立在应用

服务器(Web服务器)中间件、消息中间件和交易中间件等基础之上。采用C/S结构时,客户端和

服务器端都要处理任务,客户端也需要编程,这对应用开发者提出了较高的要求,这使得应用程序

的维护、移植和互操作变得复杂,成了C/S的一大缺陷。如果客户端是在不同的操作系统上(比如

Windows 2000/2003 Server以及不同版本的LinuxC/S结构的软件需要开发不同版本的客户端

软件。如果产品经常需要更新换代,那么升级系统时候需要付出的高代价以及工作的低效率会在一

定程度上制约企业的应用。

但是,与B/S结构相比,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人

员的掌握水平来看,C/S技术应是更成熟、更可靠的。而对于非常复杂的应用,B/S方式目前尚没

有合适方式进行开发。

⑶系统的升级维护

C/S系统的各部分模块中有一部分改变,就要关联到其他模块的变动,使系统升级成本比较大。

B/SC/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,

开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器

端的软件就可以,这减轻了系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么

B/S架构的产品优势明显——无论用户规模有多大,所有的升级操作只需要针对服务器进行,这对

人力、时间、费用的节省是相当惊人的。

在系统安全维护上,B/S则略显不足,B/S结构尤其得考虑数据的安全性和服务器的安全性,

毕竟现在的网络安全系数并不高。以OA软件为例,B/S结构要实现办公协作过程中复杂的工作流

控制与安全性控制,还有不少技术上的难点。因此,当前虽然出现了B/S结构的OA系统产品,但

1

B/S结构尚未大范围推广。

C/S 结构的优点和缺点

C/S结构的优点

由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快;

操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求;

C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。

C/S 结构的缺点

需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,

不能够实现快速部署安装和配置;

兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程

序;

开发成本较高,需要具有一定专业水平的技术人员才能完成。

B/S结构的优点和缺点

B/S 结构的优点

具有分布性特点,可以随时随地进行查询、浏览等业务处理;

业务扩展简单方便,通过增加网页即可增加服务器功能;

维护简单方便,只需要改变网页,即可实现所有用户的同步更新;

开发简单,共享性强。

B/S结构的缺点

个性化特点明显降低,无法实现具有个性化的功能要求;

操作是以鼠标为最基本的操作方式,无法满足快速操作的要求;

页面动态刷新,响应速度明显降低;

无法实现分页显示,给数据库访问造成较大的压力;

功能弱化,难以实现传统模式下的特殊功能要求。

2RM-ODP研究的重点内容是什么?

⑴构件与中间件;

⑵系统构成成分及其接口;

⑶接口的标准化;

⑷基于接口规范的交易(Trading)和联编服务;

⑸互操作,应用构件之间逻辑关系的任意配置;

⑹集成,对分布的构件进行耦合,使之能提供特定的服务;

⑺可移植性,即对分布式平台的标准化;

⑻透明性,即对应用程序屏蔽分布式环境的细节;

⑼多媒体,即针对不同媒体的应用采用一致的建模框架。

2

3、请说明RM-ODP的企业视点、信息视点、计算视点、工程视点和技术视点所起

的作用。

⑴企业视点(Enterprise Viewpoint

企业视点用于描述分布式系统的总体目标、范围和策略,它关心的是企业的业务活动。即描

述系统要为企业完成什么样的功能,解决企业管理者和决策者所遇到的各类问题。

⑵信息视点(Information Viewpoint

信息视点提供对分布式系统中的信息、对信息施加的操作以及信息间关系模型和信息流的描

述。即用于向信息管理者和信息工程师等描述企业对ODP系统信息的需求。

⑶计算视点(Computation Viewpoint

计算视点是从系统设计者和编辑者的角度出发,将系统的功能分解成一系列独立执行功能的

对象(计算对象),对象之间通过预定义的接口进行交互。每个计算对象都实现一个或多个接口,

接口的作用是向其他对象提供其可见的操作,在接口上交互的对象都各自扮演着不同的角色。也

就是说,计算视点定义了ODP系统的对象,描述了对象中发生的动作和对象之间的交互过程。

⑷工程视点(Engineering Viewpoint

工程视点重点解决通信设计者所遇到的问题,描述实现分布式对象之间的交互机制。工程视

点规范描述了一个网络基础设施的定义、系统的结构和所需的分布式透明服务,为操作系统和通

信专家提供一个ODP系统的抽象描述。

⑸技术视点(Technology Viewpoint

技术视点重点解决系统实现者所遇到的问题,它关心的是系统的组成单元细节,着眼于具体

实现技术对象的选择,如操作系统、计算机网络、硬件设备、网络开发平台、数据库管理系统、

程序开发语言等。技术视点模型是其他视点描述和系统实现之间的桥梁和纽带,即描述了如何根

据其他视点的描述规范,选择和配置合适的技术对象来实现ODP系统。这里的技术对象代表的就

是我们通常意义下的硬件和软件产品。

4、中间件的产生是为了解决哪些关键问题?

⑴有效安全地实现异构资源信息的共享;

⑵快速开发与集成各种异构应用软件系统;

⑶降低应用软件开发成本;

⑷提高系统的稳定性与可维护性;

⑸在快速变化的技术环境与市场环境中保持应用软件系统的适应性等关键问题。

第二章 中间件概念、定义及发展情况

1随着中间件在信息化建设中的广泛应用,中间件应用需求还表现出哪些

新的特点?

⑴可成长性:Internet是无边界的,中间件必须支持建立在Internet之上的网络应用系统

的生长与代谢,维护相对稳定的应用视图。

3

⑵适应性:环境和应用需求不断变化,应用系统需要不断演进,作为企业计算的基础设施,

中间件需要感知、适应变化。

⑶可管理性:领域问题越来越复杂、IT应用系统越来越庞大,其自身管理维护则变得越来越

复杂,中间件必须具有自主管理能力,简化系统管理成本。

⑷高可信性:提供安全、可信任的信息服务

2、通过剖析,我们不难得出有关中间件的哪些结论?

⑴中间件是面向网络分布式应用的基础共性软件;

⑵中间件是介于操作系统、数据库管理系统、网络协议与应用软件之间的一种通用服务,是

对具体不同应用的抽象实现,因此它是一种应用基础结构;

⑶中间件可以屏蔽差异,实现分布式资源的互联共享与互操作;

⑷中间件是构建分布应用系统的软件集成框架;

⑸中间件所解决的问题是复杂的,它是通过自身的复杂以换取应用的简单。

3、简述中间件目前难以被确切定义的重要原因?

中间件难以被确切定义的一个重要原因是,其外延不断扩大,似乎无所不在,无所不包,人

们无法清晰地勾勒出中间件的轮廓。

中间件难以理解的深层次原因是,人们对分布式计算的认识还十分有限,这就使得人们很难

将支持分布式计算的中间件描述清楚。

4、中间件技术是在解决哪几方面复杂分布式应用的共性问题中不断发展壮

大起来的?

①从计算环境来看:中间件面对的是一个复杂、不断变化的计算环境,要求中间件技术具有

足够的灵活性和可成长性。

②从资源管理的角度来看:操作系统和数据库管理系统管理的是有限资源,资源种类有限,

资源量也有限,而中间件需要管理的资源类型(数据、服务、应用)更丰富,且资源扩展的边界

是发散的。

③从应用支撑角度来看:中间件需要提供分布式应用开发、集成、部署和运行管理的整个生

命周期的总体运行模型。

④从应用的角度来看:利用中间件完成的往往是复杂、大范围的企业级应用,其关系错综复

杂,流程交织。

第三章 中间件的特性与发展趋势

1、简单来说,中间件有哪几方面的作用?

⑴它提供了通道的功能,可保证应用系统数据的可靠传输;

⑵它起着桥梁的作用,达成异构应用资源之间的互联互通;

⑶它是分布式应用的集成开发框架,促成企业分布式应用的有机集成;

⑷作为平台,它可有效实现分布应用的分阶段顺利部署;

4

⑸它还担负着安全卫士的职责,起着过滤网的作用,可有力保护关键信息的安全。

2、什么是工作流中间件?

工作流中间件旨在实现企业工作流程自动化,特别是业务处理中各项活动的合作、控制和通

讯的自动化,以及企业流程再造。其目的是为了缩短企业流程作业时间,快速反应市场与客户需

求,有效监控工作进度,加强内部信息沟通传递效率,分析流程作业成本与死角,减少不必要的

岗位设置,从而有效的降低管理成本,提升企业决策反应能力;同时通过实现流程逻辑与业务逻

辑的分离,能够可视化的进行业务流程的分析、定义和业务单元的组装,从而使应用开发人员更

关注于业务逻辑的实现,降低了复杂流程应用的开发难度。

3、什么是应用服务器中间件?

应用服务器中间件又称为“应用服务器软件平台”,是当代软件的基础设施。应用服务器中

间件涵盖了传统中间件的功能,完全支持三层/多层的软件体系结构发展和软件复用,逐渐成为

中间件产品的主流。在横向上,应用服务器作为衔接任何网络客户和各种数据存储层的桥梁,内

部可以透明地完成业务逻辑、事务服务、消息传递、安全管理、数据库访问等全面的任务;在纵

向上逐渐向上延伸贴近应用,集成应用框架方面的内容,简化应用开发。

4、在信息化建设过程中应当如何选择中间件产品?

⑴避免过分追求中间件功能的全面性;没有从自己的实际需要出发,使得选择的中间件包含

太多的功能,但是实际上只用到了其中的很小和最基本的一部分,从而导致项目成本过高和资源

的浪费。

⑵避免过分强调选择国外产品;有些企业和政府部门片面强调国外中间件的能力,忽视了国

产中间件的作用,其实在很多领域,国产中间件完全可以胜任,并且国内中间件厂商可以提供更

低廉的和本地化的服务。

⑶必须准确认识中间件的作用。中间件是网络信息系统的基础软件,它相当于信息的高速公

路。这里存在两种情况,一种是只注重选购中间件,而未能及时建立基于中间件的应用,造成有

路无车,另一种是未充分利用已有的资源购买中间件,造成重复修路。由于中间件比较昂贵,这

两种情况都带来了很大的浪费。

业务化代表了中间件对复杂业务支持方面的发展趋势,即,从自底向上技术驱动转变为更多

自顶向下的应用层的业务驱动,凝练更多的应用和业务模式,支持复杂业务的开放式多方协同和

按需集成能力。

因此,作为共性的凝练,中间件不仅要从底层的技术入手,将共性技术的特征抽象进中间层,

还要更多地把目光投向到业务层面上来,根据业务的需要,驱动自身能力的不断演进,即,不断

出现的新的业务需要驱动了应用模式和信息系统能力的不断演进,进而要求中间件不断地凝练更

多的业务共性,提供针对性支撑机制。近年来,这一需求趋势愈发明显,越来越多的业务和应用

模式被不断地抽象进入中间件的层次,如业务流程流、业务模型、业务规则、交互应用等等,其

结果是中间件凝练的共性功能越来越多,形象的看,中间件的发展趋势之一就是变得越来越

从支持基于互联网广泛连通性的复杂业务协同和集成的角度来看,形象地说,中间件的另一

发展趋势是变得越来越

第四章 中间件的基本框架、工作原理和实现的关键技术

1、请解释何谓对象请求代理、远程过程调用、发报文和排队?

对象中间件也称对象请求代理ORBObject Request BrokersORB提供一种通信机制透明

地在异构的通信环境中传递对象请求,这些对象可以位于本地或远程机器,且对象之间的客户机

/服务器的角色是可以互换的。对象请求代理是近年来才发展起来的一项新技术,它可以看作和

编程语言无关的面向对象的RPC应用,被视为从面向对象过渡到分布式计算的强大推动力量。从

管理和封装的模式上看,对象请求代理和远过程调用有些类似,不过对象请求代理可以包含比远

程过程调用和消息中间件更复杂的信息,并且可以适用于非结构化的或者非关系型的数据。

远程过程调用中间件RPCMRemote Procedure Call Middleware)是使客户端的应用调用一

个位于远端平台的进程或服务。远程过程调用是另外一种形式的中间件,它在客户/服务器计算

方面,比数据库中间件又迈进了一步。它已经存在了相当长的时间,而且沿用了大多数程序员都

非常熟悉的编程模式-程序员就像调用本地过程一样在程序中调用远程过程。启动远程过程的运

行,然后将运行结果返回给本地程序。不但如此,远程过程调用还可以将程序的控制传递到远端

的服务器当中去。

发报文通常是一种无等待的通信技术,即各通信伙伴并不相互等待以交换报文,也不管可供

使用性和访问性。发报文实质上是使数据和控制分布的过程,报文不仅可以表示成数据和控制信

息,而且还可以表示成数据分组、SQL串、图形图像和声音等。排队则是一种无连接的通信技术,

它允许诸通信实体保存信息,直到预计中接收者准备接收为止。故排队中各实体可按各自速度操

作,不需同步。

2X/OPENDTP模型由哪几个模块组成?各起何作用?

X/OPENDTP模型由4个基本模块组成:

⑴应用程序(AP:用于定义事务的边界,并确定组成事务操作的动作。

⑵资源管理器(RM:负责对数据库或文件系统进行管理和存取。

6

⑶事务管理器(TM:给事务分配标识,监督事务的处理过程并负责事务的完成以及协调事

务失败的恢复。

⑷通信资源管理器(CRM:在一个事务管理器内或两个事务管理器之间对通信进行控制。

3、简述适用于下一代网络的中间件的难点及对策。

下一代网络中由于融合了很多新兴技术,使得适用于下一代网络的中间件面临若干难点。

⑴目前的分布式系统主要考虑的因素是设备、网络连接、执行环境:针对中间件,则需要考

虑计算负载、通信模式和上下文表示等方面。由于移动中间件所处的环境与常规中间件所处的环

境有很大的差异,因此移动中间件在设计时需要考虑本身固有的因素:系统应当是轻量级的,移

动主机(或者称为移动终端)上运行的中间件本身不应当占用过多的资源;由于连接的不稳定,异

步交互方式往往更加有效;移动系统往往在动态的环境中执行,移动中间件与应用以一定的方式

结合,共同完成对环境的自适应调整。

⑵由于移动中间件和常规中间件的运行平台不同,所以需要解决运行于不同中间件平台的应

用组件的互操作问题。

⑶下一代网络,无论是固定网,还是移动网,都将提供丰富的QoS机制。中间件不但要利用

网络提供的QoS机制,还要对端系统的资源(CPU、缓冲等)进行控制。而目前的许多研究往往只

关注网络QoS,没有将两者统一起来。资源管理需要将两者结合起来,才能建立有效的资源管理

机制。

⑷解决应用如何发现和利用环境信息的问题,目前大多采用上下文感知(Context Aware)

术。上下文指应用所关注的环境状态和设置的集合,决定应用行为或应用事件的发生,可以分为

几类:计算上下文,如网络连接、通信成本、带宽等;用户上下文,如用户位置;时间上下文,

如日期、季节等。不同类型的上下文需要不同的表达和建模方式,目前多数系统没有统一的模型

表达上下文信息,而且多数研究仅局限于位置信息。对于上下文感知,需要将它与应用分离,并

将收集的原始信息转换为可以理解的格式(使用XML来表示),分发给感兴趣的应用。

⑸目前的中间件具有很多透明性,如访问透明性、迁移透明性、重定位透明性、复制透明性、

持久透明性、位置透明性和事务处理透明性。但对应用完全透明的方式往往会牺牲功能或性能,

有时自适应效果并不充分,甚至产生副作用。而完全应用实现的方式则过度依赖应用本身,造成

应用开发困难。鉴于两种极端的局限性,理想的方式是采用自适应策略(折衷策略)。即系统保证

主要的自适应优化,对于应用必须参与的调整,则通过与应用特殊的接口进行。而反射技术应用

在这里恰好可以解决这一问题,即通过反射接口进行必要的调整,使得自适应更具个性化。

⑹下一代网络中间件由于所涉及到的网络环境多样化,应为不同的应用提供相适应的编程模

型。除了典型的C/S模型外,还需要适应于不同网络情况和应用逻辑的高度灵活的编程模型,如

移动Agent模型、P2P模型和异步消息传递模型。

⑺下一代网络一方面规模庞大,异质因素较多;另一方面又迫切需要快速、低成本、有效地

开发各种应用。OMG提出了模型驱动结构(Model-Driven ArchitectureMDA)可用来解决一个应

7

用在不同中间件平台的各部分的互操作问题。这一方法的关键在于对应用的抽象建模,建立平台

独立模型(Platform-Independent Model),并将其映射为具体平台模型(Platform-Specific

Model)

解决方案:

⑴首先建立整个中间件的体系结构,如图4-5所示,这一结构结合了常规中间件和移动中间

件部分,而采用的方法仍然是分层的方法。

⑵根据移动环境的特点,建立移动中间件的结构,以解决移动环境的特殊要求,如资源有限、

连接不稳定等问题。特别是针对客户(终端)的移动,引入服务代理和传输隧道的概念。

⑶建立资源管理服务(Resource Service,将网络资源和端系统的资源统一起来进行监控和

管理。

⑷利用上下文服务(CS)负责观察和报告上下文的信息,包括:系统资源(端系统和网络)、用

户位置及其他信息;其中有关资源的信息可以直接从资源管理服务中获取。上下文信息利用W3C

CC/PP(Composite Capability/Preference Profile)交换协议进行描述。

⑸利用适配服务(AS),根据获取的环境信息完成适配,主要使用上下文服务提供的CC/PP

述。

⑹利用反射技术提高系统动态调整的能力。反射抽象地说,是系统的一种推理和作用于自身

的能力。反射系统,是指这样一种系统:它提供了关于自身行为的表示,这种表示可以被检查和

调整,且与它所描述的系统行为是因果相连的(Causally Connected)。⑺除了典型的C/S编程模

型外,中间件还应当提供其他的编程模型,如应用级的数据传递方式(松耦合的消息方式+XML

数据描述)、异步调用模型和移动Agent模型。

⑻在已经建立好的中间件平台上,运用MDA结构研究一个应用在不同中间件平台的各部分的

互操作问题。MDA的想法是采用UML确定的商业模式,并把它们转换成具体的硬件和软件模型,

然后制作出代码。这种代码将与微软的.Net服务器、J2EE应用服务器或网络服务软件等中间软

件产品兼容。

第五章 五大类中间件的工作机理

1、远程过程调用有何特点和缺点?

客户/服务器模式。远程调用过程实际上是通过客户/服务器方式实现的,因为其实现

模型就是客户端的应用调用一个位于远端服务器平台的进程或服务。

数据封装性。远端过程调用负责捆绑参数,实现不同平台之间参数的传递,发送参数到

远端过程。

同步性。即当客户机发出请求时,服务器进程处于运行状态。值得注意的是使用线程

Thread)可以实现异步模式。

复杂性。远程调用的实现环境可能给要系统级的任务来创建,因此较复杂。但是创建一

旦完成,对程序员就是透明的了。

8

由此可见,远程过程调用的缺点是需要进行系统级的配置,优点是可以方便地实现不同平台

之间的数据转换。

2、请说明基于消息代理中间件实现应用集成的主要理由。

①通过点对点的应用接口完成应用的集成复杂度高,花费大,严重地限制企业的灵活性。消

息代理中间件如同一个软件的HUB连接需要交互的各个应用系统,减少了应用系统接口的数量、

相互的技术依赖性。

②应用与应用间传递的数据需要转换,传递需要按照优先级、实时地或批处理的方式进行。

消息代理中间件提供与各种资源的接口、数据转换能力和消息处理能力,高效地实现应用之间的

消息传递。

③复杂的业务处理逻辑带来应用之间、应用与人之间交互的复杂性,要求提供一种支持流管

理、处理智能化开发的简便性。新一代的消息代理中间件以商件(Businessware”形式,提供

业务逻辑层开发能力。

④集成应用的体系结构必须能适应业务逻辑、组织机构的变化,最大程度地减少对已有应用

的修改。消息代理中间件构造了一个基于消息的代理骨干,其基于API的适配器以及包装程序完

全适应这一要求。

3、数据库访问中间件是如何解决了客户与数据库的连接没有充分利用的问

题?

使用独立的数据库连接管理过程提供连接管理的服务,客户不是直接与数据库服务器建立连

接,而是通过数据库连接管理进程建立连接,各种数据库操作也是通过该数据库连接管理进程完

成的。实际上就是在客户应用端与数据库服务器端之间再增加一层中间层来负责完成连接管理任

务,这就是所谓的数据库访问中间件。

4、简述事务必须具备哪些特性。

原子性(Atomicity:一个事务涉及的所有操作,要么全部成功,要么回退到原来的状

态。

一致性Consistency一个事务把一个对象从一个合法的状态转到另一个合法的状态,

如果事务失败,必须把对象恢复到前一个合法的状态。

隔离性(Isolation:一个事务对共享数据库所做的操作,在本事务提交之前对其它事

务来说是看不见的。

永久性(Duribility:一个成功的事务,除非运行另一个事务来改变它,否则,其结

果是不能改变的。

5、交易中间件与数据库如何通过XA接口,使用两阶段提交来完成一个全局

事务?

通常情况下,交易中间件与数据库通过XA 接口,使用两阶段提交来完成一个全局事务(所

谓全局事务,是指分布式事务处理环境中,多个数据库可能需要共同完成一个工作,这个工作就

9

是一个全局事务)XA接口的基础是两阶段提交协议。

在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认

是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,如果可以提交属

于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同

意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提

交该事务,数据库对共享资源的操作还未释放(处于上锁状态)。如果由于某种原因数据库无法

提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中

间件失败应答。

在第二阶段,交易中间件审查所有数据库返回的预提交结果,如果所有数据库都可以提交,

交易中间件将要求所有数据库做正式提交,这样该全局事务被提交。而如果有任一数据库预提交

返回失败,交易中间件将要求所有其它数据库回滚其操作,这样该全局事务被回滚。

以一个全局事务为例,应用程序首先通知交易中间件开始一个全局事务,交易中间件通过XA

接口函数通知数据库开始事务,然后应用程序可以对数据库管理的资源进行操作,数据库系统记

录事务对本地资源的所有操作。操作完成后交易中间件通过XA接口函数通知数据库操作完成。

交易中间件负责记录应用程序操作过哪些数据库(事务分支)。应用程序根据情况通知交易中间

件提交该全局事务,交易中间件会通过XA接口函数要求各个数据库做预提交,所有数据库返回

成功后要求各个数据库做正式提交,此时一个全局事务结束。

XA接口规范对应用来说,最大好处在于事务的完整性由交易中间件和数据库通过XA接口控

制,应用程序只需要关注与数据库的应用逻辑的处理,而无需过多关心事务的完整性,应用设计

开发会简化很多。

具体来说,如果没有交易中间件,应用系统需要在程序内部直接通知数据库开始、结束和提

交事务,当出现异常情况时必须由专门的程序对数据库进行反向操作才能完成回滚。如果是有很

多事务分支的全局事务,回滚时情况将变得异常复杂。而使用XA接口,则全局事务的提交是由

交易中间件控制,应用程序只需通知交易中间件提交或回滚事务,就可以控制整个事务(可能涉

及多个异地的数据库)的全部提交或回滚,应用程序完全不用考虑冲正逻辑。

6、一个Servlet具有怎样的一个处理序列?

一个Servlet可以具有这样一个处理序列:

一个客户端连接到一个Web服务器,并发送一个HTTP请求到这个Web服务器。

请求被Web服务器接收,并转交给Servlet容器。Servlet容器可以与Web服务器在同

一个主机上运行、在同一个主机但不是同一个处理器上运行,或者是不同的主机上运行。

Servlet容器在其配置的Servlet中找到调用的Servlet,然后,用代表请求和应答的

对象调用它。

Servlet使用请求对象找到谁是远端的用户,那些HTTP POST参数可能被作为这个请求

的一部分,并找出其它相关参数。Servlet完成已经被编入程序的处理逻辑,然后生成数据返回

10

客户端。在它将数据返回到客户端的时候通过应答对象完成。

Servlet完成了对请求的处理,Servlet容器确认应答已经确实完成,则将控制权返

回给Web服务器。

第六章 当前支持服务器端中间件的平台技术

1CORBA构件模型(CCM)规范主要包括哪些内容?

①将分布式计算技术与面向对象编程技术(OOP)相溶合,通过OOP的继承性,实现软件代

码的重用。

②引入“代理”的概念,完成对客户方提出的抽象服务请求的映射;自动发现和寻找服务器;

自动设定路由,实现到服务器方的执行。

③增加了代理机制后,实现了客户端程序与服务器端程序的完全分离,客户不再同服务器直

接发生关系,而仅和代理进行交互,从根本上改变了传统的面向过程调用机制的客户/服务器模

式。

④提供了“软件总线”的功能,该功能起到类似与计算机硬件总线的作用,只要将应用模块

按总线规范做成插件,插入总线即可实现集成运行,实现了软件构件的即插即用。

⑤设计原则和设计方法层次化。CORBA规范仅定义了ORB中用到的最基本对象、属性和方法,

是针对ORB通信中间件制定的工业标准;而面向应用的对象可以在OMA的应用对象、领域对象或

开发环境中逐层进行定义和实现。

2为什么说EJB技术很好地补充了CORBA体系规范,CORBA体系上引入

EJB技术使得开发分布式应用更为容易?

SUN EJB技术是在JavaBean本地构件基础上,发展的面向服务器端分布式应用构件技术。

从企业应用多层体系结构的角度来看,EJB是业务逻辑层的中间件技术,与JavaBean

不同,它提供了事务处理的能力。

从分布式计算的角度来看,EJB的体系结构具有面向对象、分布式、跨平台、可扩充性、

安全性以及便于开发等特点,并提供了对象之间的通信手段。

Internet技术应用的角度来看,EJBServletJSP一起成为新一代应用服务器的

技术标准

由此可见,EJB技术很好地补充了CORBA体系规范,在CORBA体系上引入EJB技术使得开发

分布式应用更为容易。

3、简述Windows DNA的缺陷。

①第一个缺陷是:RPCDCOM都更适用于Intranet而不是InternetRPCDCOM要求的端

口在防火墙内部,不太可能被打开。这种局限对于开发上线的Web应用是一个很严重的问题。

②第二个缺陷是使用COM/DCOM需要注册或者发布,这会对应用程序产生很大的影响,所以

它并不是一个理想的解决方案。这两个缺陷.NET都可以利用Internet上的标准XMLSOAP来解

决。

11

③第三个缺陷就是利用ASP开发Web应用时,会将负责程序的脚本和HTML混杂在一起,导

致页面的脚本语言结构十分复杂,逻辑不清晰,可读性差,不仅给编程人员本身带来不便,也给

系统的维护带来不小的困难,特别是当应用逻辑需求发生变动时,修改这些臃肿、晦涩的解释性

脚本源代码真是味同嚼蜡。.NET中的可以使代码和界面完全分离,并提供了基于组件的

开发,使Web应用的开发效率大为提高。

④第四个缺陷是COM/DCOM是平台相关的,只能基于Windows平台。这让许多应用只能选择

J2EE体系。微软的.NET有望解决这个问题。

4、你认为J2EE.NET平台体系架构各有何特点、优势和弱点?

作为彼此竞争的应用平台,J2EE.NET开发平台在目标和体系结构上极其相似,但在实现

上又完全不同。平台的体系架构是支撑平台的基础,平台各方面的性能也会因平台架构实现的不

同而有差异。对两个平台产生至关重要影响的三个因素是:系统平台基础构造、三层/多层体系

结构和移植/性能/扩展。J2EE是一个平台规范而非产品,对等而论,在这里述及的.NET也专注

于该平台的架构规范,而较少地涉及到具体产品,尽管对.NET而言这方面并不能被区分得很清楚。

⑴类似的平台基础构造

①一个平台在语言编译、代码执行、编程支持等基础构造方面往往会对平台的可用性、生产

性、移植性等产生重要的影响,也是我们评判一个平台是否适合特定应用的重要依据。J2EE.NET

两个平台在底层的执行引擎都源于托管的虚拟机概念,.NETCLRCommon Language Runtime

沿着Java虚拟机(JVM)走得更远。CLR在借鉴了JVM的自动垃圾收集、异常处理等机制的同时,

又为.NET平台添加了多语言支持、组件自描述等新的特性。

②在.NET J2EE平台上,程序的编译都经过两个类似的过程。首先特定高级语言编译器将

C#(及其他.NET语言)和Java源代码分别翻译成中间语言(IL)和字节代码(ByteCode).NET

中间语言设计时通盘考虑了多个主流高级语言,在这一层面实现了.NET平台的跨语言承诺。J2EE

的基石是Java语言,它最典型的特征是:一次编写,到处运行。跨平台是J2EE一直引以为豪的

关键,这是通过JVM来实现的。

③其次,在执行时,中间语言被即时编译器(JIT)编译成特定平台的二进制代码,字节代码

则通过JVM解释执行,完成各自语言的指令功能。鉴于微软在“Wintel平台”(微软和英特尔联

盟)上的代码优化功底,.NET代码的执行速度较之于Java有明显的优势是不争的事实。但在Unix

Linux已实现)平台上,由于.NET迟迟未能实现其跨平台的承诺,J2EE几乎成了惟一的选择,

执行效率的比较也就无所谓。在代码执行的同时,通用语言运行时和Java虚拟机也都提出了异

常捕捉、类型安全、内存分配、垃圾收集等自动化内存管理工作,大大减轻了现代软件的内存泄

漏问题和程序员繁重的负担。

④面向对象程序设计在J2EE.NET平台中都获得了直接的支持,是它们共有的特征。但在

面向对象之外,.NET对现代组件编程提供了直接支持。当然,现在的很多企业中间件都是基于

J2EE平台的,只是.NET从设计、编码、配置到运行给予了组件编程更多、更直接的支持。

12

⑤一个能够为编程提供广泛服务的、可复用的API类库对于现代软件平台非常重要。从基础

的集合、字符串操作到企业级的API接口,如JMSJDBCJAXJNDI等,可以看到J2EE在这方

面有着非常坚实的结构。微软.NET框架类库也不示弱,提供了从图画、网络、线程到

ADSIWindows表单、等一系列的API在这些基础的和企业级的服务上两个平台很难一

决高下,而且对功能集合的支持很多时候是一个时间问题,往往是一个平台推出了某一子功能集,

另一个平台马上推出类似的功能集。

⑥除去API类库的无缝的功能复用外,对本地平台的调用操作也是值得关注的一点。CLR

Java虚拟机都支持本地方法的调用。在异构平台方面,J2EE更钟情于IIOPInternet InterORB

Protocol,而.NET则使用SOAP

⑵相同的三层/多层体系

基于三层/多层分布式计算结构已毋庸置疑地成为当今企业应用的主流模式,也是两个平台

较量的着力点。

①在客户端,表示层负责用户与系统的交互。对于不同的处理要求,.NETJ2EE都提出了

基于桌面的应用程序和基于浏览器的Web应用的开发组件:Java ApplicationWindows表单、

Java Servlet/JSP双双形成犄角之势。Windows表单依赖微软桌面系统的天然优势,

不管在交互速度还是在界面的表现性能上都较Java Application稍胜一筹。Servlet/JSP

是目前企业在“瘦客户端”应用的重点,两者都基于HTTP请求/应答模型,通过HTML

览器页面完成用户交互。虽然声称在底层通过编译执行获得了相当高的处理速度,以及

服务器方控件的浏览器自适应能力,但目前并没有这方面的硬性数据,很难据此而论高下。在缓

存、状态优化等方面两者可谓旗鼓相当。

②在中间层,分布式业务组件负责企业应用的业务逻辑部署。由于这些业务组件经常负责处

理数据库连接、网络资源、线程等高昂的资源,所以一直是三层/多层架构的关键和企业应用的

核心。J2EEEJB是一个成熟的、得到业界广泛支持的大型企业级组件框架,而.NET组件则是

建立在新型的COM+服务之上,两者在组件与操作系统的交互、客户端资源共享等方面都有很好的

支持。EJB的核心是容器,容器是一个为组件提供服务的运行时环境,负责为组件提供诸如事务

处理、持久性、安全性、组建状态自动化管理等服务,它分离了业务逻辑和系统底层逻辑,使开

发人员的工作大为简化。.NET则通过元数据支持自描述性的组件开发、XCOPY部署以及多版本共

存,而无需注册表和描述文件,对企业客户有一定的吸引力。

③在后端数据层,两个平台都为数据库连接量身定做了一套数据存取模型:J2EEJDBC

.NET。它们在支持传统SQL数据源的同时,也都支持新型的XML数据源。这方面由

于更多地涉及到具体的数据库产品,很难说哪种数据模型更有优势。

④值得指出的是,在打造三层/多层体系结构的同时,Web Service作为新一代企业计算模型

也得到了J2EE.NET平台相当的关注,在后面会作这方面的详细评述。

⑶不同的移植、性能和扩展

13

①在移植性方面,微软通过.NET 通用语言运行时来消除编程语言的差别,J2EE则通过Java

虚拟机来消除平台差别。“选择.NET平台就意味着选择Windows,这句话至少在目前仍然是一个

基本事实(尽管Linux下已开始有.NET应用)。跨平台是J2EE的一大卖点,也是在选择企业应用

开发平台时的一个重要参考因素,几乎所有的主流操作系统都提供了对J2EE的支持。实际上如

果要搭建跨UnixWindows等多个操作系统平台,J2EE平台几乎是惟一的选择。J2EE更关注跨

平台而不是跨语言。但微软认为,如果企业的应用都能通过标准协议以Web服务的方式发布,那

么平台都是中立的。跨平台甚至是微软所不想的。为了吸引更多的开发者和鼓励广大企业厂商转

.NET平台,微软提出了多语言支持,希望用跨语言的交互性来平衡跨平台的互操作。

②性能是J2EE.NET争论不休的话题。二者之间著名的论战是一个关于宠物店的范例应用。

宠物店是SUN一度以来作为J2EE典型应用的展示范例,但.NET“自告奋勇”地在自己的平台上

实现了该宠物店应用,且声称代码行是J2EE1/3,效率却是J2EE30倍。SUN的理由是这

个范例根本不适合用来做性能比较,该范例实现也没有做针对性能的优化,而且指责微软通过后

端数据库优化和缓存虚抬了.NET平台的效率。这样的争吵当然不能作为我们判断的依据,目前也

没有见到更客观的第三方评测报告。在“Wintel(微软和英特尔联盟)平台”上我们也许没有理

由怀疑.NET的性能,而至于非Windows平台,.NETJ2EE也不再具有可比性。

③在平台的成熟度方面,两者也有一拼。J2EE1999年形成了其成熟的架构,并且到今天

已经有相当成熟的经过检验的企业应用系统。.NET究其渊源是源自微软以前开发企业应用程序

的平台Windows DNADistributed Network Architecture,其中包括了许多已经被证实的技术,

并且这些技术已经在产品中得到实现,包括微软的事务服务器、COM/DCOM/COM+消息队列、MS SQL

Server数据库等。而对于扩展性,广为业界接受的事实是.NET平台的扩展思想是基于软件的横

向扩展,而J2EE平台的扩展思想则是基于硬件的纵向扩展。这也符合微软和SUN各自的产品利

益。

J2EE另一个重要特征就是它的架构开放性,它本身是一系列规范,而不是产品,任何符合

这一规范的产品都是J2EE兼容的。这使得J2EE从制订之初就得到了广泛的支持。BEAIBMOracle

等都相继开发了符合J2EE的应用服务器,它们的产品相互之间甚至可以兼容。而.NET在设计之

初就紧紧地把平台规范与产品胶合在一起,虽然.NET架构的一小部分具有开放性(如Visual C#

语言、通用语言基础构造CLI Web服务标准),但目前还很少有非微软的.NET实现。

第七章 构件、XMLWeb Service等技术与中间件的关系

1、构件有哪几个基本属性?

构件是可独立配置的单元,因此构件必须自包容。

构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必

要知道构件内部的实现细节。

构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境

交互。

14

构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当与自身副本区别,

在任何环境中,最多仅有特定构件的一份副本。

2、为什么说构件化的软件设计思想在中间件发展中起到了重要的作用?

中间件作为分布式计算平台,涉及资源多样,包括各种操作系统、数据库管理系统、

网络协议甚至语言,其目标是在分布式的环境中统一使用这些资源。因此,可以建立针对这些资

源的构件库,以动态、灵活的方式进行构件的装配,如针对不同的面向连接的网络协议,可使用

统一语义的网络驱动器构件,最灵活的情况是根据配置动态绑定。

中间件的一个重要的设计目标是互操作,而互操作的关键是有清晰而与实现无关的接

口。因此在互操作的边界上,必须将构件的思想融入设计中。

中间件的应用范围越来越广,但应用有不同的需要,不同的业务特点,如果仅仅依靠固

定的模式去套用,显然不合适。例如,多数MIS应用并不需要交易管理;有些分布式应用也没有

OLTP的特点;金融应用中安全就显得十分关键;拓展到Web的应用则特别要求精干、安全和适应

性强。因此,中间件必须设计成可伸缩的体系,由一些可替换的构件组成,如某些重于可靠,某

些强调实时,某些则需要小巧。产品只有这种定位,才能在变化迅速的市场上总是适应需求,立

于不败之地。

中间件不是最终的应用,需要服务于应用开发,但可以面向典型业务的模型,以方便应

用的开发,这些模型可以以构件的形式作为产品提供。例如,CORBA服务和设施就是一些典型应

用的抽象体现,使用这些服务的构件,应用可以大大减少开发规模,并获得良好的效果。以构架

化技术术语讲,就是领域建模。

成功的商业软件都是非常便于管理的,同样中间件也有可配置性的需要,管理整个系统

是个复杂的行为,但如果转化为若干简单行为的统一,对开发就很简单而明确。事实上,标准的

网络管理协议正是蕴涵了这种思想。基于构件化开发的中间件也一样,各个构件自身是独立配置

的单元,只需进行集成就可达到系统的管理目标。

因此,构件化的软件设计思想在中间件发展中起到了重要的作用,可以预见,构件化的中间

件在今后市场上是有强大生命力的。

3、什么是Web Service?

Web Service提供了一个分布式的计算技术,用于在Internet/Intranet上通过使用标准的

XML协议和信息格式由企业发布的完成其特别业务需求的在线应用服务,其他企业或应用软件能

够通过Internet/Intranet来访问并使用这项在线服务。换句话说,Web Service就是可以通过

Web描述、发布、定位和调用的模块化应用。它允许在Web站点上放置可编程的元素,能进行基

Web的分布式计算和处理,可以执行各种功能,从简单的请求到复杂的业务过程。一旦Web

Service被部署,其他的应用程序或是Web Service就能够发现并且调用这个部署的服务。

Web Service通过简单对象访问协议 Simple Object Access ProtocolSOAP)来调用。

SOAP是一种轻量级的消息协议,它允许用任何语言编写的任何类型的对象在任何平台之上相互通

15

信。SOAP消息采用可扩展标记语言(XML)进行编码,一般通过HTTP进行传输。与其它的分布式

计算技术不同,Web Service是松散耦合的,而且能够动态地定位其它在Internet上提供服务的

组件,并且与它们交互。

Web Service使用诸如SOAP消息这样的XML消息,通过一种良好定义的消息交换模式来调用。

通过描述调用服务所必需的数据,Web Service描述语言 WSDL)文档定义了消息的交换模式。

4、从技术上看,中间件可以为ERP系统提供哪些好处?

⑴可靠性:提供一个坚固的系统运行环境,具有强大的故障恢复能力、系统重新启动和恢复

能力、数据可靠传输能力等。

⑵可扩展性:提供动态部署能力,涉及交易方式、应用程序配置、对象服务嵌入等。

⑶可管理性:系统要实现有效的管理,管理内容包括应用服务器、操作系统进程和线程、数

据库连接,以及网络会话等。

⑷数据一致性:交易完整性保障。

⑸应用安全性:包括最终用户身份认证、节点连接的安全认证、应用程序的安全认证、管理

界面的访问权限控制、数据加密/解密功能、安全事件报警等。

5EAI的中间件解决方案主要有哪几个类型?

EAI的中间件解决方案主要有4个类型:

⑴用户界面集成(界面重组)

界面重组是一个面向用户的整合,它将原先系统的终端窗口和PC的图形界面使用一个标准的

界面(有代表性的例子是使用浏览器)来替换。一般的,应用程序终端窗口的功能可以一对一地映

射到一个基于浏览器的图形用户界面。新的表示层需要与现存的遗留系统的业务逻辑或者一些封

装的应用如ERPCRM以及SCM等进行集成。

⑵数据集成

数据集成发生在企业内的数据库和数据源级别。通过从一个数据源将数据移植到另外一个数据

源来完成数据集成。数据集成是现有EAI解决方案中最普遍的一个形式。然而,数据集成的一个

最大的问题是业务逻辑常常只存在于主系统中,无法在数据库层次去响应业务流程的处理,因此

这限制了实时处理的能力。

⑶业务流程集成

虽然数据集成已经证明是EAI的一个流行的形式,然而,从安全性、数据完整性、业务流程角

度来看,数据集成仍然存在着很多问题。组织内大量的数据是被业务逻辑所访问和维持的。业务

逻辑应用并加强了必须的业务规则、业务流程和安全性,而这些对于下层数据都是必需的。业务

流程集成产生于跨越了多个应用的业务流程层。

⑷函数/方法集成

函数和方法集成包括直接的和严格的,在网络环境中的跨平台应用程序之间的应用到应用(A2A)

的集成。它涵盖了普通的代码(COBOL,C++,Java)撰写、应用程序接口(APIs)、远端过程调用

16

(RPCs)、分布式中间件如TP监控、分布式对象、公共对象访问中介(CORBA)Java远端方法调用

(RMI)、面向消息的中间件以及Web服务等等各种软件技术。面向函数和方法的集成一般来说是

处于同步模式的,即基于客户(请求程序)和服务器(响应程序)之间的请求响应交互机制。

第八章 中间件技术在电子政务、电子商务平台中的应用

1、何谓G2GG2BG2CB2CB2BC2C

政府部门间的电子政务(Government to GovernmentG2G) G2G是上下级政府部门、不同地方

政府、不同政府部门之间的电子政务。

政府对企业的电子政务(Government to BusinessG2B) G2B 是指政府通过电子网络系统,

精简管理业务流程,快速便捷地为企业提供各种服务等。

政府对公民的电子政务(Government to CitizenG2C) G2C 是指政府通过电子网络系统为公

民提供的各种服务。

企业对个人的电子商务(B2C)企业对个人的电子商务是人们最熟悉的一种商务类型,以至许

多人错误地认为电子商务就只有这样一种模式。事实上,这缩小了电子商务的范围,错误地将电

子商务与网上购物等同起来。网上商店大大提高了交易效率,节省了各类不必要的开支。因而,

这类模式得到了人们的认同,获得了迅速的发展。

企业对企业的电子商务(B2B)在电子商务中,公司可以用电子形式将关键的商务处理过程连

接起来,以形成虚拟企业。在这种环境中,很难区分哪家公司正在进行商务活动。一家公司在一

PC机或移动式电脑上按下一个键就有可能影响一家处于地球另一端的供货公司的业务活动。

个人对个人的电子商务(C2C)个人对个人的电子商务是一种比较特殊的电子商务,是指不同

的个人通过互联网实现商务过程,最典型的商务活动如:网上拍卖等。

2、构建企业级的电子政务应用系统需要具备哪些特征?

电子政务软件系统所采用的技术构架的选择非常重要。一般来说,构建企业级的应用系统需要

具备以下特征:

支持多层构架,表示层、业务层、数据库访问层分开;

支持B/S C/S 两种结构的应用程序;

独立于特定的硬件平台和操作系统;

支持各种类型的数据库管理系统;

良好的安全性;

分布式事务功能;

支持消息服务;

支持组件化开发;

支持集群和失效转移,提供良好的容错性;

支持XML 技术;

支持Web Service EAI 具有良好的可扩展性。

17

镀锌价格-大湖股份

中间件总复习题及答案

更多推荐