admin 管理员组

文章数量: 1086019


2024年1月16日发(作者:bilibili视频播放器)

我的读书笔记——几种中间件技术

中间件技术

1. 中间件的作用和分类

中间件是处于操作系统和应用程序之间的软件,人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但这在中间件中必需要有一个通信中间件,因此,中间件=平台+通信。这个定义也限定了只有用于分布式系统中才能成为中间件,同时还可以把它与支撑软件和实用软件区分开来。

要说清这个问题我们用一个生活中的实例来比喻。把分布式系统看作重庆市区的交通系统,网络看作市区马路,通过交通工具实现通信,每分钟将有几万辆车在马路上行驶,如果没有相应的交通设施和管理规划,重庆市将会乱作一团,发生各种交通事故。

在分布式系统中,要怎么规划和分类中间件呢?它主要包括如下几种:

 通信处理(消息)中间件

首先要修好马路,安装红绿灯,设立交通管理机构,制定出交通规则,也就是我们要建网和制定出通信协议,能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如TongLINK、BEA eLink、IBM的MQSeries等),称为消息中间件。这是中间件中唯一不可缺少的,是需求量最大的中间件产品,目前在Win2000系统中已包含了其部分功能。

 事务处理(交易)中间件

例如,在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器上能实时并发运行,并进行负载平衡地调度,实现高昂的可靠性机和大型计算机系统等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。

一个事务处理平台,根据X/OPEN的参数模型规定,应由事务处理中间件、通信处理中间件以及数据存储管理中间件三部分组成。

 数据存储管理中间件

在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络中虚拟缓存、格式转换、解压带来方便。

 Web服务器中间件

浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能进行数据写入、受HTTP协议的限制等,必须进行修改和扩充,这就形成了Web服务器中间件。

 安全中间件

一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必须使用国产的产品。产生不安全因素是由操作系统引起的,但必须要用中间件去解决,以适应灵活多变的要求。

 跨平台和构架中间件

当前开发大型应用软件通常采用基于构架和构件技术,在分布系统中,还需要集成各节点上的不同系统平台的构建或新老版本的构件,由此产生了构架中间件,功能最强的是CORBA,可以跨任意平台,但是太庞大;JavaBean较灵活简单,很适合于做浏览器,但运行效率差;

DCOM模型主要适合Windows平台,已广泛使用。

 专用平台中间件

为特定应用领域设计参考模式,建立相应构架,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。

 网络中间件

它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。

中间件介绍

英文的,中间件就是连接两个独立应用程序的软件

middleware

Software that connects two otherwise separate applications. For example, there are a

number of middleware products that link a database system to a Web server. This allows

users to request data from the database using forms displayed on a Web browser, and it

enables the Web server to return dynamic Web pages based on the user's requests and

profile.

The term middleware is used to describe separate products that serve as the glue

between two applications. It is, therefore, distinct from import and export features that may

be built into one of the applications. Middleware is sometimes called plumbing because it

connects two sides of an application and passes data between them. Common

middleware categories include:

TP monitors

DCE environments

RPC systems

Object Request Brokers (ORBs)

Database access systems

Message Passing

下面再给出一个中文的解释

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、

高效地开发和集成复杂的应用软件。

IDC的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

__________________________________

找我的人到这里

/

下面组出形成原因

存在必定合理

但是合什么理呢

知道为什么要存在就知道在什么进修应该使用它了

中间件的演变过程

随着计算机技术的发展,IT厂商出于商业和技术利益的考虑,各自产品之间形成了差异,技术在不断进步,但差异却并没有因此减少。计算机用户出于历史原因和降低风险的考虑,必然也无法避免多厂商产品并存的局面。

于是,如何屏蔽不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂性,就成为技术不断进步之后,人们不能不面对的现实问题。

显然,由一个厂商去统一众多产品之间的差异是不可能的,而单独由计算机用户在自己的应用软件中去弥补其中的大片空档,由于技术深度和技术广度的要求,必然也是勉为其难。于是,中间件应运而生。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。

在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。这些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。

__________________________________

找我的人到这里

/

优点

作为入门让大家了解一下这个东西有什么用

中间件解决什么问题

世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性:

· 缩短应用的开发周期

· 节约应用的开发成本

