RIA/リッチクライアントの明日はどっちだ?
RIA in Developers Summit 2008 レポート
@IT編集部
平田 修
2008/2/20
「エクスペリエンス」とは何か? なぜ必要なのか?
続いて紹介するのは、株式会社セカンド・ファクトリー XD&コンサルティンググループ 取締役 シニアエクスペリエンスアーキテクト 東賢 氏によるセッション「RIA開発におけるデザイナー/デベロッパー協業のワークフローについて」だ。東氏は同社において「エクスペリエンスアーキテクト」という肩書きを持っているとおり、RIA開発を数多くて手掛ける同社ではRIAにおける「エクスペリエンス」(体験)に重きを置いている。
デブサミ参加者の大半であろう開発者/プログラマにとって、エクスペリエンスは、いわゆるデザイナーが気にするもので自分たちにはあまり関係ないものと考えるかもしれない。しかし、東氏は企業におけるエクスペリエンスは新しい考えではないという。そもそもソフトウェア開発で重要視される、顧客満足度向上や高品質なシステムの追究、ユーザビリティの向上などはすべてエクスペリエンス提供のための取り組みだといえる。短納期開発のためユーザビリティをおろそかにしたシステムを提供したため、納品後に追加要件がどっさり増えて結局コストがかさむというケースは、開発者/プログラマでもよくある話だろう。さらにいえば、システムそのものが利用されないという事態を招きかねない。
セカンドファクトリーでは、開発者/プログラマなどが活躍する「システム領域」や、プロジェクトマネージャーやコンサルタントなどが活躍する「ビジネス領域」に加え、デザイナーなどが活躍する「プレゼンテーション領域」といった3つの領域をフォーカスしている。同社では開発チームの中に上記の役割以外にも、システム/ビジネス領域をカバーする「アーキテクトディレクター(以下、AD)」や、ビジネス/プレゼンテーション領域をカバーする「エクスペリエンスデザイナー(以下、XD)」、そしてシステム/プレゼンテーション領域をカバーする「インタラクションデベロッパー(以下、ID)」という役割を加えたチームでソフトウェア開発を行う。こういった役割について東氏は以下のように付け加えた。
株式会社セカンド・ファクトリー XD&コンサルティンググループ 取締役 シニアエクスペリエンスアーキテクト 東賢 氏 |
「IDはインタラクションを中心としたプレゼンテーション層のプログラミングを行い、ADはプロジェクトの制約条件の範囲における解決策を提供します。XDはその名のとおり、コンセプトのデザインやアイデアを目に見える形に整え、社内外を説得するなどエクスペリエンスのためのデザイナーです。さらに、XDとADの間をカバーする『エクスペリエンスアーキテクト』という役割もあり、XDやエクスペリエンスアーキテクトは人間中心の設計プロセスを取り入れた開発フローを採用しています」
このように、セカンドファクトリーではエクスペリエンス/デザインに重きを置いた、つまりユーザーやその感情を重視した開発が行われているといえる。
「そもそもエクスペリエンスとは、ユーザーが製品/サービスを通じて感じるすべての“体験”です。従って悪い体験を与えると、ユーザーが離れてしまう危険性があります。すでに多くのソフトウェアやサービスは機能的に成熟し、機能だけでは競争優位を保てない時代です。さらに、オフショア開発などでソフトウェアの単価が下がる傾向がある現在、エクスペリエンスという付加価値を“差別化要因”として考え直す必要があると考えます」(東氏)
■ 関連リンク
標準技術で実現できるRIAとComet型サーバプッシュ
続いて紹介するのは、日本ネクサウェブ株式会社 チーフエンジニア 松木健太郎 氏によるセッション「Ajax/Java+XML 標準技術で実現するRIAプラットフォーム『Nexaweb』〜リアルタイムサーバ・プッシュとリッチクライアント技術の復権」だ。RIAプラットフォームというと、ベンダが提供する独自技術を習得しなければならないという負担が懸念されるが、Ajax/Java+XMLという一般的に普及している標準技術を使っても実現は可能だ。
Nexawebでは、クライアントはJavaアプレットやJavaアプリケーション(オフライン操作も可能)、Ajax(Webブラウザのみで稼働)の3種類のプラットフォームを用途によって選択でき、そのUIはXML情報が基になっている。サーバ側では、Javaのサーブレットが制御してクラインアントを作成しダウンロードして実行する。差分更新用のXML情報で画面内の一部分だけを更新することも可能だという。松木氏はこの点について、次のように強調する。
日本ネクサウェブ株式会社 チーフエンジニア 松木健太郎 氏 |
「表現力の高いUI、操作性やレスポンスの向上、デザインや機能性の拡充、サーバの負荷分散、キーボード操作、そしてJavaによるマルチOSなどRIA/リッチクライアントに要求されるさまざまな機能を、一般的に普及している標準技術で実現できます。また、EclipseベースのVBライクなUIデザイナーも特徴です」
Nexawebの特徴はそれだけではない。Webチャットなどで使われる、リアルタイムの双方向通信を可能とするサーバプッシュ技術だ。これはデブサミ参加者の間でも関心が高いようで、「Nexawebのサーバプッシュ技術は具体的にどのようなものですか」という質問が出た。これについて松木氏は、「Nexawebで使えるサーバプッシュ技術は、HTTP/HTTPSプロトコルでのサーバ/クライアント間のコネクション(通信)をKeepAliveで永続化するもので、Cometに近いものです。コネクションの管理も行うことができます」と答えていた。
■ 関連リンク
「テレビで動くウィジェット」という新しい可能性
続いて紹介するのは、ソニー株式会社 テレビ事業本部 ソフトウエア技術部門 共通ソフトウエア設計部 アプリケーションシステム設計課 岡本直也 氏によるセッション「Widget on TV 〜TVでウィジェットを動かす方法〜」だ。ウィジェットといえば、PC上のデスクトップ型が有名だが、携帯端末の待ち受け画面上で動くものや、PC以外のデバイスに組み込んで表示させるものもある(参考「いまさら聞けないウィジェット/ガジェットで気分転換」)。そんな現状の中、ソニーはさらにテレビ上で動作するウィジェットを発表した。果たして、それはどんなものなのか。
ソニーが提供する「アプリキャスト」はテレビを見ながら液晶画面の右側にウィジェットを縦に並べ、リモコンから操作するものだ。例えば、RSSリーダによるニュースや天気情報の閲覧、Webショッピング、画像検索などが可能だ。
ソニー製の液晶テレビ「BRAVIA」上で動作する「アプリキャスト」 |
JavaScript+XML/AjaxというPC上のウィジェットと変わらない技術で作成できるが、レイアウト記述に独自XML形式を使ったり、リモコンならではのイベントを取得する記述が必要だ。ウィジェットの配信サービスはソニーのサーバが運営し、そこからウィジェットバンドル(JavaScript、レイアウト/メタデータXML、画像など)をテレビにダウンロードして使う。そのほかのデータは、AjaxでWebサービスから動的に取得することを前提としているため、ウィジェットバンドルに含まれるファイルのサイズは合計で最大48Kbytesまでとなっている。最大5〜10個のウィジェットを登録し同時に表示したり、ウィジェットごとの設定情報をテレビ内臓の不揮発メモリに保存したり、ウィジェットからテレビに内蔵のWebブラウザを起動することもできるという。
ソニー株式会社 テレビ事業本部 ソフトウエア技術部門 共通ソフトウエア設計部 アプリケーションシステム設計課 岡本直也 氏 |
岡本氏は「アプリキャスト」について次のように語る。「ファイルサイズの制限の増加やFlashコンテンツの表示など、まだまだ増やしたい機能はいっぱいありますが、限られた制約の中でいかにテレビならではのウィジェットを開発できるかは非常に面白い挑戦になると思います。近日公開予定のアプリキャストSDKを使って皆さんもぜひアプリキャストを作ってみてください。PCや携帯端末などにはない新しい可能性を楽しんでみませんか」
「アプリキャスト」は基本的にソニー製の液晶テレビBRAVIAの2007年モデルのみでしか動かないが、SDKはWindows上で動くエミュレータを備えているため、BRAVIAを持っていない人でも作成して試すことができるだろう。「テレビならでは」のウィジェットをいろいろと考えてみるのも面白いかもしれない。
1-2-3 |
INDEX RIA in Developers Summit 2008 レポート | ||
RIA/リッチクライアントの明日はどっちだ? | ||
Page1 「業務でリッチクライアント技術は本当に必要なのか」 |
||
Page2 「エクスペリエンス」とは何か? なぜ必要なのか? 標準技術で実現できるRIAとComet型サーバプッシュ 「テレビで動くウィジェット」という新しい可能性 |
||
Page3 「JavaScriptは一粒で4度おいしい言語」 新しいWebの潮流「クラウドコンピューティング」とRIA どのRIA/リッチクライアント技術を使うべきか? |
リッチクライアント&帳票 全記事一覧へ |
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|