浅谈中间件

1、中间件的专业解释

这里只引用其中一小段的文字:中间件是一类连接软件组件和应用的计算机软件,中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

从其专业解释可以看出,“中间件”传统定义为是一套复杂、基础的软件集合,这里的基础不是“简单、基础”,而是底层的、晦涩复杂的,那么开发出此类中间件,依靠个人力量开发将难以实现,由一个公司或者组织或者开源社区共同完成庞大的软件工程

中间件最核心的概念就是要突出“中间位置”,从而屏蔽底层,因此在这个“中间位置”的两侧,一侧定义为应用位置,另一侧定义为底层侧,例如从宏观层面来看,应用位置:web app,中间位置:数据库,底层侧:linux系统。

2、软件开发中常见的中间件

为什么会有中间件?

人类是“懒惰而聪明的”,当他们从事一些研发或者工作过程中,遇到重复、繁琐、低效的处理方式时,就会思考如何实现一种“简易、高效、可重复利用”的实现方式,若这一过程能解决某类需求或者问题或者困难的“中间件”,那么它可以被封装成为一套商用的产品。

在开发领域,随处可见的中间件:可以在github上explore看看热门的开源软件,或者个人参与的公司项目上所用的技术栈,本质上都是为了解决一类问题,并能够复用解决该类问题的方案。

当然这些中间件是有“大小型、厚薄”之分,例如mysql、hadoop这些,属于大而厚的中间件范畴,

大而重体现在哪些方面:

数据文件存储引擎、物理文件、索引组件、解析器、优化器、缓存组件等,每一项都是开发领域的硬核技术,是一项庞大的软件工程,代码总量几百万行。

当然还有其他常见的大而厚的中间件:例如消息中间件、redis缓存中间件、hadoop大数据组件中间件等。

而对于SQLAlchemy、pymysql、requests、asyncio等三方库,则属于小而薄的中间件范畴,开发者通过再次封装(1到n)或者创新性封装(0到1),把一类问题的处理过程形成可复用的库(造轮子),这个库即可看成一种“小而薄”的中间件,因此广大开发者遇到同类问题需要解决时,无需自行再开发一套,复用这些中间件即可。这些库一般由能力卓越的开发者自行开发并开源到社区(这里也给大家一个方向:如果要进阶提升自我,学有余力条件下,一定要参与或者自行开发一种“中间件”,并开源,最好能切实解决实际需求,当收到很多star以及fork的时候,说明你开发的“中间件”很成功,当然开发能力得到突破性提升,个人也逐步努力往这个方向走)。

扫描二维码关注公众号,回复: 8602211 查看本文章

3、生活中的“中间件”

政府、企业购买服务平台(外包服务)等

各类电商平台等

各类解决生活、生产的“中间件(中间商)”平台等

发布了52 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/pysense/article/details/102491273