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

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


当前回答

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

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

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

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

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

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

其他回答

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

首先是

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

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

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

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

中间件是关于应用程序如何响应传入请求的。中间件查看传入的请求,并根据该请求做出决策。我们可以只使用中间件构建整个应用程序。例如ASP。NET是一个web框架,由以下主要的HTTP中间件组成。

异常/错误处理 静态文件服务器 身份验证 MVC

如上图所示,在ASP中有各种各样的中间件。NET接收传入的请求,并将其重定向到一个c#类(在本例中是控制器类)。

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

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

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

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

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

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