不同系统之间数据的交互

      最近公司的项目要实现几个子系统的数据同步,讨论了几种方式,现记录如下.背景介绍:

      子系统                      职责

    MarketResearch       实时更新基金产品价格数据,为其它子系统提供数据服务

    Order Managment System  customer下单管理系统,管理各种交易订单,需要MR和CRM数据

    CRM          客户关系管理

 

方案一:  把所有需要公共交换的数据独立出一个子系统,所有其它的子系统通过一公共API访问.由于CRM是外购其它的公司的产品,改动风险太大,外加其它非技术因素,此方案被不否决.

 

方案二: 各系统提供单独的API实现数据的交互. 但也有二种方式. 

1)消息机制 + pull 模式   数据源发出数据更新通知,其它数据接收者接到通知后自行调用数据源API获取数据

2)push 模式  数据源直接调用其它数据获取者API更新数据

由于各个子系统需要的数据不同, 因此需要一个统一方式描述数据. XML自然是首选,即我们定义一个统一的XML格式来描述各种数据,各个子系统只需要解析一个统一XML文件. 各个子系统也可以实现相对的松藕合.

插一点个人体会:本质上我们最终是定义了一个简单的XML通迅协议,一直觉得协议通信应该也算一种模式,而且在我目前所见的模式中也许是最"松"的藕合.

 

 

 

posted @ 2008-11-23 20:45  十三  阅读(1018)  评论(1编辑  收藏  举报