changeset 4:3ac8c8d97fea

2/16
author tatsuki
date Mon, 16 Feb 2015 17:56:08 +0900
parents 470dc248d615
children 31f75ed536fe
files .DS_Store chapter2.tex chapter3.tex chapter4.tex chapter7.tex chapter8.tex data/readMaltiThread.dat fig/configModel.graffle fig/configModel.pdf fig/configTree.pdf fig/readMaltiThread.pdf main.aux main.dvi main.lof main.log main.lot main.pdf main.toc
diffstat 18 files changed, 663 insertions(+), 584 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
--- a/chapter2.tex	Mon Feb 16 04:32:22 2015 +0900
+++ b/chapter2.tex	Mon Feb 16 17:56:08 2015 +0900
@@ -1,12 +1,13 @@
 \chapter{分散データベースJungle}
-Jungleはスケーラビリティのある、世の中の知識構造を煩雑なデータ設計を行うこと無く格納できることを目指して、当研究室が開発しているデータベースである。
-我々が扱う知識は、それぞれが連なり大きな知識を表現しているため主に木構造である。そのためJungleのデータ構造は、非破壊的木構造を採用している。
+Jungleとは、当研究室で開発を行っている、スケーラビリティのある、世の中の知識構造を煩雑なデータ設計を行うこと無く格納できることを目標としたデータベースである。
+本章では、Jungleの基本的な特徴についての解説を行う。
 
-本章では、まずJungleの核部分であるJungle-Coreの説明を行った後、分散実装を行ったJungle-Networkについて述べる。
 \label{chap:concept}
 
-\section{JungleCore}
-はじめにJungle最大の特徴である非破壊的木構造と通常の破壊的木構造の違いについて説明を行う。
+\section{Jungleのデータ構造}
+研究目的でも述べたが、我々が扱う知識は主に木構造である。
+Jungleはそれらの知識をそのまま格納するため、データ形式は非破壊的木構造を採用している。
+はじめに、非破壊的木構造と通常の破壊的木構造の違いについて説明を行う。
 
 通常の破壊的木構造は、データの編集を行う際に、データを上書き更新する(図\ref{fig:Des})ため、編集を行っている間ずっと木にロックをかける必要があり、また、閲覧者がいる場合、検索途中にデータが変わることを避けるために、データの検索が終わるまで書き換えを待つ必要がある。
 しかし、これではロックによりスケーラビリティが損なわれてしまう。
@@ -45,19 +46,21 @@
 
 また、過去のTreeは全て保持しているため、いつでもアクセスすることが可能である。
 
-\section{JungleNetwork}
-Jungle-Networkとは、通信機能を実装し、データを分散させて、スケールアウトを可能にしたJungleのことある。木構造を想定したネットワークトポロジーを形成し、サーバー同士を接続することで通信を行っている。
-木構造なら、一度RootNodeまでデータを伝搬させることで整合性を取ることが出来る(図\ref{fig:topologu})。
+\section{分散機能}
+Jungleの分散機能は、当研究室で開発を行っている並列分散フレームワークであるAliceを使用している。
+Aliceはユーザーが望んだマシンへの接続や、必要なデータへのアクセスを行う機構等、ネットワークトポロジー形成機能を提
+供している。
+
+Jungleは、ネットワークトポロジーを構築する際に、木構造を想定したネットワークトポロジーを形成しサーバー同士を接続することで通信を行っている。
+木構造なら、一度RootNodeまでデータを伝搬させることで整合性を取ることが出来る(図\ref{fig:topologu})からである。
 データの伝搬中に衝突が発生した場合、Mergeを行い結果を改めて伝搬すれば良い。
 
 \begin{figure}[h]
 \begin{center}
 \includegraphics[bb=0 0 329 263]{fig/network_topology_tree.pdf}
-\caption{Jungle-networkのトポロジの形成例とデータの伝搬}
+\caption{Jungle-networkのトポロジの形成例とデータの伝搬順序}
 \label{fig:topologu}
 \end{center}
 \end{figure}
 
 
-また、データの伝搬には当研究室で開発を行っている並列分散フレームワークであるAliceを使用している、
-Aliceはユーザーが望んだマシンへの接続や、必要なデータへのアクセスを行う機構等、ネットワークトポロジー形成機能を提供している。
--- a/chapter3.tex	Mon Feb 16 04:32:22 2015 +0900
+++ b/chapter3.tex	Mon Feb 16 17:56:08 2015 +0900
@@ -59,6 +59,11 @@
 </PriorityMappedByRole> 
 <PriorityMappedByRole type="PriorityMappedByRole"> 
 <priority>1</priority> 
+\end{verbatim}
+\end{itembox}
+
+\begin{itembox}[h]{}
+\begin{verbatim} 
 <roleRefId>r:34</roleRefId> 
 </PriorityMappedByRole> 
 </priorities> 
@@ -67,9 +72,8 @@
 \end{verbatim}
 \end{itembox}
 
-\clearpage
 
-\begin{table}
+\begin{table}[h]
 \caption{Person.xmlの要素}
 \label{list:TreeNode}
 \begin{center}
@@ -93,7 +97,7 @@
 \end{table}
 
 Person.xmlを例で上げたが、役職Treeや役割Treeも同じような構造でデータを保持している。
-人物や役割等のデータ同士の参照はIdを用いて行っている。
+人物や役割等のデータ同士の参照はIdを用いて行っている(上記の例だと、東俊一のPersonIdはp:1である)。
 また、maTrixには、組織情報からデータを取得するFunctionが15種類実装されている。
 
 
@@ -135,14 +139,14 @@
 
 \begin{enumerate}
 \item Aさんが、資料Bを閲覧するために、maTrixにアクセス許可を求める。
-\item maTrixはリポジトリから、権限を決定するためのポリシーを取得する。
-\item 保持している組織構造のデータにアクセスを行い、ポリシーファイルを元に権限を与えるかどうかを判断する。
+\item maTrixはリポジトリから、アクセス許可を与えるかを判断するためのポリシーを取得する。
+\item ポリシーファイルを元に、データにアクセスを行い権限を与えるかどうかを判断する。
 \item maTrixは権限に応じて、資料BをAさんに与える。
 \end{enumerate}
 といった流れになる。
 
 maTrixの許認可を使用するメリットとして、許認可のログをとっておくことで、いつ、誰が、どのポリシーを元に、どんなことをしたか、の情報がいつでも取得可能であるため、不正アクセス等の問題発生時の解決等役立つ。
