/*dot version 1.15.20040901.0430 ,rankdir=LR*/ digraph C { graph [size="30,20",ratio=compress]; node[fontsize=10.0]; edge []; /*注册流程*/ CC1->dmreg->CS->Sreg->CS->chk->CC1 [color=dodgerblue ]; CS->Sadd[color=dodgerblue ]; CS->SPadd [color=dodgerblue ]; CS->Dadd [color=dodgerblue ]; CS->pub->CC [color=dodgerblue ]; /*自杀流程 ->chk->CC2*/ CC2->dmdel->CS[color=firebrick4 ]; CS->Sedit[color=firebrick4 ]; CS->Sdel[color=firebrick4 ]; CS->SPedit[color=firebrick4 ]; CS->SPdel[color=firebrick4 ]; CS->Ddel[color=firebrick4 ]; CS->pub->CC[color=firebrick4 ]; /*查询流程*/ CC3->dmask->CS->Sask->ls->CC3[color=lightslategray]; /*报警流程*/ CC4->dmalert->CS->Salt[color=green ]; CS->Sedit[color=green ]; CS->Sdel[color=green ]; CS->SPedit[color=green ]; CS->SPdel[color=green ]; CS->Ddel[color=green ]; Salt->pub->CC[color=green ]; /* 结点定义 */ /*核心服务 fontcolor=floralwhite,style=filled,color=orangered3,shape=ellipse */ /*调度员服务*/ CS[label="Woodpecker.OGNS\n.Service\n.Dispatcher" ,fontcolor=floralwhite,style=filled,color=orangered3,shape=ellipse]; /*Service.Agent 中介者服务*/ CC[label="Woodpecker.OGNS\n.Service\n.Agent\n( DEMO related Server s \n means maybe some Woodpecker.OGNS 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]; dmreg[label=" standard\n Compass Agent \nreg. server flow "]; dmdel[label=" standard\n Compass Agent \n suicide server flow "]; dmask[label=" standard\n Compass Agent \n ask server flow "]; dmalert[label=" DEMO\n Compass Agent \n alert server die flow "]; /*服务事务 style=filled,color=yellowgreen,shape=hexagon*/ Sreg[label="Woodpecker.OGNS\n.Processor\n.ServerReg" style=filled,color=yellowgreen,shape=hexagon]; Sadd[label="Woodpecker.OGNS\n.Processor\n.ServerAdd" style=filled,color=yellowgreen,shape=hexagon]; Sedit[label="Woodpecker.OGNS\n.Processor\n.ServerEdit" style=filled,color=yellowgreen,shape=hexagon]; Sdel[label="Woodpecker.OGNS\n.Processor\n.ServerDel" style=filled,color=yellowgreen,shape=hexagon]; Salt[label="Woodpecker.OGNS\n.Processor\n.ServerAlert" style=filled,color=yellowgreen,shape=hexagon]; Sask[label="Woodpecker.OGNS\n.Processor\n.ServerAsk" style=filled,color=yellowgreen,shape=hexagon]; /*依赖事务 style=filled,color=mistyrose,shape=house*/ Dadd[label="Woodpecker.OGNS\n.Processor\n.DependAdd" style=filled,color=mistyrose,shape=house]; Ddel[label="Woodpecker.OGNS\n.Processor\n.DependDel" style=filled,color=mistyrose,shape=house]; /*分区事务 style=filled,color=olivedrab1,shape=hexagon*/ SPadd[label="Woodpecker.OGNS\n.Processor\n.ServerAdd\n.partition" style=filled,color=olivedrab1,shape=hexagon]; SPedit[label="Woodpecker.OGNS\n.Processor\n.ServerEdit\n.partition" style=filled,color=olivedrab1,shape=hexagon]; SPdel[label="Woodpecker.OGNS\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 Woodpecker.OGNS node"]; }