Mercurial > hg > Papers > 2015 > nozomi-prosym
changeset 10:5774c70506ae
last-update of paper
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 01 Dec 2015 00:07:29 +0900 |
parents | 8de971cb8ad8 |
children | 13feccaa684f |
files | .DS_Store paper-last/images/metaCS.pdf paper-last/images/metaCS.svg paper-last/images/metaCS.xbb paper-last/prosym.aux paper-last/prosym.bbl paper-last/prosym.bib paper-last/prosym.blg paper-last/prosym.dvi paper-last/prosym.log paper-last/prosym.pdf paper-last/prosym.tex sigjouto.pdf |
diffstat | 13 files changed, 308 insertions(+), 197 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper-last/images/metaCS.svg Tue Dec 01 00:07:29 2015 +0900 @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="484.81228pt" height="220.9128pt" viewBox="0 0 484.81228 220.9128" version="1.1"> +<defs> +<g> +<symbol overflow="visible" id="glyph0-0"> +<path style="stroke:none;" d="M 0.390625 0 L 0.390625 -8.609375 L 7.21875 -8.609375 L 7.21875 0 Z M 6.140625 -1.078125 L 6.140625 -7.53125 L 1.46875 -7.53125 L 1.46875 -1.078125 Z M 6.140625 -1.078125 "/> +</symbol> +<symbol overflow="visible" id="glyph0-1"> +<path style="stroke:none;" d="M 4.546875 -8.84375 C 5.628906 -8.84375 6.472656 -8.554688 7.078125 -7.984375 C 7.679688 -7.410156 8.015625 -6.757812 8.078125 -6.03125 L 6.9375 -6.03125 C 6.8125 -6.582031 6.554688 -7.019531 6.171875 -7.34375 C 5.785156 -7.664062 5.242188 -7.828125 4.546875 -7.828125 C 3.703125 -7.828125 3.019531 -7.53125 2.5 -6.9375 C 1.976562 -6.34375 1.71875 -5.429688 1.71875 -4.203125 C 1.71875 -3.191406 1.953125 -2.367188 2.421875 -1.734375 C 2.890625 -1.109375 3.59375 -0.796875 4.53125 -0.796875 C 5.382812 -0.796875 6.039062 -1.128906 6.5 -1.796875 C 6.726562 -2.140625 6.90625 -2.597656 7.03125 -3.171875 L 8.15625 -3.171875 C 8.0625 -2.265625 7.726562 -1.503906 7.15625 -0.890625 C 6.46875 -0.148438 5.546875 0.21875 4.390625 0.21875 C 3.390625 0.21875 2.550781 -0.0820312 1.875 -0.6875 C 0.976562 -1.488281 0.53125 -2.722656 0.53125 -4.390625 C 0.53125 -5.660156 0.863281 -6.703125 1.53125 -7.515625 C 2.257812 -8.398438 3.265625 -8.84375 4.546875 -8.84375 Z M 4.3125 -8.84375 Z M 4.3125 -8.84375 "/> +</symbol> +<symbol overflow="visible" id="glyph0-2"> +<path style="stroke:none;" d="M 1.671875 -2.78125 C 1.703125 -2.289062 1.816406 -1.894531 2.015625 -1.59375 C 2.410156 -1.019531 3.09375 -0.734375 4.0625 -0.734375 C 4.5 -0.734375 4.898438 -0.796875 5.265625 -0.921875 C 5.960938 -1.160156 6.3125 -1.59375 6.3125 -2.21875 C 6.3125 -2.6875 6.160156 -3.019531 5.859375 -3.21875 C 5.566406 -3.414062 5.101562 -3.585938 4.46875 -3.734375 L 3.3125 -4 C 2.539062 -4.164062 2 -4.351562 1.6875 -4.5625 C 1.144531 -4.925781 0.875 -5.460938 0.875 -6.171875 C 0.875 -6.953125 1.140625 -7.585938 1.671875 -8.078125 C 2.203125 -8.578125 2.957031 -8.828125 3.9375 -8.828125 C 4.84375 -8.828125 5.609375 -8.609375 6.234375 -8.171875 C 6.867188 -7.734375 7.1875 -7.035156 7.1875 -6.078125 L 6.09375 -6.078125 C 6.03125 -6.546875 5.90625 -6.898438 5.71875 -7.140625 C 5.363281 -7.585938 4.757812 -7.8125 3.90625 -7.8125 C 3.21875 -7.8125 2.722656 -7.664062 2.421875 -7.375 C 2.117188 -7.09375 1.96875 -6.757812 1.96875 -6.375 C 1.96875 -5.957031 2.144531 -5.648438 2.5 -5.453125 C 2.726562 -5.328125 3.25 -5.171875 4.0625 -4.984375 L 5.28125 -4.703125 C 5.851562 -4.566406 6.300781 -4.382812 6.625 -4.15625 C 7.164062 -3.757812 7.4375 -3.175781 7.4375 -2.40625 C 7.4375 -1.457031 7.085938 -0.773438 6.390625 -0.359375 C 5.703125 0.046875 4.898438 0.25 3.984375 0.25 C 2.910156 0.25 2.070312 -0.0195312 1.46875 -0.5625 C 0.863281 -1.113281 0.566406 -1.851562 0.578125 -2.78125 Z M 4.03125 -8.84375 Z M 4.03125 -8.84375 "/> +</symbol> +<symbol overflow="visible" id="glyph0-3"> +<path style="stroke:none;" d="M 0.890625 -8.609375 L 2.5625 -8.609375 L 5.03125 -1.328125 L 7.484375 -8.609375 L 9.140625 -8.609375 L 9.140625 0 L 8.03125 0 L 8.03125 -5.078125 C 8.03125 -5.253906 8.03125 -5.546875 8.03125 -5.953125 C 8.039062 -6.359375 8.046875 -6.796875 8.046875 -7.265625 L 5.59375 0 L 4.4375 0 L 1.96875 -7.265625 L 1.96875 -7 C 1.96875 -6.789062 1.972656 -6.46875 1.984375 -6.03125 C 1.992188 -5.601562 2 -5.285156 2 -5.078125 L 2 0 L 0.890625 0 Z M 0.890625 -8.609375 "/> +</symbol> +<symbol overflow="visible" id="glyph0-4"> +<path style="stroke:none;" d="M 3.390625 -6.421875 C 3.835938 -6.421875 4.269531 -6.316406 4.6875 -6.109375 C 5.101562 -5.898438 5.421875 -5.628906 5.640625 -5.296875 C 5.847656 -4.972656 5.988281 -4.601562 6.0625 -4.1875 C 6.125 -3.894531 6.15625 -3.429688 6.15625 -2.796875 L 1.546875 -2.796875 C 1.566406 -2.160156 1.71875 -1.648438 2 -1.265625 C 2.28125 -0.878906 2.71875 -0.6875 3.3125 -0.6875 C 3.863281 -0.6875 4.300781 -0.867188 4.625 -1.234375 C 4.8125 -1.441406 4.945312 -1.6875 5.03125 -1.96875 L 6.0625 -1.96875 C 6.039062 -1.738281 5.953125 -1.484375 5.796875 -1.203125 C 5.640625 -0.921875 5.46875 -0.6875 5.28125 -0.5 C 4.957031 -0.1875 4.554688 0.0195312 4.078125 0.125 C 3.828125 0.1875 3.539062 0.21875 3.21875 0.21875 C 2.4375 0.21875 1.773438 -0.0625 1.234375 -0.625 C 0.691406 -1.195312 0.421875 -1.992188 0.421875 -3.015625 C 0.421875 -4.023438 0.691406 -4.84375 1.234375 -5.46875 C 1.785156 -6.101562 2.503906 -6.421875 3.390625 -6.421875 Z M 5.0625 -3.640625 C 5.019531 -4.097656 4.921875 -4.460938 4.765625 -4.734375 C 4.484375 -5.242188 4.003906 -5.5 3.328125 -5.5 C 2.835938 -5.5 2.425781 -5.320312 2.09375 -4.96875 C 1.769531 -4.625 1.597656 -4.179688 1.578125 -3.640625 Z M 3.28125 -6.421875 Z M 3.28125 -6.421875 "/> +</symbol> +<symbol overflow="visible" id="glyph0-5"> +<path style="stroke:none;" d="M 0.984375 -8.03125 L 2.046875 -8.03125 L 2.046875 -6.28125 L 3.046875 -6.28125 L 3.046875 -5.421875 L 2.046875 -5.421875 L 2.046875 -1.3125 C 2.046875 -1.09375 2.125 -0.945312 2.28125 -0.875 C 2.351562 -0.832031 2.488281 -0.8125 2.6875 -0.8125 C 2.738281 -0.8125 2.789062 -0.8125 2.84375 -0.8125 C 2.90625 -0.820312 2.972656 -0.828125 3.046875 -0.828125 L 3.046875 0 C 2.929688 0.03125 2.804688 0.0507812 2.671875 0.0625 C 2.546875 0.0820312 2.40625 0.09375 2.25 0.09375 C 1.757812 0.09375 1.425781 -0.03125 1.25 -0.28125 C 1.070312 -0.53125 0.984375 -0.859375 0.984375 -1.265625 L 0.984375 -5.421875 L 0.140625 -5.421875 L 0.140625 -6.28125 L 0.984375 -6.28125 Z M 0.984375 -8.03125 "/> +</symbol> +<symbol overflow="visible" id="glyph0-6"> +<path style="stroke:none;" d="M 1.578125 -1.671875 C 1.578125 -1.367188 1.6875 -1.128906 1.90625 -0.953125 C 2.132812 -0.773438 2.398438 -0.6875 2.703125 -0.6875 C 3.078125 -0.6875 3.4375 -0.769531 3.78125 -0.9375 C 4.375 -1.226562 4.671875 -1.695312 4.671875 -2.34375 L 4.671875 -3.1875 C 4.535156 -3.113281 4.363281 -3.046875 4.15625 -2.984375 C 3.957031 -2.929688 3.757812 -2.894531 3.5625 -2.875 L 2.9375 -2.796875 C 2.550781 -2.742188 2.257812 -2.660156 2.0625 -2.546875 C 1.738281 -2.367188 1.578125 -2.078125 1.578125 -1.671875 Z M 4.140625 -3.796875 C 4.378906 -3.828125 4.539062 -3.929688 4.625 -4.109375 C 4.664062 -4.203125 4.6875 -4.335938 4.6875 -4.515625 C 4.6875 -4.867188 4.554688 -5.125 4.296875 -5.28125 C 4.046875 -5.445312 3.6875 -5.53125 3.21875 -5.53125 C 2.664062 -5.53125 2.273438 -5.382812 2.046875 -5.09375 C 1.910156 -4.925781 1.820312 -4.679688 1.78125 -4.359375 L 0.796875 -4.359375 C 0.816406 -5.128906 1.066406 -5.664062 1.546875 -5.96875 C 2.035156 -6.269531 2.597656 -6.421875 3.234375 -6.421875 C 3.972656 -6.421875 4.570312 -6.28125 5.03125 -6 C 5.488281 -5.71875 5.71875 -5.28125 5.71875 -4.6875 L 5.71875 -1.078125 C 5.71875 -0.972656 5.738281 -0.882812 5.78125 -0.8125 C 5.832031 -0.75 5.929688 -0.71875 6.078125 -0.71875 C 6.117188 -0.71875 6.164062 -0.71875 6.21875 -0.71875 C 6.28125 -0.726562 6.347656 -0.738281 6.421875 -0.75 L 6.421875 0.03125 C 6.253906 0.0703125 6.125 0.0976562 6.03125 0.109375 C 5.945312 0.128906 5.832031 0.140625 5.6875 0.140625 C 5.320312 0.140625 5.0625 0.0078125 4.90625 -0.25 C 4.8125 -0.382812 4.75 -0.578125 4.71875 -0.828125 C 4.5 -0.546875 4.1875 -0.300781 3.78125 -0.09375 C 3.382812 0.113281 2.945312 0.21875 2.46875 0.21875 C 1.882812 0.21875 1.40625 0.0390625 1.03125 -0.3125 C 0.664062 -0.664062 0.484375 -1.109375 0.484375 -1.640625 C 0.484375 -2.222656 0.664062 -2.675781 1.03125 -3 C 1.394531 -3.320312 1.867188 -3.519531 2.453125 -3.59375 Z M 3.265625 -6.421875 Z M 3.265625 -6.421875 "/> +</symbol> +<symbol overflow="visible" id="glyph0-7"> +<path style="stroke:none;" d="M 4.21875 -1 C 4.613281 -1 4.9375 -1.039062 5.1875 -1.125 C 5.644531 -1.269531 6.019531 -1.5625 6.3125 -2 C 6.539062 -2.34375 6.703125 -2.785156 6.796875 -3.328125 C 6.859375 -3.660156 6.890625 -3.960938 6.890625 -4.234375 C 6.890625 -5.304688 6.675781 -6.132812 6.25 -6.71875 C 5.832031 -7.3125 5.148438 -7.609375 4.203125 -7.609375 L 2.140625 -7.609375 L 2.140625 -1 Z M 0.96875 -8.609375 L 4.453125 -8.609375 C 5.640625 -8.609375 6.554688 -8.1875 7.203125 -7.34375 C 7.785156 -6.59375 8.078125 -5.625 8.078125 -4.4375 C 8.078125 -3.519531 7.90625 -2.691406 7.5625 -1.953125 C 6.957031 -0.648438 5.914062 0 4.4375 0 L 0.96875 0 Z M 0.96875 -8.609375 "/> +</symbol> +<symbol overflow="visible" id="glyph0-8"> +<path style="stroke:none;" d=""/> +</symbol> +</g> +</defs> +<g id="surface1"> +<rect x="0" y="0" width="484.81228" height="220.9128" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 237.999957 147.498919 L 299.999957 147.498919 L 299.999957 195.498919 L 237.999957 195.498919 Z M 237.999957 147.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="230.063519" y="124.6228"/> + <use xlink:href="#glyph0-2" x="238.729919" y="124.6228"/> +</g> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:4,4;stroke-miterlimit:10;" d="M 123.699176 129.448138 C 140.10152 146.045794 140.10152 172.95595 123.699176 189.553606 C 107.296832 206.151263 80.703082 206.151263 64.300739 189.553606 C 47.898395 172.95595 47.898395 146.045794 64.300739 129.448138 C 80.703082 112.850481 107.296832 112.850481 123.699176 129.448138 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="41.72465" y="91.6228"/> + <use xlink:href="#glyph0-4" x="51.72065" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-5" x="58.39505" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-6" x="61.72865" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-7" x="68.40305" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="77.06945" y="91.6228"/> +</g> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 110.617145 154.530169 C 119.792926 163.901263 119.792926 179.096575 110.617145 188.471575 C 101.441364 197.842669 86.558551 197.842669 77.38277 188.471575 C 68.206989 179.096575 68.206989 163.901263 77.38277 154.530169 C 86.558551 145.155169 101.441364 145.155169 110.617145 154.530169 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-7" x="55.063519" y="124.6228"/> + <use xlink:href="#glyph0-2" x="63.729919" y="124.6228"/> +</g> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:4,4;stroke-miterlimit:10;" d="M 473.699176 129.448138 C 490.10152 146.045794 490.10152 172.95595 473.699176 189.553606 C 457.296832 206.151263 430.703082 206.151263 414.300739 189.553606 C 397.898395 172.95595 397.898395 146.045794 414.300739 129.448138 C 430.703082 112.850481 457.296832 112.850481 473.699176 129.448138 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="391.72465" y="91.6228"/> + <use xlink:href="#glyph0-4" x="401.72065" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-5" x="408.39505" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-6" x="411.72865" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-7" x="418.40305" y="91.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="427.06945" y="91.6228"/> +</g> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 460.617145 154.530169 C 469.792926 163.901263 469.792926 179.096575 460.617145 188.471575 C 451.441364 197.842669 436.558551 197.842669 427.38277 188.471575 C 418.206989 179.096575 418.206989 163.901263 427.38277 154.530169 C 436.558551 145.155169 451.441364 145.155169 460.617145 154.530169 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-7" x="405.063519" y="124.6228"/> + <use xlink:href="#glyph0-2" x="413.729919" y="124.6228"/> +</g> +<path style="fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 300.499957 171.498919 L 407.10152 171.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 416.699176 171.498919 L 407.10152 167.901263 L 407.10152 175.100481 Z M 416.699176 171.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<path style="fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 117.999957 171.498919 L 224.60152 171.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.199176 171.498919 L 224.60152 167.901263 L 224.60152 175.100481 Z M 234.199176 171.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:4,4;stroke-miterlimit:10;" d="M 145.585895 147.498919 L 207.585895 147.498919 L 207.585895 195.498919 L 145.585895 195.498919 Z M 145.585895 147.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="122.64336" y="124.6228"/> + <use xlink:href="#glyph0-4" x="132.63936" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-5" x="139.31376" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-6" x="142.64736" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-8" x="149.32176" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="152.65536" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="161.32176" y="124.6228"/> +</g> +<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:4,4;stroke-miterlimit:10;" d="M 321.273395 147.498919 L 383.273395 147.498919 L 383.273395 195.498919 L 321.273395 195.498919 Z M 321.273395 147.498919 " transform="matrix(1,0,0,1,-30.10152,-50.4872)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="298.33226" y="124.6228"/> + <use xlink:href="#glyph0-4" x="308.32826" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-5" x="315.00266" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-6" x="318.33626" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-8" x="325.01066" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="328.34426" y="124.6228"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="337.01066" y="124.6228"/> +</g> +</g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper-last/images/metaCS.xbb Tue Dec 01 00:07:29 2015 +0900 @@ -0,0 +1,8 @@ +%%Title: ./metaCS.pdf +%%Creator: extractbb 20130405 +%%BoundingBox: 31 511 515 732 +%%HiResBoundingBox: 30.601520 511.100000 515.413800 732.012800 +%%PDFVersion: 1.3 +%%Pages: 1 +%%CreationDate: Mon Nov 30 21:38:12 2015 +
--- a/paper-last/prosym.aux Mon Nov 30 18:35:42 2015 +0900 +++ b/paper-last/prosym.aux Tue Dec 01 00:07:29 2015 +0900 @@ -1,12 +1,13 @@ \relax \citation{senkokenkyu} +\citation{senkokenkyu2} \citation{treeVNC} \newlabel{ipsj@firstpage}{{}{1}} \@writefile{toc}{\contentsline {section}{\numberline {1}\hskip 1zw{研究背景と目的}}{1}} -\@writefile{toc}{\contentsline {section}{\numberline {2}\hskip 1zw{分散フレームワークAlice}}{1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}{Code Segment と Data Segment}}{1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}\hskip 1zw{分散フレームワークAlice}}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}{Code Segment と Data Segment}}{2}} \newlabel{fig:CS}{{1}{2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}{DataSegmentManager}}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}{Data Segment Manager}}{2}} \newlabel{fig:Remote DSM}{{2}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}{Data Segment API}}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4}{Code Segmentの記述方法}}{3}} @@ -16,57 +17,51 @@ \@writefile{lol}{\contentsline {lstlisting}{\numberline {2}CodeSegmentの例}{3}} \citation{dot} \@writefile{toc}{\contentsline {section}{\numberline {3}\hskip 1zw{Meta Computation}}{4}} -\newlabel{src:topologyfile}{{3}{4}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}トポロジーファイルの例}{4}} -\newlabel{fig:topologymanager}{{3}{5}} +\newlabel{fig:metaCS}{{3}{4}} +\newlabel{src:topologyfile}{{3}{5}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}トポロジーファイルの例}{5}} +\newlabel{fig:topologymanager}{{4}{5}} \citation{tightVNC} -\newlabel{fig:topfix1}{{4}{6}} -\newlabel{fig:topfix2}{{5}{6}} -\newlabel{fig:topfix3}{{6}{6}} \newlabel{src:closedEvent}{{4}{6}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {4}切断時に実行されるCSの登録方法}{6}} \@writefile{toc}{\contentsline {section}{\numberline {4}\hskip 1zw{AliceVNC}}{6}} +\newlabel{fig:TreeVNC}{{5}{6}} +\@writefile{toc}{\contentsline {section}{\numberline {5}\hskip 1zw{Aliceの新機能}}{6}} \citation{MessagePack} -\newlabel{fig:TreeVNC}{{7}{7}} -\@writefile{toc}{\contentsline {section}{\numberline {5}\hskip 1zw{Aliceの新機能}}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.1}{転送機能}}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2}{Data Segmentの表現の追加(圧縮機能)}}{7}} -\newlabel{src:ReceiveData}{{5}{8}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}データを表現するクラス}{8}} +\newlabel{src:ReceiveData}{{5}{7}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}データを表現するクラス}{7}} \newlabel{src:before}{{6}{8}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {6}通常のDSを扱うCSの例}{8}} \newlabel{src:after}{{7}{8}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {7}圧縮したDSを扱うCSの例}{8}} -\newlabel{src:asClass}{{8}{8}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}asClassの処理}{8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}{Aliceの通信プロトコルの変更}}{9}} -\@writefile{toc}{\contentsline {section}{\numberline {6}\hskip 1zw{評価と考察}}{9}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}{メッセージ伝達速度の比較}}{9}} -\newlabel{fig:mesure}{{8}{9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}{Aliceの通信プロトコルの変更}}{8}} +\@writefile{toc}{\contentsline {section}{\numberline {6}\hskip 1zw{評価と考察}}{8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}{メッセージ伝達速度の比較}}{8}} \newlabel{tb:mesure}{{1}{9}} -\newlabel{src:Mesurement}{{9}{10}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}到達時間・木の段数の計測方法}{10}} +\newlabel{fig:TreeVNC_delay}{{6}{9}} +\newlabel{fig:AliceVNC_notcompress_delay}{{7}{9}} +\newlabel{fig:AliceVNC_compress_delay}{{8}{9}} \citation{complaxy} -\newlabel{fig:TreeVNC_delay}{{9}{11}} -\newlabel{fig:AliceVNC_notcompress_delay}{{10}{11}} -\newlabel{fig:AliceVNC_compress_delay}{{11}{11}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}{コードの比較}}{11}} -\newlabel{tb:code}{{2}{11}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}{コードの比較}}{10}} +\newlabel{tb:code}{{2}{10}} +\newlabel{tb:complex}{{3}{10}} \citation{Erlang} \citation{Akka} -\newlabel{tb:complex}{{3}{12}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}{他言語・フレームワークとの比較}}{12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}{他言語・フレームワークとの比較}}{11}} +\@writefile{toc}{\contentsline {section}{\numberline {7}\hskip 1zw{まとめ}}{11}} \citation{*} \bibstyle{ipsjunsrt} \bibdata{prosym} \bibcite{senkokenkyu}{1} -\bibcite{treeVNC}{2} -\bibcite{dot}{3} -\bibcite{tightVNC}{4} -\@writefile{toc}{\contentsline {section}{\numberline {7}\hskip 1zw{まとめ}}{13}} -\newlabel{fig:overNAT}{{12}{13}} -\bibcite{MessagePack}{5} -\bibcite{complaxy}{6} -\bibcite{Erlang}{7} -\bibcite{Akka}{8} -\newlabel{ipsj@lastpage}{{}{14}} +\bibcite{senkokenkyu2}{2} +\bibcite{treeVNC}{3} +\bibcite{dot}{4} +\bibcite{tightVNC}{5} +\bibcite{MessagePack}{6} +\bibcite{complaxy}{7} +\bibcite{Erlang}{8} +\bibcite{Akka}{9} +\newlabel{fig:overNAT}{{9}{12}} +\newlabel{ipsj@lastpage}{{}{12}}
--- a/paper-last/prosym.bbl Mon Nov 30 18:35:42 2015 +0900 +++ b/paper-last/prosym.bbl Tue Dec 01 00:07:29 2015 +0900 @@ -4,6 +4,11 @@ {Yu SUGIMOTO and Shinji KONO}: Code Segment と Data Segment によるプログラミング手法,第54回プログラミング・シンポジウム (2013). +\bibitem{senkokenkyu2} +{Yu SUGIMOTO and Shinji KONO}: + 分散フレームワークAliceのDataSegmentの更新に関する改良,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS) + (2013). + \bibitem{treeVNC} {Yu TANINARI, Nobuyasu OSHIRO and Shinji KONO}: VNCを用いた授業用画面共有システムの設計・開発,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
--- a/paper-last/prosym.bib Mon Nov 30 18:35:42 2015 +0900 +++ b/paper-last/prosym.bib Tue Dec 01 00:07:29 2015 +0900 @@ -22,6 +22,13 @@ year = 2013 } +@article{senkokenkyu2, + author = "{Yu SUGIMOTO and Shinji KONO}", + title = "分散フレームワークAliceのDataSegmentの更新に関する改良 ", + journal = " 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)", + year = 2013 +} + @Misc{Erlang, title = "Erlang", howpublished = "\url{http://www.erlang.org/}",
--- a/paper-last/prosym.blg Mon Nov 30 18:35:42 2015 +0900 +++ b/paper-last/prosym.blg Tue Dec 01 00:07:29 2015 +0900 @@ -5,6 +5,8 @@ Database file #1: prosym.bib Warning--there's no number and/or volumesenkokenkyu Warning--Missing required argument pages in senkokenkyu +Warning--there's no number and/or volumesenkokenkyu2 +Warning--Missing required argument pages in senkokenkyu2 Warning--there's no number and/or volumetreeVNC Warning--Missing required argument pages in treeVNC Warning--Missing required argument author in dot @@ -15,36 +17,36 @@ Warning--Missing required argument author in Erlang Warning--there's no number and/or volumeAkka Warning--Missing required argument pages in Akka -You've used 8 entries, +You've used 9 entries, 2207 wiz_defined-function locations, - 566 strings with 4799 characters, -and the built_in function-call counts, 1051 in all, are: -= -- 57 -> -- 23 + 568 strings with 4865 characters, +and the built_in function-call counts, 1204 in all, are: += -- 66 +> -- 27 < -- 0 -+ -- 13 -- -- 5 -* -- 76 -:= -- 149 -add.period$ -- 8 -call.type$ -- 8 ++ -- 15 +- -- 6 +* -- 88 +:= -- 173 +add.period$ -- 9 +call.type$ -- 9 change.case$ -- 0 chr.to.int$ -- 0 -cite$ -- 20 -duplicate$ -- 65 -empty$ -- 137 -format.name$ -- 10 -if$ -- 242 +cite$ -- 23 +duplicate$ -- 75 +empty$ -- 155 +format.name$ -- 12 +if$ -- 276 int.to.chr$ -- 0 -int.to.str$ -- 8 -missing$ -- 4 -newline$ -- 27 -num.names$ -- 4 -pop$ -- 33 +int.to.str$ -- 9 +missing$ -- 5 +newline$ -- 30 +num.names$ -- 5 +pop$ -- 36 preamble$ -- 1 purify$ -- 0 quote$ -- 0 -skip$ -- 54 +skip$ -- 62 stack$ -- 0 substring$ -- 0 swap$ -- 2 @@ -52,9 +54,9 @@ text.prefix$ -- 0 top$ -- 0 type$ -- 0 -warning$ -- 12 -while$ -- 4 -width$ -- 9 -write$ -- 54 -is.kanji.str$ -- 26 -(There were 12 warnings) +warning$ -- 14 +while$ -- 5 +width$ -- 10 +write$ -- 61 +is.kanji.str$ -- 30 +(There were 14 warnings)
--- a/paper-last/prosym.log Mon Nov 30 18:35:42 2015 +0900 +++ b/paper-last/prosym.log Tue Dec 01 00:07:29 2015 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2014.4.14) 30 NOV 2015 17:59 +This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2014.4.14) 1 DEC 2015 00:00 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -205,22 +205,22 @@ (Font) Font shape `JY1/gt/m/n' tried instead on input line 81. File: images/remote_datasegment.pdf Graphic file (type pdf) <images/remote_datasegment.pdf> -Underfull \hbox (badness 10000) in paragraph at lines 114--115 +Underfull \hbox (badness 10000) in paragraph at lines 117--118 []\OT1/cmtt/m/n/9.61035 void put(String managerKey, String [] -Underfull \hbox (badness 10000) in paragraph at lines 118--119 +Underfull \hbox (badness 10000) in paragraph at lines 121--122 []\OT1/cmtt/m/n/9.61035 void update(String managerKey, String [] +[2] +Underfull \hbox (badness 10000) in paragraph at lines 126--127 +[]\OT1/cmtt/m/n/9.61035 void take(String managerKey, String + [] + -Underfull \hbox (badness 10000) in paragraph at lines 123--124 -[]\OT1/cmtt/m/n/9.61035 void take(String managerKey, String - [] - -[2] -Underfull \hbox (badness 10000) in paragraph at lines 128--129 +Underfull \hbox (badness 10000) in paragraph at lines 131--132 []\OT1/cmtt/m/n/9.61035 void peek(String managerKey, String [] @@ -234,11 +234,12 @@ (Font) Font shape `OMS/cmsy/m/n' tried instead on input line 1. ) (./source/TestCodeSegment.java) [3] -Overfull \hbox (24.42479pt too wide) in paragraph at lines 172--173 +Overfull \hbox (24.42479pt too wide) in paragraph at lines 176--177 []\OT1/cmtt/m/n/9.61035 void setKey(String managerKey, String key) [] -(./source/TopologyFile.dot +File: images/metaCS.pdf Graphic file (type pdf) +<images/metaCS.pdf> (./source/TopologyFile.dot LaTeX Font Info: Calculating math sizes for size <8.8711> on input line 2. LaTeX Font Info: Try loading font information for OML+cmr on input line 2. @@ -247,85 +248,64 @@ ) LaTeX Font Info: Font shape `OML/cmr/m/n' in size <8.8711> not available (Font) Font shape `OML/cmm/m/it' tried instead on input line 2. -) +) [4] File: images/topologymanager.pdf Graphic file (type pdf) -<images/topologymanager.pdf> [4] [5] -File: images/TopologyFix.pdf Graphic file (type pdf) - <images/TopologyFix.pdf> -File: images/TopologyFix2.pdf Graphic file (type pdf) +<images/topologymanager.pdf> -<images/TopologyFix2.pdf> -File: images/TopologyFix3.pdf Graphic file (type pdf) - <images/TopologyFix3.pdf> -(./source/RegisterEvent.java) [6] +LaTeX Warning: `h' float specifier changed to `ht'. + +[5] (./source/RegisterEvent.java) File: images/TreeVNC.pdf Graphic file (type pdf) <images/TreeVNC.pdf> -Overfull \hbox (21.64644pt too wide) in paragraph at lines 291--292 +Overfull \hbox (21.64644pt too wide) in paragraph at lines 288--289 [] [] -[7] (./source/ReceiveData.java) (./source/beforeCompress.java) -(./source/afterCompress.java) (./source/asClass.java) [8] -File: images/delay.pdf Graphic file (type pdf) - <images/delay.pdf> -Overfull \hbox (14.02144pt too wide) in paragraph at lines 415--426 +[6] (./source/ReceiveData.java) (./source/beforeCompress.java) +(./source/afterCompress.java) [7] [8] +Overfull \hbox (14.02144pt too wide) in paragraph at lines 406--417 [] [] - -LaTeX Warning: Reference `src:mesurement' on page 9 undefined on input line 432 -. +File: images/TreeVNC_depth3.pdf Graphic file (type pdf) +<images/TreeVNC_depth3.pdf> +File: images/AliceVNC_notcompress_depth3.pdf Graphic file (type pdf) + <images/AliceVNC_notcompress_depth3.pdf> +File: images/AliceVNC_compress_depth3.pdf Graphic file (type pdf) -[9] (./source/mesurement.java) [10] -File: images/TreeVNC_depth3.pdf Graphic file (type pdf) - <images/TreeVNC_depth3.pdf> -File: images/AliceVNC_notcompress_depth3.pdf Graphic file (type pdf) - -<images/AliceVNC_notcompress_depth3.pdf> -File: images/AliceVNC_compress_depth3.pdf Graphic file (type pdf) - <images/AliceVNC_compress_depth3.pdf> -[11] -Underfull \hbox (badness 10000) in paragraph at lines 526--528 +<images/AliceVNC_compress_depth3.pdf> [9] +Underfull \hbox (badness 10000) in paragraph at lines 515--517 []\OT1/cmr/m/n/9.61035 TreeVNC \JY1/mc/m/n/9.61035 で最高値を出した \OT1/cmr/m/ n/9.61035 TreeRF- [] -Underfull \hbox (badness 4899) in paragraph at lines 529--530 +Underfull \hbox (badness 4899) in paragraph at lines 518--519 []\OT1/cmr/m/n/9.61035 AliceVNC \JY1/mc/m/n/9.61035 で複雑度の最高値を出した [] -Underfull \hbox (badness 10000) in paragraph at lines 529--530 +Underfull \hbox (badness 10000) in paragraph at lines 518--519 \OT1/cmr/m/n/9.61035 SwingView-er-Win-dow.class \JY1/mc/m/n/9.61035 は \OT1/cmr /m/n/9.61035 TightVNC \JY1/mc/m/n/9.61035 で [] -[12] +[10] [11] File: images/overNAT.pdf Graphic file (type pdf) <images/overNAT.pdf> -Overfull \hbox (7.42006pt too wide) in paragraph at lines 598--599 +Overfull \hbox (7.42006pt too wide) in paragraph at lines 587--588 [] [] - -LaTeX Warning: `h' float specifier changed to `ht'. - -(./prosym.bbl [13]) [14 - -] (./prosym.aux) - -LaTeX Warning: There were undefined references. - - ) +(./prosym.bbl) [12] (./prosym.aux) ) Here is how much of TeX's memory you used: - 3003 strings out of 494008 - 42295 string characters out of 6154472 + 2972 strings out of 494008 + 41850 string characters out of 6154472 197596 words of memory out of 5000000 - 6418 multiletter control sequences out of 15000+600000 + 6396 multiletter control sequences out of 15000+600000 28134 words of font info for 117 fonts, out of 8000000 for 9000 745 hyphenation exceptions out of 8191 30i,9n,40p,280b,1426s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on prosym.dvi (14 pages, 83384 bytes). +Output written on prosym.dvi (12 pages, 80604 bytes).
--- a/paper-last/prosym.tex Mon Nov 30 18:35:42 2015 +0900 +++ b/paper-last/prosym.tex Tue Dec 01 00:07:29 2015 +0900 @@ -35,7 +35,7 @@ \title{分散フレームワークAliceのPC画面配信システムへの応用} \affiliate{IE}{琉球大学工学部情報工学科} \author{照屋 のぞみ}{Nozomi Teruya}{IE} -\author{河野 真治}{Shinji Kono, kono@ie.u-ryukyu.ac.jp}{IE} +\author{河野 真治}{Shinji Kono}{IE}[kono@ie.u-ryukyu.ac.jp] \begin{abstract} 当研究室ではデータを Data Segment、タスクを Code Segment という単位で分割して記述する手法を提唱しており、それに基づく並列分散フレームワークAliceを開発している。 @@ -52,7 +52,7 @@ % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{研究背景と目的} -当研究室ではデータをData Segment、タスクをCode Segmentという単位で記述する分散フレームワークAlice\cite{senkokenkyu} の開発を行っている。 +当研究室ではデータをData Segment、タスクをCode Segmentという単位で記述する分散フレームワークAlice\cite{senkokenkyu}\cite{senkokenkyu2} の開発を行っている。 Aliceではスケーラブルな分散プログラムを信頼性高く記述できる環境を実現する。 ここで言う信頼性とは、定められた環境下で安定して仕様に従った動作を行うことを指す。 @@ -61,12 +61,11 @@ プログラマはコアな仕様の変更を抑えつつプログラムの挙動変更ができるため、信頼性の高い分散アプリケーションの記述が可能となる。 本研究では、Alice上に実用的な分散アプリケーションの例題である画面共有システムTreeVNC \cite{treeVNC} を構築する。 -画面変更の差分を木構造にそって配布する分散システムで、差分は数MByteに達するので圧縮を行う必要がある。 -ノード間の転送では複製を可能な限り避ける必要がある。表示時には伸長したデータを取り扱うことになる。 -差分データはData Segementに対応するが、圧縮やゼロコピー転送の機能が必要なる。 -これらの機能はTreeVNCではad-hocに実装されているが、 -Aliceでは、これをMeta Computationとして実装する。 -TreeVNCとの比較を行うことでAlice の実用性を示すと共にAlice のMeta Computationの役割と有効性を示す。 +TreeVNCは画面変更の差分を木構造にそって配布する分散システムで、差分は数MByteに達するので圧縮を行う必要がある。そして表示時には伸長したデータを取り扱わなければならない。 +また、データのノード間の転送では複製を可能な限り避ける必要がある。 +差分データはAliceのData Segementに対応するため、Data Segmentを扱うAliceの機能として圧縮やゼロコピー転送の機能が必要なる。 +これらの機能はTreeVNCではad-hocに実装されているが、AliceではこれをMeta Computationとして実装する。 +そして、TreeVNCとの比較を行うことでAlice の実用性を示すと共にAlice のMeta Computationの役割と有効性を示す。 \section{分散フレームワークAlice} \subsection{Code Segment と Data Segment} @@ -86,16 +85,17 @@ AliceはJavaで実装されており、DSはJava Objectに相当する。CSはRunnableなObject(void run()を持つObject)に相当する。 プログラマがCSを記述する際は、CodeSegmentクラスを継承する。 -DSは数値や文字列などの基本的なデータの集まりを指し、Aliceが内部にもつデータベースによって管理されている。このデータベースをAliceではDS Manager(以下DSM)と呼ぶ。 +DSは数値や文字列などの基本的なデータの集まりを指し、Aliceが内部にもつデータベースによって管理されている。このデータベースをAliceではDS Managerと呼ぶ。 -CSは複数のData Segment Managerを持っている。それぞれのManagerにString型のkeyを指定してData Segmentにアクセスする。 +CSは複数のDS Managerを持っている。DSには対になるString型のkeyが存在し、それぞれのManagerにkeyを指定してDSにアクセスする。 一つのkeyに対して複数のDSをputするとFIFO的に処理される。なのでData Segment Managerは通常のデータベースとは異なる。 -\subsection{DataSegmentManager} +\subsection{Data Segment Manager} -DSMにはLocal DSMとRemote DSMが存在する。Local DSMは各ノード固有のデータベースである。 +DS Manager(以下DSM)にはLocal DSMとRemote DSMが存在する。Local DSMは各ノード固有のデータベースである。 Remote DSMは他ノードのLocal DSMに対応するproxyであり、接続しているノードの数だけ存在する(図 \ref{fig:Remote DSM} )。 他ノードのLocal DSMに書き込みたい場合はRemote DSMに対して書き込めば良い。 + Remote DSMを立ち上げるには、DataSegmentクラスが提供するconnectメソッドを用いる。 接続したいノードのipアドレスとport番号、そして任意のManager名を指定することで立ちあげられる。その後はManager名を指定してData Segment APIを用いてDSのやり取りを行うため、プログラマはManager名さえ意識すればLocalへの操作もRemoteへの操作も同じ様に扱える。 @@ -152,18 +152,17 @@ TestCodeSegmentはこの"cnt"というkeyに対して依存関係があり、8行目でputが行われるとTestCodeSegmentは実行される。 +CSのInput DSは、CSの作成時に指定する必要がある。指定はCommandType(PEEKかTAKE)、DSM名、そしてkey よって行われる。 +Input DS API はCSの{\tt ids}というフィールドを用いてアクセスする。 +Output DSは、{\tt ods}が提供するput/updateメソッドをそのまま呼べばよかったが、Input DSの場合{\tt ids}にpeek/takeメソッドはなく、create/setKeyメソッド内でCommandTypeを指定して実行する。 + ソースコード\ref{src:CodeSegment}は、0から9までインクリメントする例題である。 -CSのInput Data Segement はCSの作成時に指定する必要がある。指定はCommandType(PEEKかTAKE)、DSMを指定する文字列("local","remote")、それから、 -key よって行われる。 -Input DS APIがもつcreateメソッドを使うことでInput DSを格納する受け皿(Receiver)を作る。 +2行目では、Input DS APIがもつcreateメソッドでInput DSを格納する受け皿(Receiver)を作っている。 +引数には{\tt PEEK}または{\tt TAKE}を指定する。 \begin{itemize} \item {\ttfamily Receiver create(CommandType type)} \end{itemize} -引数にはCommandTypeが取られ、指定できるCommandTypeは{\tt PEEK}または{\tt TAKE}である。 -Input DS API はCSの{\tt ids}というフィールドを用いてアクセスする。 -Output DSは、{\tt ods}が提供するput/updateメソッドをそのまま呼べばよかったが、Input DSの場合{\tt ids}にpeek/takeメソッドはなく、create/setKeyメソッド内でCommandTypeを指定して実行する。 - 4行目から6行目はコンストラクタである。コンストラクタはオブジェクト指向のプログラミング言語で新たなオブジェクトを生成する際に呼び出されて内容の初期化を行う関数である。 % TestCodeSegmentのコンストラクタが呼ばれた際には、 @@ -172,7 +171,7 @@ % \item 5行目にあるTestCodeSegmentのコンストラクタのTAKEが実行される。 % \end{enumerate} -5行目はInput DS APIがもつsetKeyメソッドによりLocal DSMからDSを取得している。 +5行目は、2行目のcreateで作られたReceiverが提供するsetKeyメソッドを用いてLocal DSMからDSを取得している。 \begin{itemize} \item \verb+void setKey(String managerKey, String key)+ \end{itemize} @@ -198,8 +197,22 @@ AliceではMeta Computationとして分散環境の構築等の機能を提供するため、プログラマはCSを記述する際にトポロジー構成や切断、再接続という状況を予め想定した処理にする必要はない。 プログラマは目的の処理だけ記述し、切断や再接続が起こった場合の処理をMeta Computationとして指定する。 このようにプログラムすることで、通常処理と例外処理を分離することができるため、仕様の変更を抑えたシンプルなプログラムを記述できる。 + +Meta Computationは、CSの処理を支えるMeta CSと、Meta CSに管理されるMeta DSとしても考えられる。 +図\ref{fig:metaCS}は、AliceのMeta CS/Meta DSの接続関係の例である。 +プログラマ側はCSとDSの依存関係を記述するが、その裏ではMeta CSやMeta DSが間に接続されて処理を行っている。 + +\begin{figure}[h] + \begin{center} + \includegraphics[width=70mm]{images/metaCS.pdf} + \end{center} + \caption{CS/DSの間にMetaCS/MetaDSが接続される} + \label{fig:metaCS} +\end{figure} + 現在Aliceには、動的・静的トポロジーの管理構成機能、ノードとの接続状態確認機能、切断・再接続時の処理を指定できる機能など、分散環境の実現に必要なさまざまなMeta Computationが用意されている。 + \textbf{Topology Manager} @@ -231,6 +244,8 @@ 現在Topology Managerでは動的なトポロジータイプとして二分木に対応している。 + + \textbf{KeepAlive} ノード間通信はRemote DSMに対してputやtakeを行うことでのみ発生する。 @@ -242,32 +257,9 @@ また、トポロジーからノードが切断された際にトポロジーを再構成する機能もTopology Managerに用意した。 例えばツリートポロジーでノードが切断された場合、そのノードの子ノードは全体のトポロジーから分断されてしまう。 -ノードは切断を検知するとただちにTopology Managerに再接続すべきノード情報を要求し、木を構成し直す(図\ref{fig:topfix1} 〜 \ref{fig:topfix3})。 +ノードは切断を検知するとただちにTopology Managerに再接続すべきノード情報を要求し、木を構成し直す。 + \newpage -\begin{figure}[h] -\begin{center} -\includegraphics[width=70mm]{images/TopologyFix.pdf} -\end{center} -\caption{切断ノードの検知} -\label{fig:topfix1} -\end{figure} -\begin{figure}[h] -\begin{center} -\includegraphics[width=70mm]{images/TopologyFix2.pdf} -\end{center} -\caption{接続すべきノード情報の送信} -\label{fig:topfix2} -\end{figure} -\begin{figure}[h] -\begin{center} -\includegraphics[width=70mm]{images/TopologyFix3.pdf} -\end{center} -\caption{再構成の完了} -\label{fig:topfix3} -\end{figure} -\newpage - - \textbf{切断・再接続時の処理} @@ -324,7 +316,7 @@ 圧縮状態のまま子ノードに送信ができれば、解凍・再圧縮するオーバーヘッドを無くすことができる。 そこで、1つのData Segmentに対し複数の表現を持たせ、必要に応じた形式でDSを扱うことを可能にした。 -DSのMeta Computationに相当するReceiveDataクラスに、次の3種類の表現を同時に持つことができるようにしたことで、データの多態性を実現した。 +Meta DSに相当するReceiveData.classに、次の3種類の表現を同時に持つことができるようにしたことで、データの多態性を実現した。 \begin{enumerate} \item 一般的なJavaのクラスオブジェクト @@ -341,6 +333,7 @@ {\tt val}に(1) 一般的なJavaのクラスオブジェクト の表現でデータ本体が保存される。 {\tt messagePack}には(2) シリアライズ化されたバイナリオブジェクトが保存される。 そして、{\tt zMessagePack}には(3) 圧縮されたバイナリオブジェクトが保存される。 +このようにDSが複数の表現を同時に保持することで、DSが圧縮表現を持っている場合に再圧縮する必要はない。 \begin{table}[html] \lstinputlisting[label=src:ReceiveData, caption=データを表現するクラス]{source/ReceiveData.java} @@ -364,18 +357,13 @@ ノードは圧縮されたDSを受け取った後、そのまま子ノードにflipメソッドで転送すれば圧縮状態のまま送信されるので、送信の際の再圧縮がなくなる。 -画面表示の際はReceiveData.class内のasClassメソッド(ソースコード\ref {src:asClass} )を使うことで適切な形式でデータを取得できる。 +画面表示の際はReceiveData.class内のasClassメソッドを使うことで適切な形式でデータを取得できる。 asClassメソッドはDSを目的の型にcastするためのメソッドである。 AliceVNCで圧縮形式を指定してDSを送信すると、それを受け取るDSMは圧縮形式のみを持ったDSとして保存する。 そしてasClassメソッドが呼ばれて初めて、メソッド内で解凍してcastが行われDSが複数の表現を同時に持つようになる。 これによりDSの表現を必要になったときに作成できるため、プログラマはどんな形式でDSを受け取ってもDSを編集可能な形式として扱うことができる。 また、複数表現は必要なときにしか作成されないため、メモリ使用量も必要最低限に抑えることができる。 - -\begin{table}[html] -\lstinputlisting[label=src:asClass, caption=asClassの処理]{source/asClass.java} -\end{table} - \subsection{Aliceの通信プロトコルの変更} 5.2で述べたように、Remoteからputされたデータは必ずシリアライズ化されておりbyteArrayで表現される。 しかし、データの表現に圧縮したbyteArrayを追加したため、RemoteからputされたbyteArrayが圧縮されているのかそうでないのかを判別がつかなくなった。 @@ -386,7 +374,7 @@ \section{評価と考察} TreeVNCをAlice上で構築するために必要な機能をAliceのMeta Computationとして実装した。 -それにより、AliceVNCが簡潔な記述でTreeVNCと同等の性能を出せれば、実用的な分散アプリケーションの実装においてAliceのMeta Computationは有用であるといえる。 +これにより、AliceVNCが簡潔な記述でTreeVNCと同等の性能を出せれば、実用的な分散アプリケーションの実装においてAliceのMeta Computationは有用であるといえる。 そこで、TreeVNCとAliceVNCの性能評価としてメッセージ伝達速度の比較を、コードの評価としてコード量とその複雑度の比較を行った。 また、AliceのMeta Computationの価値を明確にするため、他言語・フレームワークとの比較を行った。 @@ -395,24 +383,22 @@ TreeVNC/AliceVNCにおいて、配信する画像データは構成した木を伝ってノードに伝搬され、接続する人数が増える毎に木の段数は増えていく。 そこで、木の段数ごとにメッセージの到達にどれぐらい時間がかかっているかを計測した。 + + \textbf{実験環境} 講義内で学生に協力してもらい、最大17名の接続がある中でTreeVNC、AliceVNC(圧縮・転送機能あり)、AliceVNC(圧縮・転送機能なし)の木の段数1〜3の測定を行った。 + + \textbf{実験内容} ルートノードから画面データを子ノードに伝搬する際に、計測用のヘッダをつけたパケットを子ノードに送信する。 -各子ノードはパケットを受け取り自身のViewerに画面データを表示すると同時に、計測用ヘッダ部分のみのDSを作成し、親ノードに送り返す(図 \ref{fig:mesure}) 。 +各子ノードはパケットを受け取り自身のViewerに画面データを表示すると同時に、計測用ヘッダ部分のみのDSを作成し、親ノードに送り返す。 計測用DSは木を伝ってルートノードまで送り返され、ルートノードは受け取った計測用DSから到達時間を計算する。 -\begin{figure}[h] - \begin{center} - \includegraphics[width=70mm]{images/delay.pdf} - \end{center} - \caption{各ノードごとに到達時間を測定} - \label{fig:mesure} -\end{figure} 計測用のヘッダは以下の要素で構成されている。 +\newpage \begin{table}[htbp] \caption{計測用ヘッダの変数名の説明} \label{tb:mesure} @@ -434,28 +420,21 @@ 今回、TreeVNCとAliceVNC(圧縮・転送機能あり)では圧縮形式の画面データのサイズを、AliceVNC(圧縮・転送機能なし)ではMessegePack形式でのサイズをdataSizeにセットする。 depthは各ノードに到達するごとにインクリメントされる。 -計算方法をソースコード \ref{src:mesurement}に示す。 -到達時間は、計測用DSを受け取った時刻とDSのtime(送信した時刻)の差をとる。 +到達時間の計算方法は、計測用DSを受け取った時刻とDSのtime(送信した時刻)の差をとる。 この到達時間は画面データがノードまで到達した時間と計測DSをルートまで送り返す時間を含めているが、送り返す時間は誤差として考える。 また、depthは各ノードに到達するごとにインクリメントされるため、送り返す際もインクリメントされる。そのため、木の段数を計算するにはdepthを1/2した値となる。 -\begin{table}[html] -\lstinputlisting[label=src:Mesurement, caption=到達時間・木の段数の計測方法]{source/mesurement.java} -\end{table} + \textbf{実験結果} -3段目の測定結果の散布図を示す(図\ref{fig:TreeVNC_delay} 〜 \ref{fig:AliceVNC_notcompress_delay})。 +3段目の測定結果の散布図を示す(図\ref{fig:TreeVNC_delay} 〜 \ref{fig:AliceVNC_compress_delay})。 X軸が画面データのサイズ(byte)、Y軸が計算した到達時間(ms)である。 実験時間の都合上、AliceVNC(圧縮・転送機能あり)の計測時間が他より短くなってしまったためプロットされた点の数が少なくなっている。 また、それぞれの図で処理に10000ms以上かかっている点の集合が見られるが、これは今回の実験において3段目にPCのスペック上処理が遅いノードが1台あったためである。そのため比較においてこの点集合は無視する。 どの図も同様の傾向があり、画面データのサイズが小さいうちは処理時間も5ms程度だが、50000byte以上から比例して処理時間も遅くなっている。このことからAliceVNCはTreeVNCと同等の処理性能があることがわかる。 -また、AliceVNCを圧縮機能の有無でデータサイズ比較すると、圧縮機能のないAliceVNCはデータサイズがほとんど1000byte以上なのに対し、圧縮機能のあるAliceVNCではTreeVNC同様10byte程度のサイズに抑えるので圧縮も成功している。 - -さらに転送機能の有無で比較した場合、転送機能がないAliceVNCでは木の段数に関係なく1000ms近く到達に時間がかかってしまっているが、転送機能のあるAliceVNCではデータサイズが大きくなっても100ms程度に抑えられている。これは転送機能が余計なコピーを防いでいるためだと考えられる。 -このことから、圧縮・転送のMeta Computationは分散通信において有用であると言える。 \newpage \begin{figure}[h] \begin{center} @@ -482,6 +461,11 @@ \end{figure} \newpage + +また、AliceVNCを圧縮機能の有無でデータサイズ比較すると、圧縮機能のないAliceVNCはデータサイズがほとんど1000byte以上なのに対し、圧縮機能のあるAliceVNCではTreeVNC同様10byte程度のサイズに抑えるので圧縮も成功している。 + +さらに転送機能の有無で比較した場合、転送機能がないAliceVNCでは木の段数に関係なく1000ms近く到達に時間がかかってしまっているが、転送機能のあるAliceVNCではデータサイズが大きくなっても100ms程度に抑えられている。これは転送機能が余計なコピーを防いでいるためだと考えられる。 +このことから、圧縮・転送のMeta Computationは分散通信において有用であると言える。 \subsection{コードの比較} \textbf{コード量} @@ -511,7 +495,7 @@ \end{center} \end{table} - + \textbf{コードの複雑度} コード量の比較で述べたように、TreeVNCはTightVNCからの変更が多い。 @@ -585,12 +569,12 @@ 分散通信部分を子アクターに分離し、親アクターは子アクターのExceptionが発生した時に再起動や終了といった処理を指定できる。 さらにRouterという子アクターへのメッセージの流れを制御するアクターや、Dispatcherというアクターへのスレッドの割当を管理する機能をAkkaが提供している。 このように処理を階層化し複雑な処理をフレームワーク側が提供する仕組みはAliceのMeta Computationと共通している。 -相違点としては、AliceのMeta Computationでは圧縮機能のようにデータに対するMeta Computationも扱っている点が挙げられる。 +相違点としては、AliceのMeta DSのようにデータの多態性を実現する機能はAkkaにはない。 \section{まとめ} 並列分散フレームワークAliceでは、スケーラブルかつ信頼性の高いプログラムを記述する環境を実現するため、CS/DSの計算モデルとMeta Computationによる実装の階層化を採用している。 -Aliceが実用的な分散アプリケーションを記述するために必要なMeta Computationとして、動的なトポロジー管理・構成機能や多態性を持つデータを扱う機能、データを無駄なコピーをすることなく転送する機能などを実装した。 +Aliceが実用的な分散アプリケーションを記述するために必要なMeta Computationとして、多態性を持つデータを扱う機能や無駄なコピーなくデータを転送する機能を実装した。 そしてMeta Computationを用いて分散アプリケーションTreeVNCをAlice上で実装し性能評価を行った。 その結果、TreeVNCで使用される基本機能はAliceでも実現でき、同等の性能を出すことができるということが分かった。 またコードの観点からTreeVNCとAliceVNCを比較した結果、Aliceが仕様の変更を抑えたシンプルな記述を実現し、信頼性の高い実用的な分散アプリケーションを構築するに有用であることが確認された。