[前回記事] [トップ] [次回記事]

2004年2月号掲載 よしだともこのルート訪問記

第88回 ブロードバンド時代のキラーアプリケーションを目指して
〜産官学共同研究プロジェクト SOBA(Session Oriented Broadband Applications)〜

緒方敏博(おがた としひろ)さん
SOBAプロジェクト開発スタッフ
浦下将治(うらした しょうじ)さん
SOBAプロジェクト開発スタッフ
※所属部署・肩書は取材当時(2003年12月)のものです。

産官学共同研究プロジェクトSOBAとは
 SOBA(ソーバ、Session Oriented Broadband Applications)プロジェクトでは、ブロードバンド上にP2P(Peer-to-Peer)接続されたコンピュータ間で、動的・リアルタイムなコミュニケーション/コラボレーションを実現するアプリケーションのためのフレームワークを開発した。
 2001年に産学協同プロジェクトとしてスタート。2002年に「広帯域通信網上の仮想空間応用ソフトの研究」として文部科学省の「科学技術振興調整費」による委託業務に採択されたことにより、産・学に官が加わり、産官学共同プロジェクトとなった。
 2002年7月にアルファ版を公開し、2003年10月24日には正式バージョン「SOBAフレームワーク1.1」をリリースした。研究プロジェクトは2005年3月までの予定で、早い段階でSOBA Inc.(仮称)を設立することを目指している。
http://www.soba-project.org/

■産学官による共同プロジェクト 後世に残るものを自分の手で作るぞ!!

 今回、取材に訪れた「産官学共同研究プロジェクト SOBA」の開発拠点(京都市左京区北白川西町80-4)は、京都大学の理学部、農学部などがある北部キャンパスから徒歩数分の距離にあります。
 そしてこの地は、約20年前から産学協同開発拠点として存在し、Prolog-KABA注1、KCL(Kyoto Common Lisp)注2、Wnn注3、GMW注4など、歴史に名の残るソフトウェアを誕生させた実績もあります。その場所を開発拠点として、いままた大きなプロジェクトがスタートしました。それが、産官学共同プロジェクトへと発展し、正式バージョンもオープンソースとしてすでにリリースされたと聞き、お話を伺うことにしました。

よしだ(以下、Y):はじめまして。このSOBAプロジェクトは、大学と企業と文部科学省注5から構成されていますが、今日、お話をお伺いする緒方さん、浦下さんは、それらの組織の所属ではなく、純粋なSOBAプロジェクト開発スタッフの一員だそうですね。そこで、まずはお2人のバックグラウンドをお聞きしたいと思います。

緒方さん(以下、緒方):私は、2002年の春から、このプロジェクトに参加して開発を担当しています。ここに来る前は、大学に勤めていました。学部から大学院の修士課程、博士課程に進んで、その後は助手をやっていました。このプロジェクトを知り、新たなところでチャレンジしたいと思って、こちらへ来ました。
 大学にいたころから、UNIXはずっと使っていました。10年近く、画像処理、画像認識を研究としてやってきて、同時に、ネットワーク関係にも詳しくなっていました。大学にいましたから、家庭からは低速なモデムや64KbpsのISDNで何とかインターネットが使えるようになった時代にも、ずっとリッチなネットワーク環境を当たり前のように使い続けていました。
 そういう背景を持つ者として、Session Oriented Broadband Applicationsというフルネームからも分かるように、一般家庭にも普及し始めた高帯域なネットワーク環境で、画像も含めたアプリケーションをガンガン使うようになったときのフレームワークを作るというSOBAの研究テーマは非常に魅力的に思えました。それで、「後世に残るようなものを作るぞ!」という意気込みで、乗り込んできたのです。

