SOA服务实施-服务封装

在ESB集成平台进行服务实施的过程中,对于传统的ESB更多的会谈到ESB的服务设计,服务的适配,设计和适配完成后再打包进行服务的部署。而在进行服务总线的轻量化后,更多的谈如何进行自动化的服务接入和服务封装,即如何将服务设计和开发的过程全部自动化和模板化掉,减少人工介入的工作量。

对于服务的设计和封装,常见的场景实际上在前面一些文章里面已经谈到过,在这里再重点谈下不同类型的服务接入开发和封装的重点。

代理类服务的接入

这类服务的接入相对来说是最简单的,即只需要提供原始服务的ws服务地址,服务基本属性信息,可能再提供一些涉及个性化的服务安全,服务日志记录,异常处理机制等信息,这些信息提供完成后就很容易自动的完成服务封装和部署的过程。

路由类服务的接入

在代理类服务接入的基础上,对于路由类服务的接入会增加一个路由表的配置功能。即可以根据服务消息头,或者服务输入的某个字段信息进行服务动态路由。动态路由的实现既可以使用ESB产品的标准功能,也可以我们自定义一个动态路由的Java组件,在拦截到服务访问请求后,通过该Java组件的处理逻辑来实现自动化的路由转发。

数据库类的适配接入

这里面会涉及到比较多的设计内容,当然可以有可视化的ESB服务设计器,也可以通过界面配置方式来实现。对于这类适配重点包括了数据源和连接的配置,服务输入映射,服务输出映射三个方面的内容。特别是映射信息,在定制和配置完成后,可以存储为独立的元数据配置文件,也可以生成XSLT映射转换模板来实现自动映射。

在底层实现我们还需要有一个标准的对数据库JDBC操作的数据访问组件的封装,这个封装逻辑里面需要实现对数据库返回结果集到SOAP XML数据结构之间的转换和映射能力。

消息的适配接入

对于消息的适配和接入,会增加一个消息中间件的地址,端口等方面的基础元数据配置。同时会增加一个数据内容格式之间的映射配置。但是还可以进一步配置消息的持久化机制,消息失效的时间等。如果对于消息发布订阅机制,那么还需要增加一个对消息订阅的独立功能,但是该功能不好体现在服务封装和接入里面。

服务封装最好的方式就是完全做到自动化的服务封装和接入,而不需要人工参与。服务封装本身包括了服务的设计,服务开发,服务打包和部署多个环节。通过自动化的服务封装,可以极大的减少人工设计,开发和部署的工作量。虽然有些产品提供的ESB设计器能力很强,但是我们对服务接入的场景进行标准化和模板化后,至少可以实现90%以上的服务接入需求自动化接入。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180128G0NB4F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券