7
|
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
|
|
2 \usepackage[dvips]{graphicx}
|
|
3 \usepackage{ascmac}
|
|
4 \usepackage{picins}
|
|
5 \usepackage{fancyhdr}
|
|
6 \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
|
|
7 \rhead{}
|
|
8 \cfoot{}
|
|
9
|
|
10 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
|
|
11 \setlength{\headheight}{0mm}
|
|
12 \setlength{\headsep}{5mm}
|
|
13 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
|
|
14 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
|
|
15 \setlength{\textwidth}{181mm}
|
|
16 \setlength{\textheight}{261mm}
|
|
17 \setlength{\footskip}{0mm}
|
|
18 \pagestyle{empty}
|
|
19
|
|
20 \begin{document}
|
11
|
21 \title{分散木構造データベースJungleによる\\企業向け許認可システム}
|
7
|
22
|
|
23 \author{金川竜己 \\ 指導教員 河野真治 {} }
|
|
24 \maketitle
|
15
|
25 \begin{abstract}
|
|
26 Knowledge used in various services are usually tree structured, such as books, HTML or organization. In RDB, these tree structures are converted into table base representation,
|
|
27 but more direct use of tree structure on a database is preferable. Jungle Database can store tree structure directory and it modifies trees non destructively.
|
|
28 As an application of Jungle, authorization system on enterprises, maTrix is implemented. Representation ability, necessary functionality of Jungle and practical performance are
|
|
29 verified. This research is supported by Symphonies, Inc.
|
|
30 \end{abstract}
|
|
31
|
|
32
|
7
|
33 \thispagestyle{fancy}
|
|
34
|
|
35 \section{分散木構造データベースJungle}
|
15
|
36 知識構造は様々なサービスで扱われるが、それらは木構造を持つことが多い。例えば、書籍、Webの基本であるHTML、組織構造などである。
|
|
37 これらのデータをRDBでは表構造に変換する必要があるが、木構造のまま格納することにより、直接的な操作や効率的なサービスが可能に
|
|
38 なると考えられる。
|
|
39 当研究室では木構造をそのまま格納し、 データの変更の際に過去の木構造を保存するデータベースであるJungleを開発している。
|
|
40 非破壊変更により、書き込みと読み込みを同時に行うことができ、安全に木の複製を行うことができるので、スケールアウトがしやすくなっている。
|
|
41 当研究では、Jungleの上に、組織の許認可管理アプリケーションmaTrixを実装し、データベースの表現力、機能の十分性、実用的な性能などの検証を行った。
|
11
|
42
|
7
|
43
|
|
44 \section{組織中の許認可管理\\アプリケーションmaTrix}
|
15
|
45 maTrixは組織構造を、人、役職、役割、権限を表すそれぞれ別な木構造の集まりとして持っている。
|
|
46 ある木のノードは、他の木からidを用いて参照されることがある。例えば役職技官には、PC貸出権限がidを経由して付属する。
|
|
47 許認可判断は決まったルールにそって行われる。例えば、PCの貸出権限は台数に依存するかもしれない。
|
|
48 このようなルールは組織構造とは別にポリシーファイルとして記述される。maTrixではXCAMLをルールの記述に使用している。
|
|
49 XACMLは組織構造を参照するので、Jungleの木構造を参照する仕組みが必要となる。
|
|
50 XACMLとJungle DBの組み合わせに対して、Subject(誰が)、Resource(何を)、Action(どうする)かを問い合わせ、その許諾を書く。
|
|
51 許諾事項は日々更新される組織構造やポリシーに対して判断され、過去の情報も残しておく必要がある。
|
7
|
52
|
16
|
53 \section{Jungle上でのmaTrixの\\データ構造の表現}
|
|
54 maTrixの人、組織、役割、権限等のデータは木構造であるため Jungleにそのままマッピングできる。
|
11
|
55 実際のmaTrixのデータ構造の一部(表\ref{list:PersonTree})と、そのデータを実際に格納したJungleTree(図\ref{fig:PersonTree})を以下に記す。
|
|
56 \begin{figure}[h]
|
|
57 \begin{center}
|
|
58 \includegraphics[height = 8cm , bb=0 0 398 367]{fig/TreePersonJungle.pdf}
|
|
59 \caption{Jungle上での人物Treeの表現例(1)}
|
|
60 \label{fig:PersonTree}
|
|
61 \end{center}
|
|
62 \end{figure}
|
|
63
|
|
64 \clearpage
|
|
65 \begin{table}[h]
|
|
66 \caption{図\ref{fig:PersonTree}に対応したXML}
|
|
67 \label{list:PersonTree}
|
|
68 \begin{center}
|
|
69 \begin{tabular}{|l|} \hline
|
|
70 \verb|<|Persons\verb|>| \\
|
|
71 \ \verb|<|Person id="p:1" type="Person"\verb|>| \\
|
|
72 \ \ \verb|<|PersonData\verb|>| \verb|<|/PersonData\verb|>| \\
|
|
73 \ \verb|<|/Person\verb|>| \\
|
|
74 \ \verb|<|Person id="p:2" type="Person"\verb|>| \\
|
|
75 \ \ \verb|<|PersonData\verb|>| \verb|<|/PersonData\verb|>| \\
|
|
76 \ \verb|<|/Person\verb|>| \\
|
|
77 \verb|<|/Persons\verb|>|\\ \hline
|
|
78 \end{tabular}
|
|
79 \end{center}
|
|
80 \end{table}
|
16
|
81
|
|
82 Jungleは、TreeNodeにデータを格納する際、String KeyとByteBuffer attributeの組み合わせで保持しているため、1つのkeyに対して複数のattributeを持つことは出来ない。
|
|
83 そのため、表\ref{list:PersonTree2}の様に、1つの要素に複数の値がある場合はデータを格納できない。
|
|
84 しかし、表\ref{list:maTrixDataChild}の様に、データの2つのNodeに分割することで、Jungleに格納できるようになる。
|
7
|
85
|
11
|
86 \begin{table}[h]
|
|
87 \caption{Jungle上で表現できないデータ例}
|
|
88 \label{list:PersonTree2}
|
|
89 \begin{center}
|
|
90 \begin{tabular}{|l|} \hline
|
|
91 \verb|<|Ids\verb|>|r:10 r:34\verb|<|/Ids\verb|>| \\
|
|
92 \hline
|
|
93 \end{tabular}
|
|
94 \end{center}
|
|
95 \end{table}
|
|
96
|
|
97 \begin{table}[h]
|
|
98 \caption{Jungleに対応したデータ例}
|
|
99 \label{list:maTrixDataChild}
|
|
100 \begin{center}
|
|
101 \begin{tabular}{|l|} \hline
|
|
102 \verb|<|Ids\verb|>| \\
|
|
103 \ \verb|<|Id\verb|>|r:10\verb|<|/Id\verb|>| \\
|
|
104 \ \verb|<|Id\verb|>|r:34\verb|<|/Id\verb|>| \\
|
|
105 \verb|<|/Ids\verb|>| \\
|
|
106 \hline
|
|
107
|
|
108 \end{tabular}
|
|
109 \end{center}
|
|
110 \end{table}
|
|
111
|
|
112 Jungle上でのmaTrixの組織構造の表現は、Treeに対するIdの検索を用いて表現すれば良い。
|
|
113 また、maTrixがXML形式で出力したデータを、Jungleに格納するために、SAXを用いて、Jungle用のXMLReaderを作成した。
|
|
114
|
|
115 \section{Jungle上での検索APIの設計と実装}
|
7
|
116 JungleのTreeに対して検索を行うfind関数の実装を行った。
|
16
|
117 find関数は引数にQuery、String key、String valueの3つの引数を取り、条件に一致したNodeのIteratorを返す。
|
|
118 第1引数には以下に記載してある、探索の条件を記述する関数boolean comdition(TreeNode)を定義したInterfaceQueryを。
|
|
119 第2、第3引数の、String key、String valueはIndexの取得を行うために使用する。
|
|
120 \begin{itembox}[l]{find関数の定義}
|
|
121 \begin{verbatim}
|
|
122 public Iterator<TreeNode> find(Query query,
|
|
123 String key, String searchValue);
|
|
124 \end{verbatim}
|
|
125 \end{itembox}
|
7
|
126
|
16
|
127 \begin{itembox}[l]{QueryInterfaceの定義}
|
|
128 \begin{verbatim}
|
|
129 public interface Query {
|
|
130 boolean condition(TreeNode _node);
|
|
131 }
|
|
132 \end{verbatim}
|
|
133 \end{itembox}
|
7
|
134
|
11
|
135
|
7
|
136
|
17
|
137 find関数を使用して、maTrixがデータにアクセスする際に使用する関数を全て実装し、ポリシーファイルを用いて許認可判断を行えるようにした。
|
7
|
138
|
11
|
139 \section{まとめ}
|
|
140 本研究は、実際に使われている組織の中の許認可を判断するアプリケーションmaTrixのデータ構造をどのようにJungle上で表現するかを設計し、実際にmaTrixのデータ構造を格納した。
|
17
|
141 maTrixで使われているデータアクセス関数を実装して、XACMLファイルを使用し許認可判断を行えるようにし、Jungle上に実用的な業務アプリケーションを構築した。
|
11
|
142 本研究は、PCIホールディングス株式会社と株式会社Symphonyとの共同研究である。
|
7
|
143 \thispagestyle{fancy}
|
|
144 \begin{thebibliography}{9}
|
|
145
|
|
146 \bibitem{1}
|
|
147 玉城将士 非破壊的木構造を用いた分散CMSの設計と実装
|
|
148 \bibitem{2}
|
|
149 大城信康 分散Database Jungleに関する研究
|
|
150 \bibitem{3}
|
|
151 Eric Redmond and Jim R. Wilson 7つのデータベース7つの世界
|
17
|
152 \bibitem{4}
|
|
153 XACML References and Products
|
7
|
154 \end{thebibliography}
|
|
155 \end{document}
|