Differences between revisions 1 and 29 (spanning 28 versions)
Revision 1 as of 2004-09-06 01:45:07
Size: 3354
Editor: Jerry Marx
Comment: maillist上没人和我讨论,发在这里吧.
Revision 29 as of 2004-11-18 01:41:47
Size: 10332
Editor: stephen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
= Jerry Marx = = 040918 讨论 =
 * [http://www.woodpecker.org.cn/20040918.rar 讨论录音],hd 还解答了 xyb 提出的19个问题。

= 040917 讨论 =
 * 今天基本放空. 下面列出小谢给的一些相关资料页面
   1. [http://www-900.ibm.com/developerWorks/cn/linux/l-cptest.shtml "IBMdW 上中文的文章,可爱的 Python:Python 中的测试框架"]
   2. [http://www.python.org/doc/current/lib/module-unittest.html "Python官方文档当然是很好的资料"]
   3. [http://www.chinesepython.org/pythonfoundry/limodoupydoc/dive/html/roman_romantest.html "limodou 翻译的 dive into python 里面也有单元测试非常精彩的章节"]
   4. [http://pyunit.sourceforge.net/pyunit.html "python unittest 的官方页面讨论的更全面,不过是英文"]
   5. [http://svn.twistedmatrix.com/cvs/trunk/twisted/test/test_extensions.py?view=auto&rev=11450&root=Twisted "一个例子:twisted/test/test_extensions.py"]
   6. [http://svn.twistedmatrix.com/cvs/trunk/twisted/test/test_context.py?view=auto&rev=11450&root=Twisted "其它一些短小的例子"]
   7. [http://svn.twistedmatrix.com/cvs/trunk/twisted/test/test_lockfile.py?view=auto&rev=10680&root=Twisted "续上面"]
   8. [http://svn.twistedmatrix.com/cvs/trunk/twisted/test/test_tpfile.py?view=auto&rev=11450&root=Twisted "需要桩模块测试的例子"]
   9. [http://svn.twistedmatrix.com/cvs/trunk/twisted/test/test_timeoutqueue.py?view=auto&rev=11450&root=Twisted "需要初始化、清除遗迹的例子"]
   10. [http://svn.twistedmatrix.com/cvs/trunk/twisted/test/test_iutils.py?view=auto&rev=11450&root=Twisted "使用 .skip 的例子"]
   11. [http://wiki.woodpecker.org.cn/moin.cgi/PyTwisted_2fWorkingOnTheTwistedCodeBase_2fTestingStandard "必须要看的规范,我们基本全盘照搬,然后再加点东西上去"]

= 040916 讨论 =
 * 讨论内容已经由Xie yanbo发到[http://python.cn/pipermail/python-chinese/2004-September/005167.html "mail list"]
 * 关于Mock Object的讨论. 以下是一些资源
   1. http://c2.com/cgi/wiki?MockObject
   2. http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Lib/test/test_urllib2.py?rev=1.19&view=auto
   3. http://pmock.sourceforge.net
-----------
 * Xie yanbo正式出任unit test子项目负责人
 * Xie yanbo向HD提出17个关于compass的问题,期待HD在maillist回答.
== 040916 Xie yanbo ==
 1. 单元测试公用模块,用来创建测试环境等
 2. 单元测试样例,可以作为模板使用
 3. 单元测试约定,比如一些特殊对象应该怎么用,主要是用来使大家分别编写的单元测试可以放在一起使用,就象twist单元测试文档中的建议的那些。

= 040915 讨论 =
 * 放空!中午 Jerry 没有出现在MSN 或是大家都直接UC 了!??!
   * Zoomq 当前整理时没有收到昨天录音的信息,今天……
 * ["WCstory"] -- Woodpecker.Compass 用户故事!
   * 嗬嗬嗬!缩写的确是 '''W.C''' 实在!!! 又有重名的事儿!还是赶紧想法子哪!

= 040914 讨论 =
 * am HD在线从MSN 移动到UC 中进行详细讲解
   * [http://220.248.2.35:7080/share/Python/Compass/discuss/20040914am-uc.txt UC文本记录]
   * 录音整理后发布
== Zoom.Quiet ==
'''重新整理类设计关系图'''
 * 正常事务流程
   * attachment:compass0914.gif
   * [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.dot.txt Dot脚本源代码]

 * 管理事务流程
   * attachment:compassadmin.gif
   * [http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compassadmin.png 全图观看]
   * [http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compassadmin.dot.txt Dot脚本源代码]

= 040913 讨论 =
 * [http://220.248.2.35:7080/share/Python/Compass/discuss/CompassDis090413am.xml MSN 讨论文本记录]
== Zoom.Quiet ==
'''总结UML图和讨论为Compass调用结构关系图'''
 * attachment:compass.gif
   * [http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compass.png 全图观看]
   * [http://wiki.woodpecker.org.cn/moin.cgi/Compass_2fCompassDiscuss?action=AttachFile&do=view&target=compass.dot.txt dot 脚本源代码]
== Xie yanbo 9月13日 ==
“compass的server会以守护进程的方式运行在中心服务器上,当然实际
系统分布为了避免单点故障问题不会只有一台中心服务器,但是服务器的
冗余是放在四层或者七层交换的后面,对于我们开发人员来说是透明的,
所以在开发者的角度看我们只需要处理一个中心服器.

“compass的client会以守护进程的方式运行在运行网络服务的的各台
服务器上.为服务提供一个API使得服务可以注册/注销自己或者查询需要
的其他服务器,然后由compass client和compass server交互.”

我想这里的 Server、Client 的概念已经和我们平常所熟知的概念很不
一样了,根据 Twisted 编程规范之命名原则:

  http://wiki.woodpecker.org.cn/moin.cgi/PyTwisted_2fWorkingOnTheTwistedCodeBase_2fCodingStandard#head-3e7742fb7e942241fed7eda5389fc5c736d411b9

我们应该给 Compass Server 和 Compass Client 重新起名。按照我的
理解,建议如下命名:

  Compass Server => Service.Dispatcher 调度员服务

  Compass Client => Service.Agent 中介者服务

= Jerry Marx 9月6日 =
Line 24: Line 106:
Line 26: Line 109:
Line 28: Line 112:
Line 30: Line 115:
Line 47: Line 133:
 2. compass系统是一个分布式的,由一系列运行在各个服务器上的守护进程组成.其中包括一个中心的server和一系列的client.
server和client的交互回采用推/拉两种方式,力图使网络负载最小化.
 2. compass系统是一个分布式的,由一系列运行在各个服务器上的守护进程组成.其中包括一个中心的server和一系列的client.server和client的交互回采用推/拉两种方式,力图使网络负载最小化.
Line 50: Line 135:
 4. compass的client会以守护进程的方式运行在运行网络服务的的各台服务器上.为服务提供一个API使得服务可以注册/注销自己或者查询需要的其他服务器,然后由compass
client和compass server交互.
 4. compass的client会以守护进程的方式运行在运行网络服务的的各台服务器上.为服务提供一个API使得服务可以注册/注销自己或者查询需要的其他服务器,然后由compass client和compass server交互.
Line 55: Line 139:
= 梅劲松 11月18日 =
  我在compass上已经建立了多个应用,而且目前也在帮助和建议朋友使用compass来进行一些关键应用的开发。针对目前compass的使用,我提出以下讨论问题。

  1、服务器端是否需要流量控制
  我的意见是在服务器端不考虑流量控制,至少在目前阶段不考虑。我们采用的滑动窗口的办法,对系统资源的消耗还是比较大的。而且我们的服务都是建立在相对封闭的环境下。

  2、报文格式的修改
  我建议在报文头上加上2个字节的状态码。目的是在compass解包的时候,在这一层就判断比如报文长度和声明是否相符,是否发送同一流水号的报文等。从而将和socket的通讯层的处理和错误隐蔽起来,这样compass的使用者只需要考虑和业务相关的报文内容和报文字段。

  3、参考资料
  我建议对协议、异步通讯、滑动窗口、GNS的理解有疑问的,参考中国移动的CMPP2.0或者CMPP3.0的协议资料。

  4、具体的例子
  任何事物都是发展的,我想需要先建立一个compass的原型。能满足compass的绝大部分功能,才谈得上优化和修改。我会提交部分代码上来,质量可能不是很高。希望比我更有经验的朋友进行优化。

系统说明书 文章模板

系统说明标题

-- Jerry Marx [DateTime(2004-09-06T01:45:07Z)] TableOfContents

040918 讨论

040917 讨论

040916 讨论


  • Xie yanbo正式出任unit test子项目负责人
  • Xie yanbo向HD提出17个关于compass的问题,期待HD在maillist回答.

040916 Xie yanbo

  1. 单元测试公用模块,用来创建测试环境等
  2. 单元测试样例,可以作为模板使用
  3. 单元测试约定,比如一些特殊对象应该怎么用,主要是用来使大家分别编写的单元测试可以放在一起使用,就象twist单元测试文档中的建议的那些。

040915 讨论

  • 放空!中午 Jerry 没有出现在MSN 或是大家都直接UC 了!??!
    • Zoomq 当前整理时没有收到昨天录音的信息,今天……
  • ["WCstory"] -- Woodpecker.Compass 用户故事!
    • 嗬嗬嗬!缩写的确是 W.C 实在!!! 又有重名的事儿!还是赶紧想法子哪!

040914 讨论

Zoom.Quiet

重新整理类设计关系图

040913 讨论

Zoom.Quiet

总结UML图和讨论为Compass调用结构关系图

Xie yanbo 9月13日

“compass的server会以守护进程的方式运行在中心服务器上,当然实际 系统分布为了避免单点故障问题不会只有一台中心服务器,但是服务器的 冗余是放在四层或者七层交换的后面,对于我们开发人员来说是透明的, 所以在开发者的角度看我们只需要处理一个中心服器.

“compass的client会以守护进程的方式运行在运行网络服务的的各台 服务器上.为服务提供一个API使得服务可以注册/注销自己或者查询需要 的其他服务器,然后由compass client和compass server交互.”

我想这里的 Server、Client 的概念已经和我们平常所熟知的概念很不 一样了,根据 Twisted 编程规范之命名原则:

我们应该给 Compass Server 和 Compass Client 重新起名。按照我的 理解,建议如下命名:

  • Compass Server => Service.Dispatcher 调度员服务

    Compass Client => Service.Agent 中介者服务

Jerry Marx 9月6日

由于我自己机器的问题,我一直不能在UC上发言.我有一些想法我就发在列表里面了,免得集中起来的时候浪费大家的时间 :)

第一个要通报的消息就是compass(指南针)这个项目要启动了.项目的主页在这里: http://wiki.woodpecker.org.cn/moin.cgi/Compass

当然目前还处在前期的准备工作阶段. 目前的工作我想主要有以下几个:

  1. Twisted相关文档的翻译和学习.
  2. 对于Outter的学习
    • compass是基于Twisted的网络应用,当然要用到Outter.基本框架应该就是用Outter来生成了. 这方面还需要Outter组的大力支持
  3. 对于compass的理解和认识
    • 这个就不多说了.开发人员必须对于系统的理解达成一致以后才能协调开发.这方面还需要多交流.

我先说说我对于compass的认识吧

  1. 首先compass的第一个目标就是为OpenUSS服务,提供服务注册/查找/注销/依赖关系...等等的支持.
  2. compass系统是一个分布式的,由一系列运行在各个服务器上的守护进程组成.其中包括一个中心的server和一系列的client.server和client的交互回采用推/拉两种方式,力图使网络负载最小化.
  3. compass的server会以守护进程的方式运行在中心服务器上,当然实际系统分布为了避免单点故障问题不会只有一台中心服务器,但是服务器的冗余是放在四层或者七层交换的后面,对于我们开发人员来说是透明的,所以在开发者的角度看我们只需要处理一个中心服务器.
  4. compass的client会以守护进程的方式运行在运行网络服务的的各台服务器上.为服务提供一个API使得服务可以注册/注销自己或者查询需要的其他服务器,然后由compass client和compass server交互.
  5. 服务数据库当然是由server来维护,但是为了避免server负载过重,也许只会把server设计为一个路过者而将具体的数据库管理再委托给另外的进程(也许运行在另一台机器上),不过这个对于client来说是透明的. 上面只是我自己的一点很粗浅的认识,希望大家指正.

梅劲松 11月18日

  • 我在compass上已经建立了多个应用,而且目前也在帮助和建议朋友使用compass来进行一些关键应用的开发。针对目前compass的使用,我提出以下讨论问题。 1、服务器端是否需要流量控制 我的意见是在服务器端不考虑流量控制,至少在目前阶段不考虑。我们采用的滑动窗口的办法,对系统资源的消耗还是比较大的。而且我们的服务都是建立在相对封闭的环境下。 2、报文格式的修改 我建议在报文头上加上2个字节的状态码。目的是在compass解包的时候,在这一层就判断比如报文长度和声明是否相符,是否发送同一流水号的报文等。从而将和socket的通讯层的处理和错误隐蔽起来,这样compass的使用者只需要考虑和业务相关的报文内容和报文字段。 3、参考资料 我建议对协议、异步通讯、滑动窗口、GNS的理解有疑问的,参考中国移动的CMPP2.0或者CMPP3.0的协议资料。 4、具体的例子 任何事物都是发展的,我想需要先建立一个compass的原型。能满足compass的绝大部分功能,才谈得上优化和修改。我会提交部分代码上来,质量可能不是很高。希望比我更有经验的朋友进行优化。

Compass/CompassDiscuss (last edited 2009-12-25 07:15:05 by localhost)