企业级服务总线架构 (Oracle service bus)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ot512csdn/article/details/81109757

为配合公司全业务域多个信息系统建设数据高速公路,我们选用了ORACLE的总线产品,oracle service bus。

作为一个企业级的ESB总线产品,它具备多种协议和连接方式的支持:

WebService协议 ----- TCP/IP网络协议被描述封装为SOCKET协议,SOCKET协议被描述封装为HTTP协议, HTTP协议再描述封装为微服务RESTAPI(JSON)、SOAP(XML)。

WebService工作在 HTTP之上的协议层,继承HTTP的短连接特点:一次发完即完成,没有专门的链路保持。所以服务器为了识别上次客户端和这次客户端发来的数据是同一个客户端,需要启用sessionid技术来标识。

服务器应用层发出一个会话标识(session id), 就是一个随机的字符串,每客户端收到的都不一样,  每次客户端向服务器发起HTTP请求的时候,把这个字符串给一并捎过来, 这样服务器就能区分开谁是谁了。

MQ协议 ----- Message Queue 消息队列,把需要传递的数据,打包成一个一个的消息包,放入服务器消息队列中,客户端一个一个取走。

JMS (Java Messaging Service)是一个标准:在 Java标准化组织内开发的标准(代号JSR 914)。2001年6月25日JMS发布1.0.2b,2002年3月18日JMS发布 1.1,统一了JMS消息域。 

MQ的实现需要一个消息服务器和客户端(adapter或开发类库),可以理解为类似EXCHANGE邮件服务器和outlook邮件服务端,一个一个的消息就类似一封封邮件。

需要注意的地方:完整的MQ功能是应该包含服务器端客户端功能;而企业级的架构,服务器端是必须有支持高可用的集群,客户端如果能够提供JAVA和.net平台的开发类库才是最全最完整的功能。很多中间件产品都声称支持MQ,但是可能只有客户端或没有集群,这些都不能达到企业级的要求。

MQ是基于SOCKET网络协议上的长连接,客户端会同服务器端保持一个长连接,这种方式在C/S架构中比较常见。

RFC方式,JCO,NCO类库 ----- SAP的专有通讯。 RFC实际是SAP提供系统中函数,调用后通过参数来向外传递数据。SAP为JAVA平台和.net平台提供了2套完整的开发类库JCO和NCO。外围系统可以用JCO/NCO的开发类库作为客户端连接上SAP服务器,调用服务器中RFC函数,相关技术在之前的文章中已经大量介绍。 所以SAP已经为我们提供了2辆跑车,你只需要用它去同SAP服务器通讯即可。

在SAP端的开发语言是ABAP,JCO端是JAVA,NCO端是C#。 RFC方式是基于SOCKET网络协议上的长连接,JCO/NCO客户端会同SAP服务器端保持一个长连接。关于JCO/NCO类库,我曾经做过一个小测试,它底层是可以自己掉线重连的。

SAP系统还可以使用IDOC报文的方式,发送数据,当然底层链路实现还是JCO和NCO类库。IDOC可以看成对RFC更复杂的封装。如果没有特定的要求,你问一个ABAP开发人员,愿意用RFC还是IDOC来实现SAP端的接口数据传递,得到的回答一定是RFC,因为使用RFC的编码和配置工作量超小。

如果要说一款企业级的中间件服务总线产品,它一定会对上述方式提供良好的支持。RFC被列到这里是因为全球500强80%都在使用SAP的产品,而中国大企业中,目前也有6000家在使用SAP。其实CSDN的论坛早就应该把SAP的ABAP开发语言也作为开发语言列出来,可惜CSDN小编一直没有接触企业ERP管理软件。

讲了这么多,终于要进入正题,介绍Oracle service bus企业级服务总线架构。

我认为ESB企业服务总线最大的价值是降低了各系统连接的技术复杂度,没有总线之前,各系统都有自己最善于的通讯协议用于接口开发,大家并不一致。而总线出现后,各系统只需用自己最善于的协议连接到总线就完事。 至于什么网状的连接会被总线星性连接代替,在逻辑上,其实数据从一个接口出一定还是对应一个接口进,接口90%的工作量是在数据功能设计,连接逻辑改变倒是可以忽略的。

中国历史上火烧赤壁、火烧连营都是使用连环计的杯具,产生的结果是决定性的。所以企业级服务总线高可用应该是排在第一位的。而集群架构应该按WS,MQ,RFC协议不同肯定是不同的,所以高可用集群架构应该按每一种协议来实现。每一种协议的集群架构讲清楚了,企业级服务总线高可用才算说清楚了。

OSB集群架构-WebService方式:

OSB集群架构-MQ方式:

 

OSB集群架构-SAPRFCIDOC方式:

猜你喜欢

转载自blog.csdn.net/ot512csdn/article/details/81109757