浦下さん(以下、浦下):私は2003年5月から参加し、このプロジェクトの中では2番目に新しいメンバーです。
 私の場合は、1991年に大学の数理工学科を出て、コンピュータメーカーに入りました。当時、ダウンサイジングの流れの中で、UNIX系の人材が必要だという会社の判断で、大々的にUNIX系の研修を受けました。UNIXと本格的に出会ったのは、そのときからです。その後、SEとしていろんな仕事にかかわりました。たとえば、ある自動車メーカーのCAD制作でXやMotifを使って画面を作るものや、GIS(Geographical Information System)注6関連のシステム設計などを中心とした案件に取り組みました。
 1990年代の後半から、データベース関連の仕事をやるようになり、カスタマイズの仕事が多くなっていたときに、SOBAの存在を知り、自分の手で実際に何か作ることに魅力を感じてこのプロジェクトにやってきました。

■期待のP2Pアプリケーションを支える開発ネットワーク環境とSOBAの存在意義

Y:開発現場でのネットワーク環境を紹介してもらえますか? LANがどのように外部にインターネット接続されているかなどです。

緒方:実は、2002年3月に私がここに来た当時、みやびじょん注7のCATV回線でLANがインターネット接続されており、通信速度は上りの速度が最大128Kbps、下りの速度は最大4.5Mbpsでした注8
 ブロードバンドの環境を作っている拠点としては、ちょっと情けない状況だったんですが、その年の7月からは、光回線でインターネットに接続するようになりました。
 現在は、その光回線とは別に、SOBAの開発・実験用、つまりSOBAフレームワークのためだけに、4本の光回線を導入しています。内訳は、NTT西日本のBフレッツが2本と、関西電力系のケイ・オプティコムが2本です。P2P接続の場合、NATやファイアウォールを越える工夫が必要となるので、その実験インフラとして用意しています。さらに、SOBAの動作を検証するため、代表的なプロバイダを選定し、4本のADSL環境も用意しています。

Y:SOBAの意義を一言でまとめるとどうなりますか。

浦下:ブロードバンド時代のアプリケーション作りを強力に推進することです。現在、ASDLが普及し、数年後にはFTTHサービスへの移行が予定されていますが、その利用方法のためのキラーアプリケーションはありません。せっかくのブロードバンドの使い道として、動画がスムーズになることでビデオレンタルの代わりに使える程度しかメリットがありません。そういう背景の中で、SOBAのフレームワークは、コミュニケーション・コラボレーションを行うアプリケーション作りを推進します。
 つまり、現状では、コミュニケーションのためのアプリケーションを開発するには、高度な専門知識が必要となりますが、SOBAが提供するフレームワークを使うことで、このアプリケーション開発が簡単になります。たとえば、コンピュータについての知識を持たない医師が、医療情報アプリケーションを作れるといった使い方です。

Y:P2P(Peer-to-Peer)接続を採用されている理由は何ですか。