-といったメリットも有る。
+といったメリットもある。
 
 \clearpage
 \section{XACML}
@@ -213,3 +217,4 @@
 \end{center}
 \end{table}
 
+XACMLの評価が終わり、最終的にPermitだった場合その申請は許可される。
--- a/chapter4.tex	Mon Feb 16 04:32:22 2015 +0900
+++ b/chapter4.tex	Mon Feb 16 17:56:08 2015 +0900
@@ -4,7 +4,7 @@
 本章では、maTrixをJungle上にどのように実装するかを記述する。
 
 \section{Jungle上でのmaTrixのデータ構造の表現}
-maTrixは、前章でも説明したが、人物、役職、役割、っといった情報を木構造で保持しており、それらのTreeはIDで参照しあっている。
+maTrixは、前章でも説明したが、人物、役職、役割、といった情報を木構造で保持しており、それらのTreeはIDで参照しあっている。
 人物Treeや役職Treeは、木構造のデータであるためそのままJungleに格納することができる。
 実際に人物Treeを格納した際のデータの形を(図\ref{fig:PersonTree})に示した。(図\ref{fig:PersonTree})は前章で表示したPerson.xmlと対応している。
 Tree間の参照は、TreeのデータはUniqueIdを保持しているため、Treeに対してIdで検索を行うことで表現した。
@@ -62,7 +62,7 @@
 
 \begin{figure}[h]
 \begin{center}
-\includegraphics[height = 15cm ,bb=0 0 1092 703]{fig/configModel.pdf}
+\includegraphics[height = 18cm ,bb=0 0 717 760]{fig/configModel.pdf}
 \caption{構成情報モデルTree表現例2}
 \label{fig:configTree2}
 \end{center}
@@ -91,11 +91,11 @@
 
 \section{検索APIの実装}
 Jungleは、データを格納するAPIは実装されていたが、データの検索を行うAPIの実装は行われていなかった。
-しかし、Jungle上でmaTrixのデータ構造を表現、許認可をためには検索APIが必要であるため、実装を行った。
+しかし、Jungle上でmaTrixのデータ構造を表現、許認可を行うためには検索APIが必要であったため、実装を行った。
 
 
 
-Treeに対する検索は、find関数をjava8の新機能であるlambda式を用いて実装した。
+Treeに対する検索は、java8の新機能であるlambda式を用いてfind関数を実装した。
 lambda式を使用することで、匿名クラスを使う時より簡潔にコードを記述できるようになった。
 以下に実際にlambda式を用いたfind関数の使用例を記す。
 
@@ -108,7 +108,7 @@
     return false;
     if (element.equals("Person"))
       return true;
-      return false;
+    return false;
 }, "element", "Person");
 \end{verbatim}
 \end{itembox}
@@ -150,7 +150,6 @@
 findInSubTreeを使用することで、更に限定的な探索が行えるようになった。
 
 また、maTrix上に実装されていた、構成情報からデータを取得するFunctionも全て実装して、実際のmaTrixと同じようにデータのアクセスを行えるようにした。
-\clearpage
 
 
 
@@ -179,7 +178,7 @@
 これまでのJungleのTreeの欠点として、親から子ノードを取得することは可能であったが、子ノードから親ノードを取得することは出来なかった。
 そのため、Indexで取得できる値がNodeだけでは、Indexで検索を行って取得したNodeの編集が行えないため、Indexの型を、
 TreeMap$<$String key, TreeMap$<$ String value , List$<$Pair$<$TreeNode,NodePath$>>>>$
-と定義し、返り値をPair$<$TreeNode,NodePath$>$と、TreeNodeとそのTreeNodeへのNodePathのペアにすることでNodeの編集を可能にしていた。
+と定義し、返り値をPair$<$TreeNode,NodePath$>$というように、TreeNodeとそのTreeNodeへのNodePathのペアにすることでNodeの編集を可能にしていた。
 しかし、Treeの編集を行った際に、TreeNodeへのPathは常に変動する為、Index内のNodePathの更新コストが編集時のネックであった。
 しかし、後述するParentIndexを実装することで、TreeNodeからNodePathを取得できるようになったため、IndexにNodePathを入れる必要がなくなり、Indexの型はTreeMap$<$String key,TreeMap$<$String value,List$<$TreeNode$>>>>$と定義できるようになった。
 
@@ -232,9 +231,9 @@
 
 
 Jungleは、クラスChangeSet内にTreeのデータを保持している。
-ChangeSetからは、今のrevisionと、1つ前のTreeのデータを取得できるため、再帰的に過去のTreeのデータを取得できる。
+ChangeSetからは、今のrevisionIdと、1つ前のTreeのデータを取得できるため、再帰的に過去のTreeのデータを取得できる。
 
-アクセスしたいTreeのrevisionを引数に取り、過去のTreeのデータの取得とrevisionの比較を繰り返すことで過去のTreeにアクセスする、getOldTree(long revision)を DefaultJungleTree内に実装した。
+アクセスしたいTreeのrevisionIdを引数に取り、過去のTreeのデータの取得とrevisionIdの比較を繰り返すことで過去のTreeにアクセスする、getOldTree(long revisionId)を DefaultJungleTree内に実装した。
 
 
 以下にgetOldTreeの実装部分のコードを示す。
@@ -267,7 +266,7 @@
 
 \newpage
 
-\section{XMLReader}
+\section{JungleXMLReader}
 maTrixからXML形式で書き出されたデータをJungleに格納するためのAPIとして、XMLReaderを実装した。
 JungleXMLReaderの実装にはsax(Simple API for XML)を用いた。
 
@@ -294,9 +293,14 @@
 saxでは、org.xml.sax.helpers.DefaultHandlerという形で、ContentHandlerのデフォルト機能が提供されているため、プロ
 グラマはこれを継承することで、必要なイベント処理のみをoverrideして記述できるようになっている。
 
-JungleXMLReaderで使用しているReadXmlHandlerは、startElement、charactor、endElement、endDocument、の4つのイベントを使用している。
-startElementは、
-、charactor、endElementで、XMLのデータをTreeに格納していき、endDocumentが呼ばれた時に木のCommitを行っている。
+XMLReaderで使用しているReadXmlHandlerは、startElement、charactor、endElement、endDocument、の4つのイベントを使用しており、XMLを読み込む際に、Treeを構築しながらParseを行う。
+
+startElementが呼ばれた時は、今いる地点の下に新しくNodeを作りそのNodeへ移動する。
+その後、今いるNodeにAttributeの値を格納する。
+charactorが呼ばれた時は、今いるNodeにテキストデータを格納する。
+endElementが呼ばれたら、今いるNodeの親ノードに移動する。
+
+以上の3つの関数を用いて、XMLのデータをTreeに格納していき、endDocumentが呼ばれた時に木のCommitを行っている。
 
 \section{XACMLInterpreter}
 XMLReaderと同じようsaxにを用いて実装している。
--- a/chapter7.tex	Mon Feb 16 04:32:22 2015 +0900
+++ b/chapter7.tex	Mon Feb 16 17:56:08 2015 +0900
@@ -36,25 +36,30 @@
 \end{figure}
 
 isActiveの実行時間は、Indexを使用しない場合は、Personの数が増えると比例して増えていくのに対し、Indexを使用するとPersonの数が増えても実行時間は変わらなかった。
-この結果より、JungleのIndexは性能が出ることが確認できた。
+この結果より、JungleのIndexの計算量はO(logn)であることがわかる。
 
 \clearpage
-\section{複数threadからのreadの測定}
-1秒間Jungleに対して、readを複数Threadから同時に行った際の性能測定を行う
-測定には、Jungleが保持しているPerson数は100とし、4.2と同じく関数isActiveを用いた。
+\section{read\&writeの測定}
+1秒間の間Jungleに対し書き込みと、データの検索を同時に行い、Jungleの書き込みがどの程度検索に影響をおよぼすかを調べる。
+測定の条件は、Jungleが保持しているPerson数は100、書き込みに1Thread使用し、読み込みを行うThreadは1から12個まで使用する。read関数は実験1と同じく関数isActiveを用いた。
 実験の結果は図\ref{fig:thread}となる。横軸はJungleに対し、readを行うthread数、縦軸はreadを行った回数を表す。
 
 \begin{figure}[h]
 \begin{center}
 \includegraphics[bb=0 0 360 252]{fig/readMaltiThread.pdf}
-\caption{複数Threadからのread}
-\label{fig:isActive}
+\caption{read\&writeの測定}
+\label{fig:thread}
 \end{center}
 \end{figure}
-Jungleはreadを行う際にロックを必要としないため、複数のThreadから同時に読み込んでも速度が出ている。
-今回は、分散環境下での測定が行えなかったため、最低限の測定しか行えていない。
-次は、分散環境を整えて再計測を行う必要がる。
-\section{Indexの作成時間}
+
+Jungleは書き込みを行う際、読み込みに対するロックをかけないため、書き込みを行ってもほとんど読み込みに影響を及ぼさない。
+しかし、書き込みと読み込みを同時に行っているread\&writeの方は、書き込み分の負荷が多くかかっているため、やはりreadのみと比べると多少遅くなっている。
 
 
+図\ref{fig:thread}でもThreadCount5まではほとんど差は開いていない。
+しかし、6Thread目以降はread\&writeの、8Thread目以降ではreadOnlyのreadCountの上昇量がゆるやかになり、差が開きだしている。
+理由として、Jungleの処理限界が来たためであると推測でき、read\&writeがreadOnlyより早く処理限界が来た理由は、writeの分readOnlyよりリソースを多く使用しているためだと推測できる。
 
+本実験で、Jungleは書き込み中でも高速に検索が行えることがわかった。
+これはつまり、スケールアウトを行うためにデータのコピーを行う際、データベースをロックすること無く行えるということである。
+
--- a/chapter8.tex	Mon Feb 16 04:32:22 2015 +0900
+++ b/chapter8.tex	Mon Feb 16 17:56:08 2015 +0900
@@ -3,10 +3,16 @@
 \section{まとめ}
 本研究では、初めに当研究室が開発している分散データベースJungleで使われている非破壊的木構造について述べ、破壊的木構造に比べてロックが少ないというメリットがあること、当研究室で開発している並列分散フレームワークAliceを用いて分散実装を行っていることを述べた。
 
-その後、株式会社Symphonyが開発しているアカウント管理、許諾判定システムであるmaTrixが、どのようなデータ構造を保持しており、どのようにアカウント管理を行い、申請の許認可を行っているかの説明を行い、Jungle上でmaTrixをどのように実装するかを述べた。
-その後maTrixに必要なAPIの洗い出しと、実装の説明を行った。検索APIは、Java8の新機能であるlambda式を用いて実装を行い、検索を高速化するためfunctionalJavaのTreeMapを用いてIndexの実装も行った。過去のTreeに対するアクセスは固有のrevisionIDを使用し実装した。
+その後、株式会社Symphonyが開発しているアカウント管理、許諾判定システムであるmaTrixが、どのようなデータ構造を保持しており、どのようにアカウント管理を行い、申請の許認可を行っているかの説明を行って、Jungle上でmaTrixをどのように実装するかを述べた。
+その後Jungle上でどのようにmaTrixを表現するかの説明を行った。
+検索APIは、Java8の新機能であるlambda式を用いて実装を行い、検索を高速化するため、functionalJavaのTreeMapを用いてIndexの実装も行った。過去のTreeに対するアクセスは、全てのVersionのTreeが持っている固有のrevisionIdを使用しアクセスを可能にした。
 
-最後に、実際にmaTrixがデータにアクセスする際に使用するアクセス関数を実装し、
+また、maTrixが書きだしたxmlファイルを読み込むためにXMLReaderをsaxを用いて実装し、XMLファイルをJungleに取り込めるようにした。
+その後、XACMLInterpreterを実装し、maTrixが使用しているポリシーファイルを読み込んで、Jungle上で許諾判定を行えるようにした。
+
+最後に、実際にmaTrixがデータにアクセスする際に使用するアクセス関数を実装し、性能評価を行った。
+1つ目の実験ではIndexの性能評価を行うため、Indexを使用する場合と、使用しない場合で検索を行い、アクセス関数の実行速度の比較を行った。
+2つ目の実験では、データの検索APIに対して複数のThreadから負荷をかけ、並列に動作するかどうかを調べ、どちらの実験でもIndexの性能は出ていた。
 \section{今後の課題}
 \subsection{push/pop}
 \subsection{indexのIncrementalUpdate}
