第0章 中间件概述

《第0章 中间件概述》由会员分享,可在线阅读,更多相关《第0章 中间件概述(86页珍藏版)》请在文档大全上搜索。
1、操作系统操作系统数据库管理系统数据库管理系统中间件中间件人们必须人们必须 不断地不断地提取提取 软件的共性成份软件的共性成份屏蔽屏蔽 系统低层的复杂度系统低层的复杂度 从而从而 在高层保持复杂度的相对稳定在高层保持复杂度的相对稳定 发展动因发展动因不断提取共性!不断提取共性!沉淀成为一层软件沉淀成为一层软件保持应用软件的复杂性相对稳定保持应用软件的复杂性相对稳定应用软件应用软件应用软件应用软件操作系统操作系统DBMS操作系统操作系统应用软件应用软件中间件中间件操作系统操作系统应用软件应用软件DBMS初始状态:硬件初始状态:硬件如何提高算法适应性?如何提高算法适应性?分离出了程序分离出了程序(汇
2、编汇编=)程序程序硬件硬件硬件硬件初始状态:硬件初始状态:硬件 + 程序程序程序的共性(稳定)成分:计算资源管理程序的共性(稳定)成分:计算资源管理操作系统操作系统应用程序应用程序产生了:产生了:分离出了:分离出了:软件软件硬件硬件操作系统操作系统初始状态:硬件初始状态:硬件 + 操作系统操作系统 + 应用程序应用程序程序的共性(稳定)成分:数据管理程序的共性(稳定)成分:数据管理产生了:数据库管理系统产生了:数据库管理系统分离出了:应用软件分离出了:应用软件操作系统操作系统 操作系统操作系统 数据存储文件数据存储文件 数据库管理系统数据库管理系统 应用程序应用程序 程序的共性(稳定)成分:网
3、络资源管理程序的共性(稳定)成分:网络资源管理产生了:中间件(应用服务器)产生了:中间件(应用服务器)分离出了:业务逻辑(构件)分离出了:业务逻辑(构件)初始状态:硬件初始状态:硬件 + 操作系统操作系统 + 数据库管理系统数据库管理系统 +应用软件应用软件中间件的发展与互联网(中间件的发展与互联网(Internet)的发展)的发展有着非常密切的关系有着非常密切的关系可以说可以说:是软件运行环境从个人机向互联网的转变是软件运行环境从个人机向互联网的转变催生了中间件催生了中间件硬件环境、用户环境等与软件进行交互的各种实体硬件环境、用户环境等与软件进行交互的各种实体 l网络环境带来的挑战软件之间的
4、通信问题不同资源的异构问题资源在网络上的定位问题系统总体的可靠性问题安全问题维护问题 硬件环境:硬件环境:用户环境:用户环境:用户环境与人们运行软件的目的直接相关用户环境与人们运行软件的目的直接相关软件最初以科学计算为主要目标软件最初以科学计算为主要目标与用户的交互比较少与用户的交互比较少随着软件应用范围的扩展随着软件应用范围的扩展多数用户不是用软件来进行某种计算多数用户不是用软件来进行某种计算而是将其作为一些日常工作与生活的工具而是将其作为一些日常工作与生活的工具尤其是网络出现以后:尤其是网络出现以后:软件正在逐步成为人们协作的工具软件正在逐步成为人们协作的工具用户与软件交互量大用户与软件交
5、互量大不同的交互之间互相有影响不同的交互之间互相有影响应用目的与应用方式的变化应用目的与应用方式的变化 必然带来软件技术的新发展必然带来软件技术的新发展哑终端哑终端链接链接大型主机大型主机负载大负载大应用程序,数据库应用程序,数据库客户客户服务器服务器TCP/IP应用程序应用程序通信软件通信软件数据库数据库通信软件通信软件充分利用资源充分利用资源降低主机负载降低主机负载发布、维护复杂;发布、维护复杂;编写通信编写通信的代码复杂;自己开发安全的代码复杂;自己开发安全软件软件程序的共性(稳定)成分:网络资源管理程序的共性(稳定)成分:网络资源管理产生了:应用服务器中间件产生了:应用服务器中间件分离
6、出了:业务逻辑(构件)分离出了:业务逻辑(构件)初始状态:硬件初始状态:硬件 + 操作系统操作系统 + 数据库管理系统数据库管理系统 +应用软件应用软件中间件之于中间件之于底层网络编程,如同数据库之于文件系统底层网络编程,如同数据库之于文件系统瘦客户瘦客户业务处理服务器业务处理服务器数据服务器数据服务器中间层中间层/ /易于扩展易于扩展三层三层(three-tier)/多层多层(multi-tier)结构结构RPCRPC应用应用应用应用中间件中间件(分布式系统服务)(分布式系统服务)硬件硬件操作系统操作系统硬件硬件操作系统操作系统中间件与操作系统、应用系统之间的纵向关系中间件与操作系统、应用系
7、统之间的纵向关系 硬件硬件 应用系统应用系统 操作系统 操作系统 操作系统 硬件硬件 硬件硬件 中间件 中间件 中间件 应用 应用 应用 系统系统 软件软件 中间件与应用系统之间的横向关系中间件与应用系统之间的横向关系另外一种另外一种“中间中间”视角:视角:中间件技术发展到今天其产品形态还没有达到 操作系统、数据库管理系统 那样的成熟程度内涵与外延目前都还不是很清晰JVM是不是中间件?浏览器是不是中间件?Web Server 是不是开发平台是不是?操作系统、数据库管理系统、中间件的类比操作系统、数据库管理系统、中间件的类比 操作系统操作系统数据库管理系统数据库管理系统中间件中间件产生动因产生动
8、因硬件过于复杂硬件过于复杂数据操作过于复杂数据操作过于复杂网络环境过于复杂网络环境过于复杂主要作用主要作用管理各种资源管理各种资源组织各类数据组织各类数据支持不同的交互模式支持不同的交互模式主要理论基础主要理论基础各种调度算法各种调度算法各种数据模型各种数据模型各种协议、接口定义方各种协议、接口定义方式式产品形态产品形态不同的操作系统功不同的操作系统功能类似能类似不同的数据库管理系不同的数据库管理系统功能类似,但类统功能类似,但类型比操作系统多型比操作系统多存在大量不同种类中间存在大量不同种类中间件产品,它们的功件产品,它们的功能差别较大能差别较大主要作用主要作用n用来屏蔽网络硬件平台的差异性
9、和操作系用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。比较平滑地运行于不同平台上。n同时在负载平衡、连接管理和调度方面起同时在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。大幅提升,满足了关键业务的需求。中间件的作用中间件的作用操作系统的重要性一般人都能感觉到操作系统的重要性一般人都能感觉到:所有的计算机都需要安装操作系统后才能运行所有的计算机都需要安装操作系统后才能运行所有的应用软件都运行在操作系统之上所有的应用软件
10、都运行在操作系统之上熟悉数据库管理系统的人则要少得多熟悉数据库管理系统的人则要少得多:面向个人用户的应用软件一般不涉及大量的数据面向个人用户的应用软件一般不涉及大量的数据不需要数据库管理系统的支持不需要数据库管理系统的支持对于中间件对于中间件:一般情况下许多用户根本感觉不到中间件的存在一般情况下许多用户根本感觉不到中间件的存在原因:原因:1)用户一般只关心应用软件,因为它直接为用户提供支持;)用户一般只关心应用软件,因为它直接为用户提供支持;2)在网络环境中,中间件通常在服务器端发挥作用。)在网络环境中,中间件通常在服务器端发挥作用。 银行账户系统银行账户系统 营业员营业员 电脑电脑 浏览器浏
11、览器 民航票务系统民航票务系统 网上支付系统网上支付系统 自动取款机自动取款机 中间件中间件 中间件在具体系统中的作用:银行系统的例子中间件在具体系统中的作用:银行系统的例子 中间件主要是用来中间件主要是用来支持网络环境中支持网络环境中软件实体软件实体之间的之间的有效有效交互交互“软件实体”是具有不同特征的软件模块 它们通常是具有不同粒度的软件构造模块“有效”是指所支持的实体之间的交互必须具有可靠、安全、快速等特点交互模式 + 交互质量不同特征的模块:过程、对象、构件与服务等等它们不仅是构造软件系统的不同粒度的模块也通常在运行阶段表现出不同的性质网络环境中 它们之间的交互也分别需要不同类型的中