浦下:従来のクライアント/サーバー型の場合、非対称ですよね。負荷はサーバーが持ち、一極集中になります。しかし、P2Pの場合は負荷を均等に分散できます。
 近年、P2Pが従来のサーバー指向に取って代わり得るものとして注目されていますが、サーバーが介在しないP2Pの特徴と、アプリケーションごとのセキュリティ要件の違いのため、既存のP2Pフレームワークは低レベルなセキュリティ機構に留まっています。しかし、SOBAのフレームワークは、商用利用を想定していることもあり、高レベルなセキュリティ機構を備えています。
 また、やはり商用利用を可能にする観点から、オープンソースとして提供するSOBAフレームワークのライセンスには、LGPLを採用しています。LGPLなら、フレームワークの上で動く商用アプリケーションを作って、バイナリのみの提供というケースにも対応できます。GPLにすると、フレームワークの上で動くアプリケーションのソースを公開しないといけなくなりますから注9
 そして、(1)高レベルなセキュリティ機構、(2)商用利用を想定という2項目以外にも、(3)マルチプラットフォームの実現を開発要件に挙げています。を見てもらえば分かるように、基本的にはOS上のJavaランタイム環境を使います。Javaが動くのであれば、どんなOS上でも使えると考えてもらってかまいません。これにより、マルチプラットフォームを実現しています。
 ただし、デバイスを扱う部分、たとえば、カメラからの画像を取り込む処理の部分では、Javaから直接扱うと遅いために、OSを直接触るネイティブモジュールという形で提供します。2003年10月24日リリースの正式バージョン「フレームワーク1.1」で正式にサポートしているOSは、WindowsとLinuxです。フレームワーク1.1は、特定非営利活動法人「オープンソースでネットコミュニティを開拓する会」注10を通じて配布しました。
 SOBAフレームワークを使ったアプリケーション(セッションアプリケーション)は、共有空間の中にサブセッションという別の共有空間を作ります。そして、それぞれに部品アプリケーションが用意されているという状態になります。
 SOBAを既存システムと比較してみましょう。まず、ビデオ配信システムとの違いは、ビデオ配信システムが単にサーバーからクライアントに配信しているのに対して、SOBAはP2Pのために、ユーザーが各種のメディアを双方向に交換し合えるということです。
 次に、Microsoft NetMeetingとの違いですが、Net Meetingでは画面を共有しているにすぎないのですね。これに対して、SOBAではロジックそのものを共有します。そうすると、たとえばWebブラウザを共有している場合はセキュリティが確保され、パスワードで保護されたWebサイトにアクセスしようとすると、アクセスを許された人しかそのWebページを見ることができません。NetMeetingの画面共有ではセキュリティによる保護がなく、誰にでも同じ画面を見られてしまいます。
 また、同じくP2PのGrooveとの違いは、Grooveが静的なデータを複数の端末間で同期させるのに対して、SOBAではストリームデータ再生の共有など、動的な共有が可能な点です。NapstarなどのP2Pシステムとの違いは、それらが単なるファイル交換システムであるのに対して、SOBAは共有空間を使用した、音声や動画も使えるコミュニケーションシステムであることです。

Y:このフレームワークの設計に、画期的な技術が使われているようなら、それも聞きたいのですが。

浦下:SOBAフレームワークのアーキテクチャ部分に特殊な技術を使っているかという質問ですよね。ここはオープンソースですから、Linuxが特殊な技術を使っていないのと同じように、SOBAでも何か特別な技術を使っているわけではありません。特許は一部、申請している部分もあるのですが、それは一部です。著作権にはかなり配慮する形で作っています。

Y:学会などで発表した論文を紹介してもらえませんか。

浦下:論文などは、ネット上で公開してますよ注11

 SOBAフレームワークの実装階層
SOBAフレームワークの実装階層

■ゲームから行政、医療まで SOBAフレームワークの応用ぞくぞく

Y:SOBAフレームワークは具体的にどのように利用されているのでしょうか。

浦下:アプリケーションの応用例では、企業間ミーティングなどのビジネス、遠隔授業など教育分野、各種届出業務などの行政、遠隔医療、ブロードバンドインターネット出版、ゲームなどの娯楽、パーソナル利用です。

緒方:実際に、SOBAフレームワークを使ってアプリケーションの開発が進んでいる案件の1つとしては、沖縄にOSPI(Open Source Promotion Institute)注12という組織があるんですが、そこで電子行政システムのようなものを作るのに、SOBAフレームを使っています。今後、行政窓口がネットワーク上になっていくに当たって、情報弱者、たとえばお年寄りの方と窓口とのコミュニケーションは、簡単なカメラとマイクが付いたパソコンを利用して、窓口の担当者が使い方を指示するようなことが可能になります。そういったインフラのフレームワークに、SOBAフレームワークを使いたいという案件です。
 教育では、SOBAフレームワークを使って、早稲田大学(二村良彦教授)が遠隔講義システムを開発していますし、2002年9月だったと思いますが、アメリカと中国と日本を結んだ実証実験に使われました。

