# HG changeset patch # User Nozomi Teruya # Date 1464513035 -32400 # Node ID 3f7064e0931067ddfcc6e116dccd3c598a7c505f # Parent 296df25feb762dd4e0c8fcbc831168f5b8cd5522 change tree figure diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/3Dtree.pdf Binary file presen/pictures/3Dtree.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/3Dtree.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/3Dtree.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global0.pdf Binary file presen/pictures/global0.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global0.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/global0.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global1.pdf Binary file presen/pictures/global1.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global1.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/global1.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global2.pdf Binary file presen/pictures/global2.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global2.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/global2.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global3.pdf Binary file presen/pictures/global3.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global3.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/global3.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global4.pdf Binary file presen/pictures/global4.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global4.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/global4.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global5.pdf Binary file presen/pictures/global5.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/global5.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/global5.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private0.pdf Binary file presen/pictures/private0.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private0.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/private0.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private1.pdf Binary file presen/pictures/private1.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private1.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/private1.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private2.pdf Binary file presen/pictures/private2.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private2.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/private2.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private3.pdf Binary file presen/pictures/private3.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private3.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/private3.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private4.pdf Binary file presen/pictures/private4.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/private4.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/private4.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/somehostname.pdf Binary file presen/pictures/somehostname.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/somehostname.svg --- a/presen/pictures/somehostname.svg Sun May 29 14:55:47 2016 +0900 +++ b/presen/pictures/somehostname.svg Sun May 29 18:10:35 2016 +0900 @@ -628,5 +628,6 @@ + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/somehostname2.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/somehostname2.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/somehostname3.pdf Binary file presen/pictures/somehostname3.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/somehostname3.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pictures/somehostname3.svg Sun May 29 18:10:35 2016 +0900 @@ -0,0 +1,762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/tree1.pdf Binary file presen/pictures/tree1.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/tree1.svg --- a/presen/pictures/tree1.svg Sun May 29 14:55:47 2016 +0900 +++ b/presen/pictures/tree1.svg Sun May 29 18:10:35 2016 +0900 @@ -1,230 +1,309 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + + + + + + - - - - + + + + + + + + + + + + + + + + - + - + + + - - - - + + + + + + + + + + - + + - + + + - - - - + + + + + + + + + + - + - - - - + - - - - - - - + + + + + + + + + + - - + - + + + + + - + + + + - + - - - - + + - + - + - - - - + - + + + + + + + + + - + - - + + + + - + - + + + + - - - - + + + + - + + + + + + - - + - + - + - + + + + + + + - - + + + + - - - - + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/tree2.pdf Binary file presen/pictures/tree2.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/tree2.svg --- a/presen/pictures/tree2.svg Sun May 29 14:55:47 2016 +0900 +++ b/presen/pictures/tree2.svg Sun May 29 18:10:35 2016 +0900 @@ -1,378 +1,545 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + + + + - - + + - - - - + - - - - - + + - + - + - + + + + + + + + - - - - + + + + + + + + + + - + - - - - - + + + + - + - + + + - - - - + + + + + + + + + + - + + + + + + + + + + + - - - + + + - + + + + + + + - - - - - - - + + + + + + + + - - + - + - + - + + - + - + - + + + + - + + + + + - + - + + + + - - + + - + + + + - + + + + - + + - - + + + + - + - + - + + + + + + + + + - + - + - + - + - + - + - + + + + + + + - - - - + - + + + + + + + + - + - + - + - - + + + + + + + - + + + + + + - + - + - - + + + + + - + - + + + + - + + - + + + + - + + + + - + + - + + + + - + + + + - + + + + + - + + + + - + - + + - + - - + - + + + + - + + + + + - + - - + + + + - + + - + + + + - + + + + + - + - + - + - + - + + + + + - - + + + + - + - + + + + + - + + + + - + - + + - + + + + - + - + - + + diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/tree3.pdf Binary file presen/pictures/tree3.pdf has changed diff -r 296df25feb76 -r 3f7064e09310 presen/pictures/tree3.svg --- a/presen/pictures/tree3.svg Sun May 29 14:55:47 2016 +0900 +++ b/presen/pictures/tree3.svg Sun May 29 18:10:35 2016 +0900 @@ -1,190 +1,367 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + - - - - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + - - - - + + + + + + + + + + - + - + + + + + + + + + + - - - - + + + + + + + + + + + + + + - + + + + - + + + + + + - - - - + + + + + + + + + + + + - + + + + + + + + + + - - - - - - - + + + + + + - + + + + + + + + + + + + - - - - - - - + + + + - - + + + + + + + + + + - + + + + + + + + + + + + + - + - + + + + - + + - + + + + + + + - + + - + + + + + + + + - + + + + - - + + + + + + + + - + - + + + + + + + - + + + + + - - + - + + + + + + + diff -r 296df25feb76 -r 3f7064e09310 presen/sample.html --- a/presen/sample.html Sun May 29 14:55:47 2016 +0900 +++ b/presen/sample.html Sun May 29 18:10:35 2016 +0900 @@ -2,7 +2,7 @@ - 分散フレームワークAliceのPC画面配信システムへの応用 + 分散システム向けのTopology Managerの改良 @@ -67,7 +67,7 @@
-

分散フレームワークAliceのPC画面配信システムへの応用

+

