Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Webサーバの高集積マルチテナント アーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers
MATSUMOTO Ryosuke
PRO
May 23, 2017
Research
2
1.3k
Webサーバの高集積マルチテナント アーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers
松本亮介
2017年4月25日
2017年度 京都大学大学院 情報学研究科 博士課程 公聴会
MATSUMOTO Ryosuke
PRO
May 23, 2017
Tweet
Share
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
matsumoto_r
PRO
1
180
matsumoto_r
PRO
7
1.8k
matsumoto_r
PRO
0
410
matsumoto_r
PRO
3
3k
matsumoto_r
PRO
4
300
matsumoto_r
PRO
1
580
matsumoto_r
PRO
1
340
matsumoto_r
PRO
0
560
matsumoto_r
PRO
0
140
Other Decks in Research
See All in Research
future_tamaki
0
610
yushiku
3
3.5k
yuukit
0
1.1k
rkrokee
0
220
waptech
5
550
ttsunoda
0
790
kamicup
0
170
truerichesradio
0
140
chokkan
1
3.5k
butsugiri
1
170
shimacos
0
550
oshinko90yen
1
510
Featured
See All Featured
destraynor
223
47k
marcelosomers
220
15k
tmm1
61
8.4k
roundedbygravity
241
21k
vanstee
116
4.8k
lynnandtonic
270
16k
akmur
252
19k
jponch
103
5k
yeseniaperezcruz
302
31k
phodgson
87
3.9k
michaelherold
225
8.5k
sachag
446
36k
Transcript
4UVEJFTPO)JHIMZ*OUFHSBUFE.VMUJ5FOBOU"SDIJUFDUVSF GPS8FC4FSWFST দຊ྄հ ݄ ژେֶେֶӃใֶݚڀՊത࢜՝ఔެௌձ 8FCαʔόͷߴूੵϚϧνςφϯτ ΞʔΩςΫνϟʹؔ͢Δݚڀ
࣍ʢʣ ݚڀͷతͱҐஔ͚ͮ جຊ֓೦ͱؔ࿈ݚڀ ߴूੵ8FCϗεςΟϯάج൫ͷηΩϡϦςΟͱӡ༻ٕज़Λߟྀ ͨ͠ΞΫηε੍ޚΞʔΩςΫνϟ εϨου୯ҐͰߴʹݖݶΛߦ͏8FCαʔόͷΞΫηε੍
ޚΞʔΩςΫνϟ
࣍ʢʣ εΫϦϓτݴޠͰߴ͔ͭܰྔʹ֦ுՄೳͳ8FCαʔόͷػೳ ֦ுࢧԉΞʔΩςΫνϟ ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ͢ΔϦιʔε੍ ޚΞʔΩςΫνϟ ·ͱΊ
ୈষ ݚڀͷతͱҐஔ͚ͮ
ݚڀͷഎܠ wΫϥυ֤छ8FCαʔϏεͷීٴͱݸਓͷར༻ w8FCαʔϏεͷՁ֨Խͱ࣭ͷڝ૪ wӡ༻ٕज़ͷݚڀͱγεςϜͷ҆ఆԽ͕՝ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ wηΩϡϦςΟͱϗετͷऩ༰ޮ্͕ॏཁ
ݚڀͷత wߴूੵϚϧνςφϯτํࣜͷ՝Λཧɾղܾ wಛʹςφϯτͷίϯςϯπΛࣄۀऀ͕ཧͰ͖ͳ͍߹ ߴूੵϚϧνςφϯτؒͰͷݖݶͷ՝ղܾ ߴूੵϚϧνςφϯτํࣜͷػೳ֦ுͷ՝ղܾ ߴूੵϚϧνςφϯτؒͰͷϦιʔεͷ՝ղܾ
ݚڀͷҐஔ͚ͮ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ͓͍ͯίϯςϯ π੍͕ޚग़དྷͳ͍߹ͷෳͷ՝Λཧͯ͠ղܾ wߴूੵϚϧνςφϯτํࣜͷ8FCϗεςΟϯάʹண wମܥతʹϚϧνςφϯτํࣜͷैདྷख๏ͷ՝Λཧ wੑೳɾηΩϡϦςΟɾϦιʔε੍ޚɾӡ༻ٕज़ͷ؍Ͱղܾ w044ͱͯ͠ӡ༻ʹ͑͏Δ࣮Λߦ͍෯͘ར༻ͯ͘͠
ୈষ جຊ֓೦ͱؔ࿈ݚڀ
ߴूੵϚϧνςφϯτํࣜͷ՝Λཧ جຊ֓೦ ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝ 8FCαʔόػೳ֦ுͷ՝ 8FCαʔόͷϦιʔε੍ޚͷ՝
جຊ֓೦
Ϛϧνςφϯτํࣜ
8FCαʔόͷϚϧνςφϯτํࣜ w୯ҰͷαʔόʹෳͷϢʔβڥΛߏங͢Δํࣜ wӡ༻ίετͱऩ༰ʢϋʔυΣΞʣίετΛݮՄೳ w8FCίϯςϯπΛཧՄೳͳ߹࠾༻͍͢͠ wࣄۀऀ͕ίϯςϯπΛཧͰ͖ͳ͍߹ӡ༻͕ࠔ ߴूੵԽʹ͏ϗετؒͷϦιʔεڝ߹ੑೳͷ՝
8FCίϯςϯπͷཧͱϚϧνςφϯτ w8FCίϯςϯπΛࣄۀऀ͕ཧͰ͖Δ߹ 8FCίϯςϯπ͔ΒϦιʔεݖݶͷΛఆՄೳ w8FCίϯςϯπΛࣄۀऀ͕ཧͰ͖ͳ͍߹ ͋ΒΏΔίϯςϯπ͕ಈͨ͘Ίऩ༰ઃܭɾӡ༻͕ࠔ ੬ऑͳίϯςϯπ͕͋ΔલఏͰϦιʔεɾݖݶ͕ඞཁ
8FCϗεςΟϯάαʔϏε
8FCϗεςΟϯάαʔϏεͷಛ wࣄۀऀ͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍ wϛυϧΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ wͰ͖Δ͚ͩฏʹϢʔβମݧΛఏڙ͖͢ wڞ༗ͷ߹Ϧιʔε੍ޚηΩϡϦςΟ͕ॏཁ wੑೳͱऩ༰Λ͍͔ʹόϥϯεΛͱΔ͔ॏཁ
ݸਓ͚ͷ8FCαʔϏεͷ૿ՃͱՁ֨Խ wֶੜओ්ͱ͍ͬͨݸਓ͕झຯͰ͏༻్ͷ૿Ճ wϋʔυΣΞͷϗετऩ༰ͷ࠷େԽ͕ॏཁ wηΩϡϦςΟΛ୲อͭͭ͠ੑೳͱϋʔυΣΞϦιʔ εޮΛ࠷େԽ͢ΔͨΊʹιϑτΣΞٕज़Λ׆༻ ➜ɹຊݚڀͷ໘ന͍ͱ͜Ζ
ϚϧνςφϯτํࣜͷΞʔΩςΫνϟ
ϚϧνςφϯτํࣜͷΞʔΩςΫνϟ֓ཁ ߴूੵϚϧνςφϯτํࣜ8FCαʔόͷΞʔΩςΫνϟ ಈతίϯςϯπͷ࣮ߦํࣜ
ߴूੵϚϧνςφϯτํࣜͷ 8FCαʔόͷΞʔΩςΫνϟ
ϓϩηεͱऩ༰ϗετ͕ॏཁ wϓϩηε͕ϗετʹґଘ͠ͳ͍ߏ wෳαΠτڞ༗ͷ8FCαʔόϓϩηε͕ϦΫΤετ ͞Εͨϗετ໊͔ΒಈతʹίϯςϯπΛݕग़ͯ͠ॲཧ ͢Δํ͕ࣜߴूੵϚϧνςφϯτʹඞཁ ྫɿ"QBDIFͷ7JSUVBM)PTUػೳ
8FCαʔόͷجຊతͳϞσϧ 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF $IJMEIUUQEQSPDFTT PXOFSBQBDIF $IJMEIUUQEQSPDFTT PXOFSBQBDIF $MJFOU
ϦΫΤετ Ϩεϙϯε 6/*9ܥ04ͷ߹ࣄલʹϦΫΤετΛड͚Δ ϓϩηεΛෳGPSL ͯ͠ϓʔϧ͓ͯ͘͠ ʢ͜ΕΒશͯΛؚΊͯʮ୯Ұͷαʔόϓϩηεʯͱఆٛʣ ϦΫΤετ Ϩεϙϯε ϦΫΤετ Ϩεϙϯε
ߴूੵͷͨΊͷΞʔΩςΫνϟ IUUQE Ϣʔβ" IUUQE Ϣʔβ# IUUQE Ϣʔβ$ IUUQE Ϣʔβ" Ϣʔβ#
Ϣʔβ$ ޮྑ͘ϦιʔεΛ͑Δ ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁͳϦιʔε ߴूੵ͕ཁٻ͞ΕΔ߹ͷ Ϛϧνςφϯτʢຊݚڀʣ ϚϧνςφϯτͷผΞϓϩʔν
ಈతίϯςϯπͷ࣮ߦํࣜ
ಈతίϯςϯπͷ࣮ߦํࣜ $(*ʢ$PNNPO(BUFXBZ*OUFSGBDFʣ࣮ߦํࣜ %40ʢ%ZOBNJD4IBSFE0CKFDUʣ࣮ߦํࣜ
$(*࣮ߦํࣜ $(*QSPDFTT QIQDHJJOEFYQIQ $(*QSPDFTT GPSL UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT
PXOFSBQBDIF ϦΫΤετຖʹϓϩηεͷੜɾഁغͱ ൺֱతେ͖ͳόΠφϦʢ1)1ͩͱQIQDHJόΠφϦʣͷ FYFDWF ͕ඞཁ
%40࣮ߦํࣜ 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF JOEFYQIQ QBSTF SVO αʔόϓϩηεʹΠϯλϓϦλΛϥΠϒϥϦ
ͱͯ͠ΈࠐΜͰ͓͘
ಈతίϯςϯπͷ࣮ߦํࣜ w$(*࣮ߦํࣜ ΠϯλϓϦλͷෳόʔδϣϯΛ࣮ߦͰ͖Δ w%40࣮ߦํࣜ ੑೳߴ͍͕جຊతʹ୯Ұͷ8FCαʔόʹΠϯλ ϓϦλΛෳόʔδϣϯ࣋ͯͳ͍
ߴूੵϚϧνςφϯτํࣜͷ՝ wߴूੵΛ࣮ݱ͢Δ"QBDIFͷ7JSUVBM)PTUػೳͷΑ͏ͳ ΞʔΩςΫνϟϦιʔεޮ͕ྑ͍͕ෳ՝͕Δ ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝➜ 8FCαʔόͷػೳ֦ுͱ՝➜ 8FCαʔόͷϦιʔε੍ޚͱ՝➜
ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝
ӡ༻ٕज़ͱੑೳͷ՝ wϗετ୯ҐʹઃఆΛՃͯ͠ཧɾ੍ޚ͢Δӡ༻ wϗετͷ੩తઃఆʹΑΔϝϞϦͱಡࠐΈෛՙ૿େ ϖʔδςʔϒϧΤϯτϦ 15& ͷංେԽʹΑΓGPSL ͷ࣮ ߦॲཧ͕ඇৗʹ͍ ϓϩηεͷϦϩʔυ͔͔࣌ؒΔ߹༗Γ
ηΩϡϦςΟͱੑೳͷ՝ w$(*ํࣜͷΞΫηε੍ޚʹΑΔ੩తઃఆͷڧ੍ ϗετ୯ҐͰ੩తʹΦʔφ໊Λઃఆ͢Δඞཁ༗Γ ϗετʹґଘͨ͠ઃఆͱϝϞϦ༻ྔͷ૿Ճ wैདྷͷ%40ͷΞΫηε੍ޚͰ$(*ํࣜҎԼͷੑೳ wϗετͷ্ҐσΟϨΫτϦͷγεςϜྖҬͷӾཡ
$(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS ੩తʹઃఆ͞ΕͨVJEΛݩʹTFUVJE TFUHJE
GPSL FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF ˞$(* ैདྷͷΞΫηε੍ޚख๏ ϦΫΤετຖʹ$(*༻ϓϩηεͷ ੜഁغ͕ඞཁ
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO
$IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖʹࢠIUUQEϓϩηεͷੜഁغ͕ඞཁ ˞%40 ैདྷͷΞΫηε੍ޚख๏
ఏҊख๏
ӡ༻ٕज़ͱηΩϡϦςΟΛղܾ wͭͷΞΫηε੍ޚΞʔΩςΫνϟΛఏҊ w$(*ํࣜͰηΩϡϦςΟͱӡ༻ٕज़Λཱ྆͢ΔΞΫ ηε੍ޚΞʔΩςΫνϟ➜ষ w%40ํࣜͰηΩϡϦςΟͱੑೳΛཱ྆͢ΔΞΫηε ੍ޚΞʔΩςΫνϟ➜ষ
8FCαʔόͷػೳ֦ுͱ՝
8FCαʔϏεͷ҆ఆੑ্ͷ՝ wηΩϡϦςΟϦιʔεཧͷॏཁੑͷߴ·Γ wαʔϏεͷӡ༻ɾཧίετͷݮ͕ඞཁ wαʔϏεܗଶʹΑͬͯ8FCαʔόͷ࠷దԽ͕ඞཁ w8FCαʔόͷ֦ுػೳͷඞཁੑ͕૿Ճ
8FCαʔόͷػೳ֦ு͕ॏཁ wϨεϙϯεੜॲཧલޙʹॲཧΛࠩ͠ࠐΉ w8FCίϯςϯπʹґଘ͠ͳ͍ޮͷྑ͍ΞΫηε੍ ޚϦιʔεΛ࣮ݱՄೳ w8FCαʔϏεͷӡ༻ɾཧΛޮԽՄೳ w8FCαʔόͷઃఆ͚ͩͰղܾͰ͖ͳ͍՝ͷ૿Ճ
ैདྷͷ8FCαʔόͷػೳ֦ுख๏ w$ݴޠʹΑΔ࣮͕ఆ൪ ߴ͔ͭলϝϞϦ㱻อकੑੜ࢈ੑ͕͍ wεΫϦϓτݴޠʹΑΔ࣮ อकੑੜ࢈ੑ͕ߴ͍㱻ੑೳɾ҆શੑͷ
ఏҊख๏
εΫϦϓτͰߴ͔ͭ҆શʹ֦ுՄೳ w8FCαʔόϓϩηεͷΠϯλϓϦλΈࠐΈΛ࠷దԽ wߴूੵϚϧνςφϯτํࣜͰӡ༻อकΛߟྀͨ͠ػೳ ֦ுΞʔΩςΫνϟ͕ॏཁͰ͋Δ wੑೳ໘ͱ҆શੑΛཱ྆ͨ͠ΞʔΩςΫνϟͷઃܭͱੜ ࢈ੑΛߴΊΔ࣮➜ষ
8FCαʔόͷϦιʔε੍ޚͱ՝
ैདྷͷ8FCαʔόͷϦιʔε੍ޚ wϋʔυΣΞϦιʔεಉ࣌ଓͳͲΛ୯७ͳᮢ ॲཧͰ੍ݶ wᮢΛ͑ΔͱϦΫΤετॲཧΛڧ੍அɾڋ൱ wϦΫΤετΛड͚Δ͔ड͚ͳ͍͔ͷ୯७ͳ੍ޚ
ैདྷͷϦιʔε੍ޚͷ՝ αʔόͷෛՙΛݮ͢Δ͜ͱΛॏࢹ͢Δ͋·ΓϢʔβ ମݧΛେ͖͘ଛͳ͍ͬͯΔ ࠷େಉ࣌ଓҎԼͰҰͭͷϦΫΤετͰେྔʹϦ ιʔεΛ༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍ ੍ݶͷཻ͕ߥ͘ϗετؒͷϦιʔεڝ߹ʹΑΓշద ʹ͑ΔϢʔβͱ͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍
ఏҊख๏
ϦΫΤετ୯ҐͰϦιʔεΛ wϦΫΤετͷதஅͰͳ͘ܧଓతʹॲཧ͢Δख๏ wϦΫΤετ୯ҐͰϦΫΤετͷଐੑʹج͍ͯϦιʔε੍ޚ wཧऀ͕ෳࡶͳઃఆΛϓϩάϥϚϒϧʹදݱՄೳ wಛఆͷίϯϐϡʔλϦιʔεൣғͰॲཧ͢ΔΞʔΩς Ϋνϟ➜ষ
ୈষ ߴूੵ8FCϗεςΟϯάج൫ͷηΩϡϦςΟ ͱӡ༻ٕज़Λߟྀͨ͠ΞΫηε੍ޚΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ wಈతίϯςϯπ$(*ํࣜΛ͏ඞཁ͕͋Δ ෳόʔδϣϯͷΠϯλϓϦλΛѻ͍͍ͨ %40ํࣜͷΞΫηε੍ޚ$(*ఔͷੑೳʹͳΔ w੩తઃఆͷ૿ՃʹΑΔϝϞϦ༻ྔͷ૿େ wγεςϜྖҬͷӾཡෆՄͷͨΊͷઃఆίετ͕ߴ͍
ӡ༻໘ͱηΩϡϦςΟΛཱ྆͢ΔఏҊख๏ wϦΫΤετ͞ΕͨϑΝΠϧ͔ΒಈతʹPXOFSΛऔಘ ઃఆΛϗετͷʹ߹Θͤͯ૿͢ඞཁ͕ͳ͍ ϗετͷऩ༰ʹґଘͯ͠ϝϞϦ༻ྔ͕૿େ͠ͳ͍ 15&͕ංେԽͤͣGPSL ͷ࣮ߦॲཧ͕͘ͳΒͳ͍ wϑΝΠϧͷPXOFSʹΑΔݖݶͷࡍʹϑΝΠϧγεςϜΛ ߹Θִͤͯ
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO
˞%40 ैདྷͷΞΫηε੍ޚख๏ $IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜഁغ͕ඞཁ
$(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS ੩తʹઃఆ͞ΕͨVJEΛݩʹTFUVJE TFUHJE
GPSL FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF ϦΫΤετຖʹ$(*༻ϓϩηεͷ ੜഁغ͕ඞཁ ˞$(* ैདྷͷΞΫηε੍ޚख๏
$(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS DISPPU
ϦΫΤετϑΝΠϧ͔ΒVJEऔಘޙ TFUVJE TFUHJE GPSL FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF DISPPU&OWJSPONFOU ˞$(* ఏҊ͢ΔΞʔΩςΫνϟ
ੑೳධՁ w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮ wಉ࣌ଓΛมԽͤ͞ͳ͕ΒඵؒͷϨεϙϯεΛܭଌ w1)1ͰจࣈྻΛग़ྗ͢Δ͚ͩͷ$(*ϓϩάϥϜΛར༻ wैདྷख๏ͱఏҊख๏ͷੑೳΛධՁ
࣮ݧڥ
̏ষ·ͱΊ wӡ༻ٕज़ͱηΩϡϦςΟΛߟྀͨ͠$(*ͷ৽͍͠ΞʔΩςΫνϟΛఏҊ wैདྷͷΞʔΩςΫνϟͱಉͷੑೳͰΑΓηΩϡΞͰѻ͍͍༷͢ ߴूੵ࣌ʹ͓͍ͯઃఆʹԠͨ͡ϝϞϦ૿Ճ͕ੜ͡ͳ͍ͨΊ࣮ӡ༻ ্ߴʹಈ࡞Մೳ DISPPU͢ΔͨΊͷϢʔβڥͷߏஙผ్Ϣʔβຖʹඞཁ wߴूੵϚϧνςφϯτͷςφϯτ૿ՃΛߟྀͨ͠ΞʔΩςΫνϟ
ୈষ εϨου୯ҐͰߴʹݖݶΛߦ͏ WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ wষͷΞΫηε੍ޚΞʔΩςΫνϟӡ༻ੑʹண $(*ͷརʢෳόʔδϣϯͷఏڙʣΛߟྀ w%40൛ͷੑೳΛ׆͔͢ΞΫηε੍ޚख๏͕ແ͍ w࣮ߦํࣜΠϯλϓϦλ͕ಠࣗʹΞΫηε੍ޚख๏Λ ࣮͓ͯ͠Γࡶ
ߴूੵϚϧνςφϯτͱ$(*ɾ%40ͷੑೳ wੑೳ໘ʹ͓͍ͯ$(*ຊདྷద͍ͯ͠ͳ͍ ऩ༰͕૿͑ΔͱϓϩηεͷϝϞϦ༻ྔ͕૿͑GPSL ͷޮԼ ͦͦϦΫΤετ୯ҐͰGPSL ͢ΔͷͰ͍ w%40ຊདྷGPSL Λ࣮ߦ͠ͳ͍ͨΊߴʹಈ࡞͢Δ͕
ैདྷͷ%40ͷΞΫηε੍ޚϦΫΤετຖʹGPSL Λ࣮ߦ͢Δ
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO
˞%40 ैདྷͷΞΫηε੍ޚख๏ $IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜഁغ͕ඞཁ
ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ w%40ํࣜͷੑೳΛ׆͔͢ΞʔΩςΫνϟ wಈతίϯςϯπ࣮ߦલʹΦʔφมߋͷಛݖͷΈΛ༩ ੍͑ͨޚ༻ͷεϨουΛ࡞ wΦʔφΛมߋͨ͠εϨου্ͰίϯςϯπΛॲཧ wίϯςϯπ࣮ߦޙεϨουͷΈΛআ
-JOVYεϨουͱ-JOVY$BQBCJMJUJFT w-JOVY,FSOFMҎ߱ͷಠࣗͷηΩϡϦςΟϞσϧ wSPPUಛݖΛࡉԽͯ͠εϨου୯ҐͰ༩Մೳ wΦʔφʔͷมߋɾXFMMLOPXOQPSUͷMJTUFOݸ w-JOVYલఏͰ͋ΕఏҊख๏͕࣮ݱՄೳ
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF UISFBE PXOFSVTFS UISFBE PXOFSBQBDIF JOEFYQIQ PXOFSVTFS
TFUVJE TFUHJE ʜ VOTFUDBQT DSFBUFUISFBE TFUDBQT EFTUSPZUISFBE QBSTF SVO QSDUM TFUVJETFUHJEDBQT UISFBE PXOFSVTFS ˞%40 ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF UISFBE PXOFSVTFS UISFBE PXOFSBQBDIF TFUVJE TFUHJE
ʜ VOTFUDBQT DSFBUFUISFBE TFUDBQT EFTUSPZUISFBE QSDUM TFUVJETFUHJEDBQT UISFBE PXOFSVTFS ˞$(* ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ $(*QSPDFTT PXOFSVTFS QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS GPSL UFSNJOBUFQSPDFTT FYFDWF
8FCαʔόϞσϧͱ੍ޚ༻εϨουͷߟ wϦΫΤετϓϩηε༗͢ΔαʔόϞσϧલఏ w%40εϨουͷ༗ແʹؔΘΒͣαʔόϓϩηεʹ Έࠐ·ΕͨΠϯλϓϦλ͕ϓϩάϥϜΛ࣮ߦ wεϨουΛҰ࣌తʹ࡞Δ͜ͱʹΑΔηΩϡϦςΟϨϕ ϧͷԼੜ͡ͳ͍
-JOVYͰ"QBDIFϞδϡʔϧͱ࣮ͯ͠ wNPE@QSPDFTT@TFDVSJUZϞδϡʔϧ wઃఆҎԼͷΑ͏ʹγϯϓϧ
ੑೳධՁ w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮ wඵؒͷϦΫΤετΛมԽͤ͞ϨεϙϯεΛܭଌ wQIQJOGP Λग़ྗ͢Δ͚ͩͷ؆୯ͳϓϩάϥϜΛ༻ҙ wैདྷख๏ͱఏҊख๏ͷੑೳΛධՁ
࣮ݧڥ
%40࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ w ඵؒϦΫΤετΛ૿Ճͤ͞ͳ͕Βඵ ؒϨεϙϯεΛܭଌ w ͷैདྷͷΞΫηε੍ޚ΄ͱΜͲੑ ೳ͕Ͱ͍ͯͳ͍ w ͷఏҊ͢ΔΞΫηε੍ޚΞΫηε ੍ޚແ͠ͷ߹ͱൺͯ΄ͱΜͲΦʔ
όʔϔουແ͠ ੨ɿΞΫηε੍ޚແ͠ ɿఏҊ͢ΔΞΫηε੍ޚ ɿैདྷͷΞΫηε੍ޚ
$(*࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ w ඵؒϦΫΤετΛ૿Ճͤ͞ͳ͕ΒඵؒϨ εϙϯεΛܭଌ w $(*ͷΞΫηε੍ޚͷ༗ແʹؔΘΒͣ$(* ͷ࣮ߦํࣜͷΦʔόʔϔου͕େ͖͍ͨΊɺ ΞΫηε੍ޚʹΑΔΦʔόʔϔουແ͍ w ষͷ$(*ͷΞΫηε੍ޚTVFYFDͱಉ
ͷੑೳͰ͋Δ͜ͱ͕ষͰ࣮ݧࡁΈ ੨ɿΞΫηε੍ޚແ͠ ɿैདྷͷΞΫηε੍ޚ ɿఏҊ͢ΔΞΫηε੍ޚ
ষ·ͱΊ wߴूੵϚϧνςφϯτํࣜʹ͓͚ΔੑೳΛߟྀͨ͠Ξ Ϋηε੍ޚΞʔΩςΫνϟͷఏҊ w%40࣮ߦํࣜͷΞΫηε੍ޚͱͯ͠େ෯ʹੑೳվળ wఏҊख๏$(*࣮ߦํࣜʹద༻Մೳ
ষͷ$(*ͷΞΫηε੍ޚͱͷҧ͍ wষͷΞΫηε੍ޚ҆શʹDISPPUͰ͖ͳ͍ wεϨου্ͰDISPPU͢ΔͱಉҰϓϩηε্ʹଐ͢Δ શͯͷεϨου͕DISPPU͞ΕΔ wεϨουΛੜͨ͠ϓϩηεࣗମDISPPU͞ΕΔͨ Ί߹ʹΑͬͯҙਤ͠ͳ͍ಈ࡞Λ͢ΔՄೳੑ͕͋Δ
$(*ํࣜͷΞΫηε੍ޚͷ͍͚ wDISPPUʹΑΔִ·Ͱߦ͍͍ͨ߹➜ষ wಉҰͷΞΫηε੍ޚͰ౷Ұతʹ͍ͨ͠߹➜ষ wੑೳಉఔ
ୈষ εΫϦϓτݴޠͰߴ͔ͭܰྔʹ֦ுՄೳͳ 8FCαʔόͷػೳ֦ுࢧԉΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ w8FCαʔόͷػೳ֦ுʹ͓͍ͯੑೳΛߟྀͨ͠߹ $ݴޠʹΑΔ࣮͕ఆ൪ wैདྷͷ8FCαʔόͷεΫϦϓτݴޠʹΑΔ֦ுੑ ೳ໘ͱ҆શੑʹ՝ wαʔόϓϩηεͷΠϯλϓϦλΈࠐΈͷΞʔΩς ΫνϟͷఏҊ͕ॏཁ
ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̍ʣ wΠϯλϓϦλڞ༗ํࣜʢNPE@QFSMɺNPE@SVCZʣ αʔόϓϩηεىಈ࣌ʹ୯ҰͷΠϯλϓϦλ֬อ ϦΫΤετॲཧ࣌ʹෳͷεΫϦϓτͰΠϯλϓϦλڞ༗ άϩʔόϧͷঢ়ଶڞ༗ ߴػೳ͔ͭنͷେ͖͍ΠϯλϓϦλʹ࠷ద
ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̎ʣ wෳΠϯλϓϦλํࣜʢNPE@MVBʣ εΫϦϓτ࣮ߦʢϦΫΤετॲཧʣ୯ҐͰΠϯλϓϦλ֬อ άϩʔόϧͳঢ়ଶಠཱͰ҆શ ΠϯλϓϦλ͕֬อ͢Δঢ়ଶ։์ͯ͠লϝϞϦ ػೳͰߴɾলϝϞϦͳΈࠐΈεΫϦϓτݴޠͳͲʹ࠷ద
ैདྷख๏ͷ՝ wΠϯλϓϦλڞ༗ํࣜͷ՝ άϩʔόϧঢ়ଶ͕ෳεΫϦϓτͰׯব ࣮ߦ࣌ͷόΠτίʔυ૿ՃʹΑΔϝϞϦͷ૿Ճ wෳΠϯλϓϦλํࣜͷ՝ ϦΫΤετຖͷΠϯλϓϦλ֬อɾ։์ͷίετ͕ߴ͍
VM • • •
ఏҊ͢ΔΞʔΩςΫνϟ wੑೳ͕ཁٻ͞ΕΔՕॴΠϯλϓϦλڞ༗ wੑೳ͕ཁٻ͞Εͳ͍ՕॴݸผʹΠϯλϓϦλ֬อ wϝϞϦ૿ՃͷݪҼͰ͋ΔόΠτίʔυͷΈΛ։์ w҆શੑͷ໘Ͱάϩʔόϧͷঢ়ଶͷΈΛ։์Մೳ wόΠτίʔυΩϟογϡʹΑΔߴԽՄೳ
αʔόϓϩηε ࢠαʔόϓϩηε" ϦΫΤετॲཧ༻ΠϯλϓϦλ ىಈ࣌ॲཧ༻ΠϯλϓϦλ ϦΫΤετҎ֎ͷॲཧ༻ΠϯλϓϦλ εΫϦϓτ εΫϦϓτ εΫϦϓτ εΫϦϓτ εΫϦϓτ
ੑೳ͕ཁٻ͞ΕΔϑοΫ ΠϯλϓϦλΛڞ༗ ɾ ɾ ɾ
w αʔόϓϩηεىಈ࣌ʹΠϯλϓ ϦλΛ֬อ w ϦΫΤετॲཧ࣌ʹΠϯλϓϦλ Λڞ༗ͯ͠εΫϦϓτΛίϯύΠϧ ͔ͯ͠Β࣮ߦ ߏจղੳ όΠτίʔυੜ 7.্Ͱ࣮ߦ
ϦΫΤετຖʹαʔόϓϩηε͕εΫϦϓτΛϑοΫ εΫϦϓτಡΈࠐΈ ΠϯλϓϦλͱ ϥΠϒϥϦΛڞ༗ όΠτίʔυɺάϩʔόϧมɾΫϥεɺྫ֎ϑϥάΛ։์ ഉଞॲཧ ϚϧνεϨου8FC αʔόΞʔΩςΫνϟ ʹରԠ
ߏจղੳ όΠτίʔυੜ 7.্Ͱ࣮ߦ ϦΫΤετຖʹαʔόϓϩηε͕εΫϦϓτΛϑοΫ εΫϦϓτಡΈࠐΈ ΠϯλϓϦλͱ ϥΠϒϥϦΛڞ༗ άϩʔόϧมɾΫϥεɺྫ֎ϑϥάΛ։์ όΠτίʔυ ςʔϒϧ
w όΠτίʔυΩϟογϡʹΑͬͯαʔ όϓϩηεىಈޙʹίʔυมߋ͕ඞ ཁͳ͍߹ߴԽ w αʔόىಈ࣌ʹίϯύΠϧͯ͠όΠ τίʔυςʔϒϧʹอଘ͓͖ͯ͠ɺ ϦΫΤετ࣌ʹऔಘ࣮ͯ͠ߦ
ΞʔΩςΫνϟͷ࣮ w"QBDIFϞδϡʔϧͷNPE@NSVCZͱ࣮ͯ͠ wOHJOYϞδϡʔϧͷOHY@NSVCZͱ࣮ͯ͠ wNSVCZͱ͍͏ܰྔ3VCZΠϯλϓϦλΛར༻ w3VCZͰ8FCαʔόͷৼΔ͍Λ֦ுՄೳ wదࡐదॴͱͯ͠ैདྷͷ$ݴޠͷ࣮ͱڞଘՄೳ
NPE@NSVCZͷػೳ֦ுͷ֓ཁਤ
NPE@NSVCZઃఆྫ # Normal hook <Location /mruby-test> mrubyHandlerMiddle /path/to/test.rb </Location> #
ByteCode Caching at Start up <Location /mruby-test-cache> mrubyHandlerMiddle /path/to/test.rb cache </Location>
NPE@NSVCZͰͷ3FWFSTF1SPYZ # mrubyTranslateNameFirst “/path/to/proxy.rb” backends = [ "http://192.168.0.101:8888/", "http://192.168.0.102:8888/", "http://192.168.0.103:8888/",
] r = Apache::Request.new backend = backends[rand(backends.length)] r.reverse_proxy backend + r.unparsed_uri
࣮ݧ wੑೳධՁ )FMMP8PSMEग़ྗͷ୯७ͳϓϩάϥϜʢΠϯλϓϦλͷੑೳͰ ͳ͘ΈࠐΈΞʔΩςΫνϟͷੑೳΛ࠷େԽ͢ΔͨΊʣ ैདྷɾఏҊख๏Ͱ࣮ߦ͠ඵؒͷϨεϙϯεΛܭଌ ಉ࣌ଓɾ૯ଓສ
࣮ݧڥ
ैདྷख๏ͱͷੑೳൺֱ ैདྷͷػೳ֦ ு NPE@QFSM NPE@SVCZ NPE@MVB NPE@NSVCZ NPE@NSVCZ Ωϟογϡ ݴޠ
$ 1FSM 3VCZ -VB NSVCZ NSVCZ ΠϯλϓϦλ ॳظԽॲཧ ࣄલ ࣄલ ࣄલ ϥΠϒϥϦ ಡΈࠐΈ ࣄલ ࣄલ ࣄલ ίϯύΠϧ ࣄલ ࣄલ ίʔυͷมߋ ෆՄ Մ Մ Մ ෆՄ άϩʔόϧঢ়ଶ ڞ༗ ڞ༗ ඇڞ༗ ඇڞ༗ ඇڞ༗ ੑೳ 3FTQPOTFTFD
ষͷ·ͱΊ wεΫϦϓτݴޠͰߴ͔ͭ҆શʹಈ࡞͢Δ8FCαʔόػೳ֦ ுࢧԉΞʔΩςΫνϟΛఏҊ wैདྷݚڀΑΓߴͰ8FCαʔό׆༻έʔεͰ$ݴޠͰͷ࣮ ʹḮ৭ͳ͍ΞʔΩςΫνϟΛ࣮ݱ w͘ΘΕ͍ͯΔ8FCαʔόιϑτΣΞͷϞδϡʔϧͱͯ͠ ࣮͠ΦʔϓϯιʔειϑτΣΞͱͯ͠ެ։
ষͷࠓޙͷ՝ wάϩʔόϧมྖҬͷࣗಈ։์ػೳ wݱࡏखಈ։์Ͱ͋Δ͕ಛఆͷάϩʔόϧมҎ֎ ࣗಈͰ։์Ͱ͖ΔॲཧʢઃఆͰΓସ͑ՄೳʣΛ Ճ༧ఆ
ୈষ ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ ͢ΔWebαʔόͷ Ϧιʔε੍ޚΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ αʔόͷෛՙΛݮ͢Δ͜ͱΛॏࢹ͢Δ͋·ΓϢʔβ ମݧΛେ͖͘ଛͳ͍ͬͯΔ ࠷େಉ࣌ଓҎԼͰҰͭͷϦΫΤετͰେྔʹϦ ιʔεΛ༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍ ੍ݶͷཻ͕ߥ͘ϗετؒͷϦιʔεڝ߹ʹΑΓշద
ʹ͑ΔϢʔβͱ͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍
࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̍ʣ 8FCαʔό 8FCαʔό Ϛϧνςφϯτํࣜͷαʔόશମͷ$16Ϧιʔε͕ṧഭͨ͠ঢ়ଶʹ͓͍ͯɺ ༻Ͱ͖Δ$16Ϧιʔεʹ੍ݶ͞ΕΔ͕ɺར༻Ͱ͖ΔΫϥΠΞϯτഒ ΞΫηεෆՄ ΞΫηεՄʂ ΞΫηεՄ $16ˋ༻͢Δ
ͭͷϓϩάϥϜΛॲཧ $16ˋ༻͢Δ ͭͷϓϩάϥϜΛॲཧ ఏҊख๏ ैདྷख๏ ΑΓཻͷ ࡉ੍͔͍ݶ
࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̎ʣ wϦΫΤετʹؚ·ΕΔ༷ʑͳଐੑΛݩʹ੍ޚ͍ͨ͠ ߴूੵϚϧνςφϯτํࣜͰϦΫΤετͷଐੑͰ ϗετΛ۠ผ͠ϓϩηεΛڞ༗͢ΔͨΊ ϦΫΤετ୯ҐͰͷϦιʔε͕ඞཁ wෳࡶͳઃఆΛϓϩάϥϚϒϧʹهड़Մೳʹ͍ͨ͠
ఏҊ͢ΔϦιʔε੍ޚΞʔΩςΫνϟ w04ͷϓϩηεϦιʔεٕज़Λ8FCαʔόͷϦΫ Τετ୯ҐͰ׆༻੍͠ޚ wষͷػೳ֦ுࢧԉػߏNPE@NSVCZΛԠ༻ ϓϩάϥϚϒϧͰΦʔόʔϔουগͳ͍ࢧԉػߏͰ ϦΫΤετ୯ҐʹϦιʔεΛ੍ޚՄೳ
-JOVYಠࣗͷϦιʔε੍ޚDHSPVQ wϓϩηε୯ҐͰ$16ɾϝϞϦɾ*0Λ੍ޚ -JOVY,FSOFMҎ߱ͷػೳ ಛఆͷϓϩηείΞ$16·ͰׂͳͲ $16ΛׂΓͯͨϦιʔεάϧʔϓΛ࡞ άϧʔϓʹࢀՃ͍ͯ͠ΔϓϩηεͰϦιʔε
ϦΫΤετ୯ҐͰͷϦιʔε੍ޚ 8FCαʔό ϓϩηε ΫϥΠΞϯτ ϦΫΤετ Ϩεϙϯε ϨεϙϯεੜͷॲཧͷؒͷΈ ϓϩηεΛಛఆͷDHSPVQʹΞλον ʢ$16ͳͲʣ DHSPVQΞλον
DHSPVQσλον
Ϧιʔε੍ޚͷઃఆྫ r = Apache::Request.new if r.filename == “/path/to/cpu.cgi” cpu =
Cgroup::CPU.new “cpu_group” # CPU 10 cpu.cfs_quota_us = 10000 cpu.create cpu.attach end ݫີʹNTதNTͷ$16༻࣌ؒΛ RVPUBͱͯ͠εέδϡʔϧ͢Δઃఆ
Ϧιʔε੍ޚͷઃఆྫ r = Apache::Request.new if r.hostname == “example.com” cpu =
Cgroup::CPU.new “cpu_group” # CPU 10 cpu.cfs_quota_us = 10000 cpu.create cpu.attach end
ਫ਼ͱΦʔόʔϔουͷධՁ wϦιʔε੍ޚಋೖʹΑΔΦʔόʔϔουධՁ wϦιʔε੍ޚͷਫ਼ධՁ
࣮ݧڥ
ΦʔόʔϔουͷධՁ w)FMMP8PSME͢Δ͚ͩͷ)5.-ϑΝΠϧ wϦιʔε੍ޚಋೖ੍͠ݶΛ͠ͳ͍߹ͷΦʔόʔϔου wಉ࣌ଓɾ૯ଓສϦΫΤετ ະಋೖ࣌ɿSFTQPOTFTFD ɹಋೖ࣌ɿSFTQPOTFTFD
Ϧιʔε੍ޚͷਫ਼ධՁ w$16༻͢Δ$(*ϦΫΤετ w$16ʹϦιʔε੍ޚ w$(*ͷ$16༻࣌ؒΛมߋͯ͠ਫ਼Λൺֱ wੑೳ੍ޚΛఆٛɿ wϨεϙϯε࣌ؒʢ੍ݶແ͠ʣϨεϙϯε࣌ؒʢ੍ݶ༗Γʣ wੑೳ੍ޚ͕ʹ͚ۙΕਖ਼੍͘͠ޚ͞Ε͍ͯΔ
ষͷ·ͱΊ wϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ wϚϧνςφϯτํࣜͷΑ͏ʹϦΫΤετͰςφϯτΛಛ ఆ͠ॲཧ͢Δϓϩηεڞ༗͢ΔΞʔΩςΫνϟʹ༗༻ wߴूੵϚϧνςφϯτํࣜʹ͓͍ͯैདྷݚڀΑΓཻ ͷࡉ͔͍Ϧιʔε੍ݶΛద༻Ͱ͖Δ
ୈষ ·ͱΊ
·ͱΊ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹؔ͢Δݚڀ ষͰηΩϡϦςΟͱӡ༻໘Λཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ ষͰੑೳͱηΩϡϦςΟΛཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ ষͰ8FCαʔόػೳ֦ுࢧԉػߏͷݚڀ ষͰ8FCαʔόͷϦιʔε੍ޚͷݚڀ
ߩݙ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜͷجຊ֓೦ͱ՝ Λମܥతʹཧ͠ΞʔΩςΫνϟΛఏҊͯ͠ղܾ ηΩϡϦςΟɾੑೳɾϦιʔε੍ޚɾӡ༻ٕज़ͷ؍ wಛʹ8FCϗεςΟϯάαʔϏεΛରʹΞʔΩςΫνϟͷ ࣮Λߦͬͯ044ͱͯ͠ެ։͠αʔϏεөɾվળ -JOVYΛ׆༻֤ͨ͠छ8FCαʔϏεͷߴԽʹد༩
044ͱͯ͠ެ։ wୈষNPE@QSPDFTT@TFDVSJUZ wୈষNPE@NSVCZOHY@NSVCZͱ֤छNSVCZϞδϡʔϧ wୈষNSVCZDHSPVQ wੈքத͔Β֤छࣄྫΛ࿈བྷ͍͓ͯΓ·͢
ࠓޙͷల wࣗతʹߴෛՙରΛಛఆ͠దͳ੍ݶΛߦ͏ػೳ w)551ͱ5-4ʹ࠷దͳΞʔΩςΫνϟͷݕ౼ wߴूੵϚϧνςφϯτͷେنূ໌ॻཧ wඇಉظॲཧͷݖݶɾϦιʔεΞʔΩςΫνϟ wNSVCZʹΑΔαʔό֦ுͷҰൠར༻ͷଅਐ
ຊจʹؚ·ΕΔൃදจݙ จࢽจ 1 দຊ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔ όͷػೳ֦ுࢧԉػߏ, ใॲཧֶձจࢽɼVol.55,
No.11, pp.2451-2460, Nov 2014. 2 দຊ྄հ, Ԭ෦णஉ,εϨου୯ҐͰݖݶΛߦ͏WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ, ిࢠใ௨৴ֶձจࢽ Vol.J96-B, No.10, pp.1122-1130, Oct 2013. 3 দຊ྄հ, ݪক࢘, দԬً, େنڞ༗ܕWebόʔνϟϧϗεςΟϯάج൫ͷηΩϡϦςΟ ͱӡ༻ٕज़ͷվળ, ใॲཧֶձจࢽ, Vol.54, No.3, pp.1077-1086, Mar. 2013.
ຊจʹؚ·ΕΔൃදจݙ ࠃࡍձٞൃදʢࠪಡ͖ʣ 1 Ryosuke Matsumoto, Yasuo Okabe, Access Control Architecture
Separating Privilege by a Thread on a Web Server, The 12th IEEE/IPSJ International Symposium on Applications and the Internet (SAINT2012), pp.178-183, July 2012.
ຊจʹؚ·ΕΔൃදจݙ ޱ಄ൃද 1 দຊ྄հɾԬ෦णஉ, ϦΫΤετ୯ҐͰԾతʹίϯϐϡʔλϦιʔεΛ͢ΔWebαʔό ͷϦιʔε੍ޚΞʔΩςΫνϟ, ใॲཧֶձݚڀใࠂ Vol.2013-IOT-23, No.4, 20139݄.