--- a/data/readMaltiThread.dat	Mon Feb 16 04:32:22 2015 +0900
+++ b/data/readMaltiThread.dat	Mon Feb 16 17:56:08 2015 +0900
@@ -1,8 +1,12 @@
-1 828
-2 1620
-3 2845
-4 3584
-5 4339
-6 4819
-7 5724
-8 6172
+1 1506
+2 2906
+3 5287
+4 6662
+5 8400
+6 9552
+7 10749
+8 11700
+9 11934
+10 11932
+11 11653
+12 11681
--- a/fig/configModel.graffle	Mon Feb 16 04:32:22 2015 +0900
+++ b/fig/configModel.graffle	Mon Feb 16 17:56:08 2015 +0900
@@ -14,7 +14,7 @@
 	<key>BackgroundGraphic</key>
 	<dict>
 		<key>Bounds</key>
-		<string>{{0, 0}, {1118, 1566}}</string>
+		<string>{{0, 0}, {1118, 783}}</string>
 		<key>Class</key>
 		<string>SolidGraphic</string>
 		<key>ID</key>
@@ -52,8 +52,508 @@
 	<key>GraphicsList</key>
 	<array>
 		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>84</integer>
+			<key>Points</key>
+			<array>
+				<string>{505.72727433487404, 631.09091320412222}</string>
+				<string>{507.40909614099945, 675.40909526244673}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>83</integer>
+			<key>Points</key>
+			<array>
+				<string>{354.68182295388425, 628.81818591907995}</string>
+				<string>{355.95455022193181, 670.86364069236208}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>82</integer>
+			<key>Points</key>
+			<array>
+				<string>{143.31818544495204, 628.81818591907995}</string>
+				<string>{218.31818585134732, 674.27273161992559}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>81</integer>
+			<key>Points</key>
+			<array>
+				<string>{142.18182180243087, 627.68182227655882}</string>
+				<string>{68.31818503855672, 673.13636797740446}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>80</integer>
+			<key>Points</key>
+			<array>
+				<string>{360.36364116648997, 543.59091272999433}</string>
+				<string>{651.27273365190206, 577.68182200562853}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>79</integer>
+			<key>Points</key>
+			<array>
+				<string>{356.95455023892652, 543.59091272999433}</string>
+				<string>{499.4545524142498, 576.5454583631074}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>78</integer>
+			<key>Points</key>
+			<array>
+				<string>{356.95455023892652, 543.59091272999433}</string>
+				<string>{355.95455022193181, 575.40909472058627}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>77</integer>
+			<key>Points</key>
+			<array>
+				<string>{352.40909566884199, 544.72727637251546}</string>
+				<string>{147.36363908254404, 576.5454583631074}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>76</integer>
+			<key>Points</key>
+			<array>
+				<string>{359.22727752396884, 491.31818517402183}</string>
+				<string>{357.54545578927048, 459.5000031834299}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>72</integer>
+			<key>Points</key>
+			<array>
+				<string>{238.77273141672788, 212.90909275634232}</string>
+				<string>{351.00000189207805, 269.72727488239934}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>71</integer>
+			<key>Points</key>
+			<array>
+				<string>{236.50000413168559, 211.77272911382116}</string>
+				<string>{235.22727686363802, 267.45454759735708}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>70</integer>
+			<key>Points</key>
+			<array>
+				<string>{238.77273141672788, 212.90909275634232}</string>
+				<string>{147.36363908254404, 267.45454759735708}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>69</integer>
+			<key>Points</key>
+			<array>
+				<string>{142.18182180243087, 68.590910156157392}</string>
+				<string>{243.31818598681244, 111.81818103051383}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowConnections</key>
+			<string>NO</string>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>AllowToConnect</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>68</integer>
+			<key>Points</key>
+			<array>
+				<string>{143.31818544495204, 69.727273798678539}</string>
+				<string>{68.31818503855672, 112.95454447771893}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>6</real>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
 			<key>Bounds</key>