分散システム向けのTopology Managerの改良

@@ -87,27 +87,38 @@ +

Topology Managerをもっとかっこよくアピール +前半もっとクリーンナップ

+ + +
-

研究目的(1/3)

+

目次

+ + +
+
+ +

研究目的(1/3)

  • 当研究室が開発している並列分散フレームワークAliceではスケーラブルな分散プログラムを信頼性高く記述できる環境を実現する。
  • ここで言う信頼性とは定められた環境下で安定して仕様に従った動作を行うことを指す。  
  • -
  • Aliceでは当研究室が提案しているデータを Data Segment、タスクを Code Segment という単位で分割して記述するプログラミング手法を採用している。
  • +
  • 信頼性とスケーラビリティ向上のため、Aliceでは当研究室が提案しているデータを Data Segment、タスクを Code Segment という単位で分割して記述するプログラミング手法を採用している。
-

研究目的(2/3)

+

研究目的(2/3)

    -
  • Aliceでは、処理をComputationとMetaComputationに階層化し、コアな仕様と複雑な例外処理に分離する。
  • +
  • Aliceでは、処理をComputationとMetaComputationに階層化し、コアな仕様と複雑な例外処理に分離する。//コアな仕様の例
  • 分散環境構築などの複雑な処理はAliceがMeta Computationとして提供する
  • -
  • 仕様を大きく変更することなくプログラムの挙動が変えられる
  • +
  • 仕様を大きく変更することなくプログラムの挙動が変えられる//分散処理とかの拡張なら指定だけで良い
  • 変更前の信頼性を保ったまま拡張可能にする
@@ -115,9 +126,13 @@
-

研究目的(3/3)

+

研究目的(3/3)

    -
  • 本研究では、 分散トポロジー管理の Meta Computation である Topology Manager に NAT 越えを実現するための設計を行う。そしてその設計が Alice アプリケーション同士の接続も可能にすることを示す。
  • +
  • Aliceでは分散トポロジー管理の Meta Computation である Topology Manager
  • +
  • 本研究では、 Topology Managerに NAT越えを実現するための設計を行う
  • +
  • そしてその設計が Alice アプリケーション同士の接続も可能にすることを示す +↑逆? +Topologyの課題をかく