· 减少系统初期的建设成本

· 降低应用开发的失败率

· 保护已有的投资

· 简化应用集成

· 减少维护费用

· 提高应用的开发质量

· 保证技术进步的连续性

· 增强应用的生命力

具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。

中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。Standish的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济大发展、电子商务

大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家。

其次,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

__________________________________

找我的人到这里

/

如何选择适合你的中间件

看原文比较好

/tech/app/2001/07/20/58_

由于中间件的种类较多,企业在使用中间件的时候必须作出选择。选择应该从以下几方面进行。

选择种类:先确定类别再确定产品

中间件的特殊性使得企业在选择具体的中间件产品以前,必须确定企业的应用类型或具体需求,进而仔细确定选择使用哪一类中间件。这一点非常重要,比如企业的应用类型如果只是传递消息,而对高可靠、高并发、高效率无特殊要求,就应该选择消息中间件而非交易中间件。如果是典型的关键任务的联机事务处理系统就应该选择交易中间件。如果要建立分布式构件应用,企业就应该选择基于对象的中间件。如果想基于Web建立应用,最好选用Web应用服务器。下面给出一个选择的流程图:

中间件产品选择流程图

当然,实际情形远非图中描述的那么简单。中间件的功能经常是相互交叉的,比如有的交易中间件包含有消息传递的功能;有些对象中间件继承了交易中间件的特性;而有的应用服务器,可以把交易管理中间件或消息中间件作为它的一种服务,等等。因此,除了技术上的界

定以外,还要考虑以下因素:

·技术成熟度。不同的中间件的发展历史都不同。由于中间件涉及的技术面广,与操作系统、网络、数据库、应用都有关系,因此中间件从诞生到成熟需要2~3年的时间。中间件的技术成熟度是一个很需要关注的问题。

·与遗留应用的结合度。如果您选用中间件构造的应用与传统的遗留应用要建立联系的话,就需要考虑这个问题。

·使用的难易程度。每类中间件使用的难度也不尽相同。有些中间件只是您应用的一部分,而有些中间件将会给您的应用一个新的体系结构。应用的现状、应用开发队伍的水平、中间件本身的复杂程度等,都会影响中间件的使用效果。

·成本。不同类的中间件的成本不同,如把消息中间件只是用在局域网上实现数据访问显然代价太大。把交易中间件用在非交易处理类系统中去传递消息同样不足取。另外也要考虑技术培训对开发成本所带来的影响。

·技术方向。有的中间件比较传统,而有的中间件是发展方向,中间件的选择同您对软件技术发展趋势的把握紧密相关。如果企业已决定用构件技术或Web技术,您就要选择相关的中间件。

选择服务:影响成败

中间件处在“顶天立地”的地位,决定了中间件与应用软件、操作系统、数据库系统密切相关,中间件的技术服务需要深度和广度。因此,要求一个中间件厂商不仅要了解中间件本身,还必须具备全面的技术能力,尤其是要熟悉应用,否则是做不好技术服务的。一个好的产品也许会由于缺乏的质量的技术服务而导致整个系统运转不灵。

注意应用环境:软件确实有国情

值得特别注意的是,中国的应用环境和国外有一些差别,表现在以下几个方面:网络通讯状况参差不齐,大量存在9600bps通信线路,国外中间件产品对此缺乏足够的准备;许多大企业在管理上采用多级树型结构,而国外中间件产品又多为网状结构。产生在优良环境里的国外产品,在国内应用环境中并不一定能够达到其预期的功能性能指标。

安全:不容忽视

国家已有明文规定,要建立安全的信息体系,安全产品立足于国内。中间件作为一个支撑软件,与系统安全紧密相关。国内自主版权的中间件产品将是金融、政府、军队、公安等敏感部门的解决信息安全问题一条道路。

表1 中间件的产品分类情况 种类 作用 典型产品

消息中间件 适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软

件集成提供服务。 ibm mqseries

东方通科技tonglink/q

交易中间件 适用于联机交易处理系统,主要功能是管理分布于不同计算机上的数据的一致性,保障系统处理能力的效率与均衡负载。交易中间件所遵循的主要标准是x/open dtp模型。 ibm cic

bea tuxedo

东方通科技tongeasy

