分DDSインターオペラビリティ・プロトコル今回は前回に引き続いて,OMGのデータ・ディストリビューション・サービス(DDS)についてお話します。DDSのネットワークアーキテクチャは,分散リアルタイム系アプリケーションの必須の条件を満たさなければなりません。遅延を最小にするために,初期の実装では,中継ノードをホップするごとに加算される予測しがたい遅延を回避するためにピアツーピアの通信が採用されていましたが,OMGメンバーは,DDSインターオペラビリティ・プロトコル標準を議定する際にもこのデザインを踏襲しています。DDSインターオペラビリティ・プロトコルは,国際電気標準会議(IEC)のリアルタイム産業用イーサネット標準IEC-PAS-62030をベースに構築されています。PAS62030は,DDSとほぼ同一の産業用ネットワーク通信の必要条件を前提として設計され,産業界で広く普及しており,DDSの初期の実装(標準化前)もPAS62030上に構築されています。DDS標準プロトコルは,既に有効となっていたPAS62030標準にインターオペラビリティを追加するために,RTPSメッセージ,フォーマット,解釈とシナリオを定義しています。OMGのモデル駆動型アーキテクチャ(MDA)とUMLに基づき,プラットフォーム独立モデル(PIM)と,1つのプラットフォーム依存モデル(PSM)が用意されています(訳注⁠)⁠。標準的なプロトコルによってデータを交換し合うことは,インターオペラビリティの問題を半分しか解決していません(しかも簡単なほうの半分⁠)⁠。残る問題は,ネットワーク上に(確実に,そして速く)DDSの独立した実装を2つのステップで発見することです。Protocol(PDP;参加者発見プロトコル)と呼ばれます。Protocol(EDP;エンドポイント発見プロトコル)と呼ばれ,ドメインごとにトピック同士をつなぐものです。EDP)のみを規定しています。仕様はDDSのノードが,他のノードを検出し接続するために,自らの存在を示すパケットを定期的に発信しなければならないと定めています。訳注<?dt>PSMは、プラットフォームとしてトランスポート層にUDP(ユーザ・データグラム・プロトコル)を採用しています。DDSプロトコルとしては、UDP以外のトランスポート層を利用することが可能ですが、相互接続(インターオペラビリティ)のためにはUDPが必要です。DDSのためのUMLプロファイルDDSとインターオペラビリティ・プロトコルは共にMDAに基づいて定義されており,DDSそのものが大きな統合化システムに適合しているために,プロファイルそのものも,非常に自然なものとなっています。プロファイルは,DDSの構成要素の定義を標準化し,システムアナリストや開発者が基本的な部分から組み立て直す必要もなく,簡単にモデリングできるようになっています。これらの標準化された要素を用いて,PIMからPSMへの変換を自動化することが可能で,MDA開発サイクルを短くすることができます。拡張可能で動的に定義可能なトピックの型これまでの議論から,DDSが扱うすべてのトピックの型がコンパイル時にすでにわかっていることを前提として設計されており,トピックのデータの値はさまざまに変わり得るものの,トピックの型そのものはソフトウェアの更新の際にしか変えられないということは明白です。ところが,巨大なネットワークシステム,なかでもコンポーネントが独立して作られるような環境下では,この前提は大きな足かせとなります。そこで,OMGで現在進行中のDDSの改定作業では,拡張可能で動的なトピック型をDDSに追加することを準備しています。これはデータ・モデルがシステムとともに進化するのを可能にし,動的に定義可能なトピックの型を導入します。この仕様改定によって解決されるもうひとつの問題はスパースデータ型と呼ばれるもので,比較的複雑な構造を持ち,送信ごとにごく一部しか変化しないようなデータ型(たとえば飛行計画)の取り扱い方です。IDL)に変換され,DDSはIDL言語マッピングがサポートされるすべてのプログラミング言語で実装することが可能です。IDLからC++へのマッピングでは,C++言語固有の先進的な特性のほとんどが利用されません。OMGは言語に最適化したマッピングを標準化しています。新しいマッピングでは,メモリ管理および,文字列とベクトルの定義と使用(std::stringとstd::vector)をより最適化された形で行い,QoSと状態ために拡張可能なAPIを用意しています。CORBAコンポーネントモデル(CCM)のためのDDSCORBAコンポーネント・モデル(CCM)のためのDDSは,DDSがCCMにもたらした変化の面白さという点で,非常に興味深い仕様です。CCMにDDS固有の拡張を行うのではなく,呼び出しモードが加えられるのを可能にする一般的なフレームワークを構築し,一般的な機能を使って,CCMにDDSのサポート機能を付け加えました。まとめDDSは,OMGの当初の予想をはるかに超えて幅広く使われていますが,今回紹介した新しい標準をサポートすることで,さらに適用範囲が広がっていくものと思います。これらの新しい機能により,より多くのアプリケーション群がOMG標準に基づくミドルウェアとプロトコルを使って,通信のセマンティックス要件を満たすことが可能になります。引用と関連zDDS仕様このWebページからリアルタイムシステムためのDDSの仕様や,DDSインターオペラビリティ・プロトコル仕様,そしてDDSのためのUMLプロファイル仕様をダウンロードすることができます。CCMのためのDDS仕様は,現在採択のための投票が行われています(2009年1月現在⁠)⁠。完了後は,上記のDDS仕様カタログページに掲載される予定です。OMGの会員は,組織のウェブサイトから,製作中の拡張可能DDSトピック型とDDS-C++マッピング標準の進展をモニターすることができます。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。