ESB服务总线的一个重要能力就是面对企业遗留系统和复杂的异构系统,能够提供多种适配器,并实现消息集成,协议转换,包括消息内容的转换和映射等。对于简单的proxy服务代理,前面很多文章都已经谈到过了,下面重点谈下服务适配,消息集成,协议转换等常见的企业应用集成场景。
SOAP WebService和Http Rest间的转换
由于两者都走的Http协议,其实转换的重点会是在协议内容的转换上面。首先源端暴露的soap服务,可以转换为rest服务暴露出去,反之rest服务也可以暴露为soap服务出去。其次对于soap服务传输的xml消息内容,一种是在rest中也传输xml,一种是需要将将xml内容转换为json格式,在转换过程中还需要支持数据映射。
数据库的适配和服务发布
可以新建一个服务,同时将服务适配到数据库表,该服务可以是查询服务即查询数据库中数据,也可以是导入服务即将服务输入消息写入到数据库表中。还有第三种场景即发布一个服务,该服务首先从源服务中查询到数据,然后再将查询到的数据写入到数据库表,这几种常见内容都需要支持。
最终发布的服务既可以是soap服务,也可以是rest服务,对于rest服务消息内容可以是xml也可以是json。
和各种JMS或AMQP消息中间件的集成
这里的重点是是可以发布一个服务,该服务可以将服务调用的输入信息写入到消息中间件中,也可以是发布一个服务,该服务从消息中间件中获取数据并返回,类似于消息订阅。JMS可以进一步和DB进行集成,前提是仍然发布一个服务,该服务可以首先从JMS中读取消息信息,然后将读取到的JMS消息信息再持久化到DB数据库表。
最终发布的服务既可以是soap服务,也可以是rest服务,对于rest服务消息内容可以是xml也可以是json。
HTTP和TCP间的协议转换和适配
如果源端提供的TCP协议的消息流,那么我们可以适配TCP协议,并发布一个http服务,将接口以http服务的方式暴露出去。通过该http接口可以实现和底层TCP消息协议的集成。这种场景在传统的CS应用中比较常见,即对于传统的CS应用的消息集成可以采取该模式,如对遗留的socket接口可以暴露为外部系统更加容易访问的http服务接口。
当然TCP协议获取的消息也可以进一步和JMS消息中间件,DB集成。即获取的消息写入JMS或DB
FTP和文件File的适配
在集成过程中可以支持对FTP协议的适配,即通过FTP适配器接入具体的文件信息,同时可以对文件的结构内容进行解析。即我们可以实现场景的适配文件后将文件的内容解析后写入到JMS或持久化到数据库。
当然我们也可以发表一个http服务,通过该服务来触发FTP的文件传输和集成。这样可以很好的实现文件传输数据流和消息控制流的分离。
和ETL的服务化集成
这个在前面很多文章已经谈到过,比如类似Oracle ODI本质即是WebService+ETL的一种服务化集成。实现服务调用控制流和ETL数据传输流的分离。对于该类集成我们可以发布一个soap服务或Rest服务,通过对该服务的调用来触发ETL操作。
原文 http://blog.sina.com.cn/s/blog_493a84550102wfwf.html