七叶笔记 » golang编程 » 什么是中间件|中间件的分类和作用《初级入门》

什么是中间件|中间件的分类和作用《初级入门》

前言

平时是埋头写代码,不闻窗外事,对盛传于世的“ 中间件 ”,也只是停留在听说过的水平。最近在朋友的力促下,决定不管再忙,也要特意去了解(自觉还不好意思 研究)一下火热于 IT 界的云计算和中间件,对于云,因为各媒体已经炒得很“熟”很“透”了,我就不用再写下来作记录了。今天主要记录一下自己对中间件的理解,不当之处,还请在评论里指正,谢谢。

1.很多人听过中间件,但是没见过中间件,或者根本不知道中间件是什么, 傻X 百科上面的定义实在是模糊,所以就有了写这片博客的冲动。
定义:中间件,顾名思义存在于两个系统之间的,起到连接的设备。
(1)为什么是设备? 硬件和软件在一定程度上可以互用,中间件既可以是硬件,也可以是软件,所以我说是设备,而不定义为,硬件或者软件的一种。
(2)起到连接作用怎么理解?中间件可以在两个软件之间起到连接(iis服务)。可以在客户机/服务系统之间起到功能(例如web代理服务器)。

需要C/C++ Linux 服务器架构师学习资料后台私信“资料”(资料包括C/C++,Linux,golang技术, Nginx ,ZeroMQ,MySQL, Redis ,fastdfs, MongoDB ZK 流媒体 CDN P2P ,K8S, Docker ,TCP/IP,协程,DPDK,ffmpeg等),免费分享

1. 通信处理(消息)中间件

 首先要修好马路,安装红绿灯,设立交通管理机构,制定出交通规则,也就是我们要建网和制定出通信协议,
能在不同平台之间通信,实现 分布式系统 中可靠的、高效的、实时的跨平台数据传输
(如TongLINK、BEA eLink 、IBM的MQSeries等),称为消息中间件。这是中间件中唯一不可缺少的,是需求量最大的中间件产品
目前在Windows 2000操作系统中已包含了其部分功能  

2. 事务处理(交易)中间件

 在分布式事务处理系统中要处理大量事务,常常在系统中要同时进行上万笔事务。
例如在北京市就要设置各种运载汽车,完成日常的运载,同时要随时监视汽车运行,
出现故障时,要有排除措施,发生堵塞时要进行调度。在联机事务处理系统(OLTP)中,
每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作
而且要自动切换系统,达到系统永不停机,实现高可靠性运行;
同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,
实现昂贵的可靠性机和大型计算机系统同等的功能。
为了实现这个目标,要求系统具有监视和调度整个系统的功能。
BEA的 Tuxedo由此而著名,它成为增长率最高的厂商。一个事务处理平台,
根据X/OPEN的参数模型规定,应由事务处理中间件、
通信处理中间件以及数据存取管理中间件三部分组成。
 东方通科技公司 的TongLINK 和TongEASY实现了这个参考模型规定  

3. 数据存取管理中间件

 在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、
具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓存、格式转换、解压等带来方便。 
  

4. Web服务器中间

 浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能作数据写入、
受HTTP协议的限制等,就必需进行修改和扩充,形成了 Web服务器中间件,
如 SilverStream公司的产品。  

5. 安全中间件

 一些军事、政府和商务部门上网的最大障碍是安全保密问题,
而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必需用国产的产品。
产生不安全因素是由操作系统引起的,但必需要用中间件去解决,以适应灵活多变的要求。 
  

6. 跨平台和构架的中间件

 当前开发大型应用软件通常采用基于构架和构件技术,在分布系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,
由此产生了构架中间件,功能最强的是CORBA,可以跨任意平台,但是太庞大;JavaBeans较灵活简单,很适合于做浏览器,
但运行效率差;DCOM模型主要适合 Windows平台,已广泛使用。实际上国内新建系统主要是UNIX(包括LINUX)和 Windows,
因此针对这两个平台建立相应的中间件要实用得多。 
  

7. 专用平台中间件

 为特定应用领域设计参考模式,建立相应构架,配置相应的构件库和中间件,
为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。  

8. 网络中间件

 它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。  

总结

每天更新开发学习资料内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体, WebRTC ,CDN,P2P,K8S,Docker,Golang, TCP/IP,MTK , 嵌入式 , 协程,DPDK等等 。

相关文章