• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
64
0
0

読み込み中.... (全文を見る)

全文

(1)

中間表現とフレームワークを用いた

Webアプリケーションの

メンテナンス法の提案と評価

明治大学 理工学研究科 早川 智一 長谷川 慎哉 吉賀 祥太 疋田 輝雄

(2)

はじめに

本研究は,ITの現場で実際に起きている問題を

扱ったものです.

ご自身が担当SEになったつもりで(皆様ならばど

うするか考えながら)お聞き頂ければ幸いです.

今日のキーワード:工数

(3)

いきなりクイズ

~これで今日からあなたもSE~

工数とはなんでしょう?

以下の?はいくつでしょう?

 1人日=?時間  1人月=?人日  1人月=?万円 

以下のようなアプリの開発はどれくらい工数がか

かるでしょう?

 四則演算のできる電卓(ただし,CUIで)

システム開発は思いの外高い!

(4)

お伝えしたいこと

 RIA(Rich Internet Application)は便利だが,互換性に

難がある.これは業務での利用時に特に問題となる.  この問題の解決を試みた多くの研究やサービスがあるが, 決定的な解決策は未だ存在しない.  我々は「中間表現」と「フレームワーク」を用いる方法を 提案し,3種の実証例を作成して評価を行った.  各実証例は,まったく異なる3組のRIA技術に対して開発を 行い,それぞれに対して評価を行った.  AjaxからOpenLaszlo,FlexからHTML5,中間表現からJavaFX  評価の結果は,我々の方法が前述の問題において工数削減 に有用であることを示した.

(5)

アジェンダ

1. 背景

2. 目的

3. 関連研究

4. デモ

5. 提案モデル

6. Web-IR

7. 中間表現

8. フレームワーク

9. 評価

10. おわりに

(6)

背景(1)

• インターネットの普及に伴い,Webアプリケーションも普

及.

• 近年では, RIA(Rich Internet Application)と呼ばれる

技術を用いたWebアプリケーションが台頭.

– 例)Google Maps,Gmail,Youtube,ニコニコ動画,Twitter, Facebook,Mixi,etc

• 各社がRIAの実装技術をリリース.非常に多くの種類が

存在.

有名なWebサイトは,およそすべてが何らかのRIA

技術を用いて実装されていると言っても過言ではない.

(7)

ちょっと脱線

~我々のまわりのRIA技術~

ひとくちに「Webアプリケーション」と言っても, それを実装する技術はこんなにある. Ajax Flex (Adobe社) Silverlight (Microsoft社) HTML5 JavaFX (Oracle社) OpenLaszlo (Laszlo System社) 他にも多数 ブラウザのみで動作 実行時にプラグインが必要

(8)

背景(2)

• しかし,RIA技術間には

互換性が無い

• これは,RIAを業務で使用する場合に問題に.

– 理由)選択したRIA技術が廃れると,他のRIA技術へ移植が 必要. • 業務アプリケーションはシステム規模が大きく移植コストが大.

• そして,RIAの互換性の問題はしばしば起こる.

– 実例1)JavaFXは1.x系と2.x系で仕様が大きく変更され,後方 互換性が失われた. – 実例2)モバイル版のFlash Playerは新規開発が中止(2011年 11月9日発表).

(9)

背景(3)

• 一方で,RIA技術を1種類に集約することは難しい.

– 理由1)集約はハイリスク・ハイリターン. – 理由2)業務要件によって最適なRIA技術は異なる(一般的に はAjaxが好まれるが… … ). • 例1)コールセンターでは応答性が重要.よって,高レスポンスな (≒Ajax以外の)RIA技術が好まれる. • 例2)勘定系業務では,画面部品の充実度が重要.よって,Flexや SilverlightなどのRIA技術が好まれる. 複数のRIA技術を使い分けなければならない現状を 踏まえつつ,それらの移植性を高める対策が必要.

(10)

目的

• (特に業務アプリケーションにおいて)前述のRIA技術

の移植性の問題を解決する方法を提示する.

– 必要要件 • RIA技術の趨勢の変化に迅速に対応できること. • 業務要件ごとに柔軟な対応ができること. • あまり高級になりすぎないこと(利用者の使い勝手を考慮). • 80:20の法則に従うこと. ※(ここでの)80:20の法則とは (1)全システムのうち80%に対応する(20%は特殊で無理) (2)1システムにつき80%の情報を移植できる(残りは手作業) (3)20%の工数で80%の仕様を満たす(残りはロングテール)

(11)

目的(補足)

• 我々の目指すもの

– RIA技術の移植を容易にする方法論の提供

• 我々の目指さないもの

(12)

関連研究(1)~論文~

• 松塚貴英:業務アプリケーションに適用するAjax フレー

ムワーク,情報処理学会論文誌,2008.

– 業務アプリケーション用のAjaxフレームワークの提案. – 業務アプリケーションは大規模化しやすく,柔軟に構築する ための方法論が必要であると述べている. 類似点:効率的な業務アプリケーション用フレームワーク. 相違点:(1)対象となるRIA技術(Ajaxのみか・RIA技術全 般か).(2)中間表現を用いないか・用いるか.(3)他

(13)

関連研究(2)~商用サービス~

• Wallaby

– Adobe Systemsが提供する,Flash(FLAファイル)をHTML5に 変換するサービス.

• Swiffy

– Googleが提供する,Flash(SWFファイル)をHTML5に変換す るサービス. これらのサービスの存在は,RIA技術間の変換に 一定以上の需要があることを示唆するものと考える.

(14)

提案モデル

• 「中間表現」と「フレームワーク」を使用してWebアプリ

ケーションを汎用化する.

実証例が対応するRIA 1. Ajax 2. Flex 3. HTML5 4. OpenLaszlo 5. JavaFX 中間表現とフレーム ワークは特定のRIA技 術に依存しない.

(15)

変換例

• 3種の実証例の変換例をご覧下さい.

1. JavaFXを用いた複雑な変換 2. Flexを用いたUI変換

(16)

変換例(1)~JavaFXによる複雑な変換~

• 対応RIA技術

– 入力:中間表現(Ajaxから変換) – 出力:JavaFX

• 注目すべき点

– 複雑なCSSやJavaScriptを含むページを,外観をほぼ崩さな いで再現.

• 力を入れた点

– 中間表現(XML)からJavaFX(Java言語)への変換.

(17)

IE9によるWebページの表示(変換前)

(18)

JavaFXによるWebページの表示(変換後)

©Yahoo! Japan ブラウザではなく JavaFXになってい る. レイアウトはほとんど 崩れない(僅かに崩 れるのはスタイルポ リシーの違いによる もの).

(19)

デモ(2)~FlexのHTML5変換~

• 対応RIA技術

– 入力:Flex – 出力:HTML5(中間表現を経由)

• 注目すべき点

– Flexで構成された画面を,表現力で劣るHTML5で再現(エミュ レーションライブラリを併用).

• 力を入れた点

– Flexには存在するがHTML5には存在しない画面部品を, HTML5とCSS3のみを用いて再現.

(20)
(21)

HTML5(変換後・相対座標)

テキストエリアの大きさが 大きく異なっている(標準の スタイルポリシーの違い).

(22)
(23)

HTML5(変換後・絶対座標)

絶対座標の場合は外観はほぼ同一. (実際のアプリケーションは,

(24)

デモ(3)~AjaxのFlash変換~

• 対応RIA技術

– 入力:Ajax – 出力:Flash(中間表現とOpenLaszloを経由)

• 注目すべき点

– Ajaxの動的書き換えと非同期通信の機能を,大幅に仕様が 異なるFlashで再現(エミュレーションライブラリの併用).

• 力を入れた点

– AjaxのDOMやCSSの動的書き換え,非同期通信がFlashでも 動作するように再現.

(25)
(26)

左:Ajax(変換前),右:Flash(変換後)

クリックする

(非同期通信と動的書き換えが 発生)

(27)

左:Ajax(変換前),右:Flash(変換後)

・非同期通信による画像の 取得

・DHTMLによる 動的書き換え

(28)

左:Ajax(変換前),右:Flash(変換後)

クリックする

(29)

左:Ajax(変換前),右:Flash(変換後)

(30)
(31)
(32)

Web-IR(1)~概要~

• Web-IRとは

– 中間表現とフレームワークからなるコアシステムと,それ を用いた実証例とを総称したもの.

• 対応RIA技術

– 入力:Ajax・Flex – 出力:HTML5・JavaFX・OpenLaszlo ※入力のRIA技術は市場シェアなどを考慮して選定し, 出力のRIA技術はベンダロックインを避けて選定した.

(33)

Web-IR(2)~コアシステムの特徴~

• 特徴

– 小さな基本部品を多く提供する • パーサ類(HTML,CSS,JavaScriptなど) – 基本部品を組み合わせて使用する

• 諸元

– 計135個のクラスとインタフェース – 19,144行のJavaのコードで構成 多くのRIA技術の記述言語は似通っている.従って, 汎用的で小さな部品を用意しておき,必要に応じて 疎結合して使うのが効率的(例:パーサ).

(34)

中間表現(1)~概要~

• 既存のRIA技術の共通機能のみをもつ.

– メリット:多くのRIAに変換可能 – デメリット:表現能力が低下

• 必要に応じて任意の要素を追加可能.

– 例)カレンダーなど – 追加時の追加工数は僅か(1人日以下). 多くの業務アプリケーションにとってRIA 技術は手段に過ぎない.よって,中間表現に 必要なのは,機能性ではなく柔軟な拡張性. イメージ図

(35)

中間表現(2)~概要~

• 内部は4部分に分割される.

– メタ情報 – ウィジェット情報 – スタイル情報 – 振舞い情報 情報をカテゴリごとに保存することで,部分的な再利用が可能 (例:振舞いは無視して画面情報だけ変換するなど). ※RIAのクライアント側ロジックは基本的に入力チェックと画面 遷移のみ.ビジネスロジックはサーバ側.クライアント側の ロジックは十分小さく,手作業でもテストフェーズで吸収でき る.

(36)

中間表現(3)~概観~

<?xml version="1.0" encoding="UTF-8"?> <application> <meta> <!-- メタ情報 --> </meta> <widget> <!-- ウィジェット情報 --> </widget> <style> <!-- スタイル情報 --> </style> <behavior> <!-- 振舞い情報 --> </behavior>

• ファイル形式はXML

(37)

中間表現(4)~メタ情報~

(38)

中間表現(5)~ウィジェット情報~

• RIAのボタンやテキストボックスなどの画面部品に関す

る情報を格納.

– 多くのRIA技術が画面情報の記述にXMLを採用している. – 入力から中間表現へは情報無損失.

(39)

中間表現(6)~スタイル情報~

• RIAのフォントや文字サイズなどの,外見に関する情報

を格納.

• 記述形式はCSSをXML化したもの.

– 多くのRIA技術がスタイルの記述にCSSを用いる. – 入力から中間表現へは情報無損失. CSSの記述例 左のCSSをXML化したもの text { font-size: 10pt; } <rule> <selector>text</selector> <property> <name>font-size</name> <value>10pt</value> </property> </rule>

(40)

中間表現(7)~振舞い情報~

• RIAのボタンのクリックなどのイベント情報を格納.

• 記述形式はECMAScript.

– 多くのRIA技術が振舞いの記述にECMAScriptを用いる. – XMLだと記述量が増えて可読性が低下する.

• 入力の振舞い情報は,木と文字列データの形で中間

表現中に保存される(情報無損失).

• 出力において,必要ならば変換する.変換が難しい場

合もある.エミュレーションライブラリの併用を推奨.

※エミュレーションライブラリを推奨する理由: (1)記述言語がECMAScriptであるRIA技術が大多数(文法は

(41)

中間表現(8)~まとめ~

• 中間表現は

– RIA技術の最大公約数的機能をもつ. – 容易に拡張が可能である. – 内部で4分割される. – XMLで表現される. – 本質的には情報無損失である. ※注意点 「情報無損失」とは,入力側の情報が損失なく中間表現になる ことを意味するのであり,見た目や動作がまったく等価である ことを意味するわけではない(それは,出力時の処理に依存).

(42)

フレームワーク(1)~概要~

• フレームワークは,入力RIA・中間表現間と中間表現・

出力RIA間の変換を支援.

• 内部では全情報をDOM(Document Object Model)に似

た木構造で表現.

• SPIパターン(Service Provider Interface)に沿って設計.

– クラス名ではなく文字列を用いてインスタンスを生成. – 新しいRIA技術への対応や,既存の機能の拡張が容易.

• 学習が容易

– OOP

(43)

フレームワーク(2)

~重要なクラス・インタフェース~

クラス名・インタフェース名 説明 Application アプリケーションを表す ApplicationReader アプリケーションを読み取る汎用リーダを表す ApplicationWriter アプリケーションを書き込む汎用ライタを表す Translator アプリケーションを変換するための汎用 トランスレータを表す Visitor アプリケーションを変換する際のビジターを表す VisitorTranslator Visitorパターンを用いて実装したトランスレータ

(44)

フレームワーク(3)~概要クラス図~

クラスとインタフェースはSPIに基づいて設計.

(45)

フレームワーク(4)

~変換アルゴリズム~

特徴

 Visitorパターンを用いる.  メタ情報・ウィジェット情報・スタイル情報に関しては,XMLの木構造 を再帰的に変換する形で処理を行う.

 振舞い情報は,抽象構文木(AST:Abstract Syntax Tree)を対象に

再帰的に処理を行う.

VisitorパターンはXMLと相性がいい.継承または委譲に

(46)

フレームワーク(5)

~疑似コードによる説明~

/** * Web-IRの変換を説明するための擬似コード. * この例では,入力と出力をそれぞれAjaxと * 中間表現と仮定している. * @param e0 変換されるHTMLの要素 * @return e0と等価な中間表現の要素 */

Element visit(Element e0){ switch(e0){

case "<input type='checkbox'>":

Element e1 = new Element("<checkbox>"); while(e0.hasMoreChild()){

e1.appendChild(visit(e0.nextChild())); }

return e1;

case "<input type='text'>":

Element e1 = new Element("<textbox>"); return e1;

... }

(47)

評価テスト1~前提~

• 評価軸

– 各RIA技術と中間表現間で画面情報が相互にどの程度変換 できるか – 出現頻度による重みを考慮 • Web上のトラフィック上位10サイトからクローラを用いて算出.

• 入力RIA技術

– Ajax・Flex(RIAのシェア双璧)

• 出力RIA技術

– OpenLaszlo・HTML5・JavaFX Ajaxを処理できるということは,それ以外の既存のWeb アプリケーション(いわゆる「レガシーWebアプリ」)も

(48)

評価テスト1

~トラフィックTOP10サイト~

ランク サイト名 URL 1 Google http://www.google.com/ 2 Facebook http://www.facebook.com/ 3 YouTube http://www.youtube.com/ 4 Yahoo! http://www.yahoo.com/ 5 Blogger.com http://www.blogspot.com/ 6 Baidu.com http://www.baidu.com/ 7 Wikipedia http://www.wikipedia.org/ 8 Windows Live http://www.live.com/

9 Twitter http://www.twitter.com/ 10 QQ.COM http://www.qq.com/

(49)

評価テスト1

~集計結果(HTML・抜粋)~

ランク タグ 出現回数 出現率(%) (出現数/全出現数) 1 a 1,482 27.15 2 div 1,290 23.63 3 span 828 15.17 4 img 376 6.89 5 li 313 5.73 6 br 298 5.46 7 button 146 2.67 8 script 106 1.94 9 p 70 1.28 10 option 67 1.22

(50)

評価テスト1

~集計結果(CSS・抜粋)~

ランク プロパティ 出現回数 出現率(%) (出現数/全出現数) 1 width 1,235 7.44 2 padding 919 5.53 3 height 902 5.43 4 display 902 5.43 5 color 842 5.07 6 background 692 4.17 7 margin 605 3.64 8 font-size 575 3.46 9 background-position 575 3.46 10 position 559 3.36

(51)

評価テスト1

~ウィジェット情報の変換率~

入力 出力 変換率(%) 重みを考慮した 変換率(%) Ajax 中間表現 80.6 93.8 Flex 中間表現 44.0 N/A 中間表現 OpenLaszlo 100.0 100.0 中間表現 HTML5 90.0 N/A 中間表現 JavaFX 100.0 100.0 ・Ajaxに対しては,90%以上の変換が実現できる. ・Flexの変換率は低いのは,Flexのコンポーネント数が多いため である(中間表現の拡張機能を使えば,変換率は100%になる).

(52)

評価テスト1

~スタイル情報の変換率~

入力 出力 変換率(%) 重みを考慮した 変換率(%) Ajax 中間表現 100.0 100.0 Flex 中間表現 33.3 N/A 中間表現 OpenLaszlo 42.6 54.8 中間表現 HTML5 100.0 100.0 中間表現 JavaFX 62.3 95.8 ・Ajax・HTML5以外のスタイルの変換率が低いのは,CSSが 実際にはあまり用いられない多くのプロパティをもつためであり, 実用上は問題がない(ことが多い).

(53)

評価テスト2~前提~

• 評価軸

– RIAの画面開発による工数を比較.

• 前提条件

– 被験者はRIAの初学者. – 外観が同じになるように作成.

(54)
(55)

評価テスト2~結果~

単純な画面であっても,開発には多くの工数がかかる (スタイルポリシーや流儀の違い,不慣れが原因か). RIA技術 学習コスト (人時) 開発コスト (人時) JavaFX 1.0 3.5 OpenLaszlo 1.0 9.5

(56)

評価テスト3~前提~

• 評価軸

– Web-IRの使用の有無によるRIA変換システムの実装にかか る工数を比較.

• 前提条件

– 3種類のRIAの変換システムの試作から評価を行った. – 変換対象は画面情報のみ(振舞いを含まない).

(57)

評価テスト3~結果~

入力 出力 Web-IRの 使用の有無 工数 (人時) 行数 Ajax OpenLaszlo × 10.0 1,450 Ajax OpenLaszlo ○ 5.0 960 Flex HTML5 × 24.0 1,818 Flex HTML5 ○ 18.0 1,231 Ajax JavaFX × 20.0 3,156 Ajax JavaFX ○ 12.0 1,627 Web-IRを用いると,RIAの変換システムを構築する際の工数と行数 が2/3から半分程度になる(設計方法論の強制によるものと推測). ※数値のマジックに要注意:削減率がたったの1割でも,案件規模が

(58)

おわりに

• RIAの移植性の問題を解決するために,XMLベースの

中間表現とJavaベースのフレームワークを使用するモ

デルを提案した.

• 上述のモデルを実装したWeb-IRを開発した.

• 3つの実証例を用いた評価は,我々のモデルが前述の

問題の工数削減に有用であることを示した.

• 振舞い情報の変換に関しては,機能を重要度ごとに分

別し,重要度の高いものから逐次対応を強化したい.

• (もっとさきの課題)システム全体の工数を削減するた

めには文字コードやSQLの標準化なども重要.

(59)

FAQ(1)

• Q1. 単なるトランスレータではダメなのか.

• A1. ダメな場合が多い.特にAjaxから他のRIAに変換す

る場合には,コンテキストに応じた変換が必要となるた

め難しい.

• Q2. 計算量はどれくらいか.

• A2. (実装依存だがVisitorパターンを用いるので)空間

計算量・時間計算量ともにO(n)である.

(60)

FAQ(2)

• Q3. レイアウトが崩れる問題はどう考えるか.

• A3. レイアウトを完全に一致させることは難しいため,

利用者側で微調整してもらうのが望ましい(ブラウザに

よっても異なるため完全な変換は困難).

• Q4. スクリプトの自動変換はしないのか.

• A4. 自動変換に関して研究はしているが,可読性の問

題もあるため現在の手法が無難であると考える.

(61)

FAQ(3)

• Q5. 中間表現やフレームワークが廃れたらどうするの

か.

• A5. 中間表現はXMLなので他形式に容易に変換可能

である.フレームワークはJava固有の機能を使用して

いないので他言語に差し替えることは容易である.

(62)

参考文献(抜粋)

• Adobe Labs: Wallaby, Adobe Systems Inc. ,

<http://labs.adobe.com/technologies/wallaby/> • Google: Swiffy, Google,

<http://www.google.com/doubleclick/studio/swiffy/> • 松塚貴英:業務アプリケーションに適用するAjax フレームワーク, 情報処理学会論文誌, Vol.49, No.7, pp.2360–2371 (2008). • 三菱総合研究所:OSS デスクトップの普及に資するWeb コンテン ツ互換性向上に関する調査,情報処理推進機構オープンソフト ウェア・センター, <http://www.ipa.go.jp/software/open/ossc/seika.html>

(63)
(64)

参照

Outline

関連したドキュメント

2022年3月現在 ドライブレコーダー搭載 11.1型デジタルミラー / 11.1型デジタルミラー

• 自動溶接を行う場合、「金属アーク溶接等作 業」には、自動溶接機による溶接中に溶接機

●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura

支援要請入力詳細 13ページ 患者受入入力詳細 14ページ 支援可能スタッフ3.

and Kristjan Vassil (2010) Internet voting in Estonia : a comparative analysis of four elections since 2005 : report for the Council of Europe”Report for the Council of Europe.

2021年1月15日にHa Tay Pharmaceutical Joint Stock Company(

がん化学療法に十分な知識・経験を持つ医師のもとで、本剤の投与が適切と判断さ

日医かかりつけ医機能研修制度 令和 年度応用研修会 「メタボリックシンドロームからフレイルまで」 飯島勝矢 Tamakoshi A ら. Obesity