270 likes | 366 Views
2003s タームプロジェクト「くのいち」 ~階層性を持つマルチキャストを利用したディレクトリサービスの設計と実装~. B3 gorou. はじめに. コンピューティング環境のユビキタス化が進行 今までネットワークに繋がっていなかった物がネットワークに繋がる 情報家電 ネットワーク上のサービスが増加 携帯性を持ったコンピューターが様々な場所からサービスにアクセスする 携帯電話、ノートパソコン 、PDA ネットワーク上のサービスの利用方法の変化が起きる サービスを管理するディレクトリサービス
E N D
2003sタームプロジェクト「くのいち」~階層性を持つマルチキャストを利用したディレクトリサービスの設計と実装~2003sタームプロジェクト「くのいち」~階層性を持つマルチキャストを利用したディレクトリサービスの設計と実装~ B3 gorou
はじめに • コンピューティング環境のユビキタス化が進行 • 今までネットワークに繋がっていなかった物がネットワークに繋がる • 情報家電 • ネットワーク上のサービスが増加 • 携帯性を持ったコンピューターが様々な場所からサービスにアクセスする • 携帯電話、ノートパソコン、PDA • ネットワーク上のサービスの利用方法の変化が起きる • サービスを管理するディレクトリサービス • ユビキタスコンピューティング環境により適したディレクトリサービスを提案できないだろうか
問題意識 • 現状のディレクトリサービス • 改良すべき点はあるであろうか • おおきく二種類のディレクトリサービスに分類可能 • 中央集権型ディレクトリサービス • マルチキャストを用いた分散型ディレクトリサービス
中央集権型ディレクトリサービス • 例 • LDAP、X500、ActiveDirecory • 特徴 • ネットワーク上のサービス情報は特定のマシンに集約される • 問題点 • ユーザーはサービスが保存されるサーバーの場所を知らなければならない • 既存のコンピューティング環境では問題は無いかもしれない • コンピューターが複数のネットワークを移動するユビキタスコンピューティング環境には不適切 • サービスが突然停止した時など情報の整合性が損なわれる • サービス情報にリアルタイム性がない
133.27.xxx.125 Rendezvous対応プリンター Rendezvous 対応パソコン 133.27.xxx.200 133.27.xxx.125 133.27.xxx.200 実線:クエリー点線:返答 Rendezvous対応パソコン IPの要求 IPの要求 マルチキャストを用いた分散型ディレクトリサービス • 例 • UPnP,Rendezvous • 特徴 • マルチキャストを使ったサービス検索 • 中央にサービスを保存するサーバーを置く必要がない • サービス自身による定期的なアナウンシング • 中央集権型に存在した問題を解決 • 問題点 • ネットワークを超えるサービスの検索が不可能 • マルチキャストは自分のいるネットワークにのみ投げられる 図RendezvousでのサービスのIP検索
ユビキタスコンピューティング環境とディレクトリサービスユビキタスコンピューティング環境とディレクトリサービス • ユビキタス環境 • ユーザは今自分が居る場所などを気にせずにいつでも何処でもコンピューターを扱える環境 • 現状のディレクトリサービス • ネットワークを越えての検索が出来ない • 自分は二つのネットワークにアクセス権を持っているのに一つのネットワークを使用しているともう片方のサービスを知る事が制限されてしまう • 例:オミクロン208のプリンター • CNSに接続していたら研究室にいても検索できない
本タームプロジェクト • 目的 • ユビキタス環境に適したディレクトリサービスの設計と実装 • 自分がアクセス出来る権利を有したネットワークに存在するサービスの情報を何処からでも参照可能にする • くのいちシステムの提案 • ユビキタス環境に適したディレクトリサービス • 自分がアクセス出来る権利を有したネットワークに存在すうrさービスの情報が何処からでも参照可能になる • 名前の由来 • 僕にディレクトリサービスへの興味を抱かせてくれたろTodd hodesさんのSDSという研究がNinjaという音楽共有の研究に使われていたから
シナリオ • A君がCNSに繋がったメディアセンターで自分のくのいちシステム対応のラップトップを用いてネットサーフィンしている時に面白い資料を見つけた。忘れないうちに印刷しようと思い、自分のラップトップに表示された自分が利用可能なプリンターを見ると、CNSで利用可能なプリンターと共にHTNETで利用できるプリンターの一覧が表示された。CNSのプリンターでプリントしようとしたが、自分の居る階のプリンターは混雑している為、研究室のプリンターでプリントアウトをしようとした。ふと目を画面に戻すと研究室内のプリンターの電源が落ちている。何事かと思い先輩に電話をしてみると、誤ってプリンターの電源を落としてしまったと教えられた。プリントアウトした気になって研究室に戻るという過ちを犯さずにすんだ彼はくのいちシステムに感謝した
本システムの構成 • くのいちクライアント • ネットワーク内のサービス情報をマルチキャストを利用して取得し、くのいちサーバへと送信するクライアント。ネットワークにアクセスするコンピューターに内臓される • サービス情報(Ipaddressやサービスの名前、内容など) • 他のネットワークのサービス情報を手に入れるためにくのいちサーバへクエリを送信する • クエリ(サービス検索に使われるメッセージ。例(_http._tcp.local.)) くのいちサーバ S情報 S情報 クエリ S情報 S情報 S情報 S情報 HTNET CNS HTNETくのいちクライアント CNSくのいちクライアント クエリ S情報 クエリ S情報 クエリ S情報 クエリ S情報 S情報 ネットワークサービス サービス情報
本システムの構成 • くのいちサーバ • 各ネットワークに必ず一つ存在 • 中央集権型ディレクトリサービスの様な問題を防ぐ為 • ネットワーク内でマルチキャストを行う事により自身を通知 • くのいちクライアントと通信を行う SFCくのいちサーバ S情報 S情報 S情報 S情報 CNS HTNET CNSくのいちサーバ HENETくのいちサーバ IPアドレスをマルチキャスト IPアドレスをマルチキャスト S情報 S情報 S情報 S情報 CNSくのいちクライアント HTNETくのいちクライアント クエリ S情報 クエリ S情報 クエリ S情報 クエリ S情報 S情報 サービス情報 ネットワークサービス
本システムの概要 • サービス情報の集約 • 各ネットワーク上のサービス情報を一つのサーバーに集約 • くのいちサーバにを利用する事でネッワークを超えたサービス検索が可能になる • ユーザーのアクセス権を考慮してサービス検索に制限を掛ける • HENETにアクセス権を持たない人がHTNETの情報を見れたら不味い! SFCくのいちサーバ S情報 S情報 S情報 S情報 CNS HTNET CNSくのいちサーバ HENETくのいちサーバ IPアドレスをマルチキャスト IPアドレスをマルチキャスト S情報 S情報 S情報 S情報 CNSくのいちクライアント HTNETくのいちクライアント クエリ S情報 クエリ S情報 クエリ S情報 クエリ S情報 サービス情報 ネットワークサービス S情報
本システムの概要3 • サーバーに階層性を持たせる • 意味的、距離的に近いと思われるサーバーを繋げる • より広いサービス検索が可能になる • 日吉からCNSのサービスが検索可能になる 慶應くのいちサーバ 日吉くのいちサーバ SFCくのいちサーバ 矢上くのいちサーバ CNSくのいちサーバ HENETくのいちサーバ CNSくのいちクライアント HTNETくのいちクライアント
本システムの概要4 • ハッシュ関数の利用 • 階層上部のサーバーに大量のデータが保存されディスクを圧迫する可能性が高い • ハッシュ関数をかけて保存する事によりサイズ圧縮 • クエリにもハッシュ関数をかける事により検索が可能に • 一致した場合はサービスの送信元に再送要求をしてそれをクエリ発信元に渡す SFCくのいちサーバ HS情 HS情 HS情 HS情 CNS HTNET CNSくのいちサーバ HENETくのいちサーバ HS情 HS情 HS情 HS情 CNSくのいちクライアント HTNETくのいちクライアント クエリ S情報 クエリ S情報 クエリ S情報 クエリ S情報 ハッシュ関数がかけられたサービス情報 ネットワークサービス HS情 Hクエ ハッシュ(クエリ)
実装 • 実装環境&言語 • FreeBSD4.8 • C言語 • システム • くのいちサーバー • くのいちクライアントとUDPで通信 • ハッシュ関数としてMD5を利用 • くのいちクライアント • C言語で記述された簡易RendezvousであるmDNSを改造した • Rendezvousの動作とは別にくのいちサーバ-とUDPで通信 • クエリー(_http._tcp.local.)にハッシュ関数をかけて送信する • サービス情報 • mDNSの画面に表示されるtype,IP,nameからなる文字列 • (例)name=genta’s Web Site._http_.tcp.local*port=80*IP=133….
まとめと今後の課題 • まとめ • 満足のいかない実装 • テーマ決めが遅すぎた • もっと時間をかけて考えてみたい • 今後の課題 • ハッシュ関数をかける事が本当に有効かを調べる • 迂回せずに自分がサービス情報を知りたいネットワークにあるコンピューターへアクセスする事も出来るが、果たしてそれよりも便利だろうか?