ダウンロード

Adobe Flex
オープンソースで構築するリ
ッチクライアント
株式会社フラッグシステムズ
目次







概要 Flexとは?
Flexの開発
Flexの周辺技術
BlazeDSの通信技術
セッション情報
システム構成案
まとめ
概要 Flexとは?
利用者的観点
①利用者はブラウザ(IEとかFirefoxとか)で利用します。
→通常のWebと同じ感覚。
②HTMLじゃありません。Flash(ベース)です。
→表現豊か。ユーザビリティ向上。
③いわゆるリッチクライアントと呼ばれるもので、主に利用
者のパソコンで動くアプリケーションです。
→最初にアプリケーションを落としたり、データ通信を行うとき
にサーバと接続。
概要 Flexとは?
提供者(技術者)的観点
①オープンソースです。タダです。
→昔は商用利用に関してはお金が掛かった…。
②HTML,JavaScriptは使いません。
代わりにMXML,ActionScriptを使います。
→似たような技術ですが、覚える必要はアリ。
③Java,PHP,ASP.net,RUBYといった既存のWeb技術との親和性が高
いです。
→画面はFlex、裏はJava、といった使い方になります。
④Adobe製品です。
→だから何ということはありません。
概要 Flexとは?
リッチクライアントとは何か。1
ユ
ー
ザ
ビ
リ
テ
ィ
ファット
クライアント
リッチ
クライアント
HTML
クライアント
コストパフォーマンス
概要 Flexとは?
リッチクライアントとは何か。2
ファットクライアント
CD-ROM等で配布して導入するアプリケーション。
例)Excel、Photshopなど

→導入が面倒!
ユ
ー
ザ
ビ
リ
テ
ィ
ファット
クライアント
リッチ
クライアント
HTML
クライアント
コストパフォーマンス
概要 Flexとは?
リッチクライアントとは何か。3
HTMLクライアント
Webサイトのように、ブラウザでアクセスして使うアプリケ
ーション
例)ヤフオク、楽天など

→UIが貧弱!
→実行環境によって見た目や動きが違う
ことも…。
ユ
ー
ザ
ビ
リ
テ
ィ
ファット
クライアント
リッチ
クライアント
HTML
クライアント
コストパフォーマンス
概要 Flexとは?
リッチクライアントとは何か。4
リッチクライアント
必要に応じてダウンロードして実行するアプリケーション。
データを取得する場合にサーバにアクセスする。

→導入が簡単!
→UIがリッチ!
→実行環境に
依存しない!
ユ
ー
ザ
ビ
リ
テ
ィ
ファット
クライアント
リッチ
クライアント
HTML
クライアント
コストパフォーマンス
概要 Flexとは?
リッチクライアントとは何か。補足

補足)
昔は、クライアントのPCの能力が低かったため、サーバにお金を掛けて、サ
ーバが頑張るHTMLクライアントは有用性がありました。
近年、PCの能力向上に合わせ、サーバの負荷を下げてクライアントのリソー
スを有効活用するという考え方に変わりつつあります。

参考)リッチクライアント技術
Flex … Adobe
Silverlight … Microsoft
JavaFX … Sun
その他、Curl、BizBrowserなど。
概要 Flexとは?
まとめ



FlexはFlashベースのリッチクライアント
です。
表現豊かなWebアプリケーションが構築
できます。
しかも、タダ!!
Flexの開発
構成要素1
クライアント
サーバ
②コンパイル
MXML
SWF
③配備
Action
Script
①作成
①アクセス
SWF
SWF
②ダウンロード
③実行
DB
FlashPlayer
ブラウザ
2回目以降は
データのやり取り
※ひとつのSWFフ
ァイルに複数の画
面を持つことができ
ます。
Flexの開発
構成要素2

MXML
ここにテキストボックスを配置して、ボタンを配置して・・・という情報をXMLで記述します。
HTMLとは結構違いがあるので注意が必要です。
コンテナ、DataGrid(Tableというのはない)などの独自の概念があります。
swingなどを利用したことがある人にはとっつきやすいかもしれません。

ActionScript
画面上の動きを記述する言語です。
データグリッドをクリックしたらその内容がテキストボックスに反映されて・・・など。
Flashで使われてきたActionScriiptと同じです。
JavaScriptと酷似しているので、習得は楽だと思います。
ただし、ActionScriptのバージョンが3.0になってからオブジェクト指向が導入されました。
Flexの開発
構成要素3

SWFファイル
サーバに置いておきます。
利用者は、ブラウザでこいつにアクセスすると、ダウンロードをすることになります。
ダウンロードし終えると、FlashPlayerの上でSWFファイルが動きだします。
(HTMLと同様の)マークアップ言語です。

FlashPlayer
環境ごとのテストも不要になる。
通常のWebアプリケーションでは、各環境ごとのテストが必要であったり、
IEでしか動かない、等の制約をつける必要もない。
※FlashPlayerは常に最新版が自動でダウンロードされる。
インターネット環境につながっていないシステムは何らかの考慮が必要になる。
Flexの開発
開発環境

FlexSDK
MXML、ActionScriptをコンパイルしてSWFファイルを生成する。
ただです!

FlexBuilder
Adobe純正のFlex(及びAir)専用開発環境。
・SWFファイルの生成
・WYSIWYG(ウィジウィグ)
※Eclipseベースなので、
Eclipse愛用者はすぐ使えるはず。
製品版 31,500円(税込)
アドビストア価格
Flexの周辺技術
表(プレゼンテーション)

ILOG Elixir
コンポーネント製品。「高度なグラフィック機能とインタラクティブな操作性によ
り、生データをクリアで実用的な情報に変換できます。」(有償です。)
組織図
3Dチャート
ゲージ
Flexの周辺技術
裏(通信技術)1

