Mercurial > hg > Papers > 2015 > tatsuki-thresis
changeset 24:0e549369b63e
commit
author | tatsuki |
---|---|
date | Thu, 19 Feb 2015 04:11:49 +0900 |
parents | 018025ca0964 |
children | 454413db1bfd |
files | fig/sosikiTree.graffle slide/slide.html |
diffstat | 2 files changed, 19 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/fig/sosikiTree.graffle Thu Feb 19 03:50:48 2015 +0900 +++ b/fig/sosikiTree.graffle Thu Feb 19 04:11:49 2015 +0900 @@ -65,8 +65,8 @@ <integer>92</integer> <key>Points</key> <array> - <string>{192.5454690141128, 131}</string> - <string>{117, 177.04535168433938}</string> + <string>{232.10952452165807, 157.11673501303437}</string> + <string>{135.14533693119637, 227.21317166781122}</string> </array> <key>Style</key> <dict> @@ -104,8 +104,8 @@ <integer>91</integer> <key>Points</key> <array> - <string>{192.5454690141128, 131}</string> - <string>{255.45456477137631, 177.04538604691004}</string> + <string>{232.10952452165807, 157.11673501303437}</string> + <string>{312.85466306880357, 227.21322397914486}</string> </array> <key>Style</key> <dict> @@ -131,7 +131,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{191.45456477137631, 177.04538604691004}, {128, 80}}</string> + <string>{{230.70932613760721, 227.21322397914489}, {164.29067386239274, 121.78677602085516}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -175,7 +175,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{53, 177.04535168433938}, {128, 80}}</string> + <string>{{53, 227.21317166781122}, {164.29067386239274, 121.78677602085516}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -219,7 +219,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{128.5454690141128, 81}, {128, 50}}</string> + <string>{{149.96418759046171, 80.999999999999943}, {164.29067386239274, 76.116735013034443}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -309,7 +309,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2015-02-18 18:42:31 +0000</string> + <string>2015-02-18 19:06:49 +0000</string> <key>Modifier</key> <string>sister_clown</string> <key>NotesVisible</key> @@ -385,7 +385,7 @@ <key>ExpandedCanvases</key> <array/> <key>Frame</key> - <string>{{2741, 252}, {693, 925}}</string> + <string>{{2741, 332}, {693, 925}}</string> <key>ListView</key> <true/> <key>OutlineWidth</key>
--- a/slide/slide.html Thu Feb 19 03:50:48 2015 +0900 +++ b/slide/slide.html Thu Feb 19 04:11:49 2015 +0900 @@ -200,7 +200,7 @@ InterfaceTraverser traverser = tree.getTraverser(boolean useIndex); </div> <p>TreeからgetTraverserで取得可能。</p> -<p>第一引数で 探索を行う際にIndexを使用するかどうかを選択できる。</p> +<p>第一引数で 検索を行う際にIndexを使用するかどうかを選択できる。</p> </div> @@ -224,7 +224,7 @@ <div> -<h1>Indexの実装</h1> +<h1>JungleのIndex</h1> <p>Jungleは過去のTreeを全て保持しているため、Treeのversion毎にIndexを持っている必要がある。</p> <p>FunctionalJavaのTreeMapを使用してIndexの実装を行った</p> <p>データの更新が行われた際に、一度作られたIndexに対して更新を行わず、新しいIndexを構築する。</p> @@ -234,9 +234,8 @@ <div> -<h1>ParentIndexの実装</h1> +<h1>木構造の親を辿るQuery</h1> <p>maTrixで許認可を判断する際に、木構造の親を辿って検索を行う必要がある。</p> -<p>TreeNodeでgetを行うと、親Nodeを返すParentIndexを実装した。</p> <p>以下に親を辿る検索を行う例を記す。</p> <ul> <li>Aさんが、maTrixに工学部の学生にのみ貸出を行っている書籍の貸出許可を求める。</li> @@ -244,6 +243,7 @@ <li>情報工学科の親の情報を取得する(工学部)。</li> <li>Aさんは工学部に所属しているため本の貸出を許可する。</li> </ul> +<p>TreeNodeでgetを行うと、親Nodeを返すParentIndexを実装した。</p> <p>3番目の処理でParentIndexを使用する。</p> </div> @@ -251,22 +251,16 @@ <div> <h1>XACMLInterpreter</h1> <p>Jungle上での許認可判断は、組織構造の参照とポリシーファイルを使用して許認可判断を行う。</p> -<p>ポリシーファイルを読み込んで</p> -<p>これで実際にJungleの上で許認可判断が行えるようになった</p> +<p>引数にポリシーファイルと、誰が(subject)、何に(Resource)、どうするか(Action)を引数に取る。</p> +<p>返り値は許可(Permit) or 拒否(Deny)が返ってくる</p> +<p>実際にJungleの上で許認可判断が行えるようになった</p> </div> <div> <h1>今後の課題</h1> -<p>push/popの実装</p> -<li>Jungleの新しい子のInsert処理の計算量は木の深さであるため、最悪計算量はO(n) となる。しかし、Treeの根の部分に子を追加するpush/popを実装することでInsertの計算量が、非破壊の性質を維持しながらO(1)で行えるようになる</li> -<p>IndexのIncrementalUpdate</p> -<li>今JungleのIndexは木の更新が行われる度に新しく作りなおされているため、メモリの消費が大きい。 -しかし、新しく作り直さず、木の更新時に差分更新を行うことでメモリの消費を抑えて各versionのTreeにIndexを保持するこ -とが可能になる。</li> -<p>differencialList</p> -<li>Tree の葉部分に、更新可能な未定義ノードを付加しておくことで、ルートまでのコピーを行わずにノードの追加を行えるようになるので、更新処理が短くなる。</li> -<p>exponential backoff</p> -<li>Jungle は書き込みが競合し、書き込みに失敗した場合すぐに再度書き込みを行うため、 書き込みが集中した際失敗を繰り返すことがある。しかし、書き込みが失敗する度に一定時間待機してから再度書き込みを行うことで、競合を避ける事が出来る。</li> +<li>分散板の実装</li><br> +<li>maTrix専用のデータ構造の定義</li> +<p>今は、maTrixのデータ構造をそのまま格納しているため、Jungleに合ったデータ構造を設計する。</p> </div> </div> <!-- presentation -->