Y:SOBAフレームワークは、2002年9月にはもう使えるようになっていたのですか。

浦下:2002年7月にはアルファ版を配布していましたからね。2003年4月にはベータ版を配布して、10月に正式版リリースをしたわけです。
 遠隔医療の案件は、モバイル・テレメディシンといって、救急車と病院内、また病院間で患者の心電図や画像などの情報を共有するために、SOBAフレームワークを使うことが考えられています。近いうちに、実証実験が予定されています。

緒方:娯楽分野では、フランスから実習生として半年間、滞在していた方が、SOBAフレームワークを使って、sobachiというネットワークゲームを作られました。SOBAフレームワークを使えば、ネットワークゲームも比較的簡単に作れるという例です。

Y:ちなみに、素人でも、このフレームワークを使ってアプリケーションを作成できるのですか? Webページを見て、ようやく電子メールを読み書きできる程度レベルでは、当然無理ですよね?

緒方:はい。そこまで簡単ではないですね。そうした層も取り込めるといいんでしょうけど、いまのところ、その仕組みを提供するまでには至っていない状況ですね。

■関西オープンソース+フリーウェア2003出展で手応えアリ!

Y:2003年10月31日、11月1日に実施された、関西オープンソース+フリーウェア2003に出展していましたよね。そのときの反響や手応えを紹介していただけますか。

浦下:想像以上に好評でしたね。SOBAのブースでは2日間とも人だかりができました。3台のノートPCを並べてセッションを共有するデモをお見せしたのですが、来る人来る人みんなが、ぜひ使ってみたいという感想を話していました。また、開発する側もやる気になるお言葉をいただきました。
 SOBAのようなコミュニケーションツールは、多くの人に使ってもらって初めて意味があるものなので、とにかく大勢の方に知ってもらいたいです。

緒方:SOBAがマルチプラットフォームである点にも評価をいただいたようです。SOBAのフレームワークがLinuxとWindowsとの違いを吸収した作りになっているので、付属ツールを自在に使いながら、SOBAが作るネット上の空間でコミュニケーションが楽しめます。デモに関心を寄せてくださった方々に簡単にSOBAに触れてもらったところ、映像や音声だけでなく、お絵かきツールを使って相手と実際にやり取りするのは、意外とハマるみたいです。手応えあり、ですね。今後さらにマルチプラットフォーム化を進めて、個人的にはMac OS XでもSOBAが動くようにしたいです。

Y:それは今後の発展がとても楽しみですね。開発者以外の人たちに、どれだけ使ってもらえるかが、成功の鍵になると思います。たとえば、1987年に完成したWnnが、UNIX系の日本語変換のデファクトスタンダードになり得たのは、開発者以外の人に注目してもらえたことが勝因(笑)だと考えて間違いないです。

浦下:そのとおりですね。最終的にはそういう形にしていけたらと思っています。エンドユーザーによるアプリケーション作成も、積極的に支援していくつもりです。

Y:私も応援しております。本日はありがとうございました。


SOBAフレームワークを用いれば簡単にTV電話システム等が実現できる
注1 Prolog-KABA
論理型プログラミング言語PrologをPC9801上などでも利用できるようにしたシステム。エディタ、デバッガ、インタープリタなどを含む。

注2 KCL(Kyoto Common Lisp)
世界初のCommon Lispフルセット処理系の実装として開発され、京都の名前を冠して「Kyoto Common Lisp」と名付けられている。現在は、この後継として、GNU Common Lisp(gcl)があり、こちらのほうが入手しやすい。
http://www.gnu.org/software/gcl/gcl.html

注3 Wnn
京都大学、オムロン、アステックによって共同開発され、1987年に完成したUNIX上のかな漢字変換システム。「Watashino Namaeha Nakanodesu(私の名前は中野です)」という文章を一括変換できるシステムということで、その文の各文節の頭文字を取って名付けられた。
http://www.tomo.gr.jp/wnn/wnn-yogo.html

