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

1 post / 0 new
root
Offline
Last seen: 1 day 13 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00743] 複数サーバーにおけるコンポーネントの命名規則について

清水様:
菅です.

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

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

>清水様の投稿[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番の投稿で,
ホスト名の唯一性を誰が補償してくれるのか
という点ですよね.
この点については次のメールで意見を述べさせて下さい.

Undefined

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK