中间件

原创 2007年09月18日 16:05:00
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

  中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

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

  最早具有中间件技术思想及功能的软件是IBM的CICS,但由于CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于AT&&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过Novell并不成功的商业推广之后,1995年被现在的BEA公司收购。尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近10年之中。BEA公司1995年成立后收购Tuxedo才成为一个真正的中间件厂商,IBM的中间件MQSeries也是90年代的产品,其它许多中间件产品也都是最近几年才成熟起来。

  1998年IDC公司对于中间件有一个定义,并根据用途将其划分为6个类别。如今所保留下来的只有消息中间件和交易中间件,其他的已经被逐步融合到其他产品中了,被包裹进去了,在市场上已经没有单独的产品形态出现了。例如,当时有一个叫屏幕数据转换的中间件,其主要是针对IBM大机终端而设计产品,用于将IBM大机终端的字符界面转化为用户所喜欢的图形界面,类似的东西当时都称为中间件。但随着IBM大机环境越来越少,但是盛行一时的此类中间件如今已经很少再被单独提及。

  2000年前后,互联网盛行起来,随之产生了一个新的东西,就是应用服务器。实际上,交易中间件也属于是应用服务器,为了区分,人们传统的交易中间件称为分布交易中间件,因它主要应用在分布式环境下,而将新的应用服务器,称为J2EE中间件,到目前为止,这都是市场上非常热门的产品。

  EAI概念出来之后,市场上又推出了一些新的软件产品,,例如工作流、Portal等,但从分类上不知道怎么归类,向上不能够划归应用,往下又不能归入操作系统,于是就把它归入了中间件,如此中间件的概念更加扩大了。目前,市场上对于中间件,各家的说法不一,客观上也导致了理解上的复杂性。

  如今,市场上又推出了很多新的概念,例如三层结构、构件、Web服务,其中风头最劲的当属SOA(面向服务的架构)。实际上,他们都不是一个产品,而是一种技术的实现方法,是开发一个软件的一种方法论。我们知道,最早软件开发方法就是编程、写代码的,其缺点在于无法复用,为此提出了构件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到构件1、构件2、构件3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。在互联网得到普及重视之后,软件开发方法在构件化基础上又有新发展,核心思想是软件并不需要囊括构件,所需要的仅仅是构件的运行结果,例如编写一个通信传输软件,就可以到网上寻找构件,并提出服务请求,得到结果后返回,而不需要下载构件并打包,这就是现在所说的SOA。想要现实SOA,就要规范构件接口,同时还要规范构件所提交的服务结果,如此,新的软件开发的思想才能够行的通。但SOA并不是一个产品,而是一种思想方法,而实现这种方法的基础,如今看来只有中间件。

  国内在中间件领域的起步阶段正是整个世界范围内中间件的初创时期。东方通科技早在1992年就开始中间件的研究与开发,1993年推出第一个产品TongLINK/Q。而中科院软件所、国防科技大学等研究机构也对中间件技术进行了同步研究。可以说,在中间件领域,国内的起步时间并不比国外晚多少。

 

浅析java中间件

1. 由来   因为工作的原因,我从金蝶集团调入金蝶中间件公司工作以来,经常遇到一个问题就是中间件公司是个什么公司,中间件是什么?,金蝶不是做ERP的吗?怎么也做中间件?。这是我以前在金蝶集团时...
  • u012422446
  • u012422446
  • 2016年06月15日 16:47
  • 19598

mysql中间件研究

转自: http://songwie.com/articlelist/44          mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failo...
  • duomoluo
  • duomoluo
  • 2017年03月04日 12:29
  • 604

koa中间件机制详解

koa koa是由express原班人马打造的一个更小、更富有表现力、更健壮的web框架。 在我眼中,koa的确是比express轻量的多,koa给我的感觉更像是一个中间件框架,koa只是一个基础...
  • zp1996323
  • zp1996323
  • 2017年04月22日 16:41
  • 756

PHP中间件(middleware)解析

笔者在研读guzzlehttp源码时,对中间件的使用研究了一翻,在此纪录学习笔记。我对中间件的理解系,在执行主要逻辑时,完成一些附带的逻辑,可以分为前置和后置中间件。附带的逻辑往往带有条件判断,比如...
  • Allen_Tsang
  • Allen_Tsang
  • 2016年06月28日 18:21
  • 3102

【中间件】(二):学习中间件不得不了解的基础知识

在阅读本文之前,先给大家提几个问题: 为什么会产生中间件? 中间件是什么? 分布式软件开发中又哪些共性问题? …… 概览   先来整体了解一下都有哪些内容。 点击查看大图产生原...
  • u010924834
  • u010924834
  • 2016年06月26日 19:14
  • 1090

web服务器、容器和中间件

web服务器、容器和中间件  (2013-08-06 10:58:32) 转载▼ 标签:  web     学习Java...
  • Vincent_ceso
  • Vincent_ceso
  • 2016年10月07日 18:30
  • 2609

MQ消息中间件介绍

首先MQ是什么? MQ是Message Queue消息队列的缩写。消息队列是一种应用程序对应用程序的通信方法、应用程序通过写和检索入列队的针对应用程序的数据(消息)来进行通信,而不需要专用连接来链接它...
  • u011393781
  • u011393781
  • 2016年09月27日 16:39
  • 2962

几个常用的中间件介绍

其实,一个复杂的分布式系统可以通过搭积木的方式来建立,每个积木就是一个中间件,可通过适当的代码将其黏合在一起。 ZooKeeper      ZooKeeper 提供基础的目录/名字服务、配置...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2016年11月28日 11:51
  • 4847

Redis系列(三)—— Redis和消息中间件

转载:http://www.jianshu.com/p/477618203a97什么是消息中间件先看百科:消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集...
  • pony_maggie
  • pony_maggie
  • 2017年03月04日 10:52
  • 1371

8大常用通讯中间件/MQ使用总结

8大通讯中间件/MQ,比较常用且有名的有如下几种: 1.      ACE: ACE提供了一组丰富的可重用C++包装外观(WrapperFacade)和框架组件,可跨多种平台完成通用的通信软件任务...
  • fanyunda1988
  • fanyunda1988
  • 2016年06月14日 21:58
  • 1355
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:中间件
举报原因:
原因补充:

(最多只允许输入30个字)