现在的位置: 首页 > 综合 > 正文

分布式软件设计之DECORATOR模式(二)

2013年02月04日 ⁄ 综合 ⁄ 共 1056字 ⁄ 字号 评论关闭

                       分布式软件设计之DECORATOR模式

   上接分布式软件设计之DECORATOR模式(一),由于模块之间的关系是建立在通信的协议上。因此只要模块彼此之间的通信协议跟以前版本的模块之间的通信协议是一致的,我们可以使用该模式。

  在图(2)增加的DECORATOR(模拟局方),就是在不修改监控中心的现有功能,增加了以下一些功能。

1)DECORATOR(模拟局方)负责根据监控中心发送的余额查询请求到局方查询余额。并把该结果返回给监控中心。由于是通信,只要保证给监控中心的回复跟局方的回复是一致的,就不会影响到其他模块的功能。

2)由于局方程序是其他公司的,他是负责多客户端的连接,对监控中心的连接是短连接,现在DECORATOR(模拟局方)是自己公司开发的,并且是运行在局域网的,所以DECORATOR(模拟局方)对监控中心的连接可以是长连接的。DECORATOR(模拟局方)负责监控中心的重连任务。而这个任务在监控中心是在发送查询余额遇到SOCKET失败后才进行的,旧代码的做法会延迟对客户端回包响应时间。在DECORATOR(模拟局方)中,我们可以定时使用心跳重连机制。

3)DECORATOR(模拟局方)为了提高对客户端的响应时间,可以增加短时缓存功能。

   短时缓存:在内存中维护一序列客户端余额信息,并定时刷新该内存。如果客服端的请求到来,直接命中内存相对应的信息,就把这信息组包回复给监控中心,这样就可以省下跟局方的通信时间。但是该内存中客户端余额信息不能太多,否则影响刷新的时间,这样添加这个功能进来对程序的响应时间没有帮助。

至于内存客户端余额信息替换策略,我是考虑用操作系统内存放置策略中

的LRU(Least Recently Used)算法.至于实现细节,我就不详细阐述了。

现在来分析这个模式的优缺点:

优点:

 1)可以不对旧程序进行修改,通过增加DECORATOR,达到修改旧程序的效果。由于该模式是基于通信的结果,因此只要是通信方面的BUG,可以通过这样的方法修改。

2)可以动态地增加跟通信有关的功能。只要保证模块之间的通信协议是一直的。

缺点:

1)如果在原来模块,客户端、监控中心、局方在理想的通信情况下,新模块增加了监控中心跟DECORATOR(模拟局方)的交互时间。DECORATOR(模拟局方)可以通过自己增加的功能来减少该交互时间所带来的延迟,如果客户端的请求之间命中DECORATOR(模拟局方)内存维护的信息,利用新增加的功能将会减少通信交互时间。

 

抱歉!评论已关闭.