-			<string>{{439.4545548476749, 421.00001091873639}, {188, 54}}</string>
+			<string>{{584.09091225586644, 577.68182373046875}, {117.04539489746094, 45}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>66</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict/>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'97\'aa}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{141.20455052828785, 330.68181227332883}, {190, 108}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -108,7 +608,7 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
 
-\f0\fs36 \cf0 version:3\'82\'cc\'91\'67\'90\'44\'83\'82\'83\'66\'83\'8b\uc0\u8232 \'82\'f0\'8e\'51\'8f\'c6\'82\'b7\'82\'e9}</string>
+\f0\fs36 \cf0 version:3\'82\'cc\'91\'67\'90\'44\'83\'82\'83\'66\'83\'8b\uc0\u8232 \'82\'f0\'8e\'51\'8f\'c6\'82\'b7\'82\'e9(\'89\'df\'8b\'8e\'82\'ccTree\u8232 \'82\'ccversion\'82\'f0\'8e\'9d\'82\'c1\'82\'c4\u8232 \'83\'41\'83\'4e\'83\'5a\'83\'58\'82\'b7\'82\'e9)}</string>
 				<key>VerticalPad</key>
 				<integer>0</integer>
 			</dict>
@@ -128,8 +628,8 @@
 			<integer>64</integer>
 			<key>Points</key>
 			<array>
-				<string>{403.8863856462408, 400.00000216744161}</string>
-				<string>{402.88638565067419, 473.86363893131579}</string>
+				<string>{351.00000189207805, 330.68181997365201}</string>
+				<string>{352.00000189749665, 397.72727488239934}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -149,371 +649,8 @@
 			</dict>
 		</dict>
 		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>61</integer>
-			<key>Points</key>
-			<array>
-				<string>{531.45454556538039, 717.5909117140061}</string>
-				<string>{531.45454556538039, 741.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>60</integer>
-			<key>Points</key>
-			<array>
-				<string>{382.45454556538044, 716.5909117140061}</string>
-				<string>{382.45454556538044, 742.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>59</integer>
-			<key>Points</key>
-			<array>
-				<string>{159.45454556538056, 715.5909117140061}</string>
-				<string>{249.20454556538044, 742.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>58</integer>
-			<key>Points</key>
-			<array>
-				<string>{158.45454556538056, 717.5909117140061}</string>
-				<string>{76.454545565380599, 741.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>55</integer>
-			<key>Points</key>
-			<array>
-				<string>{382.45454556538044, 622.5909117140061}</string>
-				<string>{544.45454556538039, 665.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>54</integer>
-			<key>Points</key>
-			<array>
-				<string>{382.45454556538044, 622.5909117140061}</string>
-				<string>{382.45454556538044, 665.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>53</integer>
-			<key>Points</key>
-			<array>
-				<string>{382.45454556538044, 623.5909117140061}</string>
-				<string>{162.45454556538056, 666.5909117140061}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>52</integer>
-			<key>Points</key>
-			<array>
-				<string>{385.3295497285925, 535.4545425452477}</string>
-				<string>{386.32954970149962, 566.72727382651055}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>48</integer>
-			<key>Points</key>
-			<array>
-				<string>{264, 265}</string>
-				<string>{424, 337}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>47</integer>
-			<key>Points</key>
-			<array>
-				<string>{267, 261}</string>
-				<string>{265, 336}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>43</integer>
-			<key>Points</key>
-			<array>
-				<string>{269, 264}</string>
-				<string>{116, 332}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
 			<key>Bounds</key>
-			<string>{{395, 336}, {55, 45}}</string>
+			<string>{{318.1818199059195, 269.72726440429688}, {55, 45}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -551,7 +688,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{235.75, 336}, {55, 45}}</string>
+			<string>{{208.70454904831129, 268.54544585302841}, {55, 45}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -589,7 +726,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{86, 332}, {55, 45}}</string>
+			<string>{{114.50000156573029, 268.54545240264287}, {55, 45}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -626,74 +763,8 @@
 			</dict>
 		</dict>
 		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>27</integer>
-			<key>Points</key>
-			<array>
-				<string>{149, 119}</string>
-				<string>{78, 164}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
-			<key>AllowConnections</key>
-			<string>NO</string>
-			<key>AllowLabelDrop</key>
-			<false/>
-			<key>AllowToConnect</key>
-			<false/>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>ID</key>
-			<integer>26</integer>
-			<key>Points</key>
-			<array>
-				<string>{149, 120}</string>
-				<string>{267, 164}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>CornerRadius</key>
-					<real>6</real>
-					<key>HeadArrow</key>
-					<string>0</string>
-					<key>Join</key>
-					<integer>0</integer>
-					<key>Legacy</key>
-					<true/>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-		</dict>
-		<dict>
 			<key>Bounds</key>
-			<string>{{35, 164}, {90, 30}}</string>
+			<string>{{26.136363777986244, 112.95454427846211}, {90, 30}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -731,7 +802,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{172.2045455653805, 741.5909117140061}, {128, 80}}</string>
+			<string>{{147.36363908254404, 672.09082254767418}, {128, 80}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -769,7 +840,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{463.70454556538044, 741.5909117140061}, {128, 84.653045654296875}}</string>
+			<string>{{447.95457480293618, 672.09079482289371}, {128, 84.653045654296875}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -807,7 +878,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{321.82954556538044, 741.5909117140061}, {128, 75}}</string>
+			<string>{{287.5909252260339, 674.59080592635269}, {128, 75}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -845,7 +916,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{16.000001497997744, 741.59088134765625}, {128, 80}}</string>
+			<string>{{7.1363595549232901, 672.09084922025977}, {128, 80}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -883,7 +954,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{96.45454556538057, 665.5909117140061}, {128, 50}}</string>
+			<string>{{77.999998708155658, 576.04549753592028}, {128, 50}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -921,7 +992,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{327.70454556538044, 665.5909117140061}, {128, 50}}</string>
+			<string>{{294.38634857904799, 577.1136591120445}, {128, 50}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -959,7 +1030,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{468.70454556538044, 665.5909117140061}, {128, 50}}</string>
+			<string>{{441.81817620179862, 576.04548998016946}, {128, 50}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -997,7 +1068,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{315.45452990807769, 568.09090892120844}, {128, 50}}</string>
+			<string>{{287.49999817122085, 492.04547233694859}, {128, 50}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1035,7 +1106,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{319.99998488455765, 484.09091171400604}, {128, 50}}</string>
+			<string>{{294.38634839161358, 409.5}, {128, 50}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1066,14 +1137,14 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
 
-\f0\fs24 \cf0 \'91\'67\'90\'44\'83\'82\'83\'66\'83\'8b(ver:1)}</string>
+\f0\fs24 \cf0 \'91\'67\'90\'44\'83\'82\'83\'66\'83\'8b(ver:3)}</string>
 				<key>VerticalPad</key>
 				<integer>0</integer>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{192, 164}, {142.5, 100}}</string>
+			<string>{{164.95453698378952, 112.95454447771893}, {142.5, 100}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1111,7 +1182,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{83, 67}, {128, 50}}</string>
+			<string>{{77.999996525935899, 19.318181922859395}, {128, 50}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1195,7 +1266,7 @@
 	<key>MasterSheets</key>
 	<array/>
 	<key>ModificationDate</key>
-	<string>2015-02-12 08:36:16 +0000</string>
+	<string>2015-02-16 04:19:12 +0000</string>
 	<key>Modifier</key>
 	<string>sister_clown</string>
 	<key>NotesVisible</key>
@@ -1263,7 +1334,7 @@
 	<key>UseEntirePage</key>
 	<false/>
 	<key>VPages</key>
-	<integer>2</integer>
+	<integer>1</integer>
 	<key>WindowInfo</key>
 	<dict>
 		<key>CurrentSheet</key>
@@ -1271,7 +1342,7 @@
 		<key>ExpandedCanvases</key>
 		<array/>
 		<key>Frame</key>
-		<string>{{4, 0}, {2044, 1257}}</string>
+		<string>{{2048, 200}, {1920, 1057}}</string>
 		<key>ListView</key>
 		<true/>
 		<key>OutlineWidth</key>
@@ -1285,7 +1356,7 @@
 		<key>SidebarWidth</key>
 		<integer>120</integer>
 		<key>VisibleRegion</key>
-		<string>{{-517, 0}, {2153.4091025775624, 1267.0454614110722}}</string>
+		<string>{{-455, -128}, {2028.4091019002365, 1039.7727329068439}}</string>
 		<key>Zoom</key>
 		<real>0.87999999523162842</real>
 		<key>ZoomValues</key>
Binary file fig/configModel.pdf has changed
Binary file fig/configTree.pdf has changed
Binary file fig/readMaltiThread.pdf has changed
--- a/main.aux	Mon Feb 16 04:32:22 2015 +0900
+++ b/main.aux	Mon Feb 16 17:56:08 2015 +0900
@@ -8,15 +8,15 @@
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
 \newlabel{chap:concept}{{2}{2}}
-\@writefile{toc}{\contentsline {section}{\numberline {2.1}JungleCore}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.1}Jungleのデータ構造}{2}}
 \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces 破壊的木構造の編集}}{2}}
 \newlabel{fig:Des}{{2.1}{2}}
 \@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces 非破壊的木構造の編集}}{3}}
 \newlabel{fig:nonDes}{{2.2}{3}}
 \@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces 非破壊的木構造の編集}}{3}}
 \newlabel{fig:desMerit}{{2.3}{3}}
