# HG changeset patch # User Kazuma Takeda # Date 1482073347 -32400 # Node ID b37ab31d5f12704a8ab9a31bfe8626416e8481fb # Parent e3b4e888ef327066bcd76b919d8c8c4a1c458cf6 add description. diff -r e3b4e888ef32 -r b37ab31d5f12 Slide/prosym.md --- a/Slide/prosym.md Sun Dec 18 20:01:32 2016 +0900 +++ b/Slide/prosym.md Mon Dec 19 00:02:27 2016 +0900 @@ -4,6 +4,7 @@ lang: Japanese code-engine: coderay # 研究目的 +[](要素を説明するところではサブセクションにしてある) プログラムからデータを分離して扱うデータベースにはデータ構造とRDBの表構造のインピーダンスミスマッチという問題がある。 - ORMapper @@ -91,7 +92,7 @@ ``` Java Either either = tree.getRootNode ().getChildren ().at (0); if(either.isA()) { - // throw Expection + // throw Exception } TreeNode node = either.b(); ``` @@ -108,22 +109,116 @@ # Jungle を用いたアプリケーション -## maTrix +- maTrix +- BBS +- Rendering Engine +- Unity + +# maTrix + +実際に企業で運用されている許認可管理アプリケーション。 +人物、役職、役割、権限、組織の木構造のデータとポリシーファイルを持つ。 + +maTrixのデータ構造は以下のようになっている。 + +
+ message +
+ +## ポリシーファイル + +データに対するアクセス要求が許可されるか否認されるかを判断するためのルール、 + +- 誰が(Target) +- 何を(Resource) +- どうできるか(Action) + +の3つの要素を持っている。 +maTrixはアクセス要求に応じたポリシーファイルを参照することで許認可の判断を行う。 + +ポリシーファイルは組織構造中の人や役職をidを用いて参照している。 + +- 許認可を下すためには、その人がどこの組織に所属して、その役割がどの権限を持っているかを返す検索が必要。 + +# maTrixでは + +- 組織構造は、それぞれの木構造がidを用いた参照を行う +- 過去のアクセス要求を全て保存する +- ファイルポリシーを用いた場合の人物検索 + +## maTrixでのJungleの問題点 + +- JungleではIndexを持っていない +- 検索部分がない + +# 改良 + +Indexをつけて、検索部分も実装した。 +子から親への参照が必要になったのでParentIndexを実装した + +## ParentIndex -[](そのまま利用しているので書き直す必要あり) -許認可管理アプリケーション -maTrixは、人物、役職、役割、権限、組織の木構造のデータとポリシーファイルを持つ。 -ポリシーファイルは、データに対するアクセス要求が許可されるか否認されるかを判断するためのルールを、誰が(Target)、何を(Resource)、どうできるか(Action)の3つの要素で記述されている。 -ポリシーファイルは組織構造中の人や役職をidを用いて参照している。つまり、ポリシーファイルを用いて許認可を下すためには、その人がどこの組織に所属して、その役割がどの権限を持っているかを返す検索が必要になる。 +ノードを投げるとその親がReturnされる。 + +# 性能評価 + +mongoDBとの性能を比較した。 + +# BBS + +JungleTreeEditorは手動での変更には向いていない。 +ブラウザ上で変更できるようにした。 +仕様は以下の通りである。 + +- WebサーバJettyを利用し、 ServletによりViewを生成 +- JungleDBをJettyに組み込む + +## 木構造の表示 + +NodePathを除けば、通常のデータベースのレコードと同じである。 + +NodePathはURLのGetパラメータとして指定する。 + +``` HTML + +http://localhost/showBoardMessage?bname=Layout&path=-1,0,2 -## BBS +``` +[](イメージしやすい図があれば良さそう) + +## 木構造の編集 + +変更したいページに移動し、木を取得し、 +データをPostすることでCreateもしくは、Updateを行う。 + +# HTML Rendering Engine -Jetty上で動くServletからのデータベースの接続先としてJungle databaseを用いる。 +Jungleの特性を生かしたRendering Engineを開発した。 +今回は例題として、日記(ブログ)を選択した。 + +# 構造 + +- LayoutTree -## Rendering Engine +出力する形式が記述された木 + +- ContentTree + +出力するデータが記述された木 + +これら2つを参照しながらレンダリングを行う。 -## Unity + +# Unity + +ゲームエンジンUnity上で動くデータベースとしてJungleをC#に書き換え、実装を行なった。 + + +# まとめ + +今回は... + [](プロシン発表時間 セッション4 1/7 8:50 - 10:10)