td/tkを 用いた分散マルチメデイアアプリケーションの作成3 tc1/tk...

9
Td/Tkを いた 分散 マルチメデイアアプリケ ションの 作成 Distributed Muttimedia AppHca■ on using Tc1/Tk 関根 和寿 Kazuhisa Sekine 千葉大学大学院工 学研究科 ´ Abstract 本論文では、 lAlilを Tc1/Tkを ベース とした IAに 拡張する過程 を例 として、 Tc1/Tkを 利用 したプ ログラ ムの応用例 を示す。次 に、分散プ グラミングの 例 とし て、 TcIDP(Tcl Distributed Programing)を いてホワ イト ドを作成 し、ネットワ ベー スのコラボレー ションを実現する。最後に、 マルチ メデ ィアアプ リケ ションをTc1/Tkを いて作成する際に重要な点 を示 し、 TC1/Tk,TC卜 DPの 可能性 と今後の改善案 を議論する。 1 は じめ に 社会的な ユーズにより、各種 のメデ ィア技術 を統合 し た高度なアプ リケ ーションの 大 きな需要が見込 まれてい /~。 その ユーズにい ち早 く応えるためには開発の作業 数が少 なくそれでいて操作性 、強力 な機能 を簡単 に提供する仕組みが必要である。 CUI(Graphical user lntelface)は 主に ウス を使 つ たグラフイカルな操作体系であ り、直観的で操作性 仕組みを提供する ものとして現在主流 となっている。 通常、 CUlを 扱 うためにはCや C■ +言 語を使 う必要力 ' あるが、ウィンドウを 1つ 開 くだけで もかな りのプログ ラム ステップが必要である。 しか し、Tc1/Tkと うラ イプラリお よびそれを利用 したサンプルシェル 等を使 う ことにより、 スクリプ ト言語から簡単 にGUlの 環境 を構 築することが可能になる。 1蹴 臨鶏鳳 yⅢ :Faculty of Engineering, Chiba Untve■ sity 桧垣 泰彦 YasuhilNo Higakt 千葉大学 学音諄 池田 宏明 HiroalNi lkeda 千葉大学工学部 | また、 Tc1/Tkで は強力 なアプ リケ ーション 間通信 手段 を提供 してお り、アプ リケ シ ョンが協調 して動作 することがで きる。そのため パー アプ リケ ーション を作成す るために、再利用可能 なそれぞれ独 立 して動作 す るアプ リケ シ ョンを様 々に結び付けて 1つ 統合 ルチメデ ィアアプ リケ ーションを構築す ることがで きる。 ネットワ クに接続 して利用する機会が増え、 WWW(■ 70rld Wlde Web)力 t爆 発的に普及 し始めた。ス タンドアローンの 環境か らネ ッ トワ クを利用 したアプ リケ シ ョン 環境が GUIと 同 じく標準的なものになり ある。 この ようにネ ットワ ク利用 を前提 としたプ グラ ミング環境 を先は どの GUIと 同 じくス クリプ ト言語 か ら簡単 に利用す ることがで きるシ ステムとして Tc・ l分 散プログラ ミング (Tcl Distibuted Progra がある。 Tcl_DPは ビデオ再生システムやグルー プウェア、 ームなどのアプ リケ ーシ ョンに用 い られてお り、例 え ば遠隔教育 システムなどに応用することも可能である。 2 ユー ザインタフェ ース 構築環境 TC1/Tk、 Ja.a言 語、 Visual Basic/C++、 Delphiと つた魅力的な開発環境は数多 くあるが、その中でもユー インタフェースの概念やオ ジェクト指向プ グラミング を比較的容易に理解することができるとい う点でTd/Tk は非常に有用であると思われる。 そこで本文では、 Tc1/Tkの 概要と 特徴を述 、日本 語化の 動向に ついても述 る。

Upload: others

Post on 27-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

Td/Tkを用いた分散マルチメデイアアプリケーションの作成Distributed Muttimedia AppHca■on using Tc1/Tk

関根 和寿Kazuhisa Sekine

千葉大学大学院工学研究科

Abstract

本論文では、lAlilを Tc1/Tkを ベースとしたIAに

