comparison slide/prosym.md @ 23:8a3b1147329e

Revise 5/29 20:25
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Wed, 29 May 2019 20:25:54 +0900
parents e7239fe266f0
children a263efdfdab5
comparison
equal deleted inserted replaced
22:e7239fe266f0 23:8a3b1147329e
43 super(cgm); 43 super(cgm);
44 } 44 }
45 45
46 public static void main(String[] args){ 46 public static void main(String[] args){
47 CodeGearManager cgm = createCGM(10000); #ポート番号を指定してCGMを立ち上げ。 47 CodeGearManager cgm = createCGM(10000); #ポート番号を指定してCGMを立ち上げ。
48 cgm.setup(new HelloWorldCodeGear()); #立ち上げたCGMへDGを待ちあわせる。 48 cgm.setup(new HelloWorldCodeGear()); #立ち上げたCGMへCGを待ちあわせる。
49 cgm.getLocalDGM().put("helloWorld","hello"); #key "helloWorld"にhelloをput 49 cgm.getLocalDGM().put("helloWorld","hello"); #key "helloWorld"にhelloをput
50 cgm.getLocalDGM().put("helloWorld","world"); 50 cgm.getLocalDGM().put("helloWorld","world");
51 } 51 }
52 } 52 }
53 53
71 - DGMのput操作を行う際にはLocalとRemoteのどちらかを選ぶ.Localであれば、LocalのCGMが管理するDGMに対しDGを格納し, Remoteの場合は接続したRemoteさきのCGMのDGMにDGを格納する. 71 - DGMのput操作を行う際にはLocalとRemoteのどちらかを選ぶ.Localであれば、LocalのCGMが管理するDGMに対しDGを格納し, Remoteの場合は接続したRemoteさきのCGMのDGMにDGを格納する.
72 72
73 --> 73 -->
74 74
75 ## DGM 75 ## DGM
76 - DGMは分散システムの肝となる他のノード間とのデータのやり取りの際に重要となる。
76 - DGMにはLocalDGMとRemoteDGMが存在する。 77 - DGMにはLocalDGMとRemoteDGMが存在する。
77 - LocalDGM 78 - LocalDGM
78 - LocalなDGMのプールのkeyにデータの書き込みを行う。 79 - LocalなDGMのプールのkeyにデータの書き込みを行う。
79 - RemoteDSM 80 - RemoteDSM
80 - Localに存在する、他のノードのLocalDGMに対応するプールのkeyにデータを書き込みする。接続しているノードの数だけ存在する。 81 - Localに存在する、他のノードのLocalDGMに対応するプールのkeyにデータを書き込みする。接続しているノードの数だけ存在する。
86 87
87 <!-- 88 <!--
88 - RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。 89 - RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。
89 --> 90 -->
90 91
92 ## Annottation
93 - ChristieではInputDGの指定にはアノテーションを使う。
94 - アノテーションとはクラスやメソッド、パッケージに対して、付加情報を記述できるJavaのMeta Computationである。
95 - 先頭に@をつけることで記述する。オリジナルのアノテーションを定義することもでき、Input
96 される型の変数を直接宣言し、変数名としてkeyを記述する。その上にアノテーションでTakeもしくはPeekを指定する。
97
98 ```cc
99 package christie.example.HelloWorld;
100
101 import christie.annotation.Take;
102 import christie.codegear.CodeGear;
103 import christie.codegear.CodeGearManager;
104
105 public class HelloWorldCodeGear extends CodeGear {
106 @Take
107 String helloWorld;
108
109 @Override
110 protected void run(CodeGearManager cgm) {
111 System.out.print(helloWorld + " ");
112 cgm.setup(new HelloWorldCodeGear());
113 }
114 }
115
116 ```
91 117
92 ## DGのアノテーション 118 ## DGのアノテーション
93 - DGを取り出す際にはCG内で宣言した変数にアノテーションをつける。DGアノテーションには 119 - DGを取り出す際にはCG内で宣言した変数にアノテーションをつける。DGアノテーションには
94 Take、Peek、TakeFrom、PeekFrom、の4つがある。 120 Take、Peek、TakeFrom、PeekFrom、の4つがある。
95 - Take 121 - Take
100 - Remote DGM nameを指定することで、その接続先のDGM からTake操作をおこえる。 126 - Remote DGM nameを指定することで、その接続先のDGM からTake操作をおこえる。
101 - PeekFrom 127 - PeekFrom
102 - Remote DGM nameを指定することで、その接続先のDGM からPeek操作をおこえる。 128 - Remote DGM nameを指定することで、その接続先のDGM からPeek操作をおこえる。
103 129
104 130
105 ## Annottation
106 - ChristieではInputDGの指定にはアノテーションを使う。
107 - アノテーションとはクラスやメソッド、パッケージに対して、付加情報を記述できるJavaのMeta Computationである。
108 - 先頭に@をつけることで記述し、オリジナルのアノテーションを定義することもできるInput
109 となる型の変するを直接宣言し、変数名としてkeyを記述する。その上にアノテーションでTakeもしくはPeekを指定する。
110
111 ```cc
112 package christie.example.HelloWorld;
113
114 import christie.annotation.Take;
115 import christie.codegear.CodeGear;
116 import christie.codegear.CodeGearManager;
117
118 public class HelloWorldCodeGear extends CodeGear {
119 @Take
120 String helloWorld;
121
122 @Override
123 protected void run(CodeGearManager cgm) {
124 System.out.print(helloWorld + " ");
125 cgm.setup(new HelloWorldCodeGear());
126 }
127 }
128
129 ```
130
131 ## TopologyManager 131 ## TopologyManager
132 - TopologyManagerとはTopologyを形成のために、参加を表明したノード、TopologyNodeに名前を与え、必要があればノード同士の配線を行うノードである。 132 - TopologyManagerとはTopologyを形成のために、参加を表明したノード、TopologyNodeに名前を与え、必要があればノード同士の配線を行うノードである。
133 - TopologyManagerのTopology形成方法として、静的Topologyと動的Topologyがある。 133 - TopologyManagerのTopology形成方法として、静的Topologyと動的Topologyがある。
134 - 動的Topologyは参加を表明したノードに対し、動的にノード同士の関係を作る。例えばTreeを構成する場合、参加したノードから順にrootに近い役割を与え、またCodeGearはノードが参加し、parentに接続された後に実行される。 134 - 動的Topologyは参加を表明したノードに対し、動的にノード同士の関係を作る。例えばTreeを構成する場合、参加したノードから順にrootに近い役割を与え、またCodeGearはノードが参加し、parentに接続された後に実行される。
135 - 静的Toopologyはdotファイルを与えることノード関係の構築を行う。 135 - 静的Toopologyはdotファイルを与えることノード関係の構築を行う。
144 144
145 <div style="text-align: center;"> 145 <div style="text-align: center;">
146  <img src="../paper/images/ring.svg" alt="MetaGear" width="250"> 146  <img src="../paper/images/ring.svg" alt="MetaGear" width="250">
147 </div> 147 </div>
148 148
149 ##ブロックチェーン 149 ## ブロックチェーン
150 - ネットワーク構築方式の一つである。データ情報をまとめたものをブロックと呼び、ブロックが連鎖的につながるっている形となる。
151 - ノード一つにつき一つのブロックを持ち合わせるが、その間でデータの差異が生じた際に他のノードの総意によって選択し、差異の解消を行う。
152 - ブロックチェーンはP2P(Peer to Peer)の形にてネットワーク間が動作している。つまり、ブロックチェーンにはサーバー、クライアントの区別がなく全てのノードが対等な関係にある。
150 153
151 ## ブロックチェーンのトランザクション 154 ## ブロックチェーンのトランザクション
152 - ブロックチェーンはP2Pにてネットワーク間が動作している。つまり、ブロックチェーンにはサーバー、クライアントの区別がなく全てのノードが対等な関係にある。
153 - ブロックチェーンにおけるブロックは複数のトランザクションをまとめたものである。ブロックは基本的に以下の要素によって構成される。 155 - ブロックチェーンにおけるブロックは複数のトランザクションをまとめたものである。ブロックは基本的に以下の要素によって構成される。
154 - BlockHeader 156 - BlockHeader
155 - previous block 157 - previous block
156 - 前のブロックのパラメータをハッシュ化したもの 158 - 前のブロックのパラメータをハッシュ化したもの
157 - hashmerkle root hash 159 - hashmerkle root hash