-\@writefile{toc}{\contentsline {section}{\numberline {2.2}JungleNetwork}{4}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Jungle-networkのトポロジの形成例とデータの伝搬}}{4}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.2}分散機能}{4}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Jungle-networkのトポロジの形成例とデータの伝搬順序}}{4}}
 \newlabel{fig:topologu}{{2.4}{4}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {第3章}組織の中の許認可を管理するアプリケーションmaTrix}{5}}
 \@writefile{lof}{\addvspace {10\p@ }}
@@ -61,16 +61,16 @@
 \newlabel{fig:DepthFirstSearch}{{4.4}{17}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces FindInSubTreeの検索順序}}{17}}
 \newlabel{fig:FindInSubTree}{{4.5}{17}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.4}Jungle上のIndexの設計}{19}}
-\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces JungleのIndex}}{19}}
-\newlabel{fig:JungleIndex}{{4.6}{19}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.5}親Nodeを返す特殊なIndex}{20}}
-\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces ParentIndexExample}}{20}}
-\newlabel{fig:ParentIndex}{{4.7}{20}}
-\@writefile{lot}{\contentsline {table}{\numberline {4.2}{\ignorespaces ParentIndexの返り値}}{20}}
-\newlabel{list:ParentIndex}{{4.2}{20}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.4}Jungle上のIndexの設計}{18}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces JungleのIndex}}{18}}
+\newlabel{fig:JungleIndex}{{4.6}{18}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.5}親Nodeを返す特殊なIndex}{19}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces ParentIndexExample}}{19}}
+\newlabel{fig:ParentIndex}{{4.7}{19}}
+\@writefile{lot}{\contentsline {table}{\numberline {4.2}{\ignorespaces ParentIndexの返り値}}{19}}
+\newlabel{list:ParentIndex}{{4.2}{19}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.6}過去のTreeに対するアクセス}{21}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.7}XMLReader}{22}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.7}JungleXMLReader}{22}}
 \@writefile{lot}{\contentsline {table}{\numberline {4.3}{\ignorespaces saxの主要なイベント一覧}}{22}}
 \newlabel{list:TreeNode}{{4.3}{22}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.8}XACMLInterpreter}{22}}
@@ -86,18 +86,17 @@
 \@writefile{toc}{\contentsline {section}{\numberline {5.2}検索のAPIの測定}{25}}
 \@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces inActiveの実行時間}}{25}}
 \newlabel{fig:isActive}{{5.1}{25}}
-\@writefile{toc}{\contentsline {section}{\numberline {5.3}複数threadからのreadの測定}{26}}
-\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces 複数Threadからのread}}{26}}
-\newlabel{fig:isActive}{{5.2}{26}}
-\@writefile{toc}{\contentsline {section}{\numberline {5.4}Indexの作成時間}{26}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.3}read\&writeの測定}{26}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces read\&writeの測定}}{26}}
+\newlabel{fig:thread}{{5.2}{26}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {第6章}結論}{27}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
 \newlabel{chap:poordirection}{{6}{27}}
 \@writefile{toc}{\contentsline {section}{\numberline {6.1}まとめ}{27}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.2}今後の課題}{27}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}push/pop}{27}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}indexのIncrementalUpdate}{27}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}differencialList}{27}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.4}exponential backoff}{27}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.2}今後の課題}{28}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}push/pop}{28}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}indexのIncrementalUpdate}{28}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}differencialList}{28}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.4}exponential backoff}{28}}
 \bibcite{hoge}{1}
Binary file main.dvi has changed
--- a/main.lof	Mon Feb 16 04:32:22 2015 +0900
+++ b/main.lof	Mon Feb 16 17:56:08 2015 +0900
@@ -3,7 +3,7 @@
 \contentsline {figure}{\numberline {2.1}{\ignorespaces 破壊的木構造の編集}}{2}
 \contentsline {figure}{\numberline {2.2}{\ignorespaces 非破壊的木構造の編集}}{3}
 \contentsline {figure}{\numberline {2.3}{\ignorespaces 非破壊的木構造の編集}}{3}
-\contentsline {figure}{\numberline {2.4}{\ignorespaces Jungle-networkのトポロジの形成例とデータの伝搬}}{4}
+\contentsline {figure}{\numberline {2.4}{\ignorespaces Jungle-networkのトポロジの形成例とデータの伝搬順序}}{4}
 \addvspace {10\p@ }
 \contentsline {figure}{\numberline {3.1}{\ignorespaces maTrixの構成情報例1}}{5}
 \contentsline {figure}{\numberline {3.2}{\ignorespaces maTrixの構成情報例1}}{6}
