changeset 17:5d68cbc1ad5e

bbs
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 10 Nov 2016 20:14:04 +0900
parents a26c13b4cd5c
children e81a5eb2a60f
files bbs.tex
diffstat 1 files changed, 31 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/bbs.tex	Thu Nov 10 19:50:07 2016 +0900
+++ b/bbs.tex	Thu Nov 10 20:14:04 2016 +0900
@@ -1,56 +1,59 @@
-\section{BBS}
-Jungle実装時木に対する変更はEditorを用いたコード上でしか行えず、非効率的であり、また、構築した木構造を表示する機能も無かった。
-それらの問題を解決するため、BBSの実装を行った。
-フロントエンドには組み込みウェブサーバーであるJettyを使用した。
+\section{Jungle Tree ブラウザ}
 
-\subsection{BBSを使った木構造の表示}
-WEBサーバー上でJungleを使用する機能の実装を行った。
-図\ref{printNode}は、BBSがNodeを可視化するまでの流れである。
+Jungleの複数の木をブラウザ上で表示し変更できるするアプリケーションを作成した。
+実装時木に対する変更をEditorを用いる方法はプログラム上では便利だが、Jungleの木を手動で変更するのには向いていない。
+組み込みWEBサーバーであるJettyを使用し、Servletとして表示と変更を実現した。
+
+\subsection{木構造の表示}
+Jungle DBはWEBサーバー内に存在し、それから表示に必要なHTMLを生成してブラウザに転送する。
+図\ref{printNode}は、サーバからデータを送りブラウザ上でNodeを可視化するまでの流れである。
+この流れはPathの処理を除けば通常のデータベースのレコードの表示と同等である。
 \begin{figure}[h]
 \begin{center}
 \includegraphics[height = 6cm , bb=0 0 622 497]{images/printNodeValue.pdf}
-\caption{BBS使用したNodeの可視化}
+\caption{ブラウザを使用したNodeの可視化}
 \label{printNode}
 \end{center}
 \end{figure}
 
 \begin{enumerate}
-\item Userは表示したいNodeのPathをBBSに送る
-
-\item BBSはJungleから木を取得する
-
+\item Userは表示したいNodeのPathをWeb Serverに送る
+\item JettyはJungleから木を取得する
 \item 木からNodePathの位置にあるNodeを取得する
-
-\item Nodeの中身をブラウザで表示する
-
+\item Nodeの中身をブラウザに送信する
+\item ブラウザがNodeの中身を表示する
 \end{enumerate}
 
 
-\subsection{BBSを使った木の編集}
-図\ref{JungleEdit}はBBSを用いたJungleの木の更新の流れである。
+\subsection{ブラウザを使った木の編集}
+図\ref{JungleEdit}はブラウザを用いたJungleの木の更新の流れである。
+編集するノードのPathはURLで記述されている。例えば、
+{\small
+\verb! http://localhost/showBoardMessage?bname=Layout&path=-1,0,2!
+}
+などとなる。
+
 \begin{figure}[h]
 \begin{center}
 \includegraphics[height = 10cm , bb=0 0 622 971]{images/TreeEdit.pdf}
-\caption{BBSを介した木の編集}
+\caption{ブラウザを介した木の編集}
 \label{JungleEdit}
 \end{center}
 \end{figure}
 
 図\ref{JungleEdit}
 \begin{enumerate}
-\item UserはBBSで編集したいNodeを表示するページに移動する 
-
-\item BBSに木の変更要求を送る
-
-\item BBSはJungleから対応した木を取得する
-
+\item Userはブラウザで編集したいNodeを表示するページに移動する 
+\item ブラウザに木の変更要求を送る
+\item ブラウザはJungleから対応した木を取得する
 \item 木からEditorを取得する
-
 \item Editorを使用して木の変更を行う
-
 \item 木の変更をJungleにコミットする
-
 \end{enumerate}
 
-編集機能を実装したことにより木構造を構築する際にEditorを使ったコードを書く必要がなくなり、直感的に木構造への操作を行えるようになった。
+Pathを使用することにより木の変更をRestfulに行うことができるように見えるが、木のPathは特定の木の版に固有のものである。
+ブラウザとWEBサーバはセッションで結合されており、そのセッションが同じ版の木を編集していれば問題はない。
+ただし、編集し終わった時に、他の編集が割り込んでいたら、その編集は無効となる。この点が既存のRDBとは異なる。
+また巨大な木を操作する時には、Pathを直接URLに含むことはできないので、他の工夫が必要になると思われる。
+このアプリケーションでは任意の木を取り扱うので、木の大きさの現実的な制限を除けば木の設計の問題はない。