系统说明书 文章模板

系统说明标题

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

= Zoom.Quiet 9月13日 =

["attachment:CDocuments and Settings_zhiyuanma_桌面_compass.png"]

/*
dot version 1.15.20040901.0430
dot -Tpng sample.dot -o sample.png
dot -Grankdir=LR -Nshape="plaintext" -Earrowhead="odiamond" -Tpng sample.dot -o sample0.png
file:/// direct repository access (on local disk) 
http:// access via WebDAV protocol to Subversion-aware Apache server 
https:// same as http://, but with SSL encryption. 
svn:// unauthenticated TCP/IP access via custom protocol to an svnserve server 
svn+ssh:// authenticated, encrypted TCP/IP access via custom protocol to an svnserve server 
size="10,10",
*/
digraph C {
graph [ratio=compress];
node[fontsize=10.0];
edge [arrowtail="odiamond",];

    /*×¢²áÁ÷³Ì*/
CC1->Sreg->CS;
    /*×ÔɱÁ÷³Ì*/
CC2->Sdel->CS;
    /*²éѯÁ÷³Ì*/
CC3->Sask->CS;
    /*±¨¾¯Á÷³Ì*/
CC4->Salt->CS->CC;

    /*¹ÜÀíÁ÷³Ì*/
CA->As->Sadd->CS->chk->CA;
CA->As->Sedit->CS->pub->CC;
CA->As->Sdel->CS->pub->CC;
CA->As->Sask->CS->ls->CA;

CA->Ap->SPadd->CS->pub->CC;
CA->Ap->SPedit->CS->pub->CC;
CA->Ap->SPdel->CS->pub->CC;

CA->Asrv->CC;
CA->Asrv->CS;

CA->Ad->Dadd->CS->pub->CC;
CA->Ad->Ddel->CS->pub->CC;


  
/* ½áµã¶¨Òå */
/*ºËÐÄ·þÎñ fontcolor=floralwhite,style=filled,color=orangered3,shape=ellipse */    
    /*µ÷¶ÈÔ±·þÎñ*/
CS[label="Compass\n.Service\n.Dispatcher"
    ,fontcolor=floralwhite,style=filled,color=orangered3,shape=ellipse];
    /*Service.Agent ÖнéÕß·þÎñ*/
CC[label="Compass\n.Service\n.Agent\n( DEMO related Server s \n means maybe some Compass clients server)"
    ,style=filled,color=moccasin,shape=egg];
CC1[label="Compass\n.Service\n.Agent\n( DEMO reg. flow )"
    ,style=filled,color=moccasin,shape=egg];
CC2[label="Compass\n.Service\n.Agent\n( DEMO suicide flow )"
    ,style=filled,color=moccasin,shape=egg];
CC3[label="Compass\n.Service\n.Agent\n( DEMO ask flow )"
    ,style=filled,color=moccasin,shape=egg];
CC4[label="Compass\n.Service\n.Agent\n( DEMO alert flow )"
    ,style=filled,color=moccasin,shape=egg];
    
    /*Service.Agent ÖнéÕß·þÎñ¹ÜÀí*/    
CA[label="Compass\n.Service\n.Administrator"
    ,style=filled,color=moccasin,shape=egg];

/*¹ÜÀíÊÂÎñ ,fontcolor=floralwhite,style=filled,color=darkolivegreen,shape=doublecircle */
As[label="Compass\n.Administrator\n.server"
    ,fontcolor=floralwhite,style=filled,color=darkolivegreen,shape=doublecircle];
Asrv[label="Compass\n.Administrator\n.service"
    ,fontcolor=floralwhite,style=filled,color=darkolivegreen,shape=doublecircle];
Ap[label="Compass\n.Administrator\n.partition"
    ,fontcolor=floralwhite,style=filled,color=darkolivegreen,shape=doublecircle];
Ad[label="Compass\n.Administrator\n.depend"
    ,fontcolor=floralwhite,style=filled,color=darkolivegreen,shape=doublecircle];

    
/*·þÎñÊÂÎñ style=filled,color=yellowgreen,shape=hexagon*/
Sreg[label="Compass\n.Processor\n.ServerReg"
    style=filled,color=yellowgreen,shape=hexagon];
Sadd[label="Compass\n.Processor\n.ServerAdd"
    style=filled,color=yellowgreen,shape=hexagon];
Sedit[label="Compass\n.Processor\n.ServerEdit"
    style=filled,color=yellowgreen,shape=hexagon];
Sdel[label="Compass\n.Processor\n.ServerDel"
    style=filled,color=yellowgreen,shape=hexagon];
Salt[label="Compass\n.Processor\n.ServerAlert"
    style=filled,color=yellowgreen,shape=hexagon];

/*ÒÀÀµÊÂÎñ style=filled,color=mistyrose,shape=house*/
Dadd[label="Compass\n.Processor\n.DependAdd"
    style=filled,color=mistyrose,shape=house];
Ddel[label="Compass\n.Processor\n.DependDel"
    style=filled,color=mistyrose,shape=house];
    
/*·ÖÇøÊÂÎñ style=filled,color=olivedrab1,shape=hexagon*/    
SPadd[label="Compass\n.Processor\n.ServerAdd\n.partition"
    style=filled,color=olivedrab1,shape=hexagon];
SPedit[label="Compass\n.Processor\n.ServerEdit\n.partition"
    style=filled,color=olivedrab1,shape=hexagon];
SPdel[label="Compass\n.Processor\n.ServerDel\n.partition"
    style=filled,color=olivedrab1,shape=hexagon];

/*ÊÂÎñ´¦Àí */    
chk[label="Checking\n return\n allow|disallow"];
ls[label="Searching\n return\n info. list"];
pub[label="Publishing\n broadcast this mess.\n to all Compass node"];

9月13日中午的讨论

Xie yanbo 9月13日

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

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

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

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

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来说是透明的. 上面只是我自己的一点很粗浅的认识,希望大家指正.