[openrtm-users 00743] 複数サーバーにおけるコンポーネントの命名規則について

Yuki Suga ysuga @ suou.waseda.jp
2009年 1月 17日 (土) 20:41:16 JST


清水様:
菅です.


返信が遅れて申し訳ありません.

複数ホストへの対応とのことで,僕の意見を述べさせていただきます.

>清水様の投稿[737]より
> 番号の自動インクリメントの方式ですが、
> 複数サーバに登録する場合どういうルールが
> よいとお考えでしょうか?
>
> 自動インクリメントの実装は以前から
> 考えてはいるのですが、
> 複数サーバが存在する場合に
> どう対処すべきかで悩んでいます。

この辺の質問の意味がよくわかりませんでした.
複数のサーバー上でも,サーバーのネットワーク上の識別名で
識別ができると考えていました.


ですが,[741]の投稿で,
>清水様の投稿[741]より
> RTCのインスタンスごとにどのネームサーバに登録
> するかをconfで決められるようになっているので、
> たとえば、一つ目のインスタンスはServer1のみに登録し、
> 二つ目のインスタンスはServer1とServer2に登録する場合、
> Server1ではMyComp0とMyComp1が存在しますが、
> Server2ではMyComp0のみになります。
> ここで問題なのは、Server1のMyComp0と
> Server2のMyComp0が違うオブジェクトになることです。

というところで合点しました.
単一のホストPC上で実行する単一のコンポーネントを
複数のネームサーバーに同時に登録するという状況が
結構特殊のようにも思えます.

具体的な例を考えているのですが,
たとえばロボット自身の行動決定をする
上位のコンポーネント(例えばRobotComponent)が,
ロボット内部のネームサーバーと,
ロボティックルームのネームサーバーの
双方に登録すると考えると,この実装が必要だと思います.

この場合は,ロボット内部のネームサーバーでは
RobotComponent0と登録されるでしょうが,
同一のロボットがルーム内に複数存在する場合は,
ルーム側のネームサーバー上ではRobotComponent1, 2と
なって,複数のネームサーバー上での
名前の同一性が確保できませんね・・・



ただ,この場合は,ホストPC名をルーム内で唯一とする
ことで回避ができそうです.
現状のrtc.confの仕様で言えばnaming.formatsを
%h/%n.rtc
とすることで,ホスト名を追加すれば,
ルーム側のネームサーバー上でも
MyRobotA/RobotComponent0.rtc
と,0番のサフィックスを獲得できそうです.
いかがでしょうか?




そしてこの場合に問題になるのが,
清水様の741番の投稿で,
ホスト名の唯一性を誰が補償してくれるのか
という点ですよね.
この点については次のメールで意見を述べさせて下さい.



//////////////////////////////////////////////////
Yuki Suga
Intelligent Machine Laboratory, Waseda Univ.
#59-325 3-4-1 Okubo Shinjuku-ku Tokyo, Japan
E-mail: ysuga @ suou.waseda.jp
URL:   http://www.sugano.mech.waseda.ac.jp/~ysuga
URL:   http://www.ysuga.net
//////////////////////////////////////////////////



openrtm-users メーリングリストの案内