RTCとRTミドルウエア

チャットプログラムをRTC化する 前回は、モジュールの組み上げでロボットを作るための標準である「RTC」の生まれた背景について話しました。今回は、RTCとRTミドルウエアの実体に踏み込んで、ソフトウエアエンジニアの視点でこの技術を考えてみましょう。

長瀬 雅之

2009年6月18日 20:00

チャットプログラムをRTC化する

 前回は、モジュールの組み上げでロボットを作るための標準である「RTC」の生まれた背景について話しました。今回は、RTCとRTミドルウエアの実体に踏み込んで、ソフトウエアエンジニアの視点でこの技術を考えてみましょう。

 まずは、図1-1を見てください。これは何に何に見えますか?そうです、チャットの画面です。実は、このチャットの画面はRTCで作成しています。正確には、チャットを行うプログラムそのものを1つのRTCとして作成しています。これがRTC?と思うでしょうか。でも、これも立派なRTCなのです。RTCとRTミドルウエアはソフトウエアの技術ですから、その気になれば、皆さんが普段作成されているシステムをすべてRTCで組み上げることも可能なのです。

 それでは、チャットプログラムの構造を見てみましょう。図1-2をご覧ください。真ん中にあるチャットコンポーネントと書いてある箱がRTCです。

 RTCの右側に、矢印のついた赤い箱と青い箱があります。これは、ほかのRTCとやりとりするための口、すなわち、RTC間のインターフェースポイントです。モジュールの組み上げでロボットを作るための技術がRTCですから、RTC同士でやりとりするための口が設けられている、というのは容易に理解できると思います。

 RTCがどんなインターフェースを持つのか、これは前回お話ししたOMGの仕様で決められています。実際にはインターフェースだけでなく、RTCのとるべき状態、RTCのコンフィギュレーション情報の持ち方、RTCのプロファイル情報の切り方などなど、RTCが持つべき型がひととおり決められています。

 詳細に関しては、早稲田大学の菅さんの連載(http://thinkit.jp/article/948/1/)に譲り、ここでは概要の理解を優先します。

 図1-2で紹介した赤い箱と青い箱を、RTCの仕様では「データポート」と呼びます。これは、ほかのRTCにデータを送ったり受け取ったりする時に使うことから、そのように呼ばれています。

 また、赤い箱をIN(入力)ポート、青い箱をOUT(出力)ポートと呼びます。図1-3では、チャットプログラムで、相手からのメッセージをINポートで受け取り、自分のメッセージを相手に送るところでOUTポートに出力している様子を表しています。

チャットプログラムRTCを試してみる

 さて、あとはキーボード入力と画面出力ですが、こちらはRTCとは直接関係がありません。皆さんが、普段お使いのキーボード入力の受付プログラムと、画面出力のプログラムをRTCの中から呼び出すだけです。

 いかがでしょうか。もっとも単純なRTCならこれだけです。これなら普段の仕事と大きく変わらずに考えられるのではないでしょうか。普段の仕事と異なるのは、

「RTCの型が決められていて、RTCをプログラミングするための作法がある」

ということだけです。ですから、ソフトウエアエンジニアである読者の皆さんなら、作法だけ理解すれば、すぐにでもRTCを作ることができるようになります。まずは、ロボットだからと肩ひじ張らずに、ソフトウエアロジックだけRTCにすればいい、と考えれば気が楽になると思います。

 このチャットプログラムは、.NET Framework3.5をインストール済みのWindowsパソコンがあれば、すぐに試してみることができます。5分もあれば十分ですので、お時間のある方はぜひ試してみてください。この5分は主にマニュアルを読む時間です。

 ダウンロードして、インストーラーを起動することで準備は完了ですので、ダウンロードファイルに同梱(どうこん)されている「チャットコンポーネント利用マニュアル」だけを読んで、すぐに実行してみてください。ネットワークにつながっていなくても、「1人チャット」で動きを確認することもできます。

※ソースファイルは(OpenRTM.NET-1.0.1.zip)からダウンロードできます。

 .NET Framework3.5がパソコンに入っていない方は、マイクロソフトのサイト(http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=ja)からダウンロードしてください。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30