《软件中间件技术unit2》由会员分享,可在线阅读,更多相关《软件中间件技术unit2(178页珍藏版)》请在金锄头文库上搜索。
1、,第二章 中间件技术简介,中间件技术简介 引言,中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,即中间件=平台通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。,中间件技术简介 引言,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大
2、减少了技术上的负担。中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。,中间件技术简介 引言,中间件具有标准的程序接口和协议,可 以实现不同硬件和操作系统平台上的数据共 享和应用互操作。在具体实现上,中间件是 一个用API(Application Programming Interface,应用程序接口)定义的分布式软 件管理框架,具有强大的通信能力和良好的 可扩展性。,中间件技术简介 引言,中间件技术简介 引言,中间件的工作机制如下: 客户端上的应用程序需要从网络中某个节点 处获取一定的数据或者服务,这些数据和服务可
3、能 处于一个运行着和客户端不同的操作系统的服务器 上,客户/服务器应用程序中负责查找数据的那一 部分只要通过调用中间件API访问一个中间件系 统,由中间件完成到网络中查找目标数据源或者服 务的任务,进而传输客户请求,重组答复信息,最 后将结果送回给应用程序。,中间件技术简介,中间件的发展历程,中间件分类,对象中间件,对象中间件技术COM+,对象中间件技术CORBA,点评主流中间件技术平台,中国中间件市场发展趋势与预测,中间件的发展历程 早期,对于中间件的早期需求产生于同行业公司之间的通信.(20世纪60年代) 金融业之间的国际货币划拨需要的SWIFT(Society for Worldwide
4、 Interbank Financial Telecommunication,全世界银行间金融电信学会) 航空工业需要的IATA(International Air Transport Association,国际航空运输协会) 航空公司已经拥有多节点网络,中间件的发展历程 早期,(20世纪70年代) 大多数主要的IT硬件商推出了“网络体系结构”,以支持分布式计算机的大型网络。 IBM(系统网络体系结构) Sperry(分布式通信体系结构) Burroughs(网络体系结构) DEC(分布式网络体系结构) 这些产品为程序提供了发送和接收消息的功能,还有一些基础的服务。(文件传输、远程打印、终端
5、传输、远程文件访问),中间件的发展历程 早期,为了使一个组织使用多个商家的IT产品成为可能,开放系统运动应运而生。(实现同样的标准) 电气接口(RS 232) 网络协议(X.25) 国际标准化组织(International Organization for Standardization,ISO) OSI(Open System Interconnect,开放系统互连) 系列标准.,中间件的发展历程 早期,最流行的是OSI基本参考模型,即著名的七层模型(1980.12)。好几年以后才被正式认可。(太慢/太复杂),中间件的发展历程 早期,Unix诞生于 1969年,是贝尔实验室员工Ken Th
6、ompson的个人项目。由于贝尔实验室是AT&T(美国电话电报公司)的下属机构,所以Unix的版权归AT&T所有。 加州大学伯克利分校得到源码后,为Unix添加了许多功能。然后在1979年,推出了一个自家的Unix版本,取名为Berkeley Software Distribution(伯克利软件套件),简称BSD。,中间件的发展历程 早期,UNIX的特点: 十分有价值意识:便宜; 提供产品无限制:不断地修补该OS。 以至当时UNIX有许多不同的版本。 (Berkeley版本和AT&T版本),中间件的发展历程 早期,TCP/IP伴随UNIX产生。 TCP/IP是为美国的军事应用于20世纪70年
7、代中期开发的,在1983年部署于ARPAnet。军事的影响力和财力是TCP/IP成功的关键。 1983年ARPAnet分解为一个军事和一个非军事网络。非军事网络是由学术机构和研究机构组成的,UNIX在其中居于统治地位。,中间件的发展历程 早期,几年以后, ARPAnet演化为互联网(Internet)。互联网的爆炸(很大程度上是由Web引起的)已使得TCP/IP成了主导的网络互联标准。 TCP/IP是一组标准。 IP(Internet Protocol,网络协议)是网络标准,它确保消息可以从一台机器发送到另一台机器。 TCP(Transmission Control Protocol,传输控制
8、协议)是程序之间通过IP通信的会话标准。,中间件的发展历程 互联网的应用,互联网是人类的一次革命,没有任何厂商能够垄断这一技术。在IT界,互联网改变了许多东西。 它加速了TCP/IP作为一个通用网络标准的统治地位; 它导致了工作站上大量自由互联网软件发展; 它激发“瘦”客户的概念; 它产生了一种新风格(即HTML、XML和SOAP等); 它改变了我们对安全性的认识; 它把我们从特定的终端有特定的功用的观念中解放出来;,中间件的发展历程 互联网的应用,在IT界,互联网改变了许多东西。 它导致了集中式计算机应用的回归; 它使我们更好地认识到目录的作用,特别是DNS(Domain Name Serv
9、er,域名服务器)的作用是把Web(即URL)名称翻译成网络(即IP)地址; 它促进了企业网(intranet)和外部网(extranet)的成长。 从某种程度上讲,它使人们意识到一个有效的解决方案未必是复杂的。,中间件的发展历程 互联网的应用,互联网应用与传统应用的不同主要有四点: 用户发出指令。 键入命令;链接、返回命令、个人收藏夹以及显示的URL地址 设备(显示器,移动设备,连接介质)。 识别用户(网络地址)DHCP,动态主机配置协议(Dynamic Host Configuration Protocol) 安全性。,中间件分类 中间件的要素,对于一个完整的解决方案来说,需要考虑至少8个
10、要素: 通信链路 中间件协议 应用程序的编程接口(API) 一个公共的数据格式 服务器处理控制 命名/目录服务 安全性 管理,中间件的要素 通信链路,通信链路(Link)。 多数中间件被限制使用一种或几种网络标准,现行的主要标准是TCP/IP和SNA(Systems Network Architecture ,系统网络体系结构 )。,中间件的要素 中间件协议,2. 中间件协议。 常称为“Wire Protocol”(线路协议)。该协议定义了一些标准,这些准则使两个过程有效地通信成为可能。中间件协议像所有协议一样,被定义为: 在通信链路上(Link)的消息格式 在每个终端上实体状态的传输框图 中
11、间件的一个显著特征是它允许程序通信。,中间件的要素 应用程序的编程接口,3.应用程序的编程接口(API) 一个API是一组过程调用,程序用它来驱动中间件。API之间的巨大的差异是可能存在的: API可以是面向对象的或者是传统的。 对一个特殊的应用来说,API可以被修改(ODBC)或者被编译。 API可以是基于操作的也可以是基于语言的。 例如,CORBA的解释性接口是基于操作的,而远程数据库访问是基于语言的(SQL)。 API调用可以锁住、也可以解释处理中的线程,直到服务器应答。,中间件的要素 一个公共的数据格式,4.一个公共的数据格式 具有某种结构的消息的接收方将消息分解为单独的字段,并把每个
12、字段的数据的值转换成某种接收者可以理解的东西。发送方和接收方必须清楚地知道消息的结构。不同的机器有不同的数据表示标准,发送方和/或接收方可能需要转换数据的值。多数但不是全部的中间件产品都能够实现这些消息的聚集/分解和数据格式的转换。XML作为一个通用的数据表示标准正被越来越多地使用。,中间件的要素 服务器控制,5.服务器处理控制 服务器进程控制分解成3个主要任务。 进程与线程的控制; 资源管理; 对象管理。,中间件的要素 命名/目录服务,6.命名/目录服务 一个中间件服务器的网络访问点是一个定义网络地址(IP地址)的典型的32位数以及一个允许操作系统将消息发送到正确程序的端口号。命名服务把这些
13、数字映射到我们可以明白的名称。最著名的命名服务是在Internet上使用的DNS(Domain Name Service)。目录服务前进了一步,提供了一个通用的查找功能;一个中间件等价于电话目录,目录服务倾向于成为中间件连接的单独产品。,中间件的要素 安全性,7. 安全性 只有合法用户才允许使用服务器资源,而且当他们连接时,也只能给定有限的有选择的服务。安全渗透到系统的每一部分。加密需要协议层级别的支持,访问控制需要服务器控制功能的支持,授权可能需要一个专门安全管理系统的支持。,中间件的要素 管理,8. 管理 为了对所有这些软件进行操作控制、调试、监控以及配置控制,我们需要一个人机界面。,中间
14、件的特点,中间件具有以下特点: 满足大量应用的需要; 运行于多种硬件和OS(Operating System)平台; 支持分布式计算,提供跨网络、硬件平台和OS平台的透明性的应用或服务的交互功能; 支持标准的协议,支持标准的接口。,中间件的十大优越性,(1)应用开发:从分析了100个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例;业务逻辑程序和应用逻辑程序仅占总程序量的30%,而基础程序占了70%,使用传统意义上的中间件一项就可以节省25%60%的应用开发费用。如是以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用开发费用可节省至80%。,中间件的十大优
15、越性,(2)系统运行:没有使用中间件的应用系统,其初期的资金及运行费用的投入要比同规模的使用中间件的应用系统多一倍。 (3)开发周期:基础软件的开发是一件耗时的工作,若使用标准商业中间件则可缩短开发周期50%75%。 (4)减少项目开发风险:研究表明,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。企业自己开发内置的基础软件是得不偿失的,项目总的开支至少要翻一倍,甚至会十几倍。,中间件的十大优越性,(5)合理运用资金:借助标准的商业中间件,企业可以很容易地在现有或遗留系统之上或之外增加新的功能模块,并将它们与原有系统无缝集合。依靠标准的中间件,可以将老的系统改头换面成新潮的In
16、ternet/Intranet 应用系统。 (6)应用集合:依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起进行应用集合。,中间件的十大优越性,(7)系统维护:需要一提的是,基础软件的自我开发是要付出很高代价的,此外,每年维护自我开发的基础软件的开支则需要当初开发费用的15%25%,每年应用程序的维护开支也还需要当初项目总费用的10%20%左右。而在一般情况下,购买标准商业中间件每年只需付出产品价格的15%20%的维护费,当然,中间件产品的具体价格要依据产品购买数量及哪一家厂商而定。,中间件的十大优越性,(8)质量:基于企业自我建造的基础软件平台上的应用系统,每增加一个新的模块,就要相应地在基础软件之上进行改动。而标准的中间件在接口方面都是清晰和规范的。标准中间件的规范化模块可以有效地保证应用系统质量及减少新旧系统维护开支。 (9)技术革新:企业对自我建造的基础软件平台的频繁革新是极不容易实现的(不实际的)。而购买标准的商业中间件,则对技术的发展与变化可以放心,中间件厂商会责无旁贷地把握技术方向和进行技术革新。,中间件的十大优越性,(10)增加产