@@ -129,7 +144,7 @@
  • Aliceではデータを Data Segment(DS) 、タスクを Code Segment(CS) という単位に分割して依存関係を記述することでプログラミングを行う。
  • CSはInput DS(入力されるDS)とOutput DS(出力されるDS)を持つ。
  • CSはkeyで指定されたDSが揃うと実行されるという性質を持つ。 -opt
  • +opt @@ -141,7 +156,7 @@
  • データの依存関係にないCSは並列実行される
  • データの依存関係がある場合は Input DS が揃うと順に実行される
  • DSはCSに専有されるためロックの記述を必要としない -opt
  • +opt @@ -152,7 +167,6 @@
    • AliceはJavaで実装されており、DSはJava-Object、CSはRunnableに相当する
    • ユーザーが記述する際には CodeSegment.class を継承することでDSを操作するためのAPIを利用して依存関係を記述することができる。
    • -
    • DSはAliceが内部にもつデータベース(DS Manager)により管理されており、CSはDSに対応する一意のkeyを使ってDSを操作する。
    @@ -162,9 +176,8 @@

    Data Segment Manager

    • DS の集合体であるデータベースを Alice では DS Manager(DSM) と呼ぶ。
    • -
    • DSM 内の DS には対になる String型のkey が存在し、 DSM 名と key を指定しすることで DS の保存、取得を行う。
    • -
    • keyに対して複数のDSを保存する際はFIFO的に処理される
      -opt
    • +
    • DSM 内の DS には対応する一意の String型のkey が存在し、 DSM 名と key を指定しすることで DS の保存、取得を行う。 +opt//変更
    @@ -174,8 +187,9 @@

    Data Segment Manager

    • Local DSM … 各ノード固有のデータベース。
    • -
    • Remote DSM … 他のノードの Local DSM の proxy。接続しているノードの数だけ存在する。
      -opt
    • +
    • Remote DSM … 他のノードの Local DSM の proxy。接続しているノードの数だけ存在する。
    • +
    • Remote DSMに書き込むと対応するノードのLocalDSMに書き込まれる +opt//変更
    @@ -184,9 +198,16 @@

    Computation と Meta Computation

      -
    • Aliceでは、計算の本質的な処理をComputatin、Computationとは直接関係ないが別のレベルでそれを支える処理をMeta Computationとして分けて考える。
    • -
    • Alice のComputationは、keyによりDSを待ち合わせ、DSが揃ったCSを並列に実行する処理。
    • -
    • 分散トポロジーの構成、通信の切断・再接続時の処理やデータの表現形式の選択など、Computationを支えている処理。
    • +
    • Aliceでは、計算の本質的な処理をComputatin、Computationとは別のレベルでそれを支える処理をMeta Computationとして分けて考える。
    • +
    • Alice のComputationは、keyによりDSを待ち合わせ、DSが揃ったCSを並列に実行する処理
    • +
    • Meta Computationはそれを実現している処理 +
        +
      • DSの待ち合わせ
      • +
      • 分散トポロジーの構成
      • +
      • 通信の切断・再接続時の処理
      • +
      • データの表現形式の選択
      • +
      +
    @@ -195,31 +216,31 @@

    Computation と Meta Computation

      -
    • DS/CSの接続の間にMeta Computationが実行されている
    • -
    • AliceのMeta ComputationもCS/DSにより実現される
    • -
    • Meta ComputationはCS の処理を支えるMeta CSとMeta CSに管理されるMeta DSに分けられる -opt
    • +
    • 分散環境構築などの複雑な処理をAliceがMeta Computationとして提供する
    • +
    • プログラマは目的の処理だけ記述し通信部分などはMeta Computationを指定する
    • +
    • シンプルで見通しの良いコードを保つ
    -

    Computation と Meta Computation

    +

    Topology ManagerとTopology Node

      -
    • 分散環境構築などの複雑な処理をAliceがMeta Computationとして提供する
    • -
    • プログラマは目的の処理だけ記述し通信部分などはMeta Computationを指定する
    • -
    - - -
    -
    - -

    Topology Manager

    -
      -
    • Alice では、ノード間の接続管理やトポロジーの構成管理を、Topology Manager という Meta Computation が提供している。
    • -
    • Topology Manager も CS/DS を用いて実装されている。
    • -
    • Static Topology ManagerとDynamic Topology Managerがある
    • +
    • Topology Manager +
        +
      • ノード間の接続管理やトポロジーの構成管理行うMeta Computation
      • +
      • Static Topology ManagerとDynamic Topology Managerがある
      • +
      +
    • +
    • Topology Node +
        +
      • 各ノード側でTopology Managerとの通信を行うMeta Computation
      • +
      • ノードアプリケーションを記述する際にTopology Nodeをnewしておけば以降のTopology Managerとの通信や接続管理を行う
      • +
      +
    • +
    • Topology Manager/NodeもCS/DSを用いて実装されている。 +right//変更
    @@ -228,8 +249,9 @@

    Static Topology Manager

      -
    • プログラマがdot形式のトポロジーファイルを用意し、TopologyManagerに読み込ませる
    • -
    • トポロジーファイルにはノードの接続関係と接続する際に指定するRDSM名を記す
    • +
    • プログラマがdot形式のトポロジーファイルを用意し、Topology Managerに読み込ませる
    • +
    • トポロジーファイルにはノードの接続関係と接続する際に指定するRemote DSM名を記す
    • +
    • Graphvizでトポロジーファイルを可視化して確認できる
    digraph test{
    @@ -241,6 +263,10 @@
     	node2 −> node1[label=”left”]
     }
     
    +

    # Static Topology Manager +* ファイルを読み込んだTopology Managerを立ち上げる +* 各Topology NodeはTopology Managerに参加表明をし接続すべきノードの情報を要求する
    +opt

    @@ -248,9 +274,18 @@

    Static Topology Manager

      -
    • 参加表明があった順にnode nameを割り当て、接続するべきクライアントのIPアドレス -やポート番号、接続名を送る -opt
    • +
    • 参加表明があった順に各ノードにnodeNameを割り当て、接続するべきノードのIPアドレス/ポート番号を送る +opt
    • +
    + + + +
    + +

    Static Topology Manager

    +
      +
    • Topology Nodeが受け取った情報をもとにRemote DSMを立ちあげ接続し合うことでTree型のオーバーレイネットワーク作られる
      +opt
    @@ -268,40 +303,18 @@
    -

    Dynamic Topology Manager

    +

    障害発生時の対応

      -
    • Topology Managerを立ちあげ、各ノードはTopology Managerに参加表明をし接続すべきノードの情報を要求する
      -opt
    • +
    • KeepAliveというMeta Computationがノードの生存確認を行う
    • +
    • 一定時間内にノードから応答がない場合、そのノードとの接続を切断し、再接続すべきノードの情報をTopologyManagerに要求する
    -

    Dynamic Topology Manager

    -
      -
    • Topology Managerは参加表明を受け取った順にStar構造になるよう接続情報を送る
      -opt
    • -
    - - -
    -
    - -

    Dynamic Topology Manager

    +

    障害発生時の対応

      -
    • 各ノードが受け取った情報をもとにRemote DSMを立ちあげ接続し合うことでStar構造が作られる
      -opt
    • -
    - - -
    -
    - -

    障害発生時の対応

    -
      -
    • KeepAliveというMeta Computationがノードの生存確認を行う
    • -
    • 一定時間内にノードから応答がない場合、そのノードとの接続を切断し、再接続すべきノードの情報をTopologyManagerに要求する
    • Closed Event ManagerというMeta Computationは切断・再接続時に指定されたCSを実行する
    • 再接続時に特定の処理を行いたい場合はCSを書いてClosed Event Managerに登録する
    • これらのMeta ComputationはTopology Manager内でも使用されるため、Meta Meta Computationとも言える
    • @@ -311,48 +324,60 @@
    -

    Topology Node

    +

    TreeVNC

      -
    • Topology Managerとの通信を行うノード側のMeta Computation
    • -
    • 各ノードアプリケーションを記述する際にTopology Nodeをnewしておけば以降のTopology Managerとの通信や接続管理を行う -//図を入れる
    • +
    • 当研究室で開発したノードを木構造に配置して負荷分散を行う授業向け画面共有システム
    • +
    • TightVNCを拡張して作られている +right
    • +
    + + +
    +
    + +

    AliceVNCとAliceChatの接続

    +
      +
    • AliceVNC:Alice上に実装したTreeVNC(Tree Topology)
    • +
    • AliceChat:Alice上に実装したチャット(Star Topology)
    • +
    • 既存のAliceVNCとAliceChatをコードの変更を抑えつつ連携させたい +
        +
      • 画面のスナップショットをチャットに載せる
      • +
      • チャットの内容を画面にコメントとして流す
      • +
      +
    -

    TreeVNC

    +

    TreeVNCのNAT越え

      -
    • 当研究室で開発したノードを木構造に配置して負荷分散を行う授業向け画面共有システム
    • -
    • TightVNCがもとになっている
    • -
    • Alice上にTreeVNCを実装したものをAliceVNCと呼ぶ -opt
    • +
    • TreeVNCを学外からも画面共有ができるよう拡張したい
    • +
    • ソースコードが膨大で複雜であったためNAT越えの実装には至らなかった
    • +
    • グローバルIPを持っていることを前提としたノードに直接IPを指定して直下の子になるDirect Connectionを実装 +right
    -

    Aliceの課題 - TreeVNCのNAT越え

    - - -
    -
    - -

    Aliceの課題 - AliceVNCとAliceChatの接続

    +

    TreeVNCのNAT越えの欠点

      -
    • 画面処理や分散処理が混在する複雑なTreeVNCも、Aliceを用いればTightVNCからの変更が少ない見通しの良い記述で構成可能 -opt
    • +
    • 複数の別ネットワークからの接続があるとルートノードに台数分の負荷がかかる
    • +
    • どちらもプライベートネットワークだった場合に通信できない(中継サーバのプログラムを用意しなければならない)
    • +
    • 分散アプリケーションにおけるNATを越えた通信は重要だがプログラマが実装するのは容易ではない
    -

    Aliceの課題

    +

    Aliceの課題まとめ

      -
    • 別トポロジー、別ネットワークのアプリケーションに接続したい要求に対応したい
    • +
    • 別トポロジー、別ネットワークのアプリケーションに接続したい
    • +
    • コード変更を抑えつつトポロジーの拡張をサポートする機能がTopology Managerに必要
    @@ -360,12 +385,160 @@

    Topology Managerの拡張設計 - 別トポロジーへの接続

    +
      +
    1. 接続を要求する側のいずれかの Node が接続先 Topology Manager(A)のIPアドレスを自身を管理するTopology Manager(B)のDSMに保存。
      +ここでTopology Managerに保存することでRootNodeが落ちてもトポロジーの再構成時にまた接続要求が出せる
      +opt//変更
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別トポロジーへの接続

    +
      +
    1. Topology Manager(B)はRootNode(B)にTopology Manager(A) への接続をするよう要求 +opt//変更
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別トポロジーへの接続

    +
      +
    1. RootNode(B) が Topology Manager(A) と接 続し、自身の接続先ノードの情報を取得 +opt//変更
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別トポロジーへの接続

    +
      +
    1. 取得した情報をもとに RootNode(A) に接続
      +opt//変更
    2. +
    + + +
    +
    + +

    複数のTopology Managerへの対応

    +
      +
    • Topology Managerは各ノードにnodeNameを割り当て管理
    • +
    • Topology Nodeは割り当てられたnodeNameをDSとして保持しTopology Managerと通信
    • +
    • Topology Nodeが各Topology Managerに対応する複数のnodeNameを持つようにする
      +opt//変更
    • +
    + + +
    +
    + +

    Local DSMの切り替えによる対応

    +
      +
    • 通常のLocal DSMとは別にTopology ManagerごとのLocal DSMを作成しnodeNameを管理
    • +
    • Tpology Manager/Nodeのコードを大きく変えずにTopology Managerの複数対応が可能
      +right
    • +
    + + +
    +
    + +

    Keyの切り替えによる対応

    +
      +
    • DSMを管理するclassがstaticのためDSMの複数生成ができない
    • +
    • staticを抜くにはAliceのコードを大幅に変更しなければならない
    • +
    • nodeNameのDSを管理するkeyにManagerごとの番号を付け加えKeyによって切り替えている
      +right//変更
    • +
    -

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    • 各プライベートネットワーク内を管理するPrivate Topology Manager
    • +
    • グローバルIPアドレスを持ったGlobal Topology Managerを1つ立てる
    • +
    • TopologyNodeが複数対応できるためPrivate/Global Topology Managerに接続
      +opt
    • +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    • 各プライベートネットワークのRootNodeをGlobal Topology Managerが木構造に接続
    • +
    • Global Topology Manager foresutoに木を構成
    • +
    • 1つのノードへの接続数は最大4 +right//変更
    • +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    • Topology Managerの「参加表明のあったノードで木を構成」仕様は変わらない
    • +
    • NAT越えはTopology ManagerのMeta Meta Computationと言える
    • +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    1. 接続を要求する側のいずれかのノードがGlobal Topology ManagerのIPアドレスを自身を管理するTopology ManagerのDSMに保存 +opt
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    1. Topology ManagerはRootNodeにGlobal Topology Managerへの接続をするよう要求 +opt
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    1. RootNodeがGrobal Topology Managerと接続し、自身のIPアドレスを送る。Global Topology Manager が受け取ったIPアドレスがプライベートアドレスであれば、ノードに対してNATの外側IPアドレス/ポート番号を要求される。RootNode はそれに返答。 +opt
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    1. UDP hole punching 行われ、Network1のRootNodeとNetwork2のRootNodeが接続される +opt
    2. +
    + + +
    +
    + +

    Topology Managerの拡張設計 - 別ネットワークへの接続

    +
      +
    1. もし接続が確立されなければ、Global Topology Manager がデータ中継用の CSを用意しデータを中継する +opt
    2. +
    @@ -382,8 +555,7 @@
  • 相違点
    • Topologyの構成等はユーザーが書く
    • -
    • NAT越えをサポートするメソッドがありプログラマはそれを組み合わせてNAT越えを行う -//別アプリケーションとの接続も書きたい
    • +
    • NAT越えをサポートするライブラリがありプログラマはそれを組み合わせてNAT越えを行う
  • @@ -402,8 +574,7 @@
  • 相違点
    • Topologyの構成等はユーザーが書く
    • -
    • 外側IPアドレス/ポート番号を指定できるが、ポートマッピングはユーザーが記述しなければならない -//別アプリケーションとの接続も書きたい
    • +
    • 外側IPアドレス/ポート番号を指定できるが、ポートマッピングはユーザーが記述しなければならない
  • @@ -412,18 +583,18 @@
    -

    まとめ

    +

    まとめ

      -
    • 別トポロジー・別ネットワークのアプリケーションとの接続を可能にするため、分散トポロジーの構成・管理をする Meta Computation である Topology Manager/Node の拡 張設計を行った。
    • +
    • 別トポロジー・別ネットワークのアプリケーションとの接続を可能にするため、分散トポロジーの構成・管理をするMeta ComputationであるTopology Manager/Nodeの拡張設計を行った。
    • DSM の切り替えにより Topology Node を複数の Topology Manager に対応させ、Meta Meta Computation として NAT 越えの機能を追加することで、Topology Manager/Node のコードを大きく変えず自由度の高い通信が可能になると期待される。
    • -
    • しかし、それを実現するにはAlice の DSM を管理する static class の static を取り除かなければならず、それは容易ではなかった。
    • +
    • しかし、それを実現するにはAlice の DSM を管理する class の static を取り除かなければならず、それは容易ではなかった。
    -

    今後の課題

    +

    今後の課題

    • DSMのレイヤー分け
        diff -r 296df25feb76 -r 3f7064e09310 presen/sample.markdown --- a/presen/sample.markdown Sun May 29 14:55:47 2016 +0900 +++ b/presen/sample.markdown Sun May 29 18:10:35 2016 +0900 @@ -2,73 +2,84 @@ author: 照屋のぞみ 河野真治 profile:琉球大学 工学部 情報工学科 +Topology Managerをもっとかっこよくアピール +前半もっとクリーンナップ + +# 目次 + + # 研究目的(1/3) * 当研究室が開発している並列分散フレームワークAliceではスケーラブルな分散プログラムを信頼性高く記述できる環境を実現する。 * ここで言う信頼性とは定められた環境下で安定して仕様に従った動作を行うことを指す。   -* Aliceでは当研究室が提案しているデータを Data Segment、タスクを Code Segment という単位で分割して記述するプログラミング手法を採用している。 +* 信頼性とスケーラビリティ向上のため、Aliceでは当研究室が提案しているデータを Data Segment、タスクを Code Segment という単位で分割して記述するプログラミング手法を採用している。 # 研究目的(2/3) -* Aliceでは、処理をComputationとMetaComputationに階層化し、コアな仕様と複雑な例外処理に分離する。 +* Aliceでは、処理をComputationとMetaComputationに階層化し、コアな仕様と複雑な例外処理に分離する。//コアな仕様の例 * 分散環境構築などの複雑な処理はAliceがMeta Computationとして提供する -* 仕様を大きく変更することなくプログラムの挙動が変えられる +* 仕様を大きく変更することなくプログラムの挙動が変えられる//分散処理とかの拡張なら指定だけで良い * 変更前の信頼性を保ったまま拡張可能にする # 研究目的(3/3) -* 本研究では、 分散トポロジー管理の Meta Computation である Topology Manager に NAT 越えを実現するための設計を行う。そしてその設計が Alice アプリケーション同士の接続も可能にすることを示す。 - +* Aliceでは分散トポロジー管理の Meta Computation である Topology Manager +* 本研究では、 Topology Managerに NAT越えを実現するための設計を行う +* そしてその設計が Alice アプリケーション同士の接続も可能にすることを示す +↑逆? +Topologyの課題をかく # Data Segment と Code Segment * Aliceではデータを **Data Segment(DS)** 、タスクを **Code Segment(CS)** という単位に分割して依存関係を記述することでプログラミングを行う。 * CSはInput DS(入力されるDS)とOutput DS(出力されるDS)を持つ。 * CSはkeyで指定されたDSが揃うと実行されるという性質を持つ。 -![opt](./images/dsandcs.svg){:width="60%"} +![opt](./images/dsandcs.svg){:width="50%"} # CodeSegmentの依存関係 * データの依存関係にないCSは並列実行される * データの依存関係がある場合は Input DS が揃うと順に実行される * DSはCSに専有されるためロックの記述を必要としない -![opt](./images/dsandcs2.svg){:width="60%"} +![opt](./images/dsandcs2.svg){:width="50%"} # Data Segment と CodeSegment * AliceはJavaで実装されており、DSはJava-Object、CSはRunnableに相当する * ユーザーが記述する際には CodeSegment.class を継承することでDSを操作するためのAPIを利用して依存関係を記述することができる。 -* DSはAliceが内部にもつデータベース(DS Manager)により管理されており、CSはDSに対応する一意のkeyを使ってDSを操作する。 # Data Segment Manager * DS の集合体であるデータベースを Alice では **DS Manager(DSM)** と呼ぶ。 -* DSM 内の DS には対になる String型のkey が存在し、 DSM 名と key を指定しすることで DS の保存、取得を行う。 -* keyに対して複数のDSを保存する際はFIFO的に処理される -![opt](./images/KeyDS.svg){:width="50%"} +* DSM 内の DS には対応する一意の String型のkey が存在し、 DSM 名と key を指定しすることで DS の保存、取得を行う。 +![opt](./images/KeyDS.svg){:width="50%"}//変更 # Data Segment Manager * Local DSM … 各ノード固有のデータベース。 * Remote DSM … 他のノードの Local DSM の proxy。接続しているノードの数だけ存在する。 -![opt](./images/remote_datasegment.svg){:width="50%"} - +* Remote DSMに書き込むと対応するノードのLocalDSMに書き込まれる +![opt](./images/remote_datasegment.svg){:width="50%"}//変更 # Computation と Meta Computation -* Aliceでは、計算の本質的な処理をComputatin、Computationとは直接関係ないが別のレベルでそれを支える処理をMeta Computationとして分けて考える。 -* Alice のComputationは、keyによりDSを待ち合わせ、DSが揃ったCSを並列に実行する処理。 -* 分散トポロジーの構成、通信の切断・再接続時の処理やデータの表現形式の選択など、Computationを支えている処理。 - -# Computation と Meta Computation -* DS/CSの接続の間にMeta Computationが実行されている -* AliceのMeta ComputationもCS/DSにより実現される -* Meta ComputationはCS の処理を支えるMeta CSとMeta CSに管理されるMeta DSに分けられる -![opt](./pictures/MetaCSDS.svg){:width="70%"} +* Aliceでは、計算の本質的な処理をComputatin、Computationとは別のレベルでそれを支える処理をMeta Computationとして分けて考える。 +* Alice のComputationは、keyによりDSを待ち合わせ、DSが揃ったCSを並列に実行する処理 +* Meta Computationはそれを実現している処理 + * DSの待ち合わせ + * 分散トポロジーの構成 + * 通信の切断・再接続時の処理 + * データの表現形式の選択 # Computation と Meta Computation * 分散環境構築などの複雑な処理をAliceがMeta Computationとして提供する * プログラマは目的の処理だけ記述し通信部分などはMeta Computationを指定する +* シンプルで見通しの良いコードを保つ -# Topology Manager -* Alice では、ノード間の接続管理やトポロジーの構成管理を、Topology Manager という Meta Computation が提供している。 -* Topology Manager も CS/DS を用いて実装されている。 -* Static Topology ManagerとDynamic Topology Managerがある +# Topology ManagerとTopology Node +* Topology Manager + * ノード間の接続管理やトポロジーの構成管理行うMeta Computation + * Static Topology ManagerとDynamic Topology Managerがある +* Topology Node + * 各ノード側でTopology Managerとの通信を行うMeta Computation + * ノードアプリケーションを記述する際にTopology Nodeをnewしておけば以降のTopology Managerとの通信や接続管理を行う +* Topology Manager/NodeもCS/DSを用いて実装されている。 # Static Topology Manager -* プログラマがdot形式のトポロジーファイルを用意し、TopologyManagerに読み込ませる -* トポロジーファイルにはノードの接続関係と接続する際に指定するRDSM名を記す +* プログラマがdot形式のトポロジーファイルを用意し、Topology Managerに読み込ませる +* トポロジーファイルにはノードの接続関係と接続する際に指定するRemote DSM名を記す +* Graphvizでトポロジーファイルを可視化して確認できる ```dot digraph test{ @@ -80,46 +91,45 @@ node2 −> node1[label=”left”] } ``` +# Static Topology Manager +* ファイルを読み込んだTopology Managerを立ち上げる +* 各Topology NodeはTopology Managerに参加表明をし接続すべきノードの情報を要求する +![opt](./pictures/tree1.svg){:width="70%"} # Static Topology Manager -* 参加表明があった順にnode nameを割り当て、接続するべきクライアントのIPアドレス -やポート番号、接続名を送る -![opt](./pictures/topologymanager.svg){:width="40%"} +* 参加表明があった順に各ノードにnodeNameを割り当て、接続するべきノードのIPアドレス/ポート番号を送る +![opt](./pictures/tree2.svg){:width="70%"} + +# Static Topology Manager +* Topology Nodeが受け取った情報をもとにRemote DSMを立ちあげ接続し合うことでTree型のオーバーレイネットワーク作られる +![opt](./pictures/tree3.svg){:width="70%"} # Dynamic Topology Manager * 参加するノード数があらかじめ決まっているとは限らない * Dynamic Topology Managerがノードを参加表明順にトポロジーに組み込む * 現在はTree TopologyとStar Topologyに対応 -# Dynamic Topology Manager -* Topology Managerを立ちあげ、各ノードはTopology Managerに参加表明をし接続すべきノードの情報を要求する -![opt](./pictures/tree1.svg){:width="60%"} - -# Dynamic Topology Manager -* Topology Managerは参加表明を受け取った順にStar構造になるよう接続情報を送る -![opt](./pictures/tree2.svg){:width="60%"} - -# Dynamic Topology Manager -* 各ノードが受け取った情報をもとにRemote DSMを立ちあげ接続し合うことでStar型のオーバーレイネットワーク作られる -![opt](./pictures/tree3.svg){:width="60%"} - # 障害発生時の対応 * KeepAliveというMeta Computationがノードの生存確認を行う * 一定時間内にノードから応答がない場合、そのノードとの接続を切断し、再接続すべきノードの情報をTopologyManagerに要求する + +# 障害発生時の対応 * Closed Event ManagerというMeta Computationは切断・再接続時に指定されたCSを実行する * 再接続時に特定の処理を行いたい場合はCSを書いてClosed Event Managerに登録する * これらのMeta ComputationはTopology Manager内でも使用されるため、Meta Meta Computationとも言える -# Topology Node -* Topology Managerとの通信を行うノード側のMeta Computation -* 各ノードアプリケーションを記述する際にTopology Nodeをnewしておけば以降のTopology Managerとの通信や接続管理を行う -//図を入れる - # TreeVNC * 当研究室で開発したノードを木構造に配置して負荷分散を行う授業向け画面共有システム * TightVNCを拡張して作られている ![right](./images/treeVNC.svg){:width="40%"} +# AliceVNCとAliceChatの接続 +* AliceVNC:Alice上に実装したTreeVNC(Tree Topology) +* AliceChat:Alice上に実装したチャット(Star Topology) +* 既存のAliceVNCとAliceChatをコードの変更を抑えつつ連携させたい + * 画面のスナップショットをチャットに載せる + * チャットの内容を画面にコメントとして流す + # TreeVNCのNAT越え * TreeVNCを学外からも画面共有ができるよう拡張したい * ソースコードが膨大で複雜であったためNAT越えの実装には至らなかった @@ -128,86 +138,83 @@ # TreeVNCのNAT越えの欠点 * 複数の別ネットワークからの接続があるとルートノードに台数分の負荷がかかる -* どちらもプライベートネットワークだった場合に通信できない +* どちらもプライベートネットワークだった場合に通信できない(中継サーバのプログラムを用意しなければならない) * 分散アプリケーションにおけるNATを越えた通信は重要だがプログラマが実装するのは容易ではない -# AliceVNCとAliceChatの接続 -* AliceVNC:Alice上に実装したTreeVNC(Tree Topology) -* AliceChat:Alice上に実装したチャット(Star Topology) -* 既存のAliceVNCとAliceChatをコードの変更を抑えつつ連携させたい - * 画面のスナップショットをチャットに載せる - * チャットの内容を画面にコメントとして流す -# Aliceの課題 -* 別ネットワーク、別トポロジーのアプリケーションに接続したい +# Aliceの課題まとめ +* 別トポロジー、別ネットワークのアプリケーションに接続したい * コード変更を抑えつつトポロジーの拡張をサポートする機能がTopology Managerに必要 # Topology Managerの拡張設計 - 別トポロジーへの接続 1. 接続を要求する側のいずれかの Node が接続先 Topology Manager(A)のIPアドレスを自身を管理するTopology Manager(B)のDSMに保存。 *ここでTopology Managerに保存することでRootNodeが落ちてもトポロジーの再構成時にまた接続要求が出せる* -![opt](./pictures/privateconnect.svg){:width="40%"}//変更 +![opt](./pictures/private1.svg){:width="70%"}//変更 # Topology Managerの拡張設計 - 別トポロジーへの接続 2. Topology Manager(B)はRootNode(B)にTopology Manager(A) への接続をするよう要求 -![opt](./pictures/privateconnect.svg){:width="40%"}//変更 +![opt](./pictures/private2.svg){:width="70%"}//変更 # Topology Managerの拡張設計 - 別トポロジーへの接続 3. RootNode(B) が Topology Manager(A) と接 続し、自身の接続先ノードの情報を取得 -![opt](./pictures/privateconnect.svg){:width="40%"}//変更 +![opt](./pictures/private3.svg){:width="70%"}//変更 # Topology Managerの拡張設計 - 別トポロジーへの接続 4. 取得した情報をもとに RootNode(A) に接続 -![opt](./pictures/privateconnect.svg){:width="40%"}//変更 +![opt](./pictures/private4.svg){:width="70%"}//変更 # 複数のTopology Managerへの対応 * Topology Managerは各ノードにnodeNameを割り当て管理 * Topology Nodeは割り当てられたnodeNameをDSとして保持しTopology Managerと通信 -* Topology Nodeが各Topology Managerに対応する複数のnodeNameを持つようにする +* Topology Nodeが各Topology Managerに対応する複数のnodeNameを持つようにする ![opt](./pictures/somehostname.svg){:width="40%"}//変更 # Local DSMの切り替えによる対応 * 通常のLocal DSMとは別にTopology ManagerごとのLocal DSMを作成しnodeNameを管理 -* Tpology Manager/Nodeのコードを大きく変えずにTopology Managerの複数対応が可能 -![right](./pictures/somehostname.svg){:width="40%"} +* Tpology Manager/Nodeのコードを大きく変えずにTopology Managerの複数対応が可能 +![right](./pictures/somehostname2.svg){:width="40%"} # Keyの切り替えによる対応 * DSMを管理するclassがstaticのためDSMの複数生成ができない * staticを抜くにはAliceのコードを大幅に変更しなければならない -* nodeNameのDSを管理するkeyにManagerごとの番号を付け加えKeyによって切り替えている -![right](./pictures/somehostname.svg){:width="40%"}//変更 +* nodeNameのDSを管理するkeyにManagerごとの番号を付け加えKeyによって切り替えている +![right](./pictures/somehostname3.svg){:width="40%"}//変更 # Topology Managerの拡張設計 - 別ネットワークへの接続 * 各プライベートネットワーク内を管理するPrivate Topology Manager * グローバルIPアドレスを持ったGlobal Topology Managerを1つ立てる -* TopologyNodeが複数対応できるためPrivate/Global Topology Managerに接続 +* TopologyNodeが複数対応できるためPrivate/Global Topology Managerに接続 ![opt](./pictures/overNAT.svg){:width="40%"} # Topology Managerの拡張設計 - 別ネットワークへの接続 * 各プライベートネットワークのRootNodeをGlobal Topology Managerが木構造に接続 -* Global Topology Manager3次元的に木を構成 +* Global Topology Manager foresutoに木を構成 +* 1つのノードへの接続数は最大4 +![right](./pictures/3Dtree.svg){:width="40%"}//変更 + +# Topology Managerの拡張設計 - 別ネットワークへの接続 * Topology Managerの「参加表明のあったノードで木を構成」仕様は変わらない -* NAT越えはTopology ManagerのMeta Meta Computationと言える -![right](./pictures/){:width="40%"}//変更 +* NAT越えはTopology ManagerのMeta Meta Computationと言える # Topology Managerの拡張設計 - 別ネットワークへの接続 1. 接続を要求する側のいずれかのノードがGlobal Topology ManagerのIPアドレスを自身を管理するTopology ManagerのDSMに保存 -![opt](./pictures/globalconnect.svg){:width="40%"}//変更 +![opt](./pictures/global1.svg){:width="40%"} # Topology Managerの拡張設計 - 別ネットワークへの接続 2. Topology ManagerはRootNodeにGlobal Topology Managerへの接続をするよう要求 -![opt](./pictures/globalconnect.svg){:width="40%"}//変更 +![opt](./pictures/global2.svg){:width="40%"} # Topology Managerの拡張設計 - 別ネットワークへの接続 3. RootNodeがGrobal Topology Managerと接続し、自身のIPアドレスを送る。Global Topology Manager が受け取ったIPアドレスがプライベートアドレスであれば、ノードに対してNATの外側IPアドレス/ポート番号を要求される。RootNode はそれに返答。 -![opt](./pictures/globalconnect.svg){:width="40%"}//変更 +![opt](./pictures/global3.svg){:width="40%"} # Topology Managerの拡張設計 - 別ネットワークへの接続 -4. UDP hole punching ゙行われ、Network1のRootNodeとNetwork2のRootNodeが接続される -![opt](./pictures/globalconnect.svg){:width="40%"}//変更 +4. UDP hole punching 行われ、Network1のRootNodeとNetwork2のRootNodeが接続される +![opt](./pictures/global4.svg){:width="40%"} # Topology Managerの拡張設計 - 別ネットワークへの接続 5. もし接続が確立されなければ、Global Topology Manager がデータ中継用の CSを用意しデータを中継する -![opt](./pictures/globalconnect.svg){:width="40%"}//変更 +![opt](./pictures/global5.svg){:width="40%"} # Aliceと他言語等との比較(1) - Erlang @@ -218,7 +225,7 @@ * 相違点 * Topologyの構成等はユーザーが書く * NAT越えをサポートするライブラリがありプログラマはそれを組み合わせてNAT越えを行う -//別アプリケーションとの接続も書きたい + # Aliceと他言語等との比較(2) - Akka * 共通点 @@ -227,12 +234,12 @@ * 相違点 * Topologyの構成等はユーザーが書く * 外側IPアドレス/ポート番号を指定できるが、ポートマッピングはユーザーが記述しなければならない -//別アプリケーションとの接続も書きたい + # まとめ -* 別トポロジー・別ネットワークのアプリケーションとの接続を可能にするため、分散トポロジーの構成・管理をする Meta Computation である Topology Manager/Node の拡 張設計を行った。 +* 別トポロジー・別ネットワークのアプリケーションとの接続を可能にするため、分散トポロジーの構成・管理をするMeta ComputationであるTopology Manager/Nodeの拡張設計を行った。 * DSM の切り替えにより Topology Node を複数の Topology Manager に対応させ、Meta Meta Computation として NAT 越えの機能を追加することで、Topology Manager/Node のコードを大きく変えず自由度の高い通信が可能になると期待される。 -* しかし、それを実現するにはAlice の DSM を管理する static class の static を取り除かなければならず、それは容易ではなかった。 +* しかし、それを実現するにはAlice の DSM を管理する class の static を取り除かなければならず、それは容易ではなかった。 # 今後の課題 * DSMのレイヤー分け