WebアプリケーションとP2P 名古屋大学大学院人間情報学研究科 物質生命情報学専攻 情報処理論講座 原 崇 [email protected] Webアプリの開発実情 開発期間が短くなってきている CASEツールの発達 設計書の作成支援 中にはソースをある程度生成してくれる プログラミング手法の発達 オブジェクト指向による再利用性の向上 XP(eXtream Programing) 簡易なシステムでもRDBMSを使うことがある 開発言語 Perl DBI(DBD) PHP ASP Servlet,JSP,JDBC 開発の際によくあること デザインの変更 デザインの変更によって、どうしてもプログラム を変更しなければいけない場合が出てくる 複数のプロジェクトを一人が抱えることもある 短期間で作成するのに楽な方法を見つける いろいろライブラリが出ているがいまいち使 いにくい なので自分で作成した システム作成のコンセプト デザインとロジックの分離 できるだけ(もしくは完全に)デザインとロジック を平行に進めていけるようにしたい Servlet型Webアプリ開発の定石を作りたい 今後はこのフレームワークに沿って開発をして いくことで、いろいろなアプリケーションに対応で き、短期間で開発を可能にする デザイン分離に関する技術その1 Cocoon(http://xml.apache.org/cocoon/) Apache XMLプロジェクト内で開発 XML文書をXSLTで変換する作業をサーバーサ イドで処理 XSL ファイル XML ファイル HTML WML Cocoon Cocoonの問題 XSLの切り替えはブラウザの違いのみ 他のパラメータ、例えば、フォームに入力された内容で区 別をしたい 複雑な処理をするときにはCocoonの機能では不便 結局は静的なXMLを変換するだけの機能でしかない リクエストヘッダ GET /index.xml HTTP/1.1 Host: www.snapshot.co.jp User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) デザイン分離に関する技術その2 JSP(Java Server Pages) Servlet型Webアプリケーションの見た目の部分 を担当する Java Beans Servlet JSP JSPの問題 完全にデザインとロジックの分離は難しい どうしてもロジックをJSP内で記述する必要が出 てくる→繰り返し処理は特に JSPファイル <%@ page contentType="text/html; charset=Shift_JIS” import="java.util.*"%> <jsp:useBean id=“bean” class=“java.util.Iterator” scope=“request”> <html><head><title>Hello World</title> <% while(bean.hasNext()){ Properties prop = (Properties)bean.next(); %> <%= prop.getProperty(“name”) %> <% } %> システムに取り入れるべき内容 デザイン部分の分離 複数のServletにお任せする ServletContext#requestDispatcherで実現可能 XML(Cocoon)に任せる場合 パラメータをXMLファイルに書き足す JSPに任せる場合 独自に拡張したタグライブラリを使う Properties(ハッシュ)にアクセスするタグを定義 実用例 チャレンジ天文クイズ 中部電力FTTHプロジェ クト内のコンテンツとし て、MDGと名古屋市科 学館が共同開発 クイズデータをXMLで記 述し、ブラウザ以外のパ ラメータによって、XSLを 振り分ける その他応用例 ポータルサイト ユーザごとにXSLを変えることで見た目を変更す ることができる XSLを理解していれば見た目を自作することが でき、よりカスタマイズされた画面を作成できる グループウェア ユーザの権限ごとにXSLを変えることができる 問題点 XSLの普及度 現在それほどXSLがデザイナまで浸透していな い JSPの場合はHTML等の基本書式ベースなので 問題ない 研究対象として このままでは研究にならない 今後の予定 XMLをよりうまく生かしたシステムの考察 クライアントに表示するテンプレート以外のXML の考察 Webサービス(SOAP UDDI)等のアプリ同士の連 携プロトコルとして P2Pのプロトコルを利用したシステムの有効 性について P2P自体は敵視される技術ではないことを検証 したい P2P(Peer to Peer) すべての計算機は対等な立場に クライアント・サーバーの概念はない いうならばすべてのマシンがクライアントであり、 サーバーである Server Client Server Client Server Client Server Server Client Server Client Server Client P2Pの実用例 Infrasearch 検索エンジン 検索構造にGnutellaのプロトコルを採用 ロボットが来るのを待つのではなく、こちらから 情報を反映させる Groove P2P型グループウェア ドキュメントとアプリケーションをP2Pで共有する
© Copyright 2025 ExpyDoc