@@ -16,10 +16,10 @@
 \contentsline {figure}{\numberline {4.3}{\ignorespaces 構成情報モデルTree表現例2}}{15}
 \contentsline {figure}{\numberline {4.4}{\ignorespaces findの検索順序}}{17}
 \contentsline {figure}{\numberline {4.5}{\ignorespaces FindInSubTreeの検索順序}}{17}
-\contentsline {figure}{\numberline {4.6}{\ignorespaces JungleのIndex}}{19}
-\contentsline {figure}{\numberline {4.7}{\ignorespaces ParentIndexExample}}{20}
+\contentsline {figure}{\numberline {4.6}{\ignorespaces JungleのIndex}}{18}
+\contentsline {figure}{\numberline {4.7}{\ignorespaces ParentIndexExample}}{19}
 \contentsline {figure}{\numberline {4.8}{\ignorespaces XACMLInterpreterで用いられているstack}}{23}
 \addvspace {10\p@ }
 \contentsline {figure}{\numberline {5.1}{\ignorespaces inActiveの実行時間}}{25}
-\contentsline {figure}{\numberline {5.2}{\ignorespaces 複数Threadからのread}}{26}
+\contentsline {figure}{\numberline {5.2}{\ignorespaces read\&writeの測定}}{26}
 \addvspace {10\p@ }
--- a/main.log	Mon Feb 16 04:32:22 2015 +0900
+++ b/main.log	Mon Feb 16 17:56:08 2015 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=platex 2015.1.22)  16 FEB 2015 04:21
+This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=platex 2015.1.22)  16 FEB 2015 14:44
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -100,9 +100,6 @@
 LaTeX Warning: Label `chap:poordirection' multiply defined.
 
 
-LaTeX Warning: Label `fig:isActive' multiply defined.
-
-
 LaTeX Warning: Label `chap:poordirection' multiply defined.
 
 )
@@ -149,18 +146,18 @@
 
  [1
 
-] [2] (./main.lof)
+] (./main.lof)
 \tf@lof=\write5
 \openout5 = `main.lof'.
 
- [3
+ [2
 
 ] (./main.lot)
 \tf@lot=\write6
 \openout6 = `main.lot'.
 
 
-(./chapter1.tex [4
+(./chapter1.tex [3
 
 ]
 第 1 章
@@ -197,17 +194,15 @@
 [5
 
 ]
-Overfull \vbox (104.50273pt too high) has occurred while \output is active []
+Overfull \vbox (23.66942pt too high) has occurred while \output is active []
 
 
 [6]
-Overfull \hbox (54.0884pt too wide) in paragraph at lines 76--92
+Overfull \hbox (54.0884pt too wide) in paragraph at lines 80--96
  [] 
  []
 
-[7
-
-]
+[7]
 File: fig/maTrix1.pdf Graphic file (type eps)
  <fig/maTrix1.pdf>
 File: fig/maTrix2.pdf Graphic file (type eps)
@@ -222,7 +217,7 @@
 [10
 
 ]
-Overfull \hbox (63.36844pt too wide) in paragraph at lines 206--213
+Overfull \hbox (63.36844pt too wide) in paragraph at lines 210--217
  [] 
  []
 
@@ -247,7 +242,7 @@
  <fig/configTree.pdf>
 File: fig/configModel.pdf Graphic file (type eps)
  <fig/configModel.pdf>
-Overfull \hbox (207.70473pt too wide) in paragraph at lines 65--66
+Overfull \hbox (27.94537pt too wide) in paragraph at lines 65--66
  [] 
  []
 
@@ -268,30 +263,27 @@
  []
 
 File: fig/FindInSubTree.pdf Graphic file (type eps)
-<fig/FindInSubTree.pdf> [17] [18]
+<fig/FindInSubTree.pdf> [17]
 File: fig/JungleIndes.pdf Graphic file (type eps)
  <fig/JungleIndes.pdf>
-Overfull \hbox (2.35786pt too wide) in paragraph at lines 179--185
+Overfull \hbox (2.35786pt too wide) in paragraph at lines 178--184
 \JY1/mc/m/n/12 を 、 \OT1/cmr/m/n/12 TreeMap$\OML/cmm/m/it/12 <$\OT1/cmr/m/n/12
  String key, TreeMap$\OML/cmm/m/it/12 <$ \OT1/cmr/m/n/12 String value , List$\O
 ML/cmm/m/it/12 <$\OT1/cmr/m/n/12 Pair$\OML/cmm/m/it/12 <$\OT1/cmr/m/n/12 TreeNo
 de,NodePath$\OML/cmm/m/it/12 >>>>$
  []
 
-
-Overfull \hbox (14.87259pt too wide) in paragraph at lines 186--189
+[18]
+Overfull \hbox (14.87259pt too wide) in paragraph at lines 185--188
 []\JY1/mc/m/n/12 最初の \OT1/cmr/m/n/12 TreeMap$\OML/cmm/m/it/12 <$\OT1/cmr/m/n
 /12 String key,TreeMap$\OML/cmm/m/it/12 >$ \JY1/mc/m/n/12 は \OT1/cmr/m/n/12 In
 -dex \JY1/mc/m/n/12 を格納する \OT1/cmr/m/n/12 TreeMap \JY1/mc/m/n/12 である 。
  この \OT1/cmr/m/n/12 TreeMap
  []
 
-[19
-
-]
 File: fig/ParentIndex.pdf Graphic file (type eps)
- <fig/ParentIndex.pdf> [20]
-Overfull \hbox (89.63118pt too wide) in paragraph at lines 262--262
+<fig/ParentIndex.pdf> [19] [20]
+Overfull \hbox (89.63118pt too wide) in paragraph at lines 261--261
 []  \OT1/cmtt/m/n/12 JungleTree oldTree = new DefaultJungleTree(oldTc, oldTreeU
 uid, writer, treeEditor);[] 
  []
@@ -299,47 +291,38 @@
 [21
 
 ]
-Overfull \hbox (7.40611pt too wide) in paragraph at lines 305--306
+Overfull \hbox (7.40611pt too wide) in paragraph at lines 309--310
 []\OT1/cmr/m/n/12 XAMLInterpreter \JY1/mc/m/n/12 で \OT1/cmr/m/n/12 Han-dler \J
 Y1/mc/m/n/12 が使用しているイベントは 、 \OT1/cmr/m/n/12 XML-Reader \JY1/mc/m/n
 /12 と同じで 、 \OT1/cmr/m/n/12 startEle-
  []
 
 File: fig/xacmlStack.pdf Graphic file (type eps)
-<fig/xacmlStack.pdf>
-
-LaTeX Warning: `h' float specifier changed to `ht'.
-
-[22]) (./chapter7.tex [23]
+<fig/xacmlStack.pdf> [22]) (./chapter7.tex [23]
 第 5 章
 [24
 
 ]
 File: fig/isActive.pdf Graphic file (type eps)
  <fig/isActive.pdf> [25]
-
-LaTeX Warning: Reference `fig:thread' on page 26 undefined on input line 45.
-
 File: fig/readMaltiThread.pdf Graphic file (type eps)
-<fig/readMaltiThread.pdf>) (./chapter8.tex [26
+ <fig/readMaltiThread.pdf>) (./chapter8.tex
+[26
 
 ]
 第 6 章
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <14.4> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 11.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 17.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <14.4> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 11.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 17.
 ) (./bibliography.tex [27
 
-]) (./thanks.tex [28
+] [28]) (./thanks.tex [29
 
-]) [29
+]) [30
 
 ] (./main.aux)
 
-LaTeX Warning: There were undefined references.
-
-
 LaTeX Warning: There were multiply-defined labels.
 
  ) 
@@ -352,4 +335,4 @@
  929 hyphenation exceptions out of 8191
  25i,8n,21p,305b,283s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on main.dvi (35 pages, 75308 bytes).
+Output written on main.dvi (35 pages, 78808 bytes).
--- a/main.lot	Mon Feb 16 04:32:22 2015 +0900
+++ b/main.lot	Mon Feb 16 17:56:08 2015 +0900
@@ -6,7 +6,7 @@
 \contentsline {table}{\numberline {3.3}{\ignorespaces XACMLのルール結合アルゴリズム}}{11}
 \addvspace {10\p@ }
 \contentsline {table}{\numberline {4.1}{\ignorespaces 構成情報TreeのTreeNodeが保持しているAttribute}}{14}
-\contentsline {table}{\numberline {4.2}{\ignorespaces ParentIndexの返り値}}{20}
+\contentsline {table}{\numberline {4.2}{\ignorespaces ParentIndexの返り値}}{19}
 \contentsline {table}{\numberline {4.3}{\ignorespaces saxの主要なイベント一覧}}{22}
 \addvspace {10\p@ }
 \contentsline {table}{\numberline {5.1}{\ignorespaces 実験環境}}{24}
Binary file main.pdf has changed
--- a/main.toc	Mon Feb 16 04:32:22 2015 +0900
+++ b/main.toc	Mon Feb 16 17:56:08 2015 +0900
@@ -1,8 +1,8 @@
 \contentsline {chapter}{\numberline {第1章}世の中の知的構造を全て格納できるデータベースの開発}{1}
 \contentsline {section}{\numberline {1.1}研究目的}{1}
 \contentsline {chapter}{\numberline {第2章}分散データベースJungle}{2}
-\contentsline {section}{\numberline {2.1}JungleCore}{2}
-\contentsline {section}{\numberline {2.2}JungleNetwork}{4}
+\contentsline {section}{\numberline {2.1}Jungleのデータ構造}{2}
+\contentsline {section}{\numberline {2.2}分散機能}{4}
 \contentsline {chapter}{\numberline {第3章}組織の中の許認可を管理するアプリケーションmaTrix}{5}
 \contentsline {section}{\numberline {3.1}maTrixの保持するデータ構造}{5}
 \contentsline {section}{\numberline {3.2}アカウント管理}{8}
@@ -12,20 +12,19 @@
 \contentsline {section}{\numberline {4.1}Jungle上でのmaTrixのデータ構造の表現}{12}
 \contentsline {section}{\numberline {4.2}Jungle上の許認可}{16}
 \contentsline {section}{\numberline {4.3}検索APIの実装}{16}
-\contentsline {section}{\numberline {4.4}Jungle上のIndexの設計}{19}
-\contentsline {section}{\numberline {4.5}親Nodeを返す特殊なIndex}{20}
+\contentsline {section}{\numberline {4.4}Jungle上のIndexの設計}{18}
+\contentsline {section}{\numberline {4.5}親Nodeを返す特殊なIndex}{19}
 \contentsline {section}{\numberline {4.6}過去のTreeに対するアクセス}{21}
-\contentsline {section}{\numberline {4.7}XMLReader}{22}
+\contentsline {section}{\numberline {4.7}JungleXMLReader}{22}
 \contentsline {section}{\numberline {4.8}XACMLInterpreter}{22}
 \contentsline {chapter}{\numberline {第5章}実装の評価}{24}
 \contentsline {section}{\numberline {5.1}実験環境}{24}
 \contentsline {section}{\numberline {5.2}検索のAPIの測定}{25}
-\contentsline {section}{\numberline {5.3}複数threadからのreadの測定}{26}
-\contentsline {section}{\numberline {5.4}Indexの作成時間}{26}
+\contentsline {section}{\numberline {5.3}read\&writeの測定}{26}
 \contentsline {chapter}{\numberline {第6章}結論}{27}
 \contentsline {section}{\numberline {6.1}まとめ}{27}
-\contentsline {section}{\numberline {6.2}今後の課題}{27}
-\contentsline {subsection}{\numberline {6.2.1}push/pop}{27}
-\contentsline {subsection}{\numberline {6.2.2}indexのIncrementalUpdate}{27}
-\contentsline {subsection}{\numberline {6.2.3}differencialList}{27}
-\contentsline {subsection}{\numberline {6.2.4}exponential backoff}{27}
+\contentsline {section}{\numberline {6.2}今後の課題}{28}
+\contentsline {subsection}{\numberline {6.2.1}push/pop}{28}
+\contentsline {subsection}{\numberline {6.2.2}indexのIncrementalUpdate}{28}
+\contentsline {subsection}{\numberline {6.2.3}differencialList}{28}
+\contentsline {subsection}{\numberline {6.2.4}exponential backoff}{28}