最近我听到很多人在谈论中间件,但是中间件的确切定义是什么呢?当我研究中间件时,我发现了很多信息和一些定义,但在阅读这些信息和定义时,似乎所有的“产品”都处于某种中间。那么,所有东西都是中间件吗?

或者你有一个不是中间件的软件的例子吗?


当前回答

中间件是一个非常模糊的术语。在一种情况下什么是“中间件”,在另一种情况下就不一样了。一般来说,你可以期望中间件具有以下特征:

主要(通常是专有的)软件;通常不需要任何专门的硬件。 如果没有它,依赖于它的应用程序将不得不将它作为应用程序的一部分合并,并将经历大量的重复。 几乎可以肯定连接两个应用程序并在它们之间传递数据。

您会注意到,这与操作系统的定义几乎相同。因此,例如,TCP/IP堆栈或缓存可以被认为是中间件。但是你的操作系统也可以提供同样的功能。实际上,中间件可以被看作是对操作系统的特殊扩展,特定于依赖它的一组应用程序。它只是提供了更高级别的服务。

中间件的一些例子:

分布式缓存 消息队列 事务监视器 包重写 自动备份系统

其他回答

从我个人的网络工作经验来看,中间件是介于用户(网络浏览器)和后端数据库之间的东西。这是一款软件,它接收用户输入的东西(例如:ipad订单,执行一些神奇的业务逻辑,即检查是否有足够的ipad来完成订单),并更新后端数据库以反映这些变化。

中间件是软件的总称,用于将分离的、通常是复杂的、已经存在的程序“粘合在一起”。一些经常与中间件连接的软件组件包括企业应用程序和Web服务。

我一直认为它是我安装过的最古老的软件。整个应用程序使用了一个web服务器、一个数据库服务器和一个应用服务器。web服务器是数据和应用程序之间的中间件。

我知道(至少)有三种不同的定义

在业务计算中,中间件是应用程序和服务之间的消息传递和集成软件 在游戏中,中间件是由第三方提供的任何东西 在(某些)嵌入式软件系统中,中间件提供应用程序使用的服务,这些服务由硬件抽象层提供的功能组成——它位于应用层和硬件抽象层之间。

中间件是一个非常模糊的术语。在一种情况下什么是“中间件”,在另一种情况下就不一样了。一般来说,你可以期望中间件具有以下特征:

主要(通常是专有的)软件;通常不需要任何专门的硬件。 如果没有它,依赖于它的应用程序将不得不将它作为应用程序的一部分合并,并将经历大量的重复。 几乎可以肯定连接两个应用程序并在它们之间传递数据。

您会注意到,这与操作系统的定义几乎相同。因此,例如,TCP/IP堆栈或缓存可以被认为是中间件。但是你的操作系统也可以提供同样的功能。实际上,中间件可以被看作是对操作系统的特殊扩展,特定于依赖它的一组应用程序。它只是提供了更高级别的服务。

中间件的一些例子:

分布式缓存 消息队列 事务监视器 包重写 自动备份系统