**中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。**以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。

中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

也许很难给中间件一个严格的定义,但中间件应具有如下一些特点:

①满足大量应用的需要;

②运行于多种硬件和OS平台;

③支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互;

④支持标准的协议;

⑤支持标准的接口。

由于标准接口对于可移植性、标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件就几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

中间件:什么是中间件?相关推荐

  1. 后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)

    后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户) 一.总结 一句话总结: 1.中间件中验证用户是否登录:if(!Auth::guard('admin')->c ...

  2. 什么是中间件?常见中间件有哪些?

    文章目录 中间件是什么 为什么使用中间件 常见的中间件有哪些 中间件是什么 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源.中间件位于客户机/ 服务器的操作系 ...

  3. Java中间件(1)--分布式系统中间件从入门到精通(五)

    上篇文章说了,当业务数据量大的时候,可以考虑业务和数据分离,当还解决不了的时候,可以考虑把数据库读写分离,缓存,还可以考虑把表垂直拆分,水平拆分. 大型网站架构(2)--分布式系统&中间件从入 ...

  4. Spring中间件 - 什么是中间件

    一.前言 在互联网应用开发初期,所有用于支撑系统建设的,框架结构.基础工具.业务逻辑.功能服务包括页面展示等,都是在一个系统中开发完成,最终也只是把系统和数据库部署在同一台服务器上. 但随着互联网应用 ...

  5. PHP中间件 middleware,middleware 中间件详解

    如果感觉这篇文章有用请点个赞,让我知道自己的努力不白费!!! 中间件是请求必经之处,所以此处能对请求的数据做一系列处理,相当于过滤器.例如跨域请求,验证会员是否登录跳转至登录页,前后端分离数据类型不一 ...

  6. mysql 横向扩展 中间件_mysql-proxy数据库中间件架构 | 架构师之路

    一.mysql-proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server. 它使用mysql ...

  7. python的数据库中间件_数据库中间件设计方案

    数据库中间件的主要作用是向应用程序开发人员屏蔽读写分离和分库分表面临的挑战,并隐藏底层实现细节,使得开发人员可以像操作单库单表那样去操作数据.在介绍分库分表的主流设计方案前,我们首先回顾一下在单个库的 ...

  8. java中间件学习1-java中间件的定义

    1.java中间件的定义 在java web开发的演进与进化中,我们对于消息系统,数据库,服务化接口的抽象等,涉及数据分离的过程中,在分离过程中,就会涉及到分离后系统间,数据库间的交互.java中间件 ...

  9. hyperf 前置中间件 后置中间件

    今天碰到一个问题 , 就是正常跑接口 , 我们需要做一些日志 , 当出现慢日志问题进行分析与接口优化 , 于是想到了全局中间件 但是hyperf文档中没有写 Hyperf 根据这个官方的图示 , 可以 ...

  10. php mysql中间件原理_Laravel中间件实现原理详解

    本文实例讲述了Laravel的中间件实现原理.分享给大家供大家参考,具体如下: #1 什么是中间件? 对于一个Web应用来说,在一个请求真正处理前,我们可能会对请求做各种各样的判断,然后才可以让它继续 ...

最新文章

  1. mysql与access数据库_mysql数据库和access数据库有什么不同吗?
  2. 静态服务器显示固定页面,【Python高级编程034 ● 静态web服务器 ● 静态Web服务器-返回固定页面数据】...
  3. 设计模式C++实现(16)——状态模式
  4. k8s Service之LoadBalancer和ExternalName
  5. 通过改进视频质量评估提升编码效率
  6. PyTorch 1.0 中文官方教程:使用PyTorch进行深度学习
  7. MariaDB用户管理
  8. 【STM32】UART串口通信无法通信问题(SSCOM)
  9. java扫描条形码的两种方式
  10. mysql是如何保证持久性的?
  11. Bottom Sheets
  12. 爬虫之 --爬取豆瓣电影
  13. 《设计模式》之观察者模式
  14. 模糊综合评判法实现学生互评
  15. 安卓手机游戏开发培训!万字长文轻松彻底入门Flutter,面试真题解析
  16. Unity3D 常用 英文单词
  17. R in Action 学习笔记 - 第九章-Analysis of Variance
  18. hive_Decimal64ColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVect
  19. 微信小程序实现首行缩进、取消首行缩进
  20. 最好的3个iOS苹果手机上的txt阅读器

热门文章

  1. gitlab 解决502问题
  2. 广州画册设计公司画册设计宣传
  3. C++提高编程-泛型编程及STL(上)
  4. 你必须十分努力,才能看起来毫不费力
  5. AAAI 2022高分被拒?别难过!试试这个模板给Chair发个邮件捞一下吧!
  6. [风信子培训]SQL注入+hgame
  7. strok、strtok_r和strtok_s
  8. 数据库MySQL存储图片数据
  9. 旷视 CEO 印奇被敲诈勒索:不给 300 万就出售公司敏感信息!
  10. mysql grant all_mysql用户授权之GRANT ALL PRIVILEGES用法举例