拡張する過程を例として、Tc1/Tkを 利用したプログラ

ムの応用例を示す。次に、分散プログラミングの例とし

て、TcIDP(Tcl Distributed Programing)を 用いてホワ

イト ボードを作成し、ネットワークベースのコラボレー

ションを実現する。最後に、マルチメディアアプリケー

ションをTc1/Tkを用いて作成する際に重要な点を示し、TC1/Tk,TC卜 DPの可能性と今後の改善案を議論する。

1 は じめ に

社会的なユーズにより、各種のメディア技術を統合し

た高度なアプリケーションの大きな需要が見込まれてい/~。 そのユーズにいち早く応えるためには開発の作業工

数が少なくそれでいて操作性の良い、強力な機能を簡単に提供する仕組みが必要である。

CUI(Graphical user lntelface)は 主にマウスを使つ

たグラフイカルな操作体系であり、直観的で操作性の良い仕組みを提供するものとして現在主流となっている。

通常、CUlを扱うためにはCや C■+言語を使う必要力'

あるが、ウィンドウを1つ開くだけでもかなりのプログ

ラム ステップが必要である。しかし、Tc1/Tkと いうラ

イプラリおよびそれを利用したサンプルシェル等を使うことにより、スクリプト言語から簡単にGUlの環境を構

築することが可能になる。

1蹴嶋躙 借臨鶏鳳 yⅢ蒟・:Faculty of Engineering, Chiba Untve■

sity

桧垣 泰彦

YasuhilNo Higakt

千葉大学工学音諄

池田 宏明

HiroalNi lkeda

千葉大学工学部|

また、Tc1/Tkで は強力なアプリケーション間通信の

手段を提供しており、アプリケーションが協調して動作

することができる。そのためハイパーアプリケーション

を作成するために、再利用可能なそれぞれ独立して動作

するアプリケーションを様々に結び付けて 1つの統合マ

ルチメディアアプリケーションを構築することができる。

ネットワークに接続 して利用する機会が増 え、

WWW(■70rld Wlde Web)力t爆発的に普及し始めた。ス

タンドアローンの環境からネットワークを利用したアプ

リケーション環境が GUIと 同じく標準的なものになりつ

つある。このようにネットワーク利用を前提としたプロ

グラミング環境を先はどのGUIと 同じくスクリプト言語から簡単に利用することができるシステムとして Tc・l分

散プログラミング (Tcl Distibuted Prograllning:Tcl_DP)

がある。Tcl_DPは ビデオ再生システムやグループウェア、

ゲームなどのアプリケーションに用いられており、例え

ば遠隔教育システムなどに応用することも可能である。

2 ユーザインタフェース構築環境

TC1/Tk、 Ja.a言語、Visual Basic/C++、 Delphiと いつた魅力的な開発環境は数多くあるが、その中でもユーザインタフェースの概念やオブジェクト指向プログラミングを比較的容易に理解することができるという点でTd/Tkは非常に有用であると思われる。

そこで本文では、Tc1/Tkの概要と特徴を述べ、日本語化の動向についても述べる。

Page 2: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

3 Tc1/Tk

TC1/Tkは カリフォルニア大学バークレー校の JOhn

Ousterhout博 士によって開発された拡張可能なユーザ

インタフェース構築環境である。Tclお よびTk、 これら

2つのソフトウェアを組み合わせて用いることによって

GUIを持ったアプリケーションを開発 禾」用するための

環境を得ることができる。

3 1 Tcl

Tclと は“T001 commalld lallguage“ の略である。図

1に Tclの構成を示す。Tclは Pellの ようなスクリプト

言語であり、ライブラリ化して再利用が可能な構造化言

語である。tclshと いう実行形式のインタプリタを持って

おり、対話的な操作や UNIXに おけるシェルスクリプト

のような使い方ができる。

また、Tclの インタプリタは Cの ライプラリとして

提供されており、容易にアプリケーションに組み込むこ

とができる。さらに各々のアプリケーションにCで書い

た独自のコマンドを追加することによってTclの基本機

能を拡張して用いることも可能である。

Tc■ ライプラリ

し0■ 8h T.1

インタプリタ