对象中间件 基于corba标准的构件框架,相当于软总线,能使不同厂家的软件交互访问,为软件用户及开发者提供一种即插即用的互操作性,就像现在使用集成块和扩展板装配计算机一样。 iona orbix

borland visibroker

ibm componentbroker

东方通科技tongbroker

应用服务器 用来构造internet/intranet应用和其它分布式构件应用,是企业实施电子商务的基础设施。应用服务器一般是基于j2ee工业标准的。 ibm websphere

bea weblogic

东方通科技tongweb

安全中间件 以公钥基础设施(pki)为核心的、建立在一系列相关国际安全标准之上的一个开放式应用开发平台,向上为应用系统提供开发接口,向下提供统一的密码算法接口及各种ic卡、安全芯片等设备的驱动接口。 entrust entrust

东方通科技tongsec

应用集成服务器 把工作流和应用开发技术如消息及分布式构件结合在一起,使处理能方便自动地和构件、script

应用、工作流行为结合在一起,同时集成文档和电子邮件。 lss flowman

ibm flowmark

vitria businessagiliti

选择专业厂商:选择未来

选择厂商和选择产品并不是同一个概念,一是有多家厂商在做同一种中间件产品,二是一家厂商在做多种中间件产品。因此,中间件厂商的选择是中间件选择策略中的一个重要组成部分。

由于企业对中间件需求的多样性,也使得对厂商的选择有不同的方式。常见的两种现象,一是更注重产品本身,选择最好的中间件产品,而不在乎不同中间件之间的相互配合和厂家本身的实力。另一种观点正好相反,选择一个有各种中间件产品的厂商。不管哪种观点,都应以满足您目前和将来对中间件的需求为基础。

由于中间件目前处在快速发展时期,种类繁多,竞争激烈,需要强有力的支持服务,因而选择一个专业从事中间件的厂商总是有益的,否则会对未来的支持和发展带来问题。试想,一个厂商自己都不把您要选择的中间件作为其主导性发展方向,怎么能成为您可信赖的长期合作伙伴呢?

测试:合脚才是好鞋

测试是一个直接有效的手段,建立一个与您的实际应用环境类似的模拟环境,编写模拟测试程序,在实际应用中对中间件的功能和性能进行逐项测试。测试应包括功能测试、适应性测试、扩展性测试、压力测试、边界测试、破坏测试、连续运行测试等等。不同类的中间件测试方法不尽相同。但必须能模拟出使用中间件的真实情况。

考察:让事实说话

如果测试还不能让您拿定主意的话,您也可以去考察实际应用案例,并倾听中间件使用者的感受。当然考察的时候要非常仔细,包括应用环境、应用类型、业务量、中间件的工作状况、配置、中间件开发和使用的难易度、厂家的支持服务、价格等。

__________________________________

找我的人到这里

/

什么是中间件(入门)

(来源:中国科学院软件研究所对象技术中心)

一、为什么要中间件

