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

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


当前回答

中间件的一些例子:CORBA,远程方法调用(RMI),…

上面提到的例子都是允许你处理不同进程之间通信的软件(要么运行在同一台机器上,要么分布在互联网上)。

其他回答

中间件的一些例子:CORBA,远程方法调用(RMI),…

上面提到的例子都是允许你处理不同进程之间通信的软件(要么运行在同一台机器上,要么分布在互联网上)。

维基百科给出了一个很好的解释:http://en.wikipedia.org/wiki/Middleware

首先是

中间件是连接软件组件或应用程序的计算机软件。该软件由一组服务组成,这些服务允许运行在一台或多台机器上的多个进程进行交互。

什么是中间件给出了几个例子。

中间件位于web应用程序和web服务之间,它们本身无法通信,而且通常是用不同的语言/框架编写的。

一个这样的例子是。net环境的OWIN中间件,在OWIN用户被迫在一个叫做IIS的微软托管软件中托管web应用程序之前。owin开发后,在IIS和self host中都增加了主机容量,在IIS中只是增加了对owin的支持,充当接口。此外,通过Mono在Linux上托管。net web应用程序也成为可能,这再次增加了对Owin的支持。

It also added capacity to create Single Page Applications, Owin handling Http request/response context, so on top of owin you can add authentication/authorization logic via OAuth2 for example, you can configure middleware to register a class which contains logic of user authentification (for ex. OAuth2 implementation) or class which contains logic of how to manage http request/response messages, that way you can make one application communicate with other applications/services via different data format (like json, xml, etc if you are targeting web).

假设你的公司生产4种不同的产品,你的客户有另外3家不同公司的3种不同的产品。

有一天客户想,为什么我们不把所有的系统整合成一个大系统呢?10分钟后,他们的IT部门说这需要2年时间。

你(聪明的开发人员)说,为什么我们不整合所有不同的系统,让它们一起工作呢?客户经理盯着你看……你继续说,我们将使用中间件,我们将研究所有不同系统的输入/输出,它们使用的资源,然后选择一个合适的中间件框架。

还在跟非技术经理解释 中间件框架在中间,第一个系统将产生X东西,系统Y和Z将消耗这些输出,等等。

如果我没有错的话,在软件应用程序框架中,基于上下文,您可以考虑用于以下角色的中间件,它们可以组合在一起,以便在用户请求和应用程序响应之间执行某些活动。

适配器 洗手液 验证器