Mercurial > hg > Papers > 2016 > tatsuki-prosym
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に含むことはできないので、他の工夫が必要になると思われる。 +このアプリケーションでは任意の木を取り扱うので、木の大きさの現実的な制限を除けば木の設計の問題はない。