计算机技术迅速发展。从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中,通常存在多种硬件系统平台(如PC,工作站,小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题。

二 什么是中间件

为解决分布异构问题,人们提出了中间件(middleware)的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

图1 中间件

也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:

满足大量应用的需要

运行于多种硬件和OS平台

支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互

支持标准的协议

支持标准的接口

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

三、主要中间件的分类

中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:

远程过程调用(Remote Procedure Call)

面向消息的中间件(Message-Oriented Middleware)

对象请求代理(Object Request Brokers)

它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。

下面,针对几类主要的中间件分别加以简要的介绍。

1、远程过程调用

远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,

一个RPC应用分为两个部分:server和client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用。

在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。

2、面向消息的中间件

MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个

主要特点:

通讯程序可在不同的时间运行 程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。

对应用程序的结构没有约束 在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。

程序与网络复杂性相隔离

程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。

3、对象请求代理

随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对象管理结构OMA(Object

Management Architecture),对象请求代理(Object Request Broker)是这个模型的核心组

件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。1991年推出的CORBA 1.1 定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是不同厂商提供的ORB之间的互操作。

对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。

值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。

4、事务处理监控

事务处理监控(Transaction processing monitors)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于client和server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。总体上来说,事务处理监控有以下功能:

进程管理,包括启动server进程、为其分配任务、监控其执行并对负载进行平衡。

事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。

通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。

事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server为每一个client都分配其所需要的资源的话,那server将不堪重负(如图2所示)。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client请求了服务,它希望得到快速的响应。事务处理监控在操作系统之上提供一组服务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资源下能够高效地为大规模的客户提供服务。

图2 事务处理监控

四、面临的一些问题

中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和server方的功能分配。通常将表示服务放在client以方便使用显示设备,将数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的.

__________________________________

╔────────────╗

│╭∩╮ (︶︿︶)╭∩╮ │

│ SHALA 灌 水 专 用 章 │

╚───────────㊣╝

什么是中间件

(仲季 2001年07月20日 14:36)

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。

最早具有中间件技术思想及功能的软件是IBM的CICS,但由于CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于AT&&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过Novell并不成功的商业推广之后,1995年被现在的BEA公司收购。尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近10年之中。BEA公司1995年成立后收购Tuxedo才成为一个真正的中间件厂商,IBM的中间件MQSeries也是90年代的产品,其它许多中间件产品也都是最近几年才成熟起来。国内在中间件领域的起步阶段正是整个世界范围内中间件的初创时期。东方通科技早在1992年就开始中间件的研究与开发,1993年推出第一个产品TongLINK/Q。可以说,在中间件领域国内的起步时间并不比国外晚多少。

__________________________________

╔────────────╗

│╭∩╮ (︶︿︶)╭∩╮ │

│ SHALA 灌 水 专 用 章 │

╚───────────㊣╝

中间件的演变过程

(仲季 2001年07月20日 15:48)

随着计算机技术的发展,IT厂商出于商业和技术利益的考虑,各自产品之间形成了差异,技术在不断进步,但差异却并没有因此减少。计算机用户出于历史原因和降低风险的考虑,必然也无法避免多厂商产品并存的局面。

于是,如何屏蔽不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂性,就成为技术不断进步之后,人们不能不面对的现实问题。

显然,由一个厂商去统一众多产品之间的差异是不可能的,而单独由计算机用户在自己的应用软件中去弥补其中的大片空档,由于技术深度和技术广度的要求,必然也是勉为其难。于是,中间件应运而生。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。

在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样

性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。这些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。

__________________________________

╔────────────╗

│╭∩╮ (︶︿︶)╭∩╮ │

│ SHALA 灌 水 专 用 章 │

╚───────────㊣╝

中间件解决什么问题

(仲季 2001年07月20日 15:48)

世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性:

· 缩短应用的开发周期

· 节约应用的开发成本

· 减少系统初期的建设成本

· 降低应用开发的失败率

· 保护已有的投资

· 简化应用集成

· 减少维护费用

· 提高应用的开发质量

· 保证技术进步的连续性

· 增强应用的生命力

具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。

中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。Standish的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济大发展、电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家。

其次,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

__________________________________

╔────────────╗

│╭∩╮ (︶︿︶)╭∩╮ │

│ SHALA 灌 水 专 用 章 │

╚───────────㊣╝

几种中间件

简析通科技五类中间件产品

(作者:杨桦 2000年07月06日 10:35)

从技术上讲,中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

◆采用中间件的十大理由

1庇τ每发:The Standish Group分析了一百个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例,发现了一个有趣的平均百分比,其中,业务逻辑程序、应用逻辑程序仅占总程序量的30%,而基础程序却占了70%!若是以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用开发费用可节省至80%。

2毕低吃诵校好挥惺褂弥屑浼的应用系统,其初期投入的资金及运行费用要比同规模的使用中间件的应用系统多一倍。

3笨发周期:时间限制是所有应用系统开发项目的天敌,而基础软件的开发又是一件极耗时的工作,若使用标准商业中间件则可缩短开发周期50-75%。

4奔跎傧钅靠发风险:The Standish Group对项目失败的定义是:项目中途夭折、费用远远超过预算、无法准时完成项目和偏离既定的目标。研究表明,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。而且,企业自己开发内置的基础(中间件)软件是得不偿失的,项目总的开支至少要翻一倍,甚至会十几倍。

5焙侠碓擞米式穑航柚标准的商业中间件,企业可以很容易地在现有或遗留系统之上或之外增加新的功能模块,并将它们与原有系统无缝集合。

6庇τ眉合:依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起。

7毕低澄护:每年维护自我开发的基础(中间件)软件的开支是当初开发费用的15%至25%,每年应用程序的维护开支也还需要当初项目总费用的10%至20%。

8敝柿浚夯于企业自我建造的基础(中间件)软件平台上的应用系统,每增加一个新的模块,就要相应地在基础(中间件)软件之上进行改进。The Standish Group在调研过程中,曾在某个企业中的一个应用系统里,发现了有多达1万7千多个模块接口,而标准的中间件在接口方面都是清晰和规范的,可以有效地保证应用系统质量及减少新旧系统维护开支。

9奔际醺镄拢浩笠刀宰晕医ㄔ斓幕础(中间件)软件平台的频繁革新是不容易实现的,也是不实际的,而购买标准的商业中间件,则对技术的发展与变化可以极大地增强其适应性。

10痹黾硬品吸引力:不同的商业中间件提供有不同的功能模型,合理地使用,可以让用户的应用更容易增添新的表现形式与新的服务项目,从而使得企业的应用系统更完善、更出众。

◆几种中间件

1.消息中间件TongLINK/Q

TongLINK/Q是面向消息的中间件。它的主要功能是在不同的网络协议、不同的操作系统和不同的应用程序之间提供可靠的消息传送。TongLINK/Q提供一个简单易用、高效可靠的分布式应用开发和运行平台,也提供一个分布式应用管理平台。它通过事件代理机制,为信息的订阅和发布提供一种简便的开发模型。

TongLINK/Q 体系结构图

TongLINK/Q具有以下功能:

* 高效、可靠、灵活的传输功能

* 事件代理机制

* 高效的请求队列

* 良好的易用性和可管理性

* 支持多种开发工具

* 多平台支持

2.交易中间件TongEASY

TongEASY是面向交易处理的中间件。它负责正确传递交易,对交易完整性进行管理,调度应用程序的运行,保证整个系统运行的高效性。根据X/Open DTP 模型,本地交易的管理由数据库系统来完成,交易中间件主要完成分布式计算环境下交易的监控和管理。数据库虽然在本地交易管理的功能已经很强大,但透过一个广域网进行分布式交易管理并不是数据库的强项,特别是一笔交易涉及到异构数据库时更是如此。TongEASY把自己的交易管理功能和数据库的交易管理功能有机地结合在一起,实现对分布式交易的全局管理。

TongEASY体系结构图

3.对象中间件TongBroker

TongBroker是新一代面向对象中间件产品,符合分布对象标准规范CORBA2.x。它类似于软总线,产品解决面向对象、数据一致性、应用集成等关键任务的需求。TongBroker继承了东方通科技现有中间件产品TongLINK/Q和TongEASY的主要优点,对其他对象产品、传统应用及其相应的应用环境具有良好的包容性。它提供了高效的分布对象计算平台,对企业关键业务有良好的支持,符合国际主流标准,支持Internet应用,具有高效的应用管理功能,同时也具有良好的系统伸缩性、优良的互操作性和应用集成能力。

产品组成:

TongBroker体系结构图

4.安全平台TongSEC

安全平台TongSEC是以公钥基础设施(PKI)为核心、建立在一系列相关国际安全标准之上的一个开放式应用开发平台。它向上为应用系统提供开发接口,向下提供统一的密码算法接口及各种IC卡、安全芯片等设备的驱动接口。基于安全平台,TongSEC可以开发、构造各种安全产品或具有安全机制的用户应用系统,如:用于文件加密的安全工具、安全网、公证系统(CA)、虚拟专网(VPN)等。如下图所示:

TongSEC是以PKI为基础的安全产品,组件包括:

* TongSEC/PKI

* TongSEC/LDAP

* TongSEC/CARD

* TongSEC/MAIL

* TongSEC/FILE

5.通用代理业务平台ezBanker

ezBanker采用Client/Server结构,基于中间件TongLINK/Q和TongEASY设计,是针对银行代理业务的平台类软件。这里所说的代理业务,包括银行代收电话费、水电费、税费、交通罚款等,具有业务品种多、客户面广、数据量大、相对独立于银行传统业务的特点。

ezBanker采用模块化设计,具有很强的通用性、兼容性和可扩充性,使用户不用经过烦琐的编程,便能够方便地通过选单配置生成各种代理业务品种,以适应各行业的需要。ezBanker独立于银行的现有业务系统,通过接口方式访问银行主机系统。

ezBanker的银行业务系统示意图

产品特点:

* 统一使用接口,模块化结构

* 兼容性、通用性、易操作性

* 安全性、可扩充性

__________________________________

╔────────────╗

│╭∩╮ (︶︿︶)╭∩╮ │

│ SHALA 灌 水 专 用 章 │

点评主流中间件技术平台z

转过来的 中间件只接触过corba 其它没有接触 欢迎各位发表一下自己观点

conquerli(转载自天极网)

引言

软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的"基于中间件的软件开发"(CBSD,Component Based Sortware Development)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。为此国风外对于这一技术的研究正在不断深入,同时大型的软件公司(例如sun,microsoft)及软件组织机构(OMG)都推出了支持中间件技术的软件平台。面对高深的中间件技术和繁多的软件平台,很多人感到很茫然和无从下手,本文简单介绍了中间件技术的发展和特点,重点阐述和比较了三大主流中间件技术平台,使读者对中间件技术有个全面的了解。

1 中间件技术的概念及发展

顾名思义,中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。

应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。以前的计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。网络出现后,产生了Client/Server的计算服务模式,多个客户端可以共享数据库服务器和打印服务器等等。随着网络的更进一步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。在这种情况下,Client/Server模式的局限性也就暴露出来了,于是中间件应运而生。中间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。

__________________________________

找我的人到这里

/

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

考察当前主流的分布计算技术平台,主要有OMG的CORBA、Sun的J2EE和Microsoft

DNA 2000。它们都是支持服务器端中间件技术开发的平台,但都有其各自的特点,将分别阐述如下。

2.1 OMG的CORBA

CORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。

CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的"软总线";在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。目前,CORBA兼容的分布计算产品层出不穷,其中有中间件厂商的ORB产品,如BEAM3,IBM Component Broker,有分布对象厂商推出的产品,如IONAObix和OOCObacus等.

CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA构件模型(CORBA Component Model)。

Internet集成特性包括了针对IIOP传输的防火墙(Firewall)和可内部操作的定义了URL命名格式的命名服务(Naming Service)。

服务质量控制包括能够具有质量控制的异步消息服务,一组针对嵌入系统的CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。

CORBA CCM(CORBA Component Model)技术,是在支持POA的CORBA规范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。CORBA构件模型,是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范,它主要包括如下三项内容:

a.抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构;

b.构件容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成;

c.构件的配置和打包规范,CCM使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于XML的文档内容标准。

总之,CORBA的特点是大而全,互操作性和开放性非常好。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,

而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。

2.2 Sun的J2EE

为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术及相关的J2EE规范,J2EE的目标是:提供平台无关的、可移植的、支持并发访问和安全的,完全基于Java的开发服务器端中间件的标准。

在J2EE中,Sun给出了完整的基于Java语言开发面向企业分布应用规范,其中,在分布式互操作协议上,J2EE同时支持RMI和IIOP,而在服务器端分布式应用的构造形式,则包括了Java Servlet、JSP(Java Server Page)、EJB等多种形式,以支持不同的业务需求,而且Java应用程序具有"Write once,run anywhere"的特性,使得J2EE技术在发布计算领域得到了快速发展。

J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然DNA 2000也一样,但最大的区别是DNA 2000是一个产品,J2EE是一个规范,不同的厂家可以实现自己的符合J2EE规范的产品,J2EE规范,是众多厂家参与制定的,它不为Sun所独有,而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术。

EJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。SunEJB技术是在Java Bean本地构件基础上,发展的面向服务器端分布应用构件技术。它基于Java语言,提供了基于Java二进制字节代码的重用方式。EJB给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的标准规范内容。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应用成为可能。从企业应用多层结构的角度,EJB是业务逻辑层的中间件技术,与JavaBeans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象之间的通讯手段。

从Internet技术应用的角度,EJB和Servlet,JSP一起成为新一代应用服务器的技术标准,EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。

J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java开发构件,能够做到"Write once,run anywhere",开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去。

__________________________________

找我的人到这里

/

2.3 Microsoft DNA 2000

Microsoft DNA 2000(Distributed interNet Applications)是Microsoft在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造Back Office系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。

在服务器端,DNA 2000提供了ASP、COM、Cluster等的应用支持。目前,DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平台厂商,因此DNA 2000技术得到了底层操作系统平台的强大支持;另一方面,由于Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中,DNA 2000得到了众多应用开发商的采用和支持。

DNA 2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DNA使得开发可以基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。

以Microsoft为首的DCOM/COM/COM+阵营,从DDE,OLE到ActiveX等,提供了中间件开发的基础,如VC,VB,Delphi等都支持DCOM,包括OLE DB在内新的数据库存取技术,随着Windows2000的发布,Microsoft的DCOM/COM/COM+技术,在DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。首先,DCOM/COM/COM+的构件仍然采用普通的COM(Component Object Model)模型。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务,但是随着Microsoft服务器操作系统NT和DCOM的发布,COM通过底层的远程支持使得构件技术延伸到了分布应用领域。DCOM/COM/COM+更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过COM+的相关服务设施,如负载均衡、内存数据库、对象池、构件管理与配置等等,DCOM/COM/COM+将COM、DCOM、MTS的功能有机地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且,DNA2000是单一厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发工具,这比组合多家开发工具更有吸引力。

但是它的不足是依赖于Microsoft的操作系统平台,因而在其它开发系统平台(如Unix、Linux)上不能发挥作用。

__________________________________

找我的人到这里

/

3 相关性比较分析

目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布式构件,即CORBA CCM(CORBA Component Model)技术、SUN的EJB(Enterprise JavaBean)技术

和DNA 2000中的COM/DCOM/COM+技术。

对于以上三个分布计算平台,本文采用业界常用的做法从以下三个方面进行分析:

集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布在不同机器平台和操作系统上、采用不同的语言或者开发工具生成的各类商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力;

可用性:要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须是成熟的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外,由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据库技术紧密集成;

可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用性,最大程度地保护企业的投资。

下表从集成性,可用性,可扩展性三个方面,给出了上述三种主流分布计算平台的比较结果。

*0.7) {d=true; =*0.7; ='Click here to

open new windownCTRL+Mouse wheel to zoom in/out';}" onmousewheel="return

imgzoom(this);">

虽然这三种平台因为其形成的历史背景和商业背景有所不同,各自有自己的侧重和特点,其实在它们之间也有很大的相通性和互补性。例如,EJB提供了一个概念清晰、结构紧凑的分布计算模型和构件互操作的方法,为构件应用开发提供了相当的灵活性。但由于它还处于发展初期,因此其形态很难界定。CORBA CCM是一种集成技术,而不是编程技术。它提供了对各种功能模块进行构件化处理并将它们捆绑在一起的粘合剂。EJB和CORBA在很大的程度是可以看作为互补的。这个适应WEB应用的发展要求,许多厂商多非常重视促进EJB和CORBA技术的结合,将来RMI可能建立在IIOP之上。CORBA不只是对象请求代理ORB,也是一个非常完整的分布式对象平台。CORBA可以扩展EJB在网络、语言、组件边界、操作系统中的各种应用。目前许多平台都能实现EJB构件和CORBA构件的互操作。同EJB和CORBA之间相互之间方便的互操作性相比,DOCM和CORBA之间的互操作性要相对复杂些,虽然DCOM和CORBA极其类似。DOCM的接口指针大体相当于CORBA的对象引用。为了实现CORBA和DCOM的互操作,OMG在CORBA3。0的规范中,加入了有关的CORBA和DCOM互操作的实现规范,并提供了接口方法。因为商业利益的原因,在EJB和DCOM之间基本没有提供互操作方法。

__________________________________

找我的人到这里

/

执行 D:simpapp>;tmloadcf -y ubbsimple

CMDTUX_CAT:866: ERROR: tmloadcf: Severe error found. Stop syntax checking.

环境:WIN2000 TUXEDO8.1

环境变量TUXDIR,APPDIR,TUXCO

D:simpapp>;tmboot -y

tmboot: internal error: CMDTUX_CAT:754: ERROR: error processing configuration fi

le

请高手支招,谢谢


本文标签: 中间件 应用 技术