プレゼンテーションのダウンロード
Download
Report
Transcript プレゼンテーションのダウンロード
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で共有する