<div dir="ltr">会津大学 吉野様<div><br></div><div>産総研 安藤です</div><div><br></div><div>ご連絡ありがとうございます。</div><div><br></div><div>> たいへんお世話になっております。<br>> 会津大学 復興支援センターの吉野と申します。<br>><br>> この度、8月1日から開催されるRTミドルウェアサマーキャンプに参加する予定でおります。<br>><br>> つきましては開発課題についてご相談させていただきたい点があり、メールさせていただきました。<br>><br>> 本学のロボット研究チームでは、Pub/Sub型のメッセージング通信も重要な研究課題として挙げております。<br>> そのこともあり、今回のサマーキャンプでは、若干地味になってしまいますが、<br>> 「OpenRTMにPub/Sub型メッセージング通信を実装する」<br>> を開発課題として持ち込もうと考えております。<br>> </div><div>> メッセージング通信実装のための基盤として使用するのは、CORBAではなく<br>> できれば本学別プロジェクトで用いているSolace Systems社のSolaceアプライアンス<br>> (Solaceメッセージングルータ)を用いたいと考えております。<br>> Solaceアプライアンス自体はメッセージング機能をハードウェア化し<br>> メッセージング処理の高速化を実現したもので、本学別プロジェクトでは<br>> 情報流通のための基盤として用いられているところです。<br></div><div><br></div><div>OpenRTM事態にはpub/sub型の通信は一応実装されておりますが、</div><div>Solaceというミドルウェアは知りませんでしたので、やってみると面白いかもしれませんね。</div><div><br></div><div>ちなみに、通信のモデルとしては、pub/sub型かどうかと、実際に</div><div>ネットワーク上の伝送をCORBAでやるか、別のプロところでやるか</div><div>という問題は、通信モデルを議論する上では別の問題かと思います。</div><div><br></div><div>ただ、原理上、OMGのRTCではポートにどんなインターフェースを</div><div>持たせるかは全くの任意であり、今回のSolaceを通信路とする</div><div>データポートを実装することはOpenRTMにとって全く自然なことです。</div><div><br></div><div>> 開発レベルとしては以下を想定しています。<br></div><div>> レベル1: RTC用のSolaceメッセージングルータ接続ドライバの開発<br><br></div><div>Solaceの詳細を知らないので、これが何を意味しているのかわからないのですが、</div><div>Solaceを利用するためには何かしらのドライバ部分を実装する必要があるということでしょうか?</div><div>ちなみに、言語は何が利用可能でしょうか?</div><div><br></div><div>> レベル2: RTCのデータポートの代わりにメッセージング通信用のポートを選択できるように<br>>      OpenRTMのソースコードレベルでの改造<br>>      (できればrtshellを用いてRTCポート同士の接続、Activate化ができるところまで)<br><br></div><div>これ自体は、OpenRTMのソースに手を加えることなく拡張モジュールとして</div><div>実装することが出来ると思います。具体的には、以下のファイルがデータポートの</div><div>通信部分を実装したファイルとなります。</div><div><br></div><div><div><a href="http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/src/lib/rtm/" target="_blank">http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/src/lib/rtm/</a><br><br>■ 一般的なCORBAによるデータポートの実装</div><div><div><push型></div><div>InPortCorbaCdrConsumer.cpp<br></div></div><div>InPortCorbaCdrConsumer.h<br></div><div>InPortCorbaCdrProvider.cpp<br>InPortCorbaCdrProvider.h</div><div></div><div><div><pull型></div><div><div><div>OutPortCorbaCdrConsumer.cpp<br></div><div>OutPortCorbaCdrConsumer.h</div></div><div>OutPortCorbaCdrProvider.cpp<br></div><div>OutPortCorbaCdrProvider.h</div></div></div><div><br></div><div><br></div><div>■ 1.2用に新たに実装したDirect型のデータポートの実装<br></div><div><div><push型></div></div><div>InPortDirectConsumer.cpp<br></div><div>InPortDirectConsumer.h<br>InPortDirectProvider.cpp<br></div><div>InPortDirectProvider.h</div></div><div><br></div><div>これらはOpenRTMのライブラリに組み込まれており、以下の関数内で</div><div>グローバルなファクトリに登録しています。</div><div><a href="http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/src/lib/rtm/FactoryInit.cpp" target="_blank">http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/src/lib/rtm/FactoryInit.cpp</a><br></div><div><br></div><div>OpenRTMでは、so/dllをロード時に特定の関数を呼び出す機能がありますので、</div><div>so/dll として実装してやることで自由に拡張することができます。</div><div><br></div><div>これらに倣って、4つのファイルをSolace様に実装するイメージでしょうか?</div><div>InPortSolaceConsumer.cpp/h</div><div>InPortSolaceProvider.cpp/h</div><div><br></div><div><br></div><div><br></div><div>> レベル1についてはサマーキャンプ実施内でも実現できそうに考えているのですが、<br></div><div>> レベル2については著作権等の権利関係も含めて今回のサマーキャンプで課題として<br>> 実現可能なレベルでしょうか。<br>> ちなみに私自身は今年5月からOpenRTMを使い始めており、CORBAによるシステム開発の<br>> 経験はありません(SOAPを用いたWebサービスシステムの開発経験はあります)。<br>><br>> もし実現可能なレベルであれば、ソースコードのどの部分に手を加えればよいかを<br>> ご指導いただければ幸甚に存じます。<br><br></div><div>という感じなので、Solaceの使い方はようわかりませんが、2,3日あれば実装</div><div>出来るのではないかと思います。</div><div><br></div><div>以上、よろしくお願いいたします。</div><div><br></div><div><br></div><div><br></div><div><br></div><div>><br>> お忙しいところ恐れ入りますが、できればご回答の程よろしくお願い申し上げます。<br>><br>> --------------------------------------<br>> 公立大学法人 会津大学<br>>  復興支援センター<br>>  特別研究支援者<br>>  吉野 大志 <a href="mailto:daishi-y@u-aizu.ac.jp" target="_blank">daishi-y@u-aizu.ac.jp</a><br>><br>> _______________________________________________<br>> contact mailing list<br>> <a href="mailto:contact@openrtm.org" target="_blank">contact@openrtm.org</a><br>> <a href="http://www.openrtm.org/mailman/listinfo/contact" target="_blank">http://www.openrtm.org/mailman/listinfo/contact</a><br></div><div><br></div><div><br></div><div><br></div><div>--<br>安藤慶昭@国立研究開発法人 産業技術総合研究所<br>  ロボットイノベーション研究センター<br>  ロボットソフトウェアプラットフォーム研究チーム長<br>  (兼務)首都大学東京 客員教授,  博士(工学)<br>  〒305-8568 つくば市梅園1-1-1 中央第2<br>  e-mail: <a href="mailto:n-ando@aist.go.jp" target="_blank">n-ando@aist.go.jp</a>, web: <a href="http://staff.aist.go.jp/n-ando" target="_blank">http://staff.aist.go.jp/n-ando</a><br>  OpenRTM-aist: <a href="http://www.openrtm.org" target="_blank">http://www.openrtm.org</a><br><br><br></div></div>