说到SOA的兴起,已经是几年前的事情咯。
按我的理解,SOA框架的演化,主要按四条路来进行的:
第一条路,就是从CORBA衍生,可以作为CORBA的替代品。
这一条路上,典型代表为ICE、Thrift,Avro,ProtocolBuffer+GRPC
其典型行为是,定义idl,对每种语言提供编译器及运行库,然后提供RPC调用功能
第二条路,就是语言框架需要
这一条路上,主要代表为DCOM,EJB,DUBBO,最初目的都是为了给语言框架提供更好的分布式功能。
其典型行为是,语言或框架本身不具备改功能,对其进行了扩展。自身对原语言框架依赖比较严重。
第三条路,就是HTTP中新规范的出现
这一条路上,主要代表为SOAP,REST。
其典型行为是,每种语言都有多种实现,定义schema,每种语言会有多种库支持,最后通过HTTP通讯进行调用
第四条路,就是功能整合
这一条路上,主要代表为WCF,各类ESB产品
其典型特征为:提供多种SOA解决方案
具体使用的时候,其实大家可以看到,这些框架都是万变不离其宗。
那就是,都需要接口描述语言(无论是IDL、WSDL还是什么),都提供良好的支持功能开发较为简单,都是SOA框架解决通讯问题,对于开发人员透明。
大家具体使用是,根据实际情况选取即可。