○○○○○組み込みコマンド

□□□□□拡張コマンド

図 ll TcIの構成

32 Tk

Tkは 'Tool kit“ の略であり、Tclに GUIを提供す

るための拡張パッケージである。図 2に Tkの構成を示

す。Tkの基本的なアイデアが生まれた背景には、1987

年の秋にアップル社が発表したHyperCardlの 影響がある。現在ではTclと 一体となった標準的な処理系の一部

l HyperCardは スクリブトを記述することで数多くの対話的な構成要素をll調 してFIJ作 させることができる。

となっており拡張パッケージとしての意味合いは薄れつ

つある。

Tkは様々なプラットフォームに対応しておりUNIX上の X_Windowシステム、Ms windcv7s、 MacirltOshな

ど主要な OSに対応している。Tkを使えば Cの コード

の代わりにTclのスクリプトを記述することで MOtifの

ようなユーザインタフェースを構築することができるよ

うになる。Tclと 同様、Tkも cの ライブラリとして提

供されているため様々なアプリケーションに組み込んで

,‖ いることができる。Tkは Tclに 新たなコマンドを追

カロして機能を拡張させることができるという良い見本と

なっている。

TC工′Tkと 拡張ライプラリ

W■ Bh T。 ■′Tkインタプリタ

,~~`~` ````ヽヽ ―ヽ‐ヽヽヽヽヽヽヽ-1

¨ ■ライプラリ

○○○○○組み込みコマンド

コ一

Tkラ イプラリ

○○○○○

拡張ライプラリA

OOOOO

拡張ライプラリB

OOOOO

拡張ライプラリc

OOOOO― ― ― ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ´ ´ ´ ´ ´ ― ― ´ ― ― ― ― ― _― ― ― ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ´ ‐ ´ ″ ‐ ― ― ― ― ― ― ― ‐ ― -1

図 ,Tkと その他の拡張パッケージを組み込んだ構載

33 開発環境としてのTc1/Tkの特徴

Tc1/Tkの特徴を以下に示す。

●い ろ い ろ な プ ラット フォー ム で 動 作 す る

(UNIX,Windows,MMilltosh)ソースコードを大きく変更する必要がない。

●GUI機能を持つている

有用な GUIをすべて Tclの スクリプトとして構築

することができる。

・ 拡張性に優れている

Tclレ ベルだけでなく、Cの レベルで機能を追加し

Page 3: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

カスタマイズすることができる。

●リスト処理機能が強力

データの集まり(リ スト)を 1つのデータとして扱うことができるので複雑な処理も簡単に記述すること

が可能。

・ 連想配列機能がある

配列をサポートしており、その添字は文字列型であ

る。この機能により、多次元配列や、ハッシュデー

タ構造などを簡単に実現することができる。

特に、wishと いうTc1/Tkの インタプリタがあるこ

とで Cの コードを全く書かなくてもMshのスクリプト

を書くだけで GUIを構築することができる。

以下に示すようなわずかなスクリプトで簡単にGUIでボタンを実現することができる。実行結果を図3に示す。

butt。■ b ―text ・ Hollo Worldl!・ ―conII and exit

pack b

Tclと いうのは、このように非常に短いステップで

GUIを 活かしたプログラムを実現できる言語である。

図 ■ Tkのスクリプトの実行例

結果としてCで書かれたッールキットの使い方を覚

えるよりもwishの使い方を覚える方が簡単であり、ユー

ザインタフェースを構築するためのコードの記述量を大

幅に減少させることができる。

34 Tc1/Tkの 日本語化

もともとTc1/Tkはアメリカで開発されたため日本

語には対応 していないが、Td/Tkの 日本語化が主に

(株)SRAの西■芳幸 (nisinab@sra co jp)氏 によって

行われ、酒匂寛 (s激oh◎Sra cojp)氏 および 石曽根信

(iShiSOnmtta co jp)氏 が協力されている。現在のバー

ジョンはTc17 40pP3/Tk4 0JpP3で ある。すべての機能

が日本語化されているわけではないらしいがよほど厳密

な文字列処理を行なわない限りは特に問題はなさそうで

ある。

4 ハイパーアプリケーション

ハイパーアプリケーションとは様々な機能を持った

アプリケーションを結びつけることにより実現されるよ

り高度なアプリケーションである。時には個々のアプリ

ケーションの設計者が意図しなかったような用途が発見

されることも考えられる。ハイパーアプリケーションはアプリケーション間通信

の機能を利用 して実現される。古 くよリアプリケーショ

ンFEl通信の手段として、セマフォ、共有メモリ、UNIXドメインツケット、TCP/uDPツ ケットなどが osに よっ

て提供されている。

本章ではアプリケーション間通信のためのより強力な

手段を提供するものとして Tclの sendコ マンドを取り

上げる。

4.l sendコ マンド

sendはハイパーッール (、pert001)と 呼ばれ、再利用

可能な小さなアプリケーションの開発のために用意され

たものである。sendコ マンドの動作を図 4に示す。send

は同一デイスプレイ上の他のTkア プリケーションに対し

て任意のTclコ マンドを送り、コマンドは対象となるア

プリケーションに送られそこで実行される。その実行結

果は、元のアプリケーションに返される。sendを使うこ

とによって、いくつかの異なる機能をそれぞれ独立して

動作する個別のプログラムとして作成することができる。

アプリケーションA アプリケーションB

W■●■ (イ ンタプリタ

実行

スクリプ Aヽ

●●●dコ マン ド

Wi`h (イ ンタプリタ)

実″

スクリブ Bヽ

結果

●●●dコ マンド

侑呆

図4 sendコ マンドの動作

Tc1/Tkを ユーザ インタフェースの開発環境 と

して積極的に採 り入れているアプリケーションとし

て MBone(MultiCast BMkbone:マ ルチキャストバッ

クボーン)ツ ールがある。これらのツールはTclの イン

Page 4: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

タプリタが組み込まれているのでsendコ マンドを使つて

TcIの スクリプトを送れば自由に制御することができる。

disaIユ ow incoming sends when

■ the X server appears to be insecure,

reverse the comments on the

# fo■ lowing ■ines:

# SECURITYヽ _FLACS ‐

SECURITYヽ _FLACS = ―DTKヽ _l10ヽ _SECURITY

5 Td/Tkに よるIAの実現

Tc1/Tkの インタプリタ言語としての特性を活かして

実際にsendコ マンドを使ったハイパーアプリケーション

を作成する。ここではIA相当の機能の実現を試みる。拡

張として日本語のテキスト表示を可能にする。

5.1 lA

IAと は“■lustrated Audio“ を略したもので、カナ

グのコミュニケーション リサーチセンターによリカナ

ダ放送局 (CBC)と 共同で開発されたものである。1995

年 4月 12日 現在の IAのバージョンは o3である。い

くつかのプラットフォーム用のものが用意されており、

X Windowシステムが動作しており、オーデイオ機能を

持った UNIXの動作しているコンピュータでぁれば動作

可能である。

IAは画像とテキストがォーディオ トラックと同期

するように設計されている。これはコンピュータベース

のスライドショーを可能にし、フルモーションのビデオ

が不可能であるような低いバンド幅のネットワークを介

してビデオ番組を配送すること力`可能となる。

52 1Aの データファイルの構成

IAのデータファイル (通常ファイルの拡張子は ia)は

オーデイオ トラック、画像データ、テキストファイル、

表示や同期を指示するスクリプトファイルから構成され

ている。データの配布時にはいくつかのパートをtarフ ァ

イルにアーカイブしている。

53 基本構成

Tc1/Tkの インタプリタであるwishの みを利用して

実現を試みる。図 6カ'Tc1/Tkを ベースに実現したIAの

大まかな構成を示したものである。ここでは、“Enhallced

IA“ 、EIAと 呼ぶことにする。図 6に あるすべてのツー

図 5:nvに sendコ マンドでボタンを張り付け

ているところ

実際にsendコ マンドを使つて制御を行なっている例

を図 5に示す。図うでは、lⅣ というアプリケーションに

rmtと いうsendを発行するプログラムが新たにボタンを

張り付けているところである。簡単に nvと いうツール

の説明をすると、nv(NetVideo)は ,XEROX PARCのRon nederickが 開発した X WindOvベ ースのビデオ会

議ツールである。Tc1/Tk T001kitを 使用してプログラム

の GUIが作られているのでこのように柔軟な制御が可

能なのである。

4.2 sendコ マンドに関するセキュリティの問題

ディスプレイを共有するTkア プリケーシヨンはユー

ザの認ヨEな しに sendコ マンドを送ることができる。送

られたスクリプトはsendコ マンドを受けとった Tkア プ

リケーシヨンを実行しているユーザの権限で実行するこ

とができる。よってsendコ マンドは大きなセキュリテイ

ホールになる危険性がある。デフォルトではxhostに よ

る認証が設定されているとsendコ マンドの使用ができ

ないように設定されているため特に問題はないと思われ

る。しかし多くのホストで x12ostに よる認証が使用され

ておりxllostが設定されているとsendコ マンドが使えな

いのでは不便である。そこでxhostを 設定している環境

でもsendコ マンドを使いたい場合は、以下のようにTkのMakeileに あるセキュリテイフラグをoFFに してコ

ンパイルすればよい。

# To turn off the security checks that

Page 5: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

ルはすべてwisllと Tclのスク

また、それぞれ独立しており、

ている。

リプ トで実現されている。

再利用可能なッールになっ

図 a EIAの構成

54 各ツールの概要

図 7に示されるツールは音声 トラック、画像、テキス

トをどのようなタイミングで再生するかを記述したスク

リプトファイルを処理し、各アプリケーションを制御す

るためのメインプログラムである。図 8は画像を表示す

るためのツールで、CIF形式、PIxm・ tp、 bitmゅ 形式の

画像を表示することもできる。図 9は 日本語化されてい

るwth4 rJpを 使用しているので漢字交じりのテキスト

を表示することができる。図 10は u-1かv形式の auフ ア

イルを再生することができる。Sunの ワークステーショ

なら通常/dev/mdiOと いう音声デバイスカ利甲意されて

おり、このデバイスにサウンドファイルのデータを順次

書き込んでいくだけである。

図 ,tktex● 日本語テキスト表示ツール

図 &tkimagα 画像表示ツール

sendコ マンド 80ndコ マンド

80ndコ マ ン

図 7:EIAコ ントロールウィンドウ

図 lll tkpl町 :音声再生ツール

Page 6: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

6 分散プログラミング

前に説明したsendコ マンドは同一ホスト上のプロセ

ス間で通信し、複数のアプリケーションを協調して動作

させる機能であった。ここではさらに一歩進めて、分散

プログラミング、つまり異なるホストのプロセス間での

通信を可能にし、基本的なクライアント/サーバモデルを

実現するための拡張パッケージを導入する。そして拡張

された機能を利用してコラボレーションを実現し、簡単

なホワイトボードを作成する。

61 TcrDPと その特徴

Tcl分散プログラミング (Tcl Distibuted Progranl―

ll・ing:Tcl_DP)と は、カリフォルニア大学バークレー

校の Lふvrence A Ro、 ve、 Brim Smith、 Ste"Yenら に

よつて開発されたもので、Tcl上で分散プログラミング

の開発を容易にするための拡張パッケージである。

Tcl DPは 、Tkと 同様に、スクリプトレベルでネッ

トワーク機能を提供している。その機能を実現するのが

砒vishと 呼ばれるインタプリタプログラムである。その

主な機能としてリモート手続き呼び出し (remOte proce―

dure ca11)を 行なうことができる。一般的にはリモート

手続き呼び出しは異なるホストのプロセス間でツケット

と呼ばれる機構を通じてデータを交換する機能である。

Cでこの手続きを記述すれば多くの手順が必要となる力'、

TcrDPな らスクリプトの数命令で httpd(pOrt 80)な ど

と通信することができる。

他の機能として呼び出しの終了をクライアントが待つ必要のない非同期のリモート手続き1乎び出しや、複数

のアプリケーション上にオブジェクトの複製が作られて、

1つ のオブジェクトを更新すると自動的にすべての複製

が更新される分散オブジェクトシステム、簡単な名前領

域の管理 (bindの Tcl版のようなもの )な どがある。

特に非同期のリモート手続き呼び出しを独自に実現す

るのは厄介である。参考文献 151に詳しい解説があるが、

これらの処理は定型的な処理となる。そのため Tcl DP

を使えばこれらの機能があらかじめ用意されているため

ネットワークの細かな部分に労力を害lかずに実現したい

機能の設計に集中することができる。また、再利用可能

なプログラムを効率良く作成することが可能である。

62 TcIDPの 応用分野

Tcl― DPの応用分野として、VOD(Vide0 0n Demand)や グループウェアなどのアプリケーションが考

えられる。VODを実現するためには、音声や動画などを

再生するアプリケーションが必要であることはいうまで

もないが、ビデォサーバとクライアントプログラムが相

互に通信できる必要がある。さらに音声や動画を再生するアプリケーションが協調して動作する必要がある。こ

れらの機能を実現するのにTcIDPは 適しているものと

思われる。

63 Tcl‐DPに よるホワイトボードの実現

Tcl― DPの最大の特徴ともいえる機能で、図 11に示す

ようにsendコ マンドと同様、アプリケーション間で Tcl

のスクリプトを相互に交換 し、通信することができる。

しかし、sendコ マンドと違い、異なるホスト間のアプリ

ケーション間通信が行なえる。ホヮイトボードを実現す

るためにこの機能を利用する。

ホス トA ホス トB

アプリケーションA

荀"た

,h(イ ンタプリタ

Tolコ マンド

アプリケーションB

d"1●h(イ ンタプリタ,

スクリプ トB

結果

Tolコ マンド

結果

図 11:Tcl― DPの Tclのスクリプトの交換

7 ホワイトボードの構成

図 12に作成したホワイトボードの構成を示す。ホワ

イトボードはホワイトボード サーバとホヮイトボード

クライアントの 2つのプロ.グ ラムで構成される。ホワイ

トボードは複数のユーザが二つの画面を共有してコラボ

レーション (共 同作業)を行なうものである。そのため、

共有される画面の情報を保持し、次々と各ユーザから送

られてくる情報を受信して共有画面の情報を更新し、他

のユーザにも変更を伝える必要がある。この役目をする

Page 7: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

のがホワイトボード サーバである。そして共有画面を

視覚化してユーザに提示し、ユーザが画面の操作を行な

うためのインタフェースを提供するのがホワイトボード

クライアントである。これは、CU SeeMeの クライアン

トとリフレクターの関係と類似 している。

図 13が実際に作成 したホワイトボードを実行してい

るところである。図には二つのホワイトボード クライ

アントが起動しており、点を打ったり、円を描いたりす

ると実時間で他のクライアントの画面も更新される。こ

れらの図形情報はすべてオブジェクトとして表現されて

いるためこの画面を保存して後で再生することもll能で

ある。また、画面情報を直接ポストスクリプト形式とし

て保存することも可能である。現在のところサーバーに

接続できるクライアントの数を特に制限していないので

くつでも接続することができる。実際にはサーバを実

行しているマシンの処理ILL力 に制限を受けることになる。

wb3o― er.tc■

ホ ワ イ トボ ー ド サ ー バ

(ap MaxORPCServer)

実行結果

実行結果

wbCllent.tc■

ホワイトボード クライアント

(dp ttL● RCPCユ エent)

dpJDO dp RDO

図 14:ク ライアントとサーバの通信の仕組み

図 1,ホ ワイトボードの構成

7.1 ホワイトボード・サーバ とクライア ントの通

信の仕組み

Tcl― DPを使って実際にどのように通信しているのか

を図 14に示す。Tcl― DPではサーバプログラムを作成す

るのに dp MakeRPCServer、 クライアントプログラムを

作成するのに dp MakeRPCClielltの たった一命令しか

必要としない。さらに、クライアント_サ ーバ間で通信す

るのにもdp RDOの一命令だけである。Tkの sendで

同一ホスト上の Tkの アプリケーションに Tclの スクリ

プトを送信して実行することができたが、この dpユDOでは異なるホスト間の Tclア プリケーションにTclのス

クリプトを送信して実行することができる。

評価と考察

81 評価

EIAと ホワイトボードは Tclの インタプリタを利用して実現されている。機能の違いはあるが実現する過程

で直面する問題はほとんど同じである。

Tc1/Tkの使用感としては、cでプログラムをしている際には割と簡単に対応できる問題がTc1/Tkでは案外難しいように思われる。結局Cの力を借りなければ思い

通りのプログラミングを行なうことは現状では無理のよ

うである。また、全体の処理速度がCで作成されたプロ

グラムに比べて遅く、i486DX2 66MIz程 度ではあまり

ホワイトボー ド サーバ

■からの情報

ホワイ トボー ドクライアン トA

(―■1●nt t● ■)

ホワイ トボー ドクライアントB

(■掟■1●nt to■

ホワイ トボー ドクライアン トc

(WbC■■●nt t。 1

図 1■ ホワイトボードの実行例

Page 8: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

実用的ではない。looMIzの Pentiun■ か、sunの SSb以

上の性能を持ったマシン上で動作させることが望ましい。

結局各部のtlJ作が遅いため、リアルタイムに協調動作を

行なうにはまだまだ改善する余地がある。特に、EIA全

体の処理が画像表示を受け持つ tkimageに足を引っ張ら

れるため大きな画像を扱うと致命的なまでに速度が低下

する。

3つ以上のホワイトボード クライアントがサーバに

接続するとそれに比例してサーバの負荷が上昇する。さ

らに、共有している画面の内容が複雑、つまり大量に書

き込まれると極端に低下することがわかった。さらに処

理中に起こるエラーに対して適切に対処する方法がない

ためサーバがすぐに不安定になり応答しなくなる現象が

発生すること力`確認された。

8.2 考察

Cのみで EIAやホワイトボードと同等の機能を持っ

たプログラムを作成する労力を考えると、速度面でのデ

メリットを考慮してもTc1/Tkを 使って作成したはうが

はるかに労力が少なくてすむ。スクリプトだけで簡単に

GUIを 実現でき、さらにネットワークに接続する機能も

手軽に使えるという点は注目に値すると思われる。

しかし、実際にTclの インタプリタだけを利用して

アプリケーションを作成する際にいくつか不都合な点が

ある。問題点と改善案と共に以下に示す。これらの問題

が解決されればより魅力的なユーザインタフェース構築

環境になると思われる。

●マルチタスク機構の効率が悪い

TclのマルチタスクエンジンはWind“vs3 1の よう

にノンプリエンプティブなマルチタスクである。い

わゆる疑似マルチタスクと呼ばれるものである。そ

のためTkの 中のimttcウ イジェットのように極め

て処理の重い機能を1つでも使うとその処理が終了

するまで全体の処理は停上してしまう。Javaで実現

されているプリエンプテイブなマルチタスクを実現

するために、関数レベルのマルチスレッドを実現す

るためのバークレーのpthreadsラ イブラリをTclの

タスクエンジンに適用することが考えられる。これ

によりTclの関数が並行して処理されるようになり

全体の処理がプロックするオ犬態を回避することがで

きるようになる。

・ 動作が遅い

すべてのコマンドを文字列として扱うため、複雑な

処理をすると極端に処理が遅くなる。Java言語のよ

うに一度中間言語にコンパイルするなどして全体的

な処理速度の向上が必要である。

・ GUIの機能で不足しているものがある

GUlのプログラミングインタフェースを単純化して

いるため、グローバル座標系からローカル座標系に

変換するようなコンピニエンス関数が不足している。

さらに GUIの描画関数の処理が重 く同一ホスト上

で複数の Tc1/Tkア プリケーションを使用するのは

難しい。ひたすら無駄な処理を省いていくしかない

と思われる。 ‐

o例外処理が弱い

最も重要な処理の 1つであるシグナルの取り扱いが

標準では行なえないためsIGINTな どの異常終了に

適切に対応することができない。TclXと いう拡張パッケージではサポートされているのでこれらの機

能を標準のシステムと統合する。

・ 公開されている拡張バツケージを統合する

実際、実用的なアプリケーションを作成するには公

開されている拡張パッケージが必須となつてくるの

でこれらの実用的なパッケージを標準の Tc1/Tkの

システムに統合する。

8.3 動作速度の改善

Tclイ ンタプリタの動作速度が遅いことを指摘 した

が、実行形式のインタプリタである tclsh、 特にwishの

起動にとても時間がかかる。またメモリを大量に消費す

るため十分なメモリを搭載していないとスワップが頻繁

に発生する。このためただでさえ遅いインタプリタの動

作速度をさらに悪化させる原因となっている。これはすべての Tc1/Tkと 拡張パッケージのライプラリが静的に

リンクされているため実行形式のサイズが非常に大きく

なり、デイスク装置から読み込むのに長い時間を要する

ためである。 |そこで静的にリンクした場合と動的にリンクした場

合の実行形式のサイズの違いとそれぞれの形式によるラ

イプラリのサイズの違いを表 1に示す。また、リンクさ

れている動的ライプラリのサイズを表 2に示す。静的に

リンクした実行形式のサイズに比べ、動的にリンクした

Page 9: Td/Tkを 用いた分散マルチメデイアアプリケーションの作成3 Tc1/Tk TC1/Tkはカリフォルニア大学バークレー校のJOhn Ousterhout博士によって開発された拡張可能なユーザ

ものの方が明らかに小さいことがわかる。これは静的に 10 最 後 に

リンクした実行形式の大部分がライプラリのサイズであ

ることからもうなずける。 本研究では、Tclの インタプリタ言語としての特性を

よって、動的ライプラリを共有することでメモリの消 活かしてCを 用

費量を大幅に減少させることができ、

ることができる。また、動的リンク形

起動時間を短縮す てハイパ~ア プ

いずにTclの インタプリタのみを使用し

リケーションと分散プログラミングを実

にしておけば、たとえ日本語化されて

式の実行ファイル 現した。Tc1/Tk

いないTclのプロ 多合環境も含めてi以

外の魅力的なユーザインタフェース開

グラムでも日本語化された動的ライブラリと置き換える を進めていきた「隔教育システムの実現を目指して研究

υ` 。

だけで日本語化することができる。

表 ■ リンク方法によるプログラム サイズの比較

Command Static

Link

(けte)

Dynamic

Link

(けt0

Sο /α (%)

tclsh7 3

tclsh7 4

wish3 6

wish4 0

dpwish

151919

156748

545227

653041

7177

4789

8720

6867

18623

4731

16

11

表 2動的ライプラリの大きさ

動的ライブラリ サイズ(″t→

libc so 5 0 9

libn■ so 5 00

1ibXll so 6 0

libtcl so 7 4

libtk so 4 0

1ibdpnetvttЭrk so 3 3 1

662683

35942

690068

179637

584877

66099

9 今後の課題

思いのほかTc1/Tkの奥が深く、Tc1/Tkを より高機

能にする拡張パッケージが多いためその解析に多くの時

間が割かれてしまつた。Tc1/Tk、 TCl― DPの概要とin・介

に終始してしまった感が拭えないが、今後は、より優れ

たコラボレーションやスライドショーをコンピュータ上

で実現するため、本研究を修士論文として継続していく

予定である。可能ならばMBOIleツ ールなどを組合せ、マ

ルチメディアを利用した遠隔教育システムに応用してい

くつもりである。

最後に、本研究を御指導いただいた池田宏明教授、桧

垣泰彦助手に感謝いたします。

参考文献

11l JOhn ousterhout ra αηα`ん

ιrん 鶴οο

′′Addi30n―

ヽ、lsley Publishing Compaュ ェ,1994

レ1訳 西中芳幸/石曽根信,■ιa2ッールキット,ソフトバンク

pl浅野理森,は じめてのTclノTk,技術評論社

14〕 宮田重明,芳賀敏彦 共著,Tc1/Tkプ ログラミング入門,オ ーム社

同 W リチャード スティープンス=著/篠 日陽―=訳,UNIXネ ットワークプログラミング,PrentlccH洲 ,lnc,株式会社トッパン

161 JP MBOne運用グループ,1995年 02月 06日 版 JPMBone実験参加の手]|

17] http://debra dgbt doc ca/ia/ia htn■ , 11lustrated

Alldio