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

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


当前回答

它只是一个软件或工具,你的应用程序可以在其上执行,并在高可用性、可伸缩性、与其他软件或系统集成方面发挥应用程序的功能,而无需担心应用程序级别的代码更改。

例如:您的应用程序运行的操作系统需要更改ip,您不必在代码中担心这个问题,您可以在中间件堆栈上简单地更新配置。

例2:你遇到了运行时内存分配的问题,并且觉得你的应用程序的使用量增加了,你不必担心太多,除非你的代码中有bug或瓶颈,这很容易通过调整应用程序运行的中间件软件配置来实现。

例3:你有多个完全不同的软件,你需要它们以所有系统都能理解的通用格式相互通信或发送数据,这时中间件系统就派上用场了。

希望提供的信息能有所帮助。

其他回答

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

维基百科给出了一个很好的解释: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).

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

适配器 洗手液 验证器

简单地说,中间件是一种软件组件,它提供将不同的系统集成在一起的服务。

在复杂的企业环境中,当您需要将两个或多个企业系统集成在一起以相互通信时,会遇到许多挑战。通常这些系统不能理解彼此的语言,因为它们是在使用不同语言的不同平台上开发的(如c++、Java、Cobol等)。

所以这里出现了中间件软件,它提供的服务

从一个应用程序到另一个应用程序的消息格式转换, 路由和丰富消息,除了注意安全性, 加密, 验证和 对这些消息应用不同的业务规则。

中间件的一个典型例子是ESB产品,如IBM消息代理(WMB/IIB)、WESB、Datapower XI50、Oracle Fusion、Mule和许多其他产品。

因此,中间件主要位于服务消费应用程序和服务提供者应用程序之间,并帮助这些应用程序相互通信。