最后更新:2022-02-15 02:13:20 手机定位技术交流文章
1995-1999年之间,特别流行组件DNA这个词,说可以做到应用程序灵活组合。这个愿景多么令人神往啊。
但组件DNA这个概念是怎么来的、怎么演进的,我们才能知道它事实是解决啥问题的。
我是从90年代CORBA时代来的,我给大家把这个历史演进说说。
(1)1984年是个神奇的年份
1984年,Sun公司的在Unix系统中发明了RPC(远程过程调用),用于支持异构型分布式系统间的调用。
1984年,一个印度小伙闯美国,发明了一个分布式消息中间件,这就是后来的TIBCO公司。
1984年,贝尔实验室研发了分布式事务中间件:Tuxedo。
(2)咱们单说说RPC
RPC有几个核心要素组成:
1、Proxy/Stub机制
2、注册与发现基础服务
3、IDL接口描述语言
4、网络传输:TCP/IP网络通讯协议、传输二进制
(3)咱们得提提CORBA
1990年由IBM、HP、Novell等公司联合制定了CORBA标准,就是把RPC专门从UNIX操作系统中单独抽了出来。应该说从此以后,真正的中间件这个市场才形成。
CORBA是个大集成者:
1、ORB(对象请求代理实现)
2、命名注册与发现基础服务(这个和RPC没啥差异)
3、IDL接口描述语言(这个和RPC没啥差异)
4、IIOP应用调用协议(这是比RPC新增的应用层的协议)
5、网络传输:Http/s、XML文本
再糅合了过去存在的消息服务、事务服务,这就构成了CORBA的体系。
CORBA还试图解决对象生命周期服务(如对象的建立、销毁、克隆、池化等等),但一直解决的不太好,这得到了COM/EJB组件时代,才比较好地解决了生命周期服务。
(4)咱们再来说说WebService
2001年,W3C组织发布了WebService技术标准:
1、
2、UDDI注册与发现基础服务
3、WSDL接口描述语言
4、SOAP应用调用协议
5、网络传输:Http/s、XML文本
其实大家一看就知道,这就是1984年RPC在互联网上的改进
(5)SOA和微服务不得不提
很多人把SOA和WebService混淆在一起。
其实SOA的核心是三个要素:
SCA:面向服务的组件
SDO:服务数据对象
BPEL:商业逻辑执行语言
但这三个东西都没有流行起来。
而SOA被人们熟知的反而是:ESB,企业服务总线。其实企业服务总线,核心就是WebService那四大构成要素。
这四大核心要素,在微服务时代也做了进化:
1、注册与发现基础服务,演进成了API网关中间件(解决内外)和微服务中间件(解决内部)
2、WSDL接口描述语言(这块倒是几十年一直没有变化)
3、SOAP应用调用协议,现在大家主流用RESTFul了
4、网络传输:Http/s、JSON文本
(6)咱们再说说其他的中间件
除了咱们一开始说的1984年产生的:RPC中间件、消息中间件、事务中间件。后来还产生了两个中间件。
一个是随着互联网的产生,产生了Web中间件,如Apache Server。类似Tomcat处理JSP网页的,也算Web中间件的范畴。
一个是组件容器中间件。这个最早在1995年微软发布DCOM的时候就产生了,后来演进到了COM+、.NET。在Java体系,在1997年的J2EE技术体系也实现了一遍,这就是EJB组件容器中间件。后来,组件容器中间件也逐步进化到NO EJB、SOA时代的Cloud Foundry Bundle容器,以及微服务时代的容器。现在又流行基于WASM技术的容器。
(7)总结
也就是说:中间件的核心是为了解决分布式应用之间能够调用的技术支撑。
如果你不头疼分布式应用,那么你用这套就没啥用。
如果你想拿这套技术来解决应用软件如何能够灵活组合,那么你真是大错特错了。
本文由 在线网速测试 整理编辑,转载请注明出处。