注4 GMW(Give me More Windows)
UNIX上の仮想機械サーバー方式のウィンドウシステムとして、京都大学、オムロン、アステックが共同で開発した。

注5 大学と企業と文部科学省
SOBAは、3大学2企業が中心となってフレームワークの開発を進めている。大学側は、京都大学、東京工業大学、早稲田大学の3大学。企業側はエヌ・ティ・ティ・コムウェア株式会社、オムロングループ(オムロン株式会社、オムロン ソフトウェア株式会社)である。また、文部科学省の科学技術振興調整費「産学官共同研究の効果的な推進」プログラムによる委託業務期間中の体制として運営されている。
http://www.soba-project.org/jp/orgnplan.html

注6 GIS(Geographical Information System)
地図(地形)データと、位置に関連した属性データや統計データを、統合的に扱う情報システム。GPS(Global Positioning System)や、地図データに人口分布や商店配置などを組み合わせて、マーケティングに応用するなどの例がある。
http://www.c-crews.co.jp/gisnext/

注7 みやびじょん
株式会社京都ケーブルコミュニケーションズの愛称。
http://www.miyavision.co.jp/

注8 当時のネットワーク環境
みやびじょんを導入した当初は、京都ではまだフレッツ・ISDNすらサービスが始まっておらず、当時(といってもわずか1年半前)は事実上これしか選択肢がなかった。

注9 LGPLとGPLの違い
GPL(GNU General Public License)、LGPL(GNU Lesser General Public License)のどちらも、GNU が提唱しているフリーソフトウェアを実現するためのソフトウェアライセンスである。GPLに基づいてライセンス供与されたコードがそのほかのコードと結合・リンクされた場合、そのコードもGPLに基づいてライセンス供与する必要がある。一方、LGPLに基づいてライセンス供与されたコードは、どのようなライセンスであるかにかかわらず、そのほかのコードに動的・静的にリンクできる。つまり、LGPLはGPLの制限を緩めたものとして、商業ソフトウェアにおいて、LGPLに従うライブラリやツールキットへのリンクを可能にした。

注10 特定非営利活動法人「オープンソースでネットコミュニティを開拓する会」(incpod: Internet Community Pioneers with Open-Development)
ネットコミュニティにかかわるオープンソースソフトウェアの研究開発を支援する活動、およびその成果を一般へ普及させる活動を行う団体。2003月7月17日に、特定非営利活動法人(NPO)として認可された。
http://www.incpod.org/

注11 SOBAフレームワークに関する論文
2003年3月26日 情報処理学会「SOBAフレームワークにおけるP2Pネットワーク上の同期機構の実現」
http://www.soba-project.org/jp/syncsession.pdf
2003年03月20日 電子情報通信学会「P2PアプリケーションフレームワークSOBAのセキュリティ機構」
http://www.soba-project.org/jp/ieice-2003(1).pdf

注12 OSPI(Open Source Promotion Institute)
オープンソースソフトウェアの利用を促進する特定非営利活動法人(NPO)。Linux、Apache、Sendmailをはじめとするフリーソフトウェアおよびオープンソースソフトウェアの増加、また沖縄、日本、アジアでのさらなる利用拡大を促進するための活動を行っている。

私のUNIX #14 〜緒方敏博さんのUNIX〜

