中间件技术概述
- 格式:doc
- 大小:96.00 KB
- 文档页数:19
中间件技术定义:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。
相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。
执行中间件的一个关键途径是信息传递。
通过中间件,应用程序可以工作于多平台或 OS 环境。
中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
中间件特点:•满足大量应用的需要;•运行于多种硬件和OS平台;•支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能;•支持标准的协议;•支持标准的接口。
由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。
基于目的和实现机制的不同,我们将平台分为以下主要几类:•远程过程调用中间件(Remote Procedure Call)•面向消息的中间件(MesSAge-Oriented Middleware)•对象请求代理中间件(object RequeST Brokers)•事务处理监控(Transaction processing monitors)1、远程过程调用远程过程调用是一种广泛使用的分布式应用程序处理方法。
一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。
事实上,一个RPC应用分为两个部分:server和client。
server 提供一个或多个远程过程;client向server发出远程调用。
server和client 可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。
中间件消息通信技术概要一、中间件中间件,就是介于应用系统与系统软件之间的一类软件,它使用系统软件所提供的基础功能,衔接于应用系统的不同部分,能够达到资源共享和功能共享的目的。
消息中间件,是中间件众多产品分类中一个重要部分。
它能够适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。
消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。
二、几种通信技术的比较1、CPI-CCPI-C是一种同步对话通信模式。
参加通信的一方发起一次对话,同时控制信息流动。
数据既可以由发送者传递到接受者,也可以反向流动。
参加通信的两个程序需要跟踪对话的状态,如果异常发生导致连接中断,则需要发送方重建并恢复这次通话。
通信双方既可以处于主从地位,也可以处于对等地位。
也就是说,CPI-C既支持客户端-服务器环境,也支持对等通信方式。
虽然CPI-C在一般情况下是一种同步通信类型,但是在一定环境中,如CIC S,可以通过“临时数据队列”实现一定程度的异步。
TCP/IP,SNA都支持CPI-C。
由于需要应用程序参与错误的检测与恢复,CPI-C的编程接口相当复杂。
2、RPCRPC,即远程过程调用,也是一种同步,对话方式的类型。
一个调用程序向服务器提成申请,该调用被负责通信的转接器发往远端系统。
调用者与被调用者关系是固定的,很难实现对等通信。
与CPI-C一样,通信错误需要应用程序自己维护。
另外在申请服务得到响应之前,服务申请者被阻隔,这不仅是应用的瓶颈所在,更有可能遭受拒绝式服务攻击。
3、MQI(Message Queue Interface)消息队列接口为程序提供了一种异步通信方式。
一个程序以一个队列作为中转与另一个程序相互通信,这个队列向对于该程序而言既可以是本地,也可以是远程。
当程序A与程序B进行通信时,A只需要将消息放入一条与B相通信的队列即可,至于消息何时,以何种协议,何种方式到达程序B与A没有关系。
中间件技术课程标准《中间件技术》是一门关于中间件技术的综合性课程,旨在培养学生掌握中间件技术的理论知识和实践技能。
以下是《中间件技术》课程标准的建议内容:一、课程目标通过本课程的学习,学生应掌握中间件技术的概念、原理和应用,能够理解中间件在分布式系统中的作用,掌握常见中间件产品的使用和配置,具备一定的中间件开发能力。
二、课程内容1. 中间件概述:中间件的概念、发展历程和分类;2. 中间件原理:中间件的通信协议、消息传递机制、服务注册与发现等;3. 中间件产品:常见中间件产品的介绍、安装与配置;4. 中间件应用:中间件在分布式系统中的应用场景、案例分析;5. 中间件开发:中间件开发的基本原理、关键技术和开发工具。
三、课程安排1. 理论教学:介绍中间件的基本概念、原理和应用,通过案例分析加深理解;2. 实验教学:进行中间件产品的安装与配置,以及中间件应用的实践操作;3. 项目实践:学生分组进行项目实践,综合运用所学知识完成一个实际的中间件项目。
四、教学方法1. 讲授法:通过讲授的方式,系统地介绍中间件技术的相关概念、原理和应用;2. 案例法:结合具体案例,分析中间件在实际应用中的优势和存在的问题;3. 实验法:通过实验操作,加深对中间件技术的理解,提高实践操作能力;4. 项目法:通过项目实践,提高学生的实际动手能力和解决实际问题的能力。
五、考核方式1. 平时成绩:根据学生的出勤情况、课堂表现和作业完成情况进行评定;2. 实验成绩:根据学生在实验中的表现和实验报告的完成情况进行评定;3. 项目成绩:根据学生在项目实践中的表现和项目完成情况进行评定;4. 期末考试:通过笔试或机试的方式,考核学生对中间件技术的掌握程度。
六、教学资源1. 教材选择:选用内容丰富、理论和实践相结合的教材,也可以根据需要选用其他优质教材或参考资料。
2. 实验环境:提供中间件实验所需的软件和硬件环境,确保学生能够顺利完成实验操作。
EPC系统中间件技术1、中间件的定义中间件是基础软件的一大类,属于可复用软件的范畴。
中间件处于操作系统软件与用户的应用软件的中间。
在中间件产生以前应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,以及数据分散处理带来的不一致问题、性能和效率、安全等。
这些与用户的业务没有直接关系,但又必须解决,并要耗费大量的时间和精力。
于是,有人提出将应用软件所要面临的共性问题进行提炼、抽取,在操作系统之上在形成一个可复用的部分,供成千上万的应用软件重复使用。
这一技术思想最终构成了中间件这类的软件。
EPC中间件是用来加工和处理来自阅读器的所有信息和事件流的软件,是连接阅读器和企业应用的纽带。
EPC中间件是物联网的神经系统,是一种企业通用管理EPC数据的架构。
它可以安装在商店、本地配送中心、区域甚至全国数据中心,以实现对数据的捕获、监控和传送。
这种分布式结构可以简化物联网的管理,提高运行效率。
下图描述了EPC中间件组件与其他应用程序的通信。
▲EPC中间件组件与其他应用程序通信2、EPC中间件的功能中间件负责管理阅读器和应用软件之间的数据流,使不同的应用软件可以共享数据,为应用软件提升数据的接口(API)的性能,还可以让用户更加方便和容易地应用RFID技术,并使这项技术融入到各种业务应用中。
3、EPC中间件的作用中间件的作用是为处于自己上层的应用软件提供运行和开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
EPC中间件的作用是对标签数据进行过滤、分组和计数,以减少网络系统所发信息的数据量,并防止错误识读、漏读和多读信息。
4、EPC系统的Savant中间件技术当每件产品都加上RFID标签之后,在产品的生产、运输和销售过程中,阅读器将不断收到一连串的产品电子编码。
整个过程中最为重要、同时也是最困难的环节就是传送和管理这些数据。
中间件定义及分类中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。
人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。
按照IDC的分类方法,中间件可分为六类。
1.终端仿真/屏幕转换:用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作;2.数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件;在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,这类中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
3.远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程;4.消息中间件:用来屏蔽掉各种平台及协议之间的特性,实现在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,实现应用程序之间的协同。
这是中间件中唯一不可缺少的,是销售额最大的中间件产品,主要产品有国内东方通科技公司的TongLINK、BEA公司的BEA eLink 、IBM公司的MQSeries等,目前在Windows 2000操作系统中已包含了其部分功能。
5.交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台。
在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。
在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。
一、概述1、中间件的概念随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。
这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应孕而生。
由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精确的定义。
比较流行的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/ 服务器的操作系统之上,管理计算资源和网络通讯。
从中间件的定义可以看出,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网络通讯功能。
2、中间件特点及优势通常意义下,中间件应具有以下的一些特点:满足大量应用的需要;运行于多种硬件和OS平台;支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能;支持标准的协议;支持标准的接口。
程序员通过调用中间件提供的大量API,实现异构环境的通讯,从而屏蔽异构系统中复杂的操作系统和网络协议。
中间件提供客户机与服务器之间的连接服务,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。
对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件技术原理与应用中间件技术是指介于操作系统和应用软件之间的一种软件,它能够提供一系列的服务和功能,帮助应用软件更好地运行和管理。
中间件技术在计算机领域中有着广泛的应用,比如在分布式系统、数据库系统、消息队列系统等方面都扮演着重要的角色。
本文将从中间件技术的原理和应用两个方面来进行阐述。
中间件技术的原理主要包括以下几个方面,首先,中间件技术可以提供统一的接口和协议,使得不同的应用软件能够在不同的操作系统上运行,从而实现了跨平台的能力。
其次,中间件技术可以提供分布式系统的支持,帮助应用软件实现分布式计算和通信,提高了系统的可靠性和性能。
此外,中间件技术还可以提供事务管理和消息队列等功能,帮助应用软件实现数据的一致性和可靠性。
总的来说,中间件技术的原理是通过提供一系列的服务和功能,帮助应用软件更好地运行和管理。
中间件技术的应用主要体现在以下几个方面,首先,中间件技术在分布式系统中有着广泛的应用,比如分布式数据库系统、分布式文件系统等,它可以帮助应用软件实现跨网络的数据访问和共享。
其次,中间件技术在消息队列系统中也有着重要的应用,比如企业级的消息中间件系统,它可以帮助应用软件实现异步通信和解耦,提高了系统的可维护性和扩展性。
此外,中间件技术还在大型系统的集成和管理中有着重要的应用,比如企业应用集成(EAI)系统、企业服务总线(ESB)系统等,它可以帮助不同的应用软件实现集成和协同工作。
总的来说,中间件技术的应用涵盖了分布式系统、消息队列系统、集成系统等多个方面,它在现代计算机系统中有着广泛的应用。
综上所述,中间件技术是一种介于操作系统和应用软件之间的软件,它通过提供一系列的服务和功能,帮助应用软件更好地运行和管理。
中间件技术的原理主要包括统一的接口和协议、分布式系统的支持、事务管理和消息队列等功能。
中间件技术的应用主要体现在分布式系统、消息队列系统、集成系统等多个方面。
可以说,中间件技术在现代计算机系统中有着重要的地位和作用,它为计算机系统的发展和应用提供了强大的支持和保障。
中间件技术与开发指南近年来,随着互联网技术的飞速发展和应用场景的不断拓展,中间件技术越来越受到人们的关注和重视。
在构建大型复杂系统和平台时,中间件技术是不可或缺的一部分。
本文将从中间件技术的概念、特点、应用场景和开发指南等方面对中间件技术进行探讨。
一、中间件技术的概念与特点中间件技术,顾名思义,是处于软件系统之间的一种“软件”,主要用于连接、协调、转换、优化等功能。
它作为软件系统的一种基础设施,提供服务、管理资源和协调各系统之间的交互,对于保证系统的可靠性、可扩展性和灵活性具有重要作用。
中间件技术有多种类型,常见的有消息中间件、分布式缓存中间件、分布式事务中间件、分布式计算中间件、RPC中间件等。
不同类型的中间件技术在不同应用场景中发挥着各自的优势。
但所有中间件技术都具有如下特点:1. 抽象性:中间件技术屏蔽了底层的实现细节,对系统开发者提供了更高层次的抽象。
2. 可移植性:中间件技术通过标准化的接口和协议,提供了跨平台、跨语言的通信方式,从而保证了系统的可移植性。
3. 可靠性:中间件技术通常采用分布式架构,具有高可用、灾备和容错机制,保证了系统的可靠性。
4. 高性能:中间件技术采用了高效的通信和计算机制,具有较佳的性能表现,可以满足对高性能的需求。
二、中间件技术的应用场景中间件技术的应用场景非常广泛,涉及到各种复杂系统和平台的构建。
下面以几个典型的应用场景为例:1. 微服务架构微服务架构是一种较新的软件架构模式,其核心思想是将一个大型的系统拆分成多个小型的服务,每个服务独立运行、独立扩展,并通过中间件技术实现服务之间的通信和协作。
2. 高并发应用在高并发应用场景下,中间件技术可以通过分布式缓存、负载均衡、消息队列等方式实现系统的高性能、高可用和高可扩展性。
例如,分布式缓存中间件如Redis、Memcached等,可以提供高速的数据访问服务,大大缓解了数据库的压力。
3. 分布式系统传统的集中式系统难以满足大规模的系统需求,而分布式系统则是一种可以灵活扩展的系统结构。
中间件技术1中间件的概念在众多关于中间件的定义中,比较普遍接受的是IDC表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源;中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。
IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件是介于操作系统(包括底层通信协议)和各种分布式应用程序之间的一个软件层。
总的作用是建立分布式软件模块之间互操作的机制,屏蔽底层分布式环境的复杂性和异构性,为处于自己上层的应用软件提供运行与开发环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在具体实现上,中间件是一个用应用程序接口定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
中间件在分布式系统中的位置如图1所示。
2中间件的分类随着计算机软件技术的发展,中间件技术也已日渐成熟,并且出现了不同层次、不同类型的中间件产品。
按照IDC分类方法,中间件可分为以下6类:2.1终端仿真/屏幕转换用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作。
适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库的API,以提请直接访问和更新基于服务器的数据源,数据源可以是关系型、非关系型和对象型。
这类中间件大都基于SQL语句,采用同步通讯方式。
此类中间件使应用开发简单化,但如果透过广域网使用,则会带来严重的效率问题,因为在低速网上来回交互SQL 语句会使通讯流量过大,同时对数据压缩、加密带来不便。
2.3远程过程调用中间件RPC机制是早期开发分布式应用时经常采用的一种同步式的请求应答协议。
通过这种协议,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程。
RPC扩展了过程语言中的“功能调用/结果返回”的机制,使得它可以适用于一个远程环境。
由于RPC 机制是同步方式,因而在工作的时候,要求客户方和服务方均能正确工作才能很好地运行,有一方不能工作将导致RPC失败。
物联网中间件技术【正文】一、引言物联网中间件技术是连接物联网设备和应用程序的关键技术之一。
它提供了一种可靠、安全、高效的通信机制,使物联网的各个组件能够相互交互、共享数据和实现智能化操作。
本文将对物联网中间件技术进行详细介绍,并对其各个方面进行细化。
二、物联网中间件的定义和概念⒈物联网中间件的概念物联网中间件是一种位于物联网系统架构中的软件层,负责管理物联网设备和应用程序之间的通信。
它提供了一套通用接口和协议,使得不同类型的设备能够互相交互和共享数据。
⒉物联网中间件的作用和功能- 设备连接管理:物联网中间件提供了设册、发现、连接和管理的功能,可以管理大规模的设备网络。
- 数据传输和通信:物联网中间件支持不同的通信协议,包括物联网专用协议和标准协议,用于设备之间的数据传输和通信。
- 数据处理和分析:物联网中间件可以对设备的数据进行处理和分析,提供实时监测、数据存储和分析报告等功能。
- 安全和权限管理:物联网中间件提供了安全认证、权限控制和数据加密等机制,保障物联网系统的安全性。
三、物联网中间件技术的分类⒈消息队列中间件消息队列中间件是一种基于消息传递的通信模式,它通过消息队列将设备和应用程序解耦,并提供了可靠的消息传递机制。
常见的消息队列中间件包括MQTT、AMQP等。
⒉远程过程调用(RPC)中间件RPC中间件是一种基于函数调用的通信模式,它允许应用程序通过网络调用远程的函数或方法。
RPC中间件可以实现设备和应用程序之间的高效通信,常见的RPC中间件包括gRPC、Thrift等。
⒊数据中心(DC)中间件DC中间件是一种用于管理大规模数据中心的中间件技术,它可以管理分布式的物联网设备和应用程序,并提供高可用、高可靠的数据服务。
常见的DC中间件包括Hadoop、Spark等。
四、物联网中间件技术的应用场景⒈工业物联网工业物联网中间件技术可以实现设备监测、设备管理、生产调度等功能,帮助企业提高生产效率和管理能力。
中间件技术概述李瑞轩华中科技大学计算机学院Overview of Middleware Technology 2006-3-7 2内容概要1. 分布式计算技术发展背景2. 中间件技术基础3. 中间件定义及特点4. 中间件的分类5. 中间件的发展趋势2006-3-7 31. 分布式计算技术发展背景M assivelyparallelprocessorM ultimediaO bject orientedO pen systemN etworks高速、低价和宽频带的数字通讯成熟的网络技术和面向对象技术发展迅速的先进微处理器采用微内核和多线程等技术的现代操作系统几乎完全无序的超大规模的异构网络互连环境M2O2N时代的来临2006-3-7 4分布对象技术应运而生新形式的软件危机升级的绞索开发的噩梦新一代的分布式计算技术分布对象技术=面向对象技术+网络通讯技术面向对象的多层客户/服务器软件开发的革命:产业化、标准化、集约化2006-3-7 5螺旋上升的发展道路分布对象技术传送对象传送请求——取得结果数据典型客户/服务器传送数据PC ——LAN的网络计算框架传送程序主机——终端的集中计算框架2006-3-7 6下一代分布式计算技术与Internet技术结合WWW从Hypertext Web、InteractiveWeb 到Semantic Web丰富的对象资源更有效的对象访问技术智能、主动的Agent技术向智能化、小型化和标准融合的方向发展2006-3-7 7实现分布式计算的技术路线80年代——理想的技术路线:试图在互连的计算机硬件上部署全新的分布式操作系统,全面管理系统中各自独立的计算机,呈现给用户单一的系统视图。
90年代——现实的技术路线:在网络计算平台上部署分布计算环境(也称为中间件),提供开发工具和公共服务,支持分布式应用,实现资源共享和协同工作。
当前人们所说的分布计算技术是指在网络计算平台上开发、部署、管理和维护以资源共享和协同工作为主要应用目标的分布式应用系统。
2006-3-7 8分布计算技术发展的三个阶段有待进一步发展成为建立集成的构架和软组件标准的核心技术提供丰富的分布式系统服务、良好的分布系统管理和典型的分布系统应用成果面向Agent的拟人化交互环境将面向对象技术应用于分布计算运用传统的计算概念和设施关键技术特点自主的多Agent模型面向对象的多层C/S或B/S模型体系结构经典C/S计算模型智能化的协同工作异构环境下的应用互操作信息共享面向的主要问题第一代第二代第三代2006-3-7 92. 中间件技术基础网络通讯:分布式计算环境的基础是计算机之间的通讯同步和异步传输:这两种模式的区别通常决定了某种协议是不是适合某一特定任务客户端,服务端和对等端:指正在运行着的线程API—应用编程接口:这些低层组件为底层的通讯模块提供了一定层次的抽象,同时也将更高层次的地址标识和数据转换等功能留给高一层的服务模块。
共同的基础2006-3-7 10共同的基础(续)消息机制:消息机制就要求服务器上必须要有一层中间处理层来确定消息的路由,以便让它到达正确的接收者处,因为基于消息的通讯能够很好地和中间层的路由配合,消息机制是一种天生的异步机制。
基于消息的结构也可以采用同步模式。
一般来讲,在这种模式中,服务器/路由器将消息直接传递给处理程序,然后由处理程序回传处理结果给服务器,再由服务器传给客户端远程过程调用:各种RPC执行协议都朝着一个共同的目标在发展,那就是用隐藏执行细节来简化进程间通信的复杂性2006-3-7 11共同的基础(续)数据库协议:X/Open调用级接口标准(X/OpenC all L evel I nterface)[CLI 96]使用结构化查询语言为关系数据库管理系统提供了一个标准的接口微软的ODBC接口:目前CLI标准在实际应用中的最好典范Sun的JDBC接口:CLI标准在JAVA应用程序中的实际表现形式2006-3-7 12分布环境的异构性硬件平台的异构性:IBM主机、UNIX工作站、PC机、机器人等操作系统的异构性:各种版本的UNIX、Microsoft Windows、IBM OS/2、Macintosh等数据管理的异构性: 各种版本的数据库系统、文件系统,如Oracle 、Sybase 、FoxPro 、Excel 、HTML 、XML等开发语言的异构性:C、C++、Java、C#、Delphi等网络平台的异构性:Ethernet、FDDI、ATM和TCP/IP、IPX/SPX等2006-3-7 13Client/Server计算模型C/S模型带来应用程序结构的变化,即需要将应用程序分为客户机程序和服务器程序,以此来降低应用程序的复杂性,C/S双方仍然是整体性的,对其维护和升级代价较大传统的C/S技术缺乏即插即用功能在常规的分布式客户/服务器应用中,客户进程不可能直接访问异地服务进程中的常规对象2006-3-7 14B/S模式--C/S模式的发展HTTPAPI中间件客户机浏览器Web服务器数据服务器2006-3-7 15B/S模式特点B/S模式事实上是一种终端/主机模式和客户机/ 服务器模式在Web上的结合对瘦客户机提供支持减轻了系统维护与升级的成本与工作量,使用户整体拥有成本大大降低解决了各种跨平台的分布式应用易于集成企业信息简单易用,培训负担减轻系统建立快捷经济2006-3-7 163. 中间件(Middleware)产生背景C/S模式飞速增长,但由各种不同厂商的产品导致多种应用模式并存,系统效率过低,传输不可靠,数据加密,开发周期过长分布环境的异构性不能靠传统的系统软件(如操作系统、数据库等)、工具软件(如CASE 工具、4GL等)来解决,人们便想用一种另类的软件来解决2006-3-7 17中间件的定义定义:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯该定义的内涵:中间件应实现应用之间的互连和互操作针对不同的应用领域,对中间件又有各种不同的要求2006-3-7 18中间件的定义(续)中间件是在中间处于应用软件和系统软件之间的一类软件,而非一种软件或独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件或者是客户方与服务方之间的连接件或者是需要进行二次开发的中间产品2006-3-7 19中间件的定义(续)中间件=平台+通信人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来中间件和平台可能会互相转化和互相渗透2006-3-7 20中间件在三层C/S结构中的应用GUI 应用逻辑数据库或其他资源客户端应用服务器数据服务器中间件中间件中间件中间件API中间件APISQL 等网络2006-3-7 21中间件的特点满足大量的企业应用需要必须有多种版本在不同平台上运行支持分布对象计算,屏蔽网络和系统的分布复杂性支持标准的协议支持标准的API2006-3-7 224. 中间件的分类终端仿真/屏幕转换用以实现客户机图形用户接口(GUI)与已有的字符接口方式的服务器应用程序之间的互操作2006-3-7 23中间件的分类(续)数据访问中间件适用于应用程序与数据源之间的互操作模型客户端使用面向数据库的API,以提请直接访问和更新基于服务器的数据源,例如JDBC数据源可以是关系型、非关系型和对象型,这类中间件大都基于SQL语句,采用同步通讯方式此类中间件使应用开发简单,但如果是透过广域网使用,会带来严重的效率问题,因为在低速网上来回交互SQL语句会使通信流量过大,同时对数据压缩、加密带来不便,因此不适用于互联网应用处理2006-3-7 24中间件的分类(续)远程过程调用中间件远程过程调用(RPC)机制是早期开发分布式应用时经常采用的一种同步式对话(请求/应答)协议通过这种协议,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程RPC扩展了过程语言中的“功能调用/结果返回”的机制,使得它可以适用于一个远程环境适合小型的、简单的不需采用异步通信方式的应用只能建立分布式应用间的静态连接关系。
即一旦将程序和Client/Server端的应用编译连接在一起,则客户端的功能就不能再改变2006-3-7 25RPC方式一般流程中间件的分类(续)调用进程远程进程Client StubRPC APIServer StubRPC API分布计算环境 DCE(RPC 运行支持库)参数结果返回结果2006-3-7 26中间件的分类(续)消息中间件(MOM:M iddleware O f M essage)基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中间件通知服务方应该进行何种操作。
事件可以是一个请求,也可以只是一种警示,警示到来后,即可进行某种处理,但不需等待应答。
使用消息中间件编程采用的是消息中间件的API,可以很好地扩展到不同的操作系统和硬件平台上。
消息中间件的核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息发送。
消息中间件可以既支持同步方式,又支持异步方式,实际上它是一种点到点的机制,因而可以很好地适用于面向对象的编程方式。
异步中间件技术比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常传输。
异步中间件技术可以分为两类:广播方式和发布/订阅方式。
2006-3-7 27中间件的分类(续)交易中间件,也称事务处理监控(TP Monitor)中间件交易中间件是专门针对联机交易处理系统而设计的。
联机交易处理系统需要处理大量并发进程,可以通过采用一个交易中间件来简化工作的难度交易中间件就是一组程序模块,用以大大减少开发一个联机交易处理系统所需的编程量交易中间件理论上相对成熟,功能和性能界定清晰,基本上适用于联机交易系统,如银行业务系统、定票系统等。
尽管交易信息也是消息,交易中间件也是基于消息的传输,也可支持同步和异步方式,但与消息中间件的定位差距较大,属于一种较专用的中间件2006-3-7 28中间件的分类(续)交易中间件(续)X/OPEN 组织专门定义了分布式交易处理的标准及参考模型,把一个联机交易系统划分成资源管理(RM)、交易管理(TM)和应用(AP)三部分,定义了应用程序、交易管理器、多个资源管理器是如何协同工作的资源管理器是指数据库和文件系统,交易管理器可归入交易中间件。
交易中间件管理由应用声明和提交的交易组成,并通过两阶段提交协议等方式保证分布式交易的完整性、控制并发、实现交易路由和负载均衡2006-3-7 29中间件的分类(续)对象中间件面向对象的中间件提供一个标准的组件框架,能使不同的厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。