Differences between revisions 1 and 2
Revision 1 as of 2004-09-15 00:29:58
Size: 5795
Editor: Zoom.Quiet
Comment: 以用户故事形式 直白的描述 Compass 的工作
Revision 2 as of 2009-12-25 07:17:43
Size: 5799
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
-- Zoom.Quiet [[[DateTime(2004-09-15T00:29:58Z)]]]
[[TableOfContents]]
-- Zoom.Quiet [<<DateTime(2004-09-15T00:29:58Z)>>]
<<TableOfContents>>
Line 22: Line 22:
 * [http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compass0914.png 正常事务流程]图中右边灰色流程  * [[http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compass0914.png|正常事务流程]]图中右边灰色流程
Line 58: Line 58:
 * [http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compass0914.png 正常事务流程]图中中间 深红色以及亮绿色流程  * [[http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compass0914.png|正常事务流程]]图中中间 深红色以及亮绿色流程

以用户故事形式 直白的描述 Compass 的工作

-- Zoom.Quiet [2004-09-15 00:29:58]

定场诗

指南针!最简单! 你提要求,我指引, 剩下的…… 丫们自个儿解决去吧!

  • 目标为PyUSS系统提供7*24小时可持续运行的基础支持。

  • 咦咦咦?那未, OUSS 还没有的时候,我们仅仅是进行 Compass 的空运行???
  • 嗯嗯!看来OUSS的模拟器也是 testUnit 的内容了!

故事

  • 仅以熟悉的 Web 站点服务用户角度来讲述最基础的Compass 运行故事...

  • 对话实际都是网络二进制报文,少部分是程序间的调用....

服务查询故事

最频繁发生的服务查询流程

角色

  • 小W : 某台 Web应用站点的程序集合
  • 小C : 小W上驻留的 Compass Agent(Client) 进程
  • 大C : 中央 Compass Dispatcher(Server) 服务
  • 路人甲 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
  • 路人乙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
  • 路人丙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程

场景

  • 小W发现有来访者要进行过去的数据查询!不得不进行数据库访问

Action!

  • 小W: 小C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
  • 小C: 得令!
  • 小C: 大C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
  • 大C: 晓得了!小C等着!
  • 大C: 查了一下子,小W是第一次审请数据服务哪!没有丫的关系信息!
  • 大C: (向所有Compass网络节点吆喝) 妈的!谁哪有 foo 数据库,用户,口令都是sa 的!小W要用!赶紧!
    • 然后回去睡觉
  • 路人甲 : Kao !我今儿说了多少回了!没有!(不予理睬,继续QQ泡MM....)
  • 路人乙 : 嗯嗯!我查一查......
  • 路人丙 : 我查!嗬嗬嗬,有一个!小C!我这有!
  • 路人乙 : 嗯嗯!查到了,有一个!小C!我这有!
  • 小C : 嗬嗬嗬!怎么有两个的?!?浪费!不过 路人丙 的先收到!也许快....
  • 小C : 小W!喏! 路人丙 的可以连接!
  • 小W : OK!....(开始查询!干活)
  • 小C : 大C! 我这 foo 数据库,用户,口令都是sa 的! 用 路人丙 的了!路人乙的也有,我要当备份!
  • 大C : 收到.........(生死薄中为小W记了笔)

断想

  • 所有交互报文都会非常短小
  • 但是小W等待小C反馈的时间绝对不能长!
  • 小W与小C交流的接口要非常Easy 与原来,小W在脚本中写死的方式,相差不能太悬殊!
    • 是Roo 的应用API 的开发了!??!

服务报警故事

最不想发生,但是一定会发布,而且是 Compass诞生原因的服务中断处理

角色

  • 小W : 某台 Web应用站点的程序集合
  • 小C : 小W上驻留的 Compass Agent(Client) 进程
  • 大C : 中央 Compass Dispatcher(Server) 服务
  • 路人乙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
  • 路人丙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
  • 路人丁 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程

礼貌退场

  • 路人乙 : 不行了!工作这么无聊!我不干了!小C!大C!我马上要自杀了!你们不要拦我!
  • 小C: 小W! 路人乙 罢工了!你等会儿!
  • 大C: 收到.........(生死薄中从小C那划去 路人乙 的相关记录)...哎...谁都不容易!
  • 小C: 大C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
  • 大C: 晓得了!查了一下子,路人丙 有,你先用着!
  • 大C: (向所有Compass网络节点吆喝) 妈的!除了 路人丙 谁哪有 foo 数据库,用户,口令都是sa 的?
    • 然后回去睡觉
  • 小C : 路人丙!在否?! foo 数据库,用户,口令都是sa 的有?
  • 路人丙: 烦着呢!别理我!正在整理硬盘!
  • 路人丁 : 我查!嗬嗬嗬,有一个!小C!我这有!
  • 小C : 路人丁!你有哪!我爱你! 小W 路人丁的! 大C! 路人丁 的可以, 路人丙 的暂时不能使用!
  • 大C: 收到.........(生死薄中从小C那修改相关记录)...哎...谁都不容易!

意外死亡

  • 小W: 小C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
  • 小C: 得令!
  • 小C: 我查! 路人丁 有,嗬嗬嗬! easy!
  • 小C: 路人丁?在否?! foo 数据库,用户,口令都是sa 的有?
  • 小C: 路人丁?在么?!!
  • 小C: 路人丁?!!
  • 小C: MMD!死了?!?! 大C! 路人丁 翘了!我现在需要 foo 数据库,用户,口令都是sa 的数据源!!
  • 大C: 收到.........(生死薄中从小C那修改相关记录)...哎...谁都不容易!
  • 大C: (向所有Compass网络节点吆喝) 妈的!除了 路人丁 谁哪有 foo 数据库,用户,口令都是sa 的?
    • 然后回去睡觉
  • 路人丙: 噢!好了!我有!我可以...小C!
  • 小C : 小W!现在用 路人丙 的先! 大C!路人丙的在用了!
  • 大C: 收到.........(生死薄中从小C那修改相关记录)...哎...谁都不容易!

断想

  • 单点故障??? 在Compass 中处理是自然快捷的....吧?!
  • 但是影响的效率,以及可靠?
  • Twisted 在此仅仅作为网络通讯的标准工具包,但是通过报文的自动发送,广播,等等,正确快速的修正服务间的依赖关系,并保证实际应用的连续性?!
  • 需要精巧的设计!

WCstory (last edited 2009-12-25 07:17:43 by localhost)