プレゼンテーションのダウンロード

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で共有する