BlazeDS
クライアントのFlex(FlashPlayerで動いているSWFファイル)と、サーバの
Javaロジックをつなぐもの。
設定ファイルに記述することで、MXMLからJavaのメソッドを直接呼ぶように
記述することができます。
LCDS ES(LiveCycle DataServices Enterprise Suite)の一機能をオープンソース化したもの(※LCDS
ESは有料です。)
◎Javaオブジェクトを直接呼び出すことが出来る(リモーティング機能)
◎サーバーからメッセージをプッシュすることが出来る(Webメッセージング機
能)
Flexの周辺技術
裏(通信技術)2
S2BlazeDS
DIコンテナSeasar2の関連プロダクトのひとつ。

BlazeDSの「Javaとの連携」部分をさらに一歩押し進め
て、設定ファイルへの記述を最小限にとどめて、もっと
簡単に呼び出すことができるようにしたもの。
Flexの周辺技術
裏(通信技術)3
クライアント
サーバ
社員番号003
の人は?
(getEmployee呼出)
①リクエスト
SWF
③レスポンス
山本さんです
BlazeDS
②呼出
検索
SearchService#getEmployee
設定ファイル(WEB-INF/flex/remoting-config.xml)
getEmployee = SearchServiceクラスのgetEmployeeメソッドです
S2BlazeDSは、↑この設定を不要にできる。
BlazeDSの通信技術
(前提知識)Flex3つの通信方式

(前提知識)Flexがサポートする3つの通信方式
HTTP (GET/POST) [text]
→通常のHTMLで行っている(Webサイトを閲覧する)通信方式。
Webサービス[text]
→XML形式のプロトコルを用いメッセージの送受信を行う技術。
AMF (マクロメディア独自テクノロジー)[binary]
→Flash独自の通信方式。
※これらはいずれもHTTPプロトコルを使って通信します。
(HTTPSも利用可能)
BlazeDSの通信技術
AMF(Action Message Format)1

AMFとは?
Flashのトランスポートプロトコル。
(2007/12に仕様を公開し、BlazeDSをリリースしています。)
◎バイナリ形式で効率的に通信を行うことが出来る! バイナリ⇔テキスト変
換が不要になる。
◎テキスト形式ならではの余分なデータ(例えば「<」や「>」)が不要になる。
Adobeの人曰く
「BlazeDSのRemoteObjectはAjax+JSONの4倍早い!!」
BlazeDSの通信技術
AMF(Action Message Format)2
クライアント
サーバ
SWF
XML
バイナリ
テキスト
テキスト
デシリアライズ
バイナリ
シリアライズ
AMF
バイナリ
バイナリ
バイナリ
シリアライズ
セッション情報
ユーザー情報の保持


従来のWebアプリケーションであれば、利用ユーザーの
情報を保持するために、セッション情報に保存、HTML
のhiddenに埋め込んで常に送る、Cookieなどの工夫が
必要でした。
FlexならActionScriptの変数にてクライアントで保持す
ることができます。(ちなみに、Flexでもセッション情報は
利用できます。)
システム構成案
システム構成案1
クライアント
サーバ
AMF(バイナリ通信)
MXML
DTO(
AS)
DTO(Ja
va)
Service
Action
Script
SWF
Flex
DTO(Ja
va)
S2Blaze
BlazeDS
Dao
S2Dao
or S2JDBC
S2Container
DB
システム構成案
システム構成案2
クライアント
HTML
サーバ(プレゼン)
HTM
L
Struts
XML
Flex
サーバ(基幹)
REST
Service
DB
XML
REST
Service
システム構成案
システム構成案 考察
Flexのみの利用が決まっている場合はAMF通信を積極
的に利用する。
 Webサービスをデータアクセスのためのビジネスロジッ
クと位置づける(ストアドプロシージャのようなイメージ)
ことで、Flex以外のアプリケーションと共存を図ることが
できる。
例)
・モバイルでHTMLを、PCでFlexを利用する。
・単純に両方使いたい。

まとめ
課題(デメリット)

MXML、ActionScriptを理解している技術者が少ない。
その分コストが掛かります。

FlexBuilderが高い!

モバイル対応が困難

デザインをアウトソーシングしにくい
世の中にあるWebデザイン会社は基本的にHTMLしか出来ない。
まとめ
効果(メリット)

クロスブラウザ対策が不要

ブラウザで利用するため配信の心配が無用

(AMF通信を行えば)早い。

デフォルトのデザイン、動きが良い。

複雑な動きをするアプリケーションを作り込める。
まとめ
参考資料
対象システ
効果(メリット)
ム(会社
名)
学校会計シス
テム(会社A)
ファットクライアン
トからリッチクライ
アントへ移行した
事例
販売統計シス
テム(会社B)
利用者に対するユーザビ
リティ(生産性)の維持
プログラム配布の容易性
による導入と運用の効率
化
利用者に対するユーザビ
リティ(生産性)の維持
プログラム配布の効率化
社内総合調達 利用者に対するユーザビ
システム(会社 リティ(生産性)の維持
C)
課題(デメリット)
リッチクライアント動作
環境自体のバージョン
アップへの対応
リッチクライアント動作
環境自体のバージョン
アップへの対応
クライアント側の環境設
定
開発コスト
人材不足
ライセンスコスト
ユーザビリティの向上
HTMLクライアント 業務アプリケ
開発生産性の低下
からリッチクライア ーション(会社 プレゼンテーション層とビ
ジネスロジック層の分離開 設計方式の欠如
ントへ移行した事 D)
発による保守(コンテンツ
人材不足
例
出典 http://www.thinkit.co.jp/free/tech/5/3/
管理)費の削減
ご清聴ありがとうございました。