目前企业实际运行的大量系统,一下统一平台然后构建所有系统不现实,需要一步一步替换。这样就存在平台应用和外部系统推送数据的问题。 例如平台上的客户关系应用维护了客户数据,需要同步推送到某个财务系统。
财务系统有很多,入口各种各样。平台这边的客户数据就面临一个选择问题:
1、客户关系系统不能直接对接财务系统,否则在客户关系系统工程中需要关联大量底层接口类。这块一定要松耦合。
2、客户关系系统开发人员无需关注数据转换问题,那是接口开发人员的任务。
3、同一个外部系统接口要统一。例如金蝶系统一个,用友系统一个。
依据这些原则,平台涉及的对接方案是这样的:
客户关系管理系统当数据变化时将客户对象对应的dto发送到消息队列(注意在平台内,前端和后台交互也是用的这个dto对象,这也就是为什么把dto层单独打包的原因。因为接口程序要引用这个dto)。财务系统对接服务(一个财务系统做一个,例如金蝶对接服务,极端情况下可以同时运行金蝶对接服务、用友对接服务,这样数据会同时发送给两个系统)从消息队列中获取同步消息,转化为对金蝶系统的访问数据格式,也就是转换在对接服务中完成。不同的对接服务转化后的格式不同。
客户关系管理系统端只配置需要不需要发消息(如果不对接,就不发),无需关注谁来接纳数据。
这样从客户关系管理系统角度就统一解决了不对接,对接不同财务系统的需求。