您的位置首页百科快答

什么是中间件?

什么是中间件?

的有关信息介绍如下:

什么是中间件?

这其实是一个比较虚的概念。广义的中间件范围很广。起沟通作用的都可以认为是中间件。甚至ODBC这样的东西你也可以认为是中间件。

现在用的比较多的中间件应该是BEA公司的tuxedo和IBM公司的weblogic?(好象是这个东西),我接触过一点tuxedo。oracle、sun和ms好象也有类似产品,不过用的人很少。tuxedo是这个领域的领导者,不过IBM正在追赶并有可能超过,毕竟,IBM就是IBM。

tuxedo这东西我们用来做数据库和前台应用之间的中间件。

使用了中间件之后,以前直接连接的前台应用程序和数据库之前就多了个tuxedo,现在前台程序把请求发给tuxedo,tuxedo再把请求发给数据库,数据库处理结束之后把结果返回tuxedo,tuxedo再把结果送回给前台。这样一搞,表面看复杂了很多。不过带来一些好处,比如:

安全。tuxedo的服务是定制的,这就有点象是存贮过程,因为应用程序无法直接接到数据库而只能通过tuxedo,所以应用程序无法做tuxedo服务之外的事情。你把你的应用逻辑写在tuxedo中,你就可以保证你的数据是安全的。

性能。有些数据库性能不好,比如oracle一个连接就是好多M,连接数一多,机器内存就没了,有了tuxedo之后,tuxedo负责连接数据库,连接数比较少,tuxedo可以用排队的方式来处理这些数据库请求,这样提高了性能。中间件的高级应用好象还可以把数据库分布在不同的机器上,由tuxedo动态分配前、后台的请求和处理,把它们搞在不同的机器上,所以你用了中间件之后如果后台数据库处理来不及,可以加一台机器,前台请求太多(比如网站)可以加多前台机器。你可以灵活的调整性能。

方便移植。业务逻辑做到了中间件里之后,你更换后台数据库、改变前台的开发工具什么的移植工作较小,因为中间件的工作改动不大。

应用服务器做的人好象就更多了。而且应用服务器这东西和中间件类似(逻辑上)我觉得它应用也是中间件的一种,不过大家一般说中间件都是指的狭义的中间件,就是tuxedo这些。

中间件应用领域很广的。简直大一点的应用都可以用到中间件。国内也有一些开发商自己写中间件,不过好象是自己用,没形成市场。

针对这个问题,应该说还没有一个标准的定义,或者说还没有完全取得学术界和产业界的共识。顾名思义,中间件就是处于中间的软件。但这种不是从功能,或者特性来定义的概念,而是用“位置”来定义的名字,就容易被不同的人从不同角度赋予其不同的含义。IDC曾经给中间件下的定义是“中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信”。我国学术界一般认可的定义是“中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性”(北京大学梅宏)。中科院软件所研究员仲萃豪形象地把中间件定义为“平台+通信”。这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。形象地说就是“上下”之间的“中间”。此外,中间件主要为网络分布式计算环境提供通信服务、交换服务、语义互操作服务等系统之间的协同集成服务,解决系统之间的互连互通问题。形象地说就是所谓“左右”之间的“中间”。要深入理解什么是中间件,形式化的定义固然重要,我们还得从概念本身去深入理解其核心特征才是最重要的。要理解一个概念,从内涵和外延两个方面去描述是哲学上非常重要的一套方法体系。八百客是专业提供SaaS服务及中间件建设的公司,具有完整而丰富的企业解决方案。

中间件(MiddleWare)从字面上解释就是“处于中间的软件”,尽管程序员之外的读者会感觉陌生,但其实早在1990年,中间件就作为网络应用的基础设施出现了。诞生于贝尔实验室的Tuxedo系统就是最早用于交易系统的中间件。中间件的出现解决了异构分布网络环境下软件系统的通信、互操作、协同、事务、安全等共性问题。因为其在系统中的重要性,中间件与操作系统、数据库被称为系统软件的三驾马车。

阿里的中间件主要有包含这么几个:

分布式关系型数据库DRDS_水平拆分 做数据库扩展性的

消息队列MQ 是做消息的中间件

企业级分布式应用服务EDAS 做分布式服务的

还有一些其他的中间件,比如配置服务 缓存 等等,也都会放在中间件里

日常开发常用接触到的中间件:ODBC(.net)和JDBC(java)--数据库访问中间件

中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。形象地说就是上下之间的中间。