トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Jon Rose, 翻訳者 八角研究所 投稿日 2007年12月27日 午後12時53分
Adobe 社の James Ward 氏(source)は QCon の会場で、彼が Flex アプリケーションフレームワークのプロモーション中に見聞きした Adobe Flex への誤解について InfoQ.com と対話をした。Flex 2 と Flex 3 には Flash Player 9 が必要だ。Flash Player 9 のランタイムは次の URL で示されているとおり、現在世界のコンピュータの94%でインストールされている。 http://www.adobe.com/products/player_census/flashplayer/version_penetration.html
Flex 2 と Flex 3 のアプリケーションは Flash Player 9 で実行する。Flex アプリケーションはベクタグラフィックスやビットマップ操作、そしてネットワークキング(ブラウザネットワークキングスタックに基づいたもの)のような、ネイティブの Flash Player API 上に構築されている。Flex フレームワークはデートピッカーやデータグリッド、チャート等のような再利用可能なコンポーネントを提供している。Flex アプリケーションをコンパイルすると Flash Player 用のバイナリコードフォーマットである SWF ファイルが生成される。その SWF ファイルに含まれるものは、Flex フレームワークのコードとプロジェクトのカスタムコード用のバイトコードである。Flex のコンパイラは使用されるクラスだけが SWF ファイルに入るようにバイトコードを最適化する。
Adobe はデスクトップアプリケーション用に、Web ランタイムと同じくらいあらゆる場所で利用可能な、Adobe AIR という名の新しいデスクトップランタイムの開発を目指している。Adobe AIR 1.0 は 2008 年の初頭にリリースされる予定で、現在の AIR は labs.adobe.com からのベータ版リリースである。すでに多くの企業が実運用アプリケーションを AIR で構築している。eBay のアプリケーションである eBay Desktop (サイト・英語)でその例を見ることができる。
Flash Player のコアは Mozilla によるオープンソースプロジェクトである Tamarin Virtual Machine だ。SWF ファイルのフォーマット完全に公開されているわけではないが、osflash.org 上のコミュニティによって文書化が行われている。SWF ファイルを読み書きするオープンソース製品は数え切れないほどある。Flash Player の製品方針は従来どおり、コミュニティとそのニーズに強く影響を受けてきた。Flash Player 用のコア言語は JavaScript 仕様である ECMAScript 262 の実装である。Flex では、コンポーネントとアプリケーションの見栄えを整えるために CSS も利用する。Adobe AIR は Tamarin や Webkit 、SQLite のようなオープンソーステクノロジ同様にデスクトップアプリケーション用の基盤として Web スタンダードを利用している。
Flashの能力が悪用されてきたのは疑いの余地もない。ポップアップ、ポップオーバー、イントロスキップ、迷惑広告が私たちのスクリーンに蔓延している。誤った伝道活動をしているからといって、それだけでその宗教を判断するべきではない、とはよく言われることだが、同じことがテクノロジにもあてはまる。Flash は迷惑な物に使われるといった理由だけで敬遠されるべきではない。つまるところ、スパム送信者が悪用するという理由だけで電子メールが避けられることがないのと同じである。Ward 氏は InfoQ.com のために、この話題を更に詳しく述べた。
従来の Flash コンテンツはタイムラインをベースにしたデザイナ向けツールで構築されていた。Flex は Flash をベースにしたコンテンツとアプリケーションを構築するための開発者用ツールセットである。デザイナと開発者はこの二つのツールのアセットを共有することによって共同作業ができる。Flex は次のような包括的なコンポーネントベースを提供している。
http://www.adobe.com/go/flex_explorer_app
http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&exc=15&loc=en_us
Flex は Web とデスクトップ用のRIAを構築するための、間もなくオープンソース化される予定の無償の開発者用ツールキットだ。この無償の SDK はどのブラウザや OS でも同じように動作する RIA を構築するのに開発者が必要なものを全て備えている。無償の Flex SDK は、拡張可能、スキン変更可能、そしてアクセス可能な広範囲にわたるコンポーネントセットで構成されている。これらのコンポーネントの多くは、次の URL にある Flex コンポーネントエクスプローラで見ることができる。James Ward 氏の Census RIA ベンチマークアプリケーションで、AMF と他のテキストベースのシリアライズテクノロジとの比較が参照できる。
http: //www.adobe.com/devnet/flex/samples/code_explorer/
Flex Builder は無償の Flex SDK を使ったアプリケーション開発を一層効率的にしてくれる Eclipse プラグインで、統合されたデバッグやデザインビュー、コード補完などの機能が備わっている。
Flex Builder の価格設定は最近幾通りかに変更された。現在、Flex Builder は学生と教育機関に無償提供されている。チャートコンポーネントが付随しない基本機能のみを備えた Flex Builder は、何タイプかある価格設定とのバランスをとるため、249 ドルまで値下げされた。
Flex アプリケーション用のバックエンドインフラを構築するためには多くの選択肢がある。高性能の AMF データ転送プロトコルを活用するための選択肢としては、Granite Data Services のような数多くのオープンソースプロジェクトや LiveCycle Data Services のような Adobe の公認製品がある。AMF を使うと、データをテキスト形式( SOAP や RESTful など)に変換して転送し、再びデータに戻すという無駄なステップが省ける。AMFはまた、型情報が通信全体に渡って保管されることを可能にする。
Flex アプリケーションはどんな Web サーバやアプリケーションサーバ、データベースサーバ上でも実行可能だ。Flex アプリケーションはどちらかと言えばクライアントサーバアプリケーションに近い。ロジックが Flash Player 内のクライアントで実行されているため、サーバとの間に何らかの通信方法が必要だ。Flex をインフラに接続するには様々な方法がある。バックエンドデータとサービスを RESTful や XML や SOAP として公開し、それを Flex アプリケーションで手軽に利用するのに、特別なライブラリは必要ない。もし AMF バイナリシリアライズプロトコルを選ぶと、Web アプリケーションにライブラリをいくつか追加する必要が出てくるかもしれない。AMF は XML や JSON のようなよくある普通のシリアライズテクノロジであり、バックエンドの SOA と通信するための数ある方法の一つとなりうる。
私たちが設立した会社 Ezmo では立ち上げ当初から Flex を使っている。Flex フレームワークにはとても満足している。Flex が初めてというの人のために、Ward 氏は、Flex アプリケーションが構築される様子を紹介するスクリーンキャストを用意(source)している。この他にも Adobe Developer Connection (source)で Flex と Java を使用した例を紹介する数多くの記事がある。
Flex と Flash の予備知識を一切持たずに私たちはアプリケーションを 2 週間以内で構築した。Java と Flex 間の統合はとてつもなくシンプルで、Flex を使い始めることはまるで公園の散歩みたいに簡単だ。
Flex Builder によるツールサポートもすばらしい。使い慣れた Eclipse の環境を用いて、問題なく開発を始めることができる。不足しているのは、継続的インテグレーションをサポートするよりよいツールと、Flex アプリケーションを構築するための Maven プラグインだ。
Flex はアプリケーションの UI 部分を担当するだけなので、バックエンドはたいてい同じ状態のままである。もしバックエンドが SOA パターンにしたがって構築されたのなら、新しい Flex のUI にこれらのサービスを公開するのは容易いことだ。これは、EJB であれ、Spring サービスや POJO であれ、あなたの既存のビジネスロジックを維持することになる。
Flex では、「戻る」ボタンのサポートが組み込まれていて、簡単にカスタマイズが可能なので、それが問題になったことはない。また、Flex はハッシュマーク(#記号)つきの URL (または名前つきアンカー)を作成する簡単な方法を提供しているので、アプリケーションの状態に応じて URL を変化させることが可能だ。もうひとつの Web 1.0 統合問題は解決済みだ。Ward 氏は InfoQ.com のために、更に詳しく話してくれた。
Flex 3 は URL が要求されたときにアプリケーションが名前付きアンカーで状態パラメータをストアし、これらのパラメータに基づいて状態を正しくリストアするための簡単な方法を提供している。この機能の詳しい情報は Flex 3 Feature Introductions Deep Linking documentation (source)で見ることができる。
アクセシビリティは Flex アプリケーションにとって常に重要である。Flash Player は Jaws や他のアクセシビリティテクノロジと連動するので、Flash ベースのアプリーションにアクセシビリティを追加することが可能だ。Flex フレームワークはそのコアにアクセシビリティを確立している。あなたのアプリケーションがどのような障害を持った人たちをサポートする必要があるのかによって、様々なアクセシビリティがある。Flex のアクセシビリティ機能については Developer's Guide (source)で詳しく知ることができる。
RIA 開発のテクノロジとして Flex と Ajax は二者択一ではない。Google Finance 等(source)のサイトでは、どのようにして Flex と Ajax を一緒に使うことができるかを紹介している。Ajax がコンテンツ中心のアプリケーションに適している一方、Flex はインタラクティブ性やメディア、データ中心のアプリケーションに適している。もしあなたのアプリケーションがこの二つの領域の中間に位置するなら、 Flex Ajax Bridge を使って二つのテクノロジを統合することができる。Flex 3 では Flex Ajax Bridge がSDK 本体に統合されているが、Flex 2 を使っている場合は Flex Ajax Bridge を別途ダウンロードする必要がある。また、InfoQ.com コミュニティの Michael Marth 氏はなぜ彼のグループが Flex を選んだのか、コメントを寄せている。
私たちは間もなく立ち上げ予定のオンラインデートサイト viibee.com に Flex 2 を使っている。
Flex は私たちがよりよいユーザエクスペリエンスを提供することを可能にしてくれるからだ。JavaScript や Ajax に同等の努力を費やして実現できることとは比較にならない。
InfoQ Japanはコンポーネントスクエアが運営しています
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
【無償】「Google Apps 企業向けソリューションセミナー」のご案内
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信