●OS環境:Linux、hp-ux、Solaris、Windows 2000/XP、Mac OS X、Mac OS 9

 UNIXとの付き合いは大学に入って以来で、もう十数年になります。最初に触れたのはSunのワークステーションで、C言語の演習課題をこなす程度の使い方でした。
 現在は、P2P技術を応用したフレームワークの研究開発に従事していて、主に、ファイアウォールを隔てても、P2P通信が可能となる仕組みを模索しています。ファイアウォールを越えてデータを中継できるサーバーの開発を行っているのです。そのサーバーが動くプラットフォームとして手元で使っているUNIX環境が、Linux、hp-ux、そしてSolarisです。
 普段、仕事用に提供されていてメインで利用するPCはWindows 2000やWindows XPですが、これらにはCygwinをインストールし、Cygwinのターミナルから、あるいはTera Termで、SSHやTelnetを使ってUNIX環境にアクセスし、プログラムのコードを書くなどの業務を行っています。
 プライベートではMac OSを愛用しています。MacSSHを使って、自宅からインターネット経由で職場のLinuxやhp-uxなどのホストにログインし、各ホストを渡り歩いたりしています。
 幸か不幸か、このような多様な環境で開発に従事できています。

●シェル:sh、bash、csh、tcsh

 ルートのシェルとしてshを使いますが、ユーザーとしてこのごろ主に使うシェルは、bashです。Linuxを使う機会が多くなったためです。長い付き合いとなっているのはcshやtcshで、hp-uxではcshを使っています。個人で使うPCはもっぱらMac OSで、Mac OS X上だとtcshを使っています。

●シェルの設定

 どのUNIX環境でも共通に行うシェルの設定は、主にプロンプトとlsに対するエイリアスです。そのほかは、各ホストに応じてPATHを追加したり、rmコマンドを利用するときに「-i」オプションを付ける程度で、特殊な設定はできるだけ避けています。
 プロンプトの設定は、Linux、Solarisやhp-uxなどの環境を渡り歩く機会が多いため、次のようにホスト名が分かるように、そしてシンプルな表示を好んで使っています。Cシェル系のプロンプトでは%を$にします。

PS1='[`hostname`]$ '

 lsのエイリアスは、どんなUNIX環境でも共通して次のような設定を行っています。

alias ls='ls -F'
alias la='ls -aF'
alias ll='ls -lF'
alias lla='ls -alF'
alias lsd='ls -dF'

 カラー表示ができるUNIX環境の場合には、オプションの「--color=auto」をさらに付け加えています。
 Windowsを使う場合にはCygwinを利用していますが、Windowsではファイル名に日本語を用いている場合も多いため、上述のエイリアスで、オプションの「--show-control-chars」を付けて、lsで日本語の表示もできるように設定しています。

●エディタ:vi、Emacs

 Emacsも使いますが、よく使うエディタはviです。マシンの設定や管理などルートとしての作業も多く、各種設定ファイルを編集するときにはviで十分だ、と勝手に思っています。プログラムを記述するときも、テキストを作成するときも、viを使い続けて10年以上になりました。最近は、いろいろあるviの中でも、vimをメインに使っています。
 現在携わっている技術開発では、WindowsとLinuxとの間でファイルを共有することが多く、Windowsで作成したテキストファイルは、Linuxで開くとき文字コードの違いで文字化けしてしまいます。vimを使う場合に覚えておきたいのが、次の、文字コードを指定して読み込むためのvimのコマンドです。

:e ++encoding=cp932 filename

 これからも、viは使い続けることになりそうです。

●そのほかのこだわり

 ターミナル画面のデフォルトサイズが、半角で80文字×24行で表示される環境に慣れ親しんでしまっているため、1行に入力するテキストは、全角で35文字程度で必ず改行することにこだわっています。
 電子メールを書くときも、プログラムのコードを書くときも、基本的には、1行は35文字程度で、無意識に改行してしまいます。「慣れ」ですね。日常、私宛てに送られてくる電子メールで、1行の文字数が全角で40字を超えて改行されていないという場合、私の環境では文章を読みにくくなってしまうのが、悲しいです。
 そのほか、文章を書くときは、英数字は半角で必ず表記し、絶対に全角による表記はしないというこだわりと、カタカナは全角で表記するというポリシーは貫きたいです。

[前回記事] [トップ] [次回記事]

Last modified: Mon May 21 13:35:36 JST 2007 by Tomoko Yoshida