webアプリケーションフレーム...
Post on 31-Dec-2020
0 Views
Preview:
TRANSCRIPT
WEBアプリケーションフレームワークとその応用
宮城大学事業構想学研究科 北野 優 宮城大学事業構想学部 須栗 裕樹 宮城大学事業構想学部 富樫 敦
WEBアプリケーションは無数につくられている
YAHOO!オークション
mixi
GREE
Amazon
Webアプリケーションだらけ!
小規模のものも、相当数作られている ・本研究は、小規模なWebアプリケーションを効率的に作る研究
開発の工数削減が求められている
削減
早く 安く
仕様が変わる
仕様変更要求
プログラム修正
¢ ビジネスに情報システムの存在が既に組み込まれている
WEBアプリケーションフレームワークの役割
¢ 工数を減らす。 Webアプリケーションとして基本的なライブラリをまとめる。 HTTPがステートレスである。画面遷移や利用者の管理を行うために必要なセッション管理を,Webアプリケーション側で行う必要がある。
¢ 品質を一定にする。 セキュリティ処理などを一元的に行い、一定以上の品質のものを作りやすくする。
既存のフレームワークは工数の削減が十分でない
¢ Ruby On Rails 設定ファイルは少ないが、厳密なモデルを要求する。 MVCモデルを採用 学習コストが高い ¢ Struts 設定ファイルが多い。 MVCモデルを採用。 厳密なモデルを要求する。 学習コストが高い。
学習時間が多すぎる。様々な技術を覚える必要がある。 言語も難しい。
学習時間
技術
言語
RORの使用頻度
縦軸:Ruby on Railsで開発されたプロジェクト84を100とした時の割合 縦軸:使用頻度順のクラス
使用プロジェクト数
ROR の使用頻度
縦軸:Ruby on Railsで定義されているクラス総数579を100とした時の割合 縦軸:プロジェクト
使用クラス数
MVCモデル
プログラマの分散ができない
モデル設計
プログラマ
プログラマ
プログラマ
仕様変更に対応する必要がある。
仕様変更要求
プログラム修正
デザインとプログラムの分離
デザイン
プログラム プログラマ
修正
修正
一般のテンプレートの例
<html> <body> <!-- <% foo.data %> --> </body> </html>
RUBYON RALSのテンプレート
<html><body> 誕生日の編集 <%form_tag :action => 'edit', :id => @patient do %> <%=render :partial => 'form' %> <br> <%=link_to 'Patient List', :controller => 'patient_id' , :action => 'patientList' , :id => @birthday %> <br><br> <%=submit_tag 'Edit' %> <%end %> </body></html>
結局分離できない。 Viewに記述するコードは複雑化する傾向がある。 デザイナー自由に作業できない。
提案する手法
¢ Perlを採用したWebアプリケーションフレームワークである。
¢ 必要最小限のフレームワークにした。 セッション管理 HTMLテンプレート ファイルボックス機能 XML生成機能に絞った。
¢ MVCモデルを簡略化した、軽量MVCモデルを採用した。
軽量MVCモデル
提案するWEBアプリケーションフレームワーク
モジュール構造
基本的な構造
ファイルボックス
エクセル(XML)生成の例
エクセル(XML)出力例
開発の一例
¢ 宮城県は大地震と津波の被害を受けた
2つの駅を喪失し、仮設住宅が多数作られた
被災
バス路線とダイヤの見直しが必要になった
旧バス路線
震災前
旧バスダイヤ
新バス路線
震災後
新バスダイヤ
路線やダイヤを変える必要が出てきた。
そこで、現状把握のためのアプリケーションをWEBアプリケーションで開発 した
WebアプリケーションとiPhone(情報収集用)で開発
バス乗降システム
情報が入ってるくると、要求仕様が変わっていった・・・・
第1ステップ現在の運用を一覧表にした
第2ステップ集計を行った
第3ステップ GOOGLE MAP に表す
テンプレート例
まとめ ¢ Webアプリケーションフレームワークを開発 軽量なMVCモデルの提案 →学習しやすい。 →分散開発が行い易い。 →仕様変更に強い。 →デザインとコードの分離。 ¢ 山元町で活用したコミニティバス運用支援Webアプリ
ケーションフレームワークを開発した
top related