中间件概述

学术界和产业界对什么的是中间件还没有一个标准的定义。

IDC对中间件的定义为^baike

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件定位于客户机服务器的操作系统之上,管理计算机资源和网络通信。

我国学术界一般认可的定义是:

中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性(北京大学梅宏)。

英文Wiki中提到^wiki

中间件是操作系统之上的为软件应用提供服务的计算机软件。它可以描述为“软件胶水”。中间件是连接软件组件或企业应用的软件。中间件是在各端分布式计算网络中位于操作系统和应用中间的那一层。

起源

  • 中间件伴随网络技术的产生、发展而兴起
  • 一般来说,我们将1990年诞生于ATT公司的BELL实验室的Tuxedo系统(后来被NOVELL从ATT公司随着UNIX系统一起买走,后来又卖给了BEA公司,现在归于ORACLE公司旗下了)作为中间件的诞生标志。Tuxedo解决了分布式交易事务控制问题,中间件开始成为网络应用的基础设施,中间件正式成型,这是最早的交易中间件。
  • 1994年IBM发布消息队列服务MQ系列产品,解决分布式系统异步、可靠、传输的通讯服务问题,消息中间件诞生。
  • 1995年,JAVA之父James Gosling发明JAVA语言,JAVA提供了跨平台的通用的网络应用服务,成为今天中间件的核心技术。JAVA是第一个天生的网络应用平台,特别是J2EE发布以来,JAVA从一个编程语言,演变为网络应用架构,成为应用服务平台的事实标准。应用服务器中间件,成为中间件技术的集大成者,也成为事实上的中间件的核心。
  • 2001年,微软发布.NET,中间件演变为.NET和JAVA两大技术阵营。但由于.NET还不是一个完全开放的技术体系,只有一个玩家,因此,虽然.NET也是一种中间件,但由于IBM/ORACLE/SUN/SAP等巨头都无一例外成了JAVA阵营的支持者,因此,我们习惯上提到中间件时,往往不包括.NET中间件体系。

中间件发展的驱动力

  • 屏蔽异构性
  • 实现互操作
  • 共性凝练和复用

中间件的特征

  • 平台化
  • 应用支撑
    • 模型:构建模型弹性粒度化
    • 结构:结构松散化
    • 互操作:交互过程标准化
    • 开发集成方法:应用系统的构建方式由代码编写转为主要通过服务间的快捷组合及编排
  • 复用
  • 耦合关系
  • 互操作性

中间件的分类(外延)

  • 应用服务类中间件
    • 对象请求代理(ORB)中间件
    • 事务监控交易中间件
    • Java应用服务器中间件
    • ……
  • 应用集成类中间件
    • 消息中间件
    • 企业集成EAI
    • 企业服务总线ESB
    • ……
  • 业务架构中间件
    • 业务流程
    • 业务管理
    • 业务交互

#中间件的未来

  • 中间件将变宽变厚
  • 中间件将面向服务、易于集成
  • 中间件将向一体化的方向发展
    • 统一内核,易于演化
    • 统一编程模型,易于开发
    • 统一管理模型,易于系统维护
  • 支持云计算,易于交付
  • 成为云计算的支撑平台,是应用易于交付

以上的中间件相关内容提炼自文章《中间件》^zhongjianjian,详细可查看这篇文章,写的很好。

谢谢鼓励