<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:\5B8B\4F53;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@\5B8B\4F53";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:\5B8B\4F53;}
h1
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:85.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:1.0gd;
mso-para-margin-right:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-left:85.0pt;
mso-para-margin-bottom:.0001pt;
text-indent:-21.25pt;
page-break-after:avoid;
mso-list:l0 level1 lfo8;
layout-grid-mode:char;
font-size:14.0pt;
font-family:\5B8B\4F53;}
h2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:56.8pt;
margin-bottom:.0001pt;
mso-para-margin-top:.5gd;
mso-para-margin-right:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-left:56.8pt;
mso-para-margin-bottom:.0001pt;
text-indent:-14.2pt;
page-break-after:avoid;
mso-list:l0 level2 lfo8;
layout-grid-mode:char;
font-size:12.0pt;
font-family:Arial;}
h3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:238.2pt;
margin-bottom:.0001pt;
mso-para-margin-top:.5gd;
mso-para-margin-right:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-left:238.2pt;
mso-para-margin-bottom:.0001pt;
text-indent:-59.55pt;
line-height:125%;
page-break-after:avoid;
mso-list:l0 level3 lfo8;
layout-grid-mode:char;
font-size:12.0pt;
font-family:\5B8B\4F53;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:\5B8B\4F53;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-left:2.0gd;
mso-para-margin-bottom:.0001pt;
font-size:12.0pt;
font-family:\5B8B\4F53;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:Arial;
font-weight:bold;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0cm;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:\5B8B\4F53;}
pre
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:\5B8B\4F53;}
p.a, li.a, div.a
{margin-top:2.5pt;
margin-right:0cm;
margin-bottom:2.5pt;
margin-left:0cm;
mso-para-margin-top:.5gd;
mso-para-margin-right:0cm;
mso-para-margin-bottom:.5gd;
mso-para-margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
text-indent:10.0pt;
line-height:125%;
font-size:10.5pt;
font-family:Arial;}
p.a0, li.a0, div.a0
{margin:0cm;
margin-bottom:.0001pt;
mso-para-margin-top:.5gd;
mso-para-margin-right:0cm;
mso-para-margin-bottom:.5gd;
mso-para-margin-left:0cm;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:10.0pt;
line-height:125%;
font-size:10.5pt;
font-family:Arial;}
p.a00, li.a00, div.a00
{margin:0cm;
margin-bottom:.0001pt;
mso-para-margin-top:.5gd;
mso-para-margin-right:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-left:0cm;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:10.0pt;
line-height:125%;
font-size:10.5pt;
font-family:Arial;}
span.EmailStyle25
{mso-style-type:personal;
font-family:Arial;
color:navy;}
span.EmailStyle26
{mso-style-type:personal;
font-family:Arial;
color:navy;}
span.EmailStyle27
{mso-style-type:personal-reply;
font-family:Arial;
color:navy;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:2027631797;
mso-list-template-ids:183805594;}
@list l0:level1
{mso-level-style-link:"标题 1";
mso-level-text:%1;
mso-level-tab-stop:0cm;
mso-level-number-position:left;
margin-left:21.25pt;
text-indent:-21.25pt;}
@list l0:level2
{mso-level-style-link:"标题 2";
mso-level-text:"%1\.%2";
mso-level-tab-stop:0cm;
mso-level-number-position:left;
margin-left:14.2pt;
text-indent:-14.2pt;}
@list l0:level3
{mso-level-style-link:"标题 3";
mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:1.0cm;
mso-level-number-position:left;
margin-left:59.55pt;
text-indent:-59.55pt;}
@list l0:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:153.8pt;
mso-level-number-position:left;
margin-left:99.2pt;
text-indent:-35.4pt;}
@list l0:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:211.05pt;
mso-level-number-position:left;
margin-left:127.55pt;
text-indent:-42.5pt;}
@list l0:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:250.3pt;
mso-level-number-position:left;
margin-left:163.0pt;
text-indent:-2.0cm;}
@list l0:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:289.55pt;
mso-level-number-position:left;
margin-left:191.35pt;
text-indent:-63.8pt;}
@list l0:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:346.8pt;
mso-level-number-position:left;
margin-left:219.7pt;
text-indent:-70.9pt;}
@list l0:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:386.1pt;
mso-level-number-position:left;
margin-left:255.1pt;
text-indent:-85.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=ZH-CN link=blue vlink=blue>
<div class=Section1>
<p class=MsoNormal><font size=3 face=宋体><span lang=EN-US style='font-size:12.0pt'><o:p> </o:p></span></font></p>
<pre><font size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;
font-family:Arial'>>My take on this is that we should first define what commands we want to<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>support, and then decide on what types to use for them, and add to that<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>what types we expect we will need.<o:p></o:p></span></font></pre><pre><font
size=1 color=navy face=Arial><span lang=EN-US style='font-size:9.0pt;
font-family:Arial;color:navy'><o:p> </o:p></span></font></pre>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>The commands what we need to support
are depended on the functionality <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>of the modules. But the common
command are clear, like:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getClassAttribute<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getInstanceAttribute<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getClassMethods<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getInstanceMethods<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></p>
<pre><font size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;
font-family:Arial'><o:p> </o:p></span></font></pre><pre><font size=2
face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>The control channel API itself handles "opaque blobs" (which are usually<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>just UTF-8 strings), "lists" (ordered list), "hashes" (tag/value pairs),<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>and NULL type (used only in lists and hashes to indicate no data at that<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>element or tags without data.)<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>Some comments:<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>I like to include a sequence number on all messages sent. This can be<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>added automatically somewhere, but the sequence is handy for one simple<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>reason: it allows replies to be matched up with commands. Either this,<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>or there needs to be a requirement that commands are only processed in<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>the order they are received. For status and other commands, it might be<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>nice to get the data back in any order. What are your thoughts on this?<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>Yes, I agree,<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>Also, on type 'string' either those need to be always defined as UTF-8<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>or we need an encoding="" parameter on those. I would just as soon say<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>UTF-8 encoding on all string values.<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>I think UTF-8 is enough for us.<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>Will we ever want binary blobs? I don't know if we'll ever be<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>transmitting things like images around or not. It might be cool for a<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>UI to get little icons, for instance. :)<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>- --Michael<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>I will write some python code for BigTool, which parse the command inputed by user, and produce a xml packet, then send the packet to the Config Daemon, Finally display <o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>the feedback to user.<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>ZhangLIkun<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>CNNIC<o:p></o:p></span></font></pre>
<p class=MsoNormal style='margin-bottom:12.0pt'><font size=2 face=Arial><span
lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></p>
</div>
</body>
</html>