view presen/index.html @ 80:631bffd48a0a

added some pic, modified compare
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Wed, 24 Apr 2013 18:17:45 +0900
parents 729fce461468
children 1078c7d96eb1
line wrap: on
line source

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      .center {
      margin-left: auto;
      margin-right: auto;
      text-align: center;
      }
    </style>

    <title>Presentation</title>

    <meta charset='utf-8'>
    <script
       src='./slides.js'></script>
  </head>
  
  <style>
    /* Your individual styles here, or just use inline styles if that’s
    what you want. */
    
    
  </style>

  <body style='display: none'>

    <section class='slides layout-regular template-default'>
      
      <!-- Your slides (<article>s) go here. Delete or comment out the
	   slides below. -->
      
      
      <article>
	<h1><font size=10em>
ディペンダブルシステムのための木構造を用いた合意形成データベースの提案と実装
	  </font>
	</h1>
	<p>
	  琉球大学 大城信康
	  <br>
	 26 April 2013
	</p>
      </article>

<!--
      <article>
	  <h3>目次</h3>
	  <ul>
	      <li>研究の目的と背景</li>
	      <li>D-ADD</li>
	      <li>提案する合意形成のモデル</li>
	      <li>モデルの実装</li>
	      <li>モデルの合意形成支援Webアプリケーションへの実装</li>
	      <li>合意形成支援Webアプリケーションの考察</li>
	      <li>まとめ</li>
	  </ul>
      </article>
-->

      <article>
	  <h3>研究の背景と目的</h3>
	  <ul>
	      <li>ITシステムが巨大化していくにつれ、障害発生時例が社会に与える影響もより大きな物となる。</li>
	      <li>それに伴い、ITシステムにおけるディペンダビリティへの注目が増している。 </li>
	      <li>そこでDEOSプロジェクトはITシステムにおけるディペンダビリティを担保する技術体系をまとめ、制度化、更には事業化を目指している。</li>
	      <li>DEOSプロジェクトは、変化しつづける目的や環境の中でシステムを適切に対応させ、継続的にユーザが求めるサービスを提供するシステム構築法の開発を
	      目標としている。</li>
	      <li>DEOSプロジェクトではそれらの技術体系を「オープンシステムディペンダビリティ」として定義し、それをDEOSプロセスとしてまとめた。</li>
	  </ul>
      </article>

      <article>
	  <h3>研究の背景と目的</h3>
	  <ul>
	      <li>DEOSプロセスにおいて、全てのデータを保持するD-ADDと呼ばれるデータベースがある。</li>
	      <!-- ステークホルダの意味を述べておく必要があるかも -->
	      <!-- ステークホルダについての説明は論文2章で「プロジェクトに関わる人」として述べてはいる -->
	      <li>D-ADDで扱うデータにはステークホルダ間で合意された契約書も含まれる。そのため、D-ADDに基本ツールとして合意形成支援ツールが必要である。</li>
	      <li>本研究では、D-ADDで行われる合意形成のモデルを提案しツールのプロトタイプの実装を行う。</li>
	      <li>また、実際に例題の入力を行い、D-ADDにおける合意形成のあり方についての追求を行う。</li>
	  </ul>
      </article>

      <article>
	  <h3>DEOSプロセス</h3>
	  <ul>
	      <li>DEOS(Dependability Engineering for Open Systems)</li>
	      <p class="center">
		  <img src="./pic/deos_proccess.png" style="width:55%;">
	      </p>
	      <li>変化対応プロセス:ステークホルダの目的の変化や、各種外部環境の変化に対応するためのサイクル</li>
	      <li>障害対応サイクル:障害に対して迅速に対応して障害による被害を最小化するためのサイクル</li>
	      <li>D-ADDにはDEOSプロセスで扱うデータがはいる</li>
	  </ul>
      </article>

      <article>
	  <h3>D-ADD(DEOS Agreement Description Database)</h3>
	  <ul>
	      <li>D-ADDはステークホルダ合意と対象のシステムに依存するプログラム・コード、
		  及び対象システムの運用状態との間の一貫性を常に保つための機構を提供する。</li>
	      <p class="center">
		  <img src="./pic/d_add.png" style="width:40%;"/>
	      </p>
	      <li>基本ツール層:D-ADDにおける基本ツール</li>
	      <li>モデル層:基本ツール層で扱うデータのモデルの定義</li>
	      <li>リポジトリ層:D-ADDで扱うデータベース</li>
	  </ul>
      </article>

      <article>
	  <h3>D-ADD 説明責任と合意形成</h3>
	  <ul>
	      <li>システム障害発生時、D-ADDは説明責任を果たさなければならない</li>
	      <li>説明責任:障害が発生した理由、次から障害を起こさせないことを説明する責任</li>
	      <li>「なぜそのようなシステムになったのか」を説明しなければならない</li>
	      <li>そのためにはD-ADDに入るデータはプロジェクトに係わるステークホルダの合意を得たデータにすべきである </li>
	      <li>そこでD-ADD自身に合意形成を行う機能が必要となってくる</li>
	      <li>合意形成を行うシステムをWebアプリケーションとして提供する</li>
	  </ul>
      </article>

      <article>
	  <h3>モデルの提案</h3>
	  <ul>
	      <li>合意を取るためのモデルを提案する</li>
	      <li>提案するモデル</li>
	      <ul>
		  <li>合意形成を主張・関係・ユーザの要素から構成される.</li>
		  <li>まず命題となる合意を取りたい主張があり、それに対する別の主張を立てることで議論を深めていく</li>
		  <li>主張同士には関係が張られ、最初に作られた主張を根とし木構造で議論が深められていく</li>
	      </ul>
	      <p style="text-align:center;">
		  <img src="./pic/claim_tree_structure.png" style="width:40%;"/>
	      </p>
	  </ul>
      </article>

      <article>
	  <h3>モデルの概要</h3>
	  <ul>
	      <li>木構造には閉路が含まれないため、循環論法を生じさせないという狙いがある</li>
	      <li>ユーザ・主張・関係は以下のように定義される</li>
	      <ul>
		  <li>ユーザ:合意形成の参加者</li>
		  <li>主張:ユーザが作成した合意をとりたい、議論すべき内容を含むもの</li>
		  <li>関係:ユーザと主張、もしくは互いに異なる主張と主張の繋がりの種類を表す</li>
	      </ul>
	      <li>ユーザと主張はノード、関係はエッジとして扱われる</li>
	  </ul>
      </article>

      <article>
	  <h3>合意状態の計算</h3>
	  <ul>
	      <li>提案するモデルにおいて主張を合意させるには、合意要求を出している全員から合意を受ける必要がある</li>
	      <li>子となる主張がある場合、関係次第では子となる主張の合意状態も親の主張の合意状態に影響を与える</li>
	      <li>各関係の主張が与える合意状態への影響についての説明は以下となる</li>
	      <ul>
		  <li>反論:反論となる子の主張が合意された場合親の主張は合意されない。反論の主張は否認しなければならない。</li>
		  <li>質問:質問となる主張は合意しなければならない。</li>
		  <li>提案:提案となる主張はどの状態であろうと親の合意状態に影響を与えない。</li>
	      </ul>

	  </ul>
      </article>

      <article>
	  <h3>合意状態の計算</h3>
	  <ul>
	      <li>木構造で議論を表した例</li>
	      <p style="text-align:center">
		  <img src="./pic/TOModel2_2.png"/ style="width:60%;">
	      </p>
	      <li>根となる主張があり、反論となる主張と質問となる主張と繋がっている</li>
	      <li>根の主張の合意を取るため、反論で繋がっている主張は否認の状態であり、質問は合意の状態となっている</li>
	  </ul>
      </article>

      <article>
	  <h3>主張のモデル</h3>
	  <ul>
	      <li>D-ADDでの合意形成支援は、議論だけでなく主張単体ののモデルについても考える。</li>
	      <li>議論のモデルとは別に主張単体のモデルについても考える</li>
	      <li>今回はトゥールミンモデルに従った主張も行えるようにした</li>
	      <p class="center">
		  <img src="./pic/toulmin.png">
	      </p>
	      <li>トゥールミンモデルだけでなく、他の主張モデルも使えるように考えていくつもりである。</li>
	  </ul>
      </article>

      <article>
	  <h3>Webアプリケーションの実装</h3>
	  <ul>
	      <li>Webアプリケーションのユースケース図</li>
	      <p style="text-align:center;">
		  <img src="./pic/usecase.png" style="width:50%;">
	      </p>
	  </ul>
      </article>

      <article>
	  <h3>Webアプリケーションの実装</h3>
	  <ul>
	      <li>サーバサイドの実装はJavaを使用した</li>
	      <li>クライアントサイドはJavaScript,HTML,CSSで実装を行った</li>
	      <p class="center">
		  <img src="./pic/architecture.png">
	      </p>
	      <li>サーバサイドがREST APIを用意し、主にJSONデータを用いてデータのやりとりを行う</li>
	  </ul>
      </article>

      <article>
	  <h3>モデルの実装に使用するデータベース</h3>
	  <ul>
	      <li>議論は木構造で表される。木構造は閉路の無いグラフである</li>
	      <li>そこで今回モデルの実装にGraphDBのTinkerGraphを使用する</li>
	      <li>GraphDBはノードとエッジによりグラフでデータを表現する</li>
	      <li>ノード、エッジともにプロパティを持つことができ、プロパティはkey,valueでデータを保持する</li>
	      <li>エッジにはLabelが付けられ、また向き(Direction)がある。</li>
	      <li>ノードは自身に繋がっているエッジをLabelとDirectionで指定することで次のノードの情報を得る。
		  この動作を走査(Traverse)という</li>
	  </ul>
      </article>

      <article>
	  <h3>GraphDBによるモデルの表現</h3>
	  <ul>
	      <li>主張、ユーザをノードで表し、関係をエッジで表す</li>
	      <p style="text-align:center;">
		  <img src="./pic/claim_tree_structure.png" style="width:40%;"/>
	      </p>
	      <li>「作者」や「合意要求」もエッジで表す</li>
	      <p style="text-align:center;">
		  <img src="./pic/usernode_sample.png" style="width:40%;"/>
	      </p>
	  </ul>
      </article>

      <article>
	  <h3>各ノードのプロパティ</h3>
	  <ul>
	      <li>ユーザノードは特にプロパティは持たない</li>
	      <li>主張ノードは以下のプロパティを持つ</li>
	      <ul>
		  <li>status:主張の合意状態を表す。 passed, failed, unknown の状態がある</li>
		  <li>title:主張のタイトル</li>
		  <li>content:主張の内容</li>
		  <li>toulmin:トゥールミンモデルにおける主張以外の5つの要素が入る</li>
		  <li>timestamp:作成された時間を示すタイムスタンプ</li>
	      </ul>
	      <li>passedは合意されている、failedは否認された、unknownはどちらでも無いという合意状態を表す</li>
	  </ul>
      </article>

      <article>
	  <h3>エッジのプロパティ</h3>
	  <ul>
	      <li>主張同士を繋ぐエッジはプロパティを持たない</li>
	      <li>ユーザへ伸びる合意要求のエッジが以下のプロパティを持つ</li>
	      <ul>
		  <li>status:ユーザの主張に対する合意状態を表す。agreed, pend, unknownの状態がある</li>
	      </ul>
	      <p class="center">
		  <img src="./pic/request.png">
	      </p>
	      <li>基本、各主張は自身に繋がっている合意要求の関係にあるエッジのstatusが全てagreedかfailedとなる
	      ことで合意か否認にされたとみなされる</li>
	  </ul>
      </article>

      <article>
	  <h3>合意状態の計算</h3>
	  <ul>
	      <li>合意状態に影響を与える子の主張がある場合の計算</li>
	      <li>以下の2点</li>
	      <ul>
		  <li>反論の関係で繋がっている子の主張は全て否認の状態になっていなければならない</li>
		  <li>質問の関係で繋がっている子の主張は全て合意の状態になっていなければならない</li>
	      </ul>
	      <li>それぞれエッジを辿り子となる主張ノードの合意状態をみにいくようにする</li>
	      <li>提案の関係は、合意状態に影響を及ぼさないため考慮する必要はない</li>
	  </ul>
      </article>

      <article>
	  <h3>時系列ごとにみられる議論と合意状態</h3>
	  <ul>
	      <li>合意形成が行われる様子を時系列でみたい</li>
	      <li>そこで、木のコピーを行い過去の合意状態を見ることができるようにする</li>
	      <p class="center">
		  <img src="./pic/Temporal.png">
	      </p>
	      <li>木全体のコピーを行い、prevの関係になるエッジで繋げる</li>
	      <li>prevをたどることで以前の合意状態と木を見ることができ、議論の流れを知ることができる</li>
	  </ul>
      </article>

      <article>
	  <h3>デモ</h3>
	  <ul>
	      <li>デモ</li>
	      <a href="http://nitch.cr.ie.u-ryukyu.ac.jp:9000">http://nitch.cr.ie.u-ryukyu.ac.jp:9000</a>
	      <li>ユーザ名:Akifumiでログイン</li>
	  </ul>
      </article>

      <article>
	  <h3>redmineとの比較</h3>
	  <ul>
	      <li>redmineと合意形成支援Webアプリケーションの表示を比べる</li>
	      <li>redmineではチケットと呼ばれる単位でプロジェクトの管理が行われる</li>
	      <li>チケットには子チケットや関連するチケットを登録することができる</li>
	      <li>琉球大学情報工学科のシステム管理班が実際に行った作業を入力する</li>
	  </ul>
      </article>

      <article>
	  <h3>redmineでの表示</h3>
	  <ul>
	      <p class="center">
		  <img src="./pic/redmine_sample.png" style="width:85%;">
	      </p>
	      <li>親チケットのbldsvをリフレッシュする、と子チケットのセカンダリDNSサーバをたてる、の繋がりがわかりづらい</li>
	  </ul>
      </article>

      <article>
	  <h3>合意形成支援Webアプリケーションでの表示</h3>
	  <ul>
	      <p class="center">
		  <img src="./pic/compare_sample.png" style="width:65%;">
	      </p>
	      <li>各チケット(主張)のつながりが分かりやすい</li>
	  </ul>
      </article>

      <article>
	  <h3>時系列にみることの有用性</h3>
	  <ul>
	      <li>議論を行ううちに、一度は合意されたが否認され、また合意されるとった主張がでてくるかもしれない</li>
	      <li>そのような場合は最新の合意状態をみるだけでは確認できない</li>
	      <table style="width:100%;">
		  <tr>
		      <td style="border-style:none; width:33%;">
			  最新
		      </td>
		      <td style="border-style:none; width:33%;">
			  1つ前
		      </td>
		      <td style="border-style:none; width:33%;">
			  2つ前
		      </td>
		  </tr>
		  <tr>
		  <td style="border-style:none; width:33%;">
		      <p class="center">
			  <img src="./pic/temporal_sample3.png" style="width:100%;">
		      </p>
		  </td>
		  <td style="border-style:none; width:33%;">
		      <p class="center">
			  <img src="./pic/temporal_sample2.png" style="width:100%;">
		      </p>
		  </td>
		  <td style="border-style:none; width:33%;">
		      <p class="center">
			  <img src="./pic/temporal_sample1.png" style="width:100%;">
		      </p>
		  </td>
		  </tr>
	      </table>
	      <li>時系列にみることができれば、その議論の流れを知ることができる</li>
	      <li>これにより説明責任に使う情報を増やすことができる</li>
	  </ul>
      </article>

      <article>
	  <h3>まとめ</h3>
	  <ul>
	      <li>議論のモデルを考えWebアプリケーションとして合意形成支援ツールの実装を行い
	      D-ADDにおける合意形成支援についての追求を行った</li>
	      <li>木構造のモデルの提案とGraphDBを用いた実装を行った</li>
	      <li>実際に作成したWebアプリケーションにデータを入力し、redmineに入力した場合と比較した</li>
	      <li>redmineで入力した場合に比べ、各主張同士の関係がみやすいことを確認した</li>
	      <li>時系列的に流れをみることで、合意までの議論の流れがより分かりやすくなり、合意全体の
	      理解を支援できる可能性を見ることができた</li>
	  </ul>
      </article>

      <article>
	  <h3>今後の課題</h3>
	  <ul>
	      <li>議論の木構造が巨大になった際の対処も考えなければならない</li>
	      <li>内容が同じ主張の検知を行っていない。検知をしてマージを行うなり、何かしら解決する機能を考える必要がある</li>
	      <li>同時に、マージが行われた主張が及ぼす影響をより分かりやすくみせることも理想である</li>
	      <li>さらに、本実装では主張同士の関係に反論・質問・提案だけであったが、更に増やすことが可能である</li>
	      <li>関係を増やす場合は反論・質問・提案のを元に合意状態へと影響を与える主張を作成する</li>
	      <li>どのような関係があればより合意形成支援を行うことができるのか考え行くべきである</li>
	  </ul>
      </article>

  </body>
</html>