第9回 2003/4/2

復刻第39弾!!3年ちょいまえ

━━━━━━━━━━━━━━━━━━━━━━ 2003.04.02 Vol.710 ━━━━━━
 □■□
 ■□■□■□■□■ 日刊「WEBのツボ!!」
 □■□                      http://www.soho-union.com/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                          配信部数 2900部

【○】本日のお題 「システムはオブジェクト指向、そしてRubyで」(#009)━━━━
                                                            福井修@Fsys

まず前回 http://www.melma.com/mag/02/m00020302/a00000481.html の記事で「なぜ
Java ではなく、 Rubyなの?」とメールを頂きました。本連載は、過去記事の2001.
5.9〜「ツボによく利くJAVA & DB」リスト http://fsys.net/webtubolist.html
の続きになっており、特に#15 http://www.soho-union.com/series2/list/497.html
にて JavaからRuby に至った経緯を表明してありますので、どうぞご参考に。

今回は、「クライアントは ActionScript、サーバは Ruby」で美しい『オブジェクト
指向スクリプト』デュエットの為に、Flashに注目です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ リッチクライアントは Flash で

私にとってWebを使うシステムに関する最近のテーマで
・ Webで折れ線グラフ表示するには、どうする?
というのがありました。

まあ普通に考えるとJavaAppletでやるのが答えでしょう。

http での リクエスト and レスポンスで HTMLの範囲すべてやってしまう方式では、
なかなか豊富な表現は難しいところです。グラフ表示などHTMLで出来る範囲を超えて
クライアントに豊富な表現をもたらすにはアプリケーションの処理のレイアを一層か
ませてやり、そこでできる事を上手にそこでやらせる方式が必要です。

JavaScriptは、ブラウザ内蔵のその為のレイアです。JavaAppletもそのレイアの1つ
です。
JavaのAWTやSwingの後継で、かのEclipseのライブラリ SWT が台頭してきていますの
で SWTなどJavaでリッチなクライアントというのも有力な選択枝です。

但しそのクライアントマシンにアプリケーションの処理のレイアを構築するのに、い
ちいち手作業でプログラムをインストールする方式は、その作業がネックになります
ので、そこをいかにうまく回避するかがポイントになります。

JavaAppletでは、リクエストでJavaAppletがダウンロードされ実行されるので、イン
ストールを回避できる有力な方式なのですが、基盤となるブラウザの JavaVMの問題
が足枷になります。
従来 古いバージョンのJavaVMのみが、IEには、準備されており、そのバージョンで
頑張るのか、新しいバージョンを入れ直すのかという問題。またMS vs. Sun の訴訟
の結果で、今IEの JavaVM には混乱があります。WindowsXPには、JavaVMが標準で搭
載されいないのでインストールする必要があります。
[参考] http://www2h.biglobe.ne.jp/~hnakamur/technolab/java/winxpjava.htm

JavaApplet以外の選択では、SVG (Scalable Vector Graphics) もあります。
XML (Unicode)にもどっぷり浸かれますし(疲れますし か^^)。表示だけなら、なか
なか有力です。 SVG では、SVG Viewerのインストールが必要なのですが。
・ Adobe SVG Viewer 1.0 のダウンロードサイト  
http://www.adobe.com/svg/viewer/install/main.htmlSVG Developers Center
http://www.takesato.com/svg/

しかし「 マウスでポイントをクリックしたら値も表示したい!」というニーズもあ
りグラフィック表示して、かつ対話処理をどんどんやりたいとなると、Flashに突き
当たります。また「 画面の部分更新をしたい 」というニーズにも、Flashならでき
そうです。

あと もう旧聞になりますが
・ NTTドコモ、505iシリーズに『Macromedia Flash』搭載
http://k-tai.ascii24.com/k-tai/news/2003/02/24/642055-000.html?24miモードへの「Macromedia FlashTM」の搭載に向けた技術協力に関する
   契約を締結<2003.2.24>
http://www.nttdocomo.co.jp/new/contents/03/whatnew0224.html

iAppli ではビジネスユースの期待に応えられていない現状を打破するのにFlash
が携帯にも登場ですね。

・ FlashをWebアプリのフロント・エンドに(上・下)
http://itpro.nikkeibp.co.jp/members/NIT/ITARTICLE/20021016/1/
http://itpro.nikkeibp.co.jp/members/NIT/ITARTICLE/20021016/2/

・ WWWブラウザの限界を無償のFlashやPDFで越える(上・下)
http://itpro.nikkeibp.co.jp/members/NOS/ITARTICLE/20021028/1/
http://itpro.nikkeibp.co.jp/members/NOS/ITARTICLE/20021028/2/

◎ やっぱりリッチクライアントの本命は、Flash でしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ Flash ActionScriptオブジェクト指向
Flash ActionScriptをマスターすべく 私なりに注力してみました。

Flash界はいろいろな要素(アニメーション作成ツールからの様々な拡張)で、新旧
入り交じってなかなか混沌^^としていますね。(システム屋の私までもが、参入する
わけですから)

Flash界でも ActionScriptは新興で、MXでまだ発展途上。サーバとの連携は、まだま
だこれから。などの認識を新たにしました。(チャンスチャンス)

FLASH ActionScriptバイブル 上野 亨著 オーム社 ISBN4-274-06402-6 \3800
も買いました。「第3章オブジェクト指向でいこう」 イラストの説明は秀逸ですね。

オブジェクト指向一般論での「クラス」と「インスタンス」は、Flashの世界では、
「シンボル」と「インスタンス」となっていますが、同じことですね。
狭義の「オブジェクト」は、「インスタンス」のことを指します。

Flashだからアニメーションが必須ということではなく「ムービークリップオブジェ
クト」をいかにうまく利用してリッチクライアントをオブジェクト指向を使って実現
するかの勝負ですね。

■ Flashのサーバサイド連携解説
「FLASH MX ActionScript RDBMSプログラミング」
伊藤博康著 AI出版 ISBN4-87193-909X \2800 
これはPHPを題材としていますが参考になります。

■ Flash検索サイト http://www.kartoo.com/

Flashだとこんな世界も広がりますね。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ RubyFlash
Ruby の話しは、今回は、少しだけ。

・ RubyFlashを動的作成!
http://nite.kuicr.kyoto-u.ac.jp/~katayama/ming/

Flashを作成するには、普通 Macromediaの有料ツールを使いますが、Flashの形式は、
公開された訳ですから、プログラムで動的に作成するツールは、フリーのものも出て
います。

・ Ming/Ruby Lesson
http://www.momonga-linux.org/~anego/momonga/flash/index.html

・ Ming/Ruby 
http://madscientist.jp/~ikegami/ruby/ming/index.html

・ JaMing 
http://blue.ribbon.to/~harpy/ming/jaming/

・ momonga でも 動的Flash作成ばりばり
http://anego.tdiary.net/200207.html

ここらあたりでも Ruby の優位性は、着々と発揮されています。

「クライアントは ActionScript、サーバは Ruby」で美しい『オブジェクト指向ス
 クリプト』デュエットにはいろいろ準備が必要ですね。今 わくわくしています。

【プロフィール】
福井 修 ( FUKUI Osamu )o-fukui@po.iijnet.or.jp
福井システムリサーチ http://fsys.net/  主幹。システム構築歴25年。
日本リヌクス協会、神戸商工会議所情報処理学会 会員
関西ソーホ・デジタルコンテンツ事業協同組合デジタルハリウッド三宮校 Java講師