Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Webサーバの高集積マルチテナントアーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers

Webサーバの高集積マルチテナントアーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers

松本亮介
2016年8月30日
2016年度 京都大学大学院 情報学研究科 博士課程 予備審査

MATSUMOTO Ryosuke
PRO

September 05, 2016
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Research

Transcript

  1. 4UVEJFTPO)JHIMZ*OUFHSBUFE.VMUJ5FOBOU"SDIJUFDUVSF GPS8FC4FSWFST দຊ྄հ ೥݄೔ ೥౓ژ౎େֶେֶӃ৘ใֶݚڀՊത࢜՝ఔ༧උ৹ࠪ 8FCαʔόͷߴूੵϚϧνςφϯτ ΞʔΩςΫνϟʹؔ͢Δݚڀ

  2. ໨࣍ʢʣ  ݚڀͷ໨తͱҐஔ͚ͮ  ैདྷͷݚڀͱ՝୊ͷ੔ཧ  ߴूੵϚϧνςφϯτํࣜͷӡ༻ޮ཰ͱηΩϡϦςΟͷཱ྆ ͷͨΊͷΞΫηε੍ޚΞʔΩςΫνϟ  ߴूੵϚϧνςφϯτํࣜͷߴ଎ʹݖݶ෼཭͢ΔΞΫηε੍

    ޚΞʔΩςΫνϟ 
  3. ໨࣍ʢʣ  ߴ଎͔ͭ҆શʹεΫϦϓτݴޠͰ8FCαʔόΛ֦ு͢ΔͨΊ ͷΞʔΩςΫνϟ  ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ෼཭͢ΔϦιʔε੍ ޚΞʔΩςΫνϟ  ·ͱΊ 

  4. ୈষ ݚڀͷ໨తͱҐஔ͚ͮ

  5. ݚڀͷഎܠ wΫϥ΢υ΍֤छ8FCαʔϏεͷීٴͱݸਓͷར༻ w8FCαʔϏεͷ௿Ձ֨Խͱ඼࣭ͷڝ૪ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ஫໨ wηΩϡϦςΟͱੑೳ޲্͕ॏཁ wӡ༻ٕज़ͷݚڀͱγεςϜͷ҆ఆԽ͕՝୊ 

  6. ݚڀͷ໨త wߴूੵϚϧνςφϯτํࣜͷ՝୊Λ੔ཧɾղܾ wಛʹςφϯτ಺ͷίϯςϯπΛࣄۀऀ͕؅ཧͰ͖ͳ͍৔߹  ߴूੵϚϧνςφϯτؒͰͷݖݶ෼཭ͷ՝୊ղܾ  ߴूੵϚϧνςφϯτํࣜͷػೳ֦ுͷ՝୊ղܾ  ߴूੵϚϧνςφϯτؒͰͷϦιʔε෼཭ͷ՝୊ղܾ 

  7. ݚڀͷҐஔ͚ͮ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ͓͍ͯίϯςϯπ ੍͕ޚग़དྷͳ͍৔߹ͷෳ਺ͷ՝୊Λ੔ཧͯ͠ղܾ wߴूੵϚϧνςφϯτํࣜͷ8FCϗεςΟϯάʹண໨ wମܥతʹϚϧνςφϯτํࣜͷैདྷख๏ͷ՝୊Λ੔ཧ wੑೳɾηΩϡϦςΟɾϦιʔε੍ޚɾӡ༻ٕज़ͷ؍఺Ͱղܾ w044ͱͯ͠ӡ༻ʹ଱͑͏Δ࣮૷Λߦ͍෯޿͘ར༻ͯ͠௖͘ 

  8. ୈষ ैདྷͷݚڀͱ՝୊ͷ੔ཧ

  9. ߴूੵϚϧνςφϯτํࣜͷ՝୊Λ੔ཧ جຊ֓೦ ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝୊ 8FCαʔόػೳ֦ுͷ՝୊ 8FCαʔόͷϦιʔε੍ޚͷ՝୊ 

  10. جຊ֓೦

  11. Ϛϧνςφϯτํࣜ

  12. 8FCαʔόͷϚϧνςφϯτํࣜ w୯Ұͷαʔόʹෳ਺ͷϢʔβ؀ڥΛߏங wӡ༻ίετͱऩ༰ʢϋʔυ΢ΣΞʣίετΛ௿ݮՄೳ wϢʔβ؀ڥͷίϯςϯπ੍͕ޚՄೳͳ৔߹͸ద੾ wࣄۀऀ͕ίϯςϯπΛ؅ཧͰ͖ͳ͍৔߹ӡ༻͕ඇৗʹࠔ೉ ςφϯτؒͷϦιʔεͷڝ߹΍ੑೳͷόϥϯε౳ 

  13. 8FCίϯςϯπͷ؅ཧͱϚϧνςφϯτ w8FCίϯςϯπΛࣄۀऀ͕؅ཧͰ͖Δ৔߹ 8FCίϯςϯπͰϦιʔε΍ݖݶͷ෼཭Λ૝ఆՄೳ ςφϯτͷऩ༰ઃܭ΋ൺֱత༰қ w8FCίϯςϯπΛࣄۀऀ͕؅ཧͰ͖ͳ͍৔߹ ͋ΒΏΔίϯςϯπ͕ಈͨ͘Ίऩ༰ઃܭɾӡ༻͕ࠔ೉ ੬ऑͳίϯςϯπ͕͋ΔલఏͰϦιʔεɾݖݶ෼཭ 

  14. 8FCϗεςΟϯάαʔϏε

  15. 8FCϗεςΟϯάαʔϏεͷಛ௃ wࣄۀऀ͸͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍ wϛυϧ΢ΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ wͰ͖Δ͚ͩฏ౳ʹϢʔβମݧΛఏڙ͢΂͖ wڞ༗ͷ৔߹͸Ϧιʔε੍ޚ΍ηΩϡϦςΟ͕ॏཁ wੑೳͱऩ༰਺Λ͍͔ʹόϥϯεΛͱΔ͔΋ॏཁ 

  16. ߴूੵͷඞཁੑͱ௿Ձ֨Խ

  17. ݸਓ޲͚ͷ8FCαʔϏεͷ૿Ճͱ௿Ձ֨Խ wֶੜ΍ओ්ͩͬͨΓݸਓ͕झຯͰ࢖͏༻్͕ଟ͍ wϋʔυ΢ΣΞʹͲΕ͚ͩߴूੵͰ͖Δ͔͕ॏཁ wͱʹ͔҆͘͘ੑೳͷྑ͍΋ͷΛఏڙ͍ͨ͠ wຊݚڀͰ͸ιϑτ΢ΣΞٕज़ʹΑΔղܾͷΞϓϩʔν 

  18. ϚϧνςφϯτΞʔΩςΫνϟͷجຊ֓೦ wߴूੵϚϧνςφϯτํࣜͷ8FCαʔόͷΞʔΩςΫνϟ wಈతίϯςϯπͷ࣮ߦํࣜ

  19. ߴूੵϚϧνςφϯτํࣜͷ 8FCαʔόͷΞʔΩςΫνϟ

  20. ϓϩηε਺ͱऩ༰αΠτ਺͕ॏཁ wϓϩηε਺͕αΠτ਺ʹґଘ͠ͳ͍Α͏ͳߏ੒ wෳ਺αΠτڞ༗ͷ8FCαʔόϓϩηε͕ϦΫΤετ ͞Εͨϗετ໊͔ΒಈతʹίϯςϯπΛݕग़ͯ͠ॲཧ ͢Δํ͕ࣜߴूੵϚϧνςφϯτʹ͸ඞཁ ྫɿ"QBDIFͷ7JSUVBM)PTU 

  21. 8FCαʔόͷجຊతͳϞσϧ 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF $IJMEIUUQEQSPDFTT PXOFSBQBDIF $IJMEIUUQEQSPDFTT PXOFSBQBDIF $MJFOU

    ϦΫΤετ Ϩεϙϯε 6/*9ܥ04ͷ৔߹ࣄલʹϦΫΤετΛड͚Δ ϓϩηεΛෳ਺GPSL ͯ͠ϓʔϧ͓ͯ͘͠ ʢ͜ΕΒશͯΛؚΊͯʮ୯Ұͷαʔόϓϩηεʯͱఆٛʣ  ϦΫΤετ Ϩεϙϯε ϦΫΤετ Ϩεϙϯε
  22. ߴूੵͷͨΊͷΞʔΩςΫνϟ IUUQE Ϣʔβ" IUUQE Ϣʔβ# IUUQE Ϣʔβ$ IUUQE Ϣʔβ" Ϣʔβ#

    Ϣʔβ$ ޮ཰ྑ͘࢒ϦιʔεΛ࢖͑Δ ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁͳϦιʔε ߴूੵ͕ཁٻ͞ΕΔ৔߹ͷ Ϛϧνςφϯτʢຊݚڀʣ ϚϧνςφϯτͷผΞϓϩʔν 
  23. ಈతίϯςϯπͷ࣮ߦํࣜ

  24. ಈతίϯςϯπͷ࣮ߦํࣜ w$(*࣮ߦํࣜ ಉҰΠϯλϓϦλͷෳ਺όʔδϣϯΛ༻ҙͰ͖Δར఺ w%40࣮ߦํࣜ ੑೳ͸ߴ͍͕جຊతʹ͸୯Ұͷ8FCαʔόʹΠϯλϓ ϦλΛෳ਺όʔδϣϯ࣋ͯͳ͍ 

  25. $(*࣮ߦํࣜ $(*QSPDFTT QIQDHJJOEFYQIQ $(*QSPDFTT GPSL UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT

    PXOFSBQBDIF ϦΫΤετຖʹϓϩηεͷੜ੒ɾഁغͱ ൺֱతେ͖ͳόΠφϦʢ1)1ͩͱQIQDHJόΠφϦʣͷ FYFDWF ͕ඞཁ 
  26. %40࣮ߦํࣜ 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF JOEFYQIQ QBSTF SVO  αʔόϓϩηεʹΠϯλϓϦλΛ

    ૊ΈࠐΜͰ͓͘
  27. ߴूੵϚϧνςφϯτํࣜͷ՝୊ wߴूੵΛ࣮ݱ͢Δ"QBDIFͷ7JSUVBM)PTUͷΑ͏ͳ ΞʔΩςΫνϟ͸ίετޮ཰͕ྑ͍͕ෳ਺՝୊͕࢒Δ  ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝୊  8FCαʔόͷػೳ֦ுͱ՝୊  8FCαʔόͷϦιʔε੍ޚͱ՝୊

  28. ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝୊

  29. ӡ༻ٕज़ͱੑೳͷ՝୊ wςφϯτ୯ҐʹઃఆΛ௥Ճͯ͠؅ཧɾ੍ޚ͢Δӡ༻ wςφϯτͷ੩తઃఆʹΑΔϝϞϦͱಡࠐΈෛՙ૿େ ϖʔδςʔϒϧΤϯτϦͷංେԽʹΑΓGPSL ͕ඇৗʹ஗͍ ϓϩηεͷϦϩʔυ΋௕͔͔࣌ؒΔ৔߹΋༗Γ 

  30. ηΩϡϦςΟͱੑೳͷ՝୊ w$(*൛ͷΞΫηε੍ޚʹΑΔ੩తઃఆͷڧ੍ ςφϯτ୯ҐͰ੩తʹΦʔφ໊Λઃఆ͢Δඞཁ༗Γ w%40൛Λ׆͔͢ΞΫηε੍ޚ͕ଘࡏ͠ͳ͍ طଘͷΞΫηε੍ޚͰ͸$(*൛ҎԼͷੑೳ wςφϯτ֎ͷγεςϜྖҬͷӾཡ 

  31. $(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS ੩తʹઃఆ͞ΕͨVJEΛݩʹTFUVJE TFUHJE

    GPSL  FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF ˞$(* ैདྷͷΞΫηε੍ޚख๏ ϦΫΤετຖʹ$(*༻ϓϩηεͷ ੜ੒ഁغ͕ඞཁ 
  32. 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO

    $IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖʹࢠIUUQEϓϩηεͷੜ੒ഁغ͕ඞཁ ˞%40 ैདྷͷΞΫηε੍ޚख๏ 
  33. ఏҊख๏

  34. ӡ༻ٕज़ͱηΩϡϦςΟΛղܾ wͭͷΞʔΩςΫνϟΛఏҊ $(*൛ͰηΩϡϦςΟͱӡ༻ٕज़Λཱ྆͢ΔΞΫηε ੍ޚΞʔΩςΫνϟˠষ %40൛ͰηΩϡϦςΟͱੑೳΛཱ྆͢ΔΞΫηε੍ ޚΞʔΩςΫνϟˠষ 

  35. 8FCαʔόͷػೳ֦ுͱ՝୊

  36. 8FCαʔϏεͷ҆ఆੑ޲্ͷඞཁੑ wηΩϡϦςΟ΍Ϧιʔε෼཭ͷॏཁੑ wαʔϏεͷӡ༻ɾ؅ཧίετͷ௿ݮ͕ඞཁ wαʔϏεܗଶʹΑͬͯ8FCαʔόΛ࠷దԽ wίϯςϯπʹґଘ͠ͳ͍ػೳͷඞཁੑ͕૿Ճ 

  37. 8FCαʔόͷػೳ֦ு͕ॏཁ w8FCίϯςϯπॲཧલޙʹॲཧΛࠩ͠ࠐΉ w8FCίϯςϯπʹґଘ͠ͳ͍ޮ཰ͷྑ͍ΞΫηε੍ ޚ΍Ϧιʔε෼཭Λ࣮ݱՄೳ w8FCαʔϏεͷӡ༻ɾ؅ཧΛޮ཰Խ wػೳ֦ுͱ࣮ͯ͠૷͢Δ͜ͱͰӡ༻อकΛߟྀ 

  38. ैདྷͷ8FCαʔόͷػೳ֦ுख๏ w$ݴޠʹΑΔ࣮૷͕ఆ൪ ߴ଎͔ͭলϝϞϦ㱻อकੑ΍ੜ࢈ੑ͕௿͍ wεΫϦϓτݴޠʹΑΔ࣮૷ อकੑ΍ੜ࢈ੑ͕ߴ͍㱻௿ੑೳɾ҆શੑͷ໰୊ 

  39. ఏҊख๏

  40. εΫϦϓτͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳ w8FCαʔόϓϩηε΁ͷΠϯλϓϦλ૊ΈࠐΈΛ࠷దԽ wߴूੵϚϧνςφϯτํࣜͰ͸ӡ༻อकΛߟྀͨ͠ػೳ ֦ுΞʔΩςΫνϟ͸ॏཁ ੑೳ໘ͱ҆શੑΛཱ྆ͨ͠ΞʔΩςΫνϟͷઃܭͱੜ ࢈ੑΛߴΊΔ࣮૷ˠষ 

  41. 8FCαʔόͷϦιʔε੍ޚͱ՝୊

  42. ैདྷͷ8FCαʔόͷϦιʔε੍ޚ wϋʔυ΢ΣΞϦιʔε஋΍ಉ࣌઀ଓ਺ͳͲΛ୯७ͳᮢ ஋ॲཧͰ੍ݶ wᮢ஋Λ௒͑ΔͱϦΫΤετॲཧΛڧ੍੾அɾڋ൱ wड͚Δ͔ड͚ͳ͍͔ͷ୯७ͳ੍ޚ 

  43. ैདྷͷϦιʔε੍ޚͷ՝୊ wϚϧνςφϯτʹ͓͍ͯ؅ཧऀ͕ίϯςϯπΛ؅ཧͰ͖ ͳ͍ঢ়گͰϦιʔε࢖༻ྔΛॊೈʹ੍ޚͰ͖ͳ͍ wಉ࣌઀ଓ਺ͳ͍Ͱ΋ҰͭͷϦΫΤετͰେྔʹϦιʔε Λ࢖༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍ wಉҰͷαʔϏεར༻ྉΛ෷͍ͬͯΔ͕Ϧιʔεڝ߹ʹΑ Γշదʹ࢖͑ΔϢʔβͱ࢖͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍ 

  44. ఏҊख๏

  45. ϦΫΤετ୯ҐͰϦιʔεΛ෼཭ wϦΫΤετͷதஅͰ͸ͳ͘ܧଓతʹॲཧ wϦΫΤετ୯ҐͰϦΫΤετͷଐੑʹج͍ͯϦιʔε੍ޚ w؅ཧऀ͕ෳࡶͳઃఆΛϓϩάϥϚϒϧʹදݱՄೳ ಛఆͷίϯϐϡʔλϦιʔεൣғ಺Ͱॲཧ͢ΔΞʔΩς Ϋνϟˠষ 

  46. ୈষ ߴूੵϚϧνςφϯτํࣜʹΑΔ WebόʔνϟϧϗεςΟϯάج൫ͷ ηΩϡϦςΟͱӡ༻ٕज़ͷ՝୊ͱվળ

  47. ষͷ՝୊ͷ·ͱΊ wಈతίϯςϯπ͸$(*ํࣜΛ࢖͏ඞཁ͕͋Δ ෳ਺όʔδϣϯͷΠϯλϓϦλΛѻ͍͍ͨ %40൛ͷΞΫηε੍ޚ͸$(*ఔ౓ͷੑೳʹͳΔ ੩తઃఆͷ૿ՃʹΑΔϝϞϦ࢖༻ྔͷ૿େ wγεςϜྖҬͷӾཡෆՄͷͨΊͷઃఆίετ͕ߴ͍ 

  48. ӡ༻໘ͱηΩϡϦςΟΛཱ྆͢ΔఏҊ wϦΫΤετϑΝΠϧ͔ΒಈతʹPXOFSΛऔಘ ઃఆΛςφϯτͷ਺ʹ߹Θͤͯ૿΍͢ඞཁແ͠ ूੵ਺ʹґଘ͢ΔϝϞϦ૿େΛ௿ݮ ߴूੵ࣌ʹ͓͍ͯ΋ϝϞϦ૿େʹ൐͏ϖʔδςʔϒϧΤϯ τϦ͕૿͑ͳ͍ͨΊGPSL ͕஗͘ͳΒͳ͍ wݖݶ෼཭ͷࡍʹϑΝΠϧγεςϜΛ߹Θִͤͯ཭ 

  49. 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO

    ˞%40 ैདྷͷΞΫηε੍ޚख๏ $IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜ੒ഁغ͕ඞཁ 
  50. $(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS ੩తʹઃఆ͞ΕͨVJEΛݩʹTFUVJE TFUHJE

    GPSL  FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF ϦΫΤετຖʹ$(*༻ϓϩηεͷ ੜ੒ഁغ͕ඞཁ ˞$(* ैདྷͷΞΫηε੍ޚख๏ 
  51. $(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS DISPPU 

    ϦΫΤετϑΝΠϧ͔ΒVJEऔಘޙ TFUVJE TFUHJE GPSL  FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF DISPPU&OWJSPONFOU ˞$(* ఏҊ͢ΔΞʔΩςΫνϟ 
  52. ੑೳධՁ w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮૷ wಉ࣌઀ଓ਺ΛมԽͤ͞ͳ͕ΒඵؒͷϨεϙϯε਺Λܭଌ w1)1ͰจࣈྻΛग़ྗ͢Δ͚ͩͷ$(*ϓϩάϥϜΛར༻ w%40ͷैདྷͷΞΫηε੍ޚɾ$(*ͷैདྷͷΞΫηε੍ޚɾ $(*ͷఏҊ͢ΔΞΫηε੍ޚͰൺֱ 

  53. ࣮ݧ؀ڥ 

  54. 

  55. ̏ষ·ͱΊ wӡ༻ٕज़ͱηΩϡϦςΟΛߟྀͨ͠$(*ͷ৽͍͠ΞʔΩςΫνϟΛఏҊ wैདྷͷΞʔΩςΫνϟͱಉ౳ͷੑೳͰΑΓηΩϡΞͰѻ͍΍͍͢࢓༷  ߴूੵ࣌ʹ͓͍ͯ΋ઃఆ਺ʹԠͨ͡ϝϞϦ૿Ճ͕ੜ͡ͳ͍ͨΊ࣮ӡ༻ ্͸ߴ଎ʹಈ࡞Մೳ wߴूੵϚϧνςφϯτͷςφϯτ਺૿ՃΛߟྀͨ͠ΞʔΩςΫνϟ 

  56. ୈষ εϨου୯ҐͰߴ଎ʹݖݶ෼཭Λߦ͏ WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ

  57. ষͷ՝୊ͷ·ͱΊ wষͷΞΫηε੍ޚΞʔΩςΫνϟ͸ӡ༻ੑʹண໨ $(*ͷར఺ʢෳ਺όʔδϣϯͷఏڙʣΛߟྀ w%40൛ͷੑೳΛ׆͔͢ΞΫηε੍ޚख๏͕ແ͍ ࣮ߦํࣜ΍ΠϯλϓϦλʹΑͬͯΞΫηε੍ޚख๏ ͕ෳ਺ଘࡏ͓ͯ͠Γ൥ࡶ 

  58. ߴूੵϚϧνςφϯτͱ$(*ɾ%40ͷੑೳ wੑೳ໘Ͱ͸$(*͸ຊདྷద͍ͯ͠ͳ͍  ऩ༰਺͕૿͑ΔͱϓϩηεͷϝϞϦ࢖༻ྔ͕૿͑GPSL ͷޮ཰௿Լ  ͦ΋ͦ΋ϦΫΤετ୯ҐͰGPSL ͢ΔͷͰ஗͍ w%40͸GPSL ͠ͳ͍ͷͰద͍ͯ͠Δ

     %40ͷΞΫηε੍ޚΞʔΩςΫνϟ͸ϦΫΤετຖʹGPSL ͕ඞཁ 
  59. 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO

    ˞%40 ैདྷͷΞΫηε੍ޚख๏ $IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜ੒ഁغ͕ඞཁ 
  60. ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ wಈతίϯςϯπ࣮ߦ௚લʹΦʔφมߋͷಛݖͷΈΛ༩ ͑ͨεϨουΛ࡞੒ wΦʔφมߋͨ͠εϨου্ͰίϯςϯπΛॲཧ wίϯςϯπ࣮ߦޙ͸εϨουͷΈΛ࡟আ w$(*ɾ%40྆ํͷ࣮ߦํࣜʹରԠ͢ΔΞʔΩςΫνϟ 

  61. εϨουͱ-JOVY$BQBCJMJUJFT w-JOVY,FSOFMҎ߱ͷಠࣗͷηΩϡϦςΟϞσϧ wSPPUಛݖΛࡉ෼Խͯ͠εϨου୯ҐͰ෇༩Մೳ wΦʔφʔͷมߋɾXFMMLOPXOQPSUͷMJTUFO౳໿ݸ w-JOVYલఏͰ͋Ε͹ఏҊख๏͕࣮ݱՄೳ 

  62. 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF UISFBE PXOFSVTFS UISFBE PXOFSBQBDIF JOEFYQIQ PXOFSVTFS

    TFUVJE TFUHJE ʜ VOTFUDBQT DSFBUFUISFBE TFUDBQT EFTUSPZUISFBE QBSTF SVO QSDUM TFUVJETFUHJEDBQT UISFBE PXOFSVTFS ˞%40 ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ 
  63. 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 
  64. -JOVYͰ"QBDIFϞδϡʔϧͱ࣮ͯ͠૷ [email protected]@TFDVSJUZϞδϡʔϧ wઃఆ͸ҎԼͷΑ͏ʹγϯϓϧ 

  65. ੑೳධՁ w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮૷ wඵؒͷϦΫΤετ਺ΛมԽͤ͞Ϩεϙϯε਺Λܭଌ wQIQJOGP Λग़ྗ͢Δ͚ͩͷ؆୯ͳϓϩάϥϜΛ༰қ w%40ͷैདྷͷΞΫηε੍ޚɾ$(*ͷैདྷͷΞΫηε੍ޚɾ %40$(*ͷఏҊ͢ΔΞΫηε੍ޚͰൺֱ 

  66. ࣮ݧ؀ڥ 

  67. %40࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ w ඵؒϦΫΤετ਺Λ૿Ճͤ͞ͳ͕ ΒඵؒϨεϙϯε਺Λܭଌ w ྘ͷैདྷͷΞΫηε੍ޚ͸΄ͱΜ Ͳੑೳ͕Ͱ͍ͯͳ͍ w ੺ͷఏҊ͢ΔΞΫηε੍ޚ͸ΞΫ ηε੍ޚແ͠ͷ৔߹ͱൺ΂ͯ΋΄

    ͱΜͲΦʔόʔϔου͸ແ͠ ੨ɿΞΫηε੍ޚແ͠ ੺ɿఏҊ͢ΔΞΫηε੍ޚ ྘ɿैདྷͷΞΫηε੍ޚ 
  68. $(*࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ w ඵؒϦΫΤετ਺Λ૿Ճͤ͞ͳ͕ ΒඵؒϨεϙϯε਺Λܭଌ w $(*ͷΞΫηε੍ޚͷ༗ແʹؔΘ Βͣ$(*ͷ࣮ߦํࣜͷΦʔόʔ ϔου͕େ͖͍ͨΊɺΞΫηε੍ ޚʹΑΔΦʔόʔϔου͸ແ͍ ੨ɿΞΫηε੍ޚແ͠

    ੺ɿैདྷͷΞΫηε੍ޚ ྘ɿఏҊ͢ΔΞΫηε੍ޚ 
  69. ষ·ͱΊ wߴूੵϚϧνςφϯτํࣜʹ͓͚ΔੑೳΛߟྀͨ͠Ξ Ϋηε੍ޚΞʔΩςΫνϟͷఏҊ w࣮ߦํࣜͷࠩΛٵऩͨ͠ΞΫηε੍ޚ w%40࣮ߦํࣜͷΞΫηε੍ޚͱͯ͠େ෯ʹੑೳվળ 

  70. ୈষ εΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ ֦ுՄೳͳWebαʔόͷ ػೳ֦ுࢧԉΞʔΩςΫνϟ

  71. ষͷ՝୊ͷ·ͱΊ w8FCαʔόͷػೳ֦ுʹ͓͍ͯੑೳΛߟྀͨ͠৔߹ ͸$ݴޠʹΑΔ࣮૷͕ఆ൪ wैདྷͷ8FCαʔόͷεΫϦϓτݴޠʹΑΔ֦ு͸ੑ ೳ໘ͱ҆શੑʹ՝୊ wαʔόϓϩηε΁ͷΠϯλϓϦλ૊ΈࠐΈͷΞʔΩς ΫνϟͷఏҊ͕ॏཁ 

  72. ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̍ʣ wΠϯλϓϦλڞ༗ํࣜʢ[email protected]ɺ[email protected]ʣ αʔόϓϩηεىಈ࣌ʹ୯ҰͷΠϯλϓϦλ֬อ ϦΫΤετॲཧ࣌ʹෳ਺ͷεΫϦϓτͰΠϯλϓϦλڞ༗ άϩʔόϧͷঢ়ଶ΋ڞ༗ ߴػೳ͔ͭن໛ͷେ͖͍ΠϯλϓϦλʹ࠷ద 

  73. ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̎ʣ wෳ਺ΠϯλϓϦλํࣜʢ[email protected]ʣ εΫϦϓτ࣮ߦʢϦΫΤετॲཧʣ୯ҐͰΠϯλϓϦλ֬อ άϩʔόϧͳঢ়ଶ͸ಠཱͰ҆શ ΠϯλϓϦλ͕֬อ͢Δঢ়ଶ΋౎౓։์ͯ͠লϝϞϦ ௿ػೳͰߴ଎ɾলϝϞϦͳ૊ΈࠐΈεΫϦϓτݴޠͳͲʹ࠷ద 

  74. ैདྷͷػೳ֦ு [email protected] [email protected] [email protected] ݴޠ $ 1FSM 3VCZ -VB ΠϯλϓϦλॳظԽ

    ॲཧ ࣄલ ౎౓ ϥΠϒϥϦಡΈࠐΈ ࣄલ ౎౓ ίϯύΠϧ ࣄલ ౎౓ ౎౓ ίʔυͷมߋ ෆՄ Մ Մ άϩʔόϧঢ়ଶ ڞ༗ ڞ༗ ඇڞ༗ 
  75. ैདྷख๏ͷ՝୊ wΠϯλϓϦλڞ༗ํࣜͷ՝୊ άϩʔόϧঢ়ଶ͕ෳ਺εΫϦϓτͰׯব ࣮ߦ࣌ͷόΠτίʔυ૿ՃʹΑΔϝϞϦͷ૿Ճ wෳ਺ΠϯλϓϦλํࣜͷ՝୊ ΠϯλϓϦλ֬อɾ։์ͷίετ͕ߴ͍ 

  76. VM •  •  •  

  77. ఏҊ͢ΔΞʔΩςΫνϟ wੑೳ͕ཁٻ͞ΕΔՕॴ͸ΠϯλϓϦλڞ༗ wੑೳ͕ཁٻ͞Εͳ͍Օॴ͸ݸผʹΠϯλϓϦλ֬อ wϝϞϦ૿ՃͷݪҼͰ͋ΔόΠτίʔυͷΈΛ։์ w҆શੑͷ໘Ͱάϩʔόϧͷঢ়ଶͷΈΛ։์Մೳ wόΠτίʔυΩϟογϡʹΑΔߴ଎Խ΋Մೳ 

  78. ਌αʔόϓϩηε ࢠαʔόϓϩηε" ϦΫΤετॲཧ༻ΠϯλϓϦλ ىಈ࣌ॲཧ༻ΠϯλϓϦλ ϦΫΤετҎ֎ͷॲཧ༻ΠϯλϓϦλ εΫϦϓτ εΫϦϓτ εΫϦϓτ εΫϦϓτ εΫϦϓτ

    ੑೳ͕ཁٻ͞ΕΔϑοΫ ͸ΠϯλϓϦλΛڞ༗ ɾ ɾ ɾ  
  79. w αʔόϓϩηεىಈ࣌ʹΠϯλϓ ϦλΛ֬อ w ϦΫΤετॲཧ࣌ʹΠϯλϓϦλ Λڞ༗ͯ͠εΫϦϓτΛίϯύΠϧ ͔ͯ͠Β࣮ߦ ߏจ໦ղੳ όΠτίʔυੜ੒ 7.্Ͱ࣮ߦ

    ϦΫΤετຖʹαʔόϓϩηε͕εΫϦϓτΛϑοΫ εΫϦϓτಡΈࠐΈ ΠϯλϓϦλͱ ϥΠϒϥϦΛڞ༗ όΠτίʔυɺάϩʔόϧม਺ɾΫϥεɺྫ֎ϑϥάΛ։์ ഉଞॲཧ ϚϧνεϨου8FC αʔόΞʔΩςΫνϟ ʹରԠ 
  80. ߏจ໦ղੳ όΠτίʔυੜ੒ 7.্Ͱ࣮ߦ ϦΫΤετຖʹαʔόϓϩηε͕εΫϦϓτΛϑοΫ εΫϦϓτಡΈࠐΈ ΠϯλϓϦλͱ ϥΠϒϥϦΛڞ༗ άϩʔόϧม਺ɾΫϥεɺྫ֎ϑϥάΛ։์ όΠτίʔυ ςʔϒϧ

    w όΠτίʔυΩϟογϡʹΑͬͯαʔ όϓϩηεىಈ࣌ͷίʔυมߋ͕ඞ ཁͳ͍৔߹͸ߴ଎Խ w αʔόىಈ࣌ʹίϯύΠϧͯ͠όΠ τίʔυςʔϒϧʹอଘ͓͖ͯ͠ɺ ϦΫΤετ࣌ʹऔಘ࣮ͯ͠ߦ 
  81. ΞʔΩςΫνϟͷ࣮૷ w"QBDIFϞδϡʔϧͷ[email protected]ͱ࣮ͯ͠૷ wOHJOYϞδϡʔϧͷ[email protected]ͱͯ͠΋࣮૷ wNSVCZͱ͍͏ܰྔ3VCZΠϯλϓϦλΛར༻ w3VCZͰ8FCαʔόͷৼΔ෣͍Λ֦ுՄೳ wదࡐదॴͱͯ͠ैདྷͷ$ݴޠͷ࣮૷ͱڞଘՄೳ 

  82. [email protected]ͷػೳ֦ுͷ֓ཁਤ 

  83. [email protected]ઃఆྫ # 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> 
  84. [email protected]Ͱͷ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 
  85. [email protected]ͷ#BTJD"VUIXJUI3FEJT # <Location /basic/> # AuthType basic # AuthName "Message

    for clients" # AuthBasicProvider mruby # mrubyAuthnCheckPassword /path/to/authn_basic.rb # require valid-user # </Location> anp = Apache::AuthnProvider.new redis = Redis.new "127.0.0.1”, 6379 if redis.get(anp.user) == anp.password Apache.return Apache::AuthnProvider::AUTH_GRANTED else Apache.return Apache::AuthnProvider::AUTH_DENIED end 
  86. ҟͳΔ8FCαʔόͷ౷Ұత֦ுهड़ "QBDIF "1* 3VCZTDSJQU [email protected] 3VCZTDSJQU ɾ ɾ ɾ ɾ

     3VCZTDSJQUO /HJOY "1* [email protected] 3VCZTDSJQU "QBDIF $PSF /HJOY $PSF 3VCZ %4- GPS8FC "QBDIF 5SB⒏D 4FSWFS "1* [email protected] "QBDIF 5SB⒏D 4FSWFS $PSF SFGIUUQTHJUIVCDPNTZVDSFBN[email protected] 
  87. ౷Ұతهड़ྫ # Output Hello World Server = get_server_calss Server.rputs "Hello

    #{Server.module_name}/ #{Server.module_version} world!" # mod_mruby => "Hello mod_mruby/1.9.3 world!" # ngx_mruby => "Hello ngx_mruby/1.3.2 world!" # ts_mruby => "Hello ts_mruby/0.0.1 world!" 
  88. ࣮ݧ wϝϞϦ࢖༻ྔͷධՁ wੑೳධՁ )FMMP8PSMEग़ྗͷ୯७ͳϓϩάϥϜ ैདྷɾఏҊख๏Ͱ࣮ߦ͠ඵؒͷϨεϙϯε਺Λܭଌ ಉ࣌઀ଓ਺ɾ૯઀ଓ਺ສ 

  89. ࣮ݧ؀ڥ 

  90. ϦΫΤετ਺૿ՃʹΑΔϝϞϦ૿Ճྔ 

  91. ैདྷख๏ͱͷੑೳൺֱ ैདྷͷػೳ֦ ு [email protected] [email protected] [email protected] [email protected] [email protected] Ωϟογϡ ݴޠ

    $ 1FSM 3VCZ -VB NSVCZ NSVCZ ΠϯλϓϦλ ॳظԽॲཧ ࣄલ ౎౓ ࣄલ ࣄલ ϥΠϒϥϦ ಡΈࠐΈ ࣄલ ౎౓ ࣄલ ࣄલ ίϯύΠϧ ࣄલ ౎౓ ౎౓ ౎౓ ࣄલ ίʔυͷมߋ ෆՄ Մ Մ Մ ෆՄ άϩʔόϧঢ়ଶ ڞ༗ ڞ༗ ඇڞ༗ ඇڞ༗ ඇڞ༗ ੑೳ 3FTQPOTFTFD       
  92. ষͷ·ͱΊ wεΫϦϓτݴޠͰߴ଎͔ͭ҆શʹಈ࡞͢Δ8FCαʔό ػೳ֦ுࢧԉΞʔΩςΫνϟΛఏҊ wैདྷݚڀΑΓ΋ߴ଎Ͱ8FCαʔό׆༻έʔεͰ͸$ݴ ޠͰͷ࣮૷ʹḮ৭ͳ͍ΞʔΩςΫνϟΛ࣮ݱ w޿͘࢖ΘΕ͍ͯΔ8FCαʔόιϑτ΢ΣΞͷϞδϡʔ ϧͱ࣮ͯ͠૷͠Φʔϓϯιʔειϑτ΢ΣΞͱͯ͠ެ։ 

  93. ষͷࠓޙͷ՝୊ wάϩʔόϧม਺ྖҬͷࣗಈ։์ػೳ wݱࡏ͸खಈ։์Ͱ͋Δ͕ಛఆͷάϩʔόϧม਺Ҏ֎ ͸ࣗಈͰ։์Ͱ͖ΔॲཧʢઃఆͰ੾Γସ͑ՄೳʣΛ ௥Ճ༧ఆ

  94. ୈষ ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ ෼཭͢ΔWebαʔόͷ Ϧιʔε੍ޚΞʔΩςΫνϟ

  95. ষͷ՝୊ͷ·ͱΊ wϚϧνςφϯτʹ͓͍ͯ؅ཧऀ͕ίϯςϯπΛ؅ཧͰ ͖ͳ͍ঢ়گͰϦιʔε࢖༻ྔΛॊೈʹ੍ޚͰ͖ͳ͍ wಉ࣌઀ଓ਺಺Ͱ΋ҰͭͷϦΫΤετͰେྔʹϦιʔε Λ࢖༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍ wಉҰͷαʔϏεར༻ྉΛ෷͍ͬͯΔ͕շదʹ࢖͑ΔϢʔ βͱ࢖͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍ 

  96. ࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̍ʣ 8FCαʔό 8FCαʔό Ϛϧνςφϯτํࣜͷαʔόશମͷ$16Ϧιʔε͕ṧഭͨ͠ঢ়ଶʹ͓͍ͯɺ ࢖༻Ͱ͖Δ$16Ϧιʔε͸ʹ੍ݶ͞ΕΔ͕ɺར༻Ͱ͖ΔΫϥΠΞϯτ਺͸ഒ ΞΫηεෆՄ ΞΫηεՄʂ ΞΫηεՄ  ͭͷ$16ˋ࢖༻͢Δ

    ϓϩάϥϜΛॲཧ ͭͷ$16ˋ࢖༻͢Δ ϓϩάϥϜΛॲཧ ఏҊख๏ ैདྷख๏
  97. ࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̎ʣ wϦΫΤετʹؚ·ΕΔ༷ʑͳଐੑΛݩʹ੍ޚ͍ͨ͠ ߴूੵϚϧνςφϯτํࣜͰ͸ϦΫΤετͷଐੑͰ ςφϯτΛ۠ผ͠ϓϩηεΛڞ༗͢ΔͨΊ ϦΫΤετ୯ҐͰͷϦιʔε෼཭͕ඞཁ wෳࡶͳઃఆΛϓϩάϥϚϒϧʹهड़Մೳʹ͍ͨ͠ 

  98. ఏҊ͢ΔϦιʔε੍ޚΞʔΩςΫνϟ w04ͷϓϩηεϦιʔε෼཭ٕज़Λ8FCαʔόͷϦΫ Τετ୯ҐͰ׆༻੍͠ޚ wষͷػೳ֦ுࢧԉػߏ[email protected]ΛԠ༻ ϓϩάϥϚϒϧͰΦʔόʔϔουগͳ͍ࢧԉػߏͰ ϦΫΤετ୯ҐʹϦιʔεΛ੍ޚՄೳ 

  99. -JOVYಠࣗͷϦιʔε੍ޚDHSPVQ wϓϩηε୯ҐͰ$16ɾϝϞϦɾ*0౳Λ੍ޚ -JOVY,FSOFMҎ߱ͷػೳ ಛఆͷϓϩηε͸ίΞ$16·Ͱׂ౰ͳͲ $16ΛׂΓ౰ͯͨϦιʔεάϧʔϓΛ࡞੒ άϧʔϓʹࢀՃ͍ͯ͠ΔϓϩηεͰϦιʔε෼഑ 

  100. ϦΫΤετ୯ҐͰͷϦιʔε੍ޚ 8FCαʔό ϓϩηε ΫϥΠΞϯτ ϦΫΤετ Ϩεϙϯε Ϩεϙϯεੜ੒ͷॲཧͷؒͷΈ ϓϩηεΛಛఆͷDHSPVQʹΞλον ʢ$16ͳͲʣ DHSPVQΞλον

    DHSPVQσλον 
  101. "QBDIFͱ[email protected]ʹΑΔ࣮૷֓ཁ 

  102. Ϧιʔε੍ޚͷઃఆྫ 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ͱͯ͠εέδϡʔϧ͢Δઃఆ
  103. Ϧιʔε੍ޚͷઃఆྫ 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 
  104. Ϧιʔε੍ޚͷઃఆྫ r = Apache::Request.new if r.method== “POST” cpu = Cgroup::CPU.new

    “cpu_group” # CPU 10 cpu.cfs_quota_us = 10000 cpu.create cpu.attach end 
  105. Ϧιʔε੍ޚͷઃఆྫ r = Apache::Request.new if r.finfo.user == 500 cpu =

    Cgroup::CPU.new “cpu_group” # CPU 10 cpu.cfs_quota_us = 10000 cpu.create cpu.attach end 
  106. Ϧιʔε੍ޚͷઃఆྫ r = Apache::Request.new if r.finfo.size > 3000 cpu =

    Cgroup::CPU.new “cpu_group” # CPU 10 cpu.cfs_quota_us = 10000 cpu.create cpu.attach end 
  107. ਫ਼౓ͱΦʔόʔϔουͷධՁ wϦιʔε੍ޚಋೖʹΑΔΦʔόʔϔουධՁ wϦιʔε੍ޚͷਫ਼౓ධՁ 

  108. ࣮ݧ؀ڥ 

  109. ΦʔόʔϔουͷධՁ w)FMMP8PSME͢Δ͚ͩͷ)5.-ϑΝΠϧ wϦιʔε੍ޚಋೖ੍͠ݶΛ͠ͳ͍৔߹ͷΦʔόʔϔου wಉ࣌઀ଓ਺ɾ૯઀ଓ਺ສϦΫΤετ ະಋೖ࣌ɿSFTQPOTFTFD ɹಋೖ࣌ɿSFTQPOTFTFD 

  110. Ϧιʔε੍ޚͷਫ਼౓ධՁ w$16࢖༻͢Δ$(*΁ϦΫΤετ w$16ʹϦιʔε੍ޚ w$(*ͷ$16࢖༻࣌ؒΛมߋͯ͠ਫ਼౓Λൺֱ wੑೳ੍ޚ཰Λఆٛɿ wϨεϙϯε࣌ؒʢ੍ޚ࣌ʣ$16࢖༻࣌ؒʢ੍ޚແ࣌͠ʣ wੑೳ੍ޚ཰͕ʹ͚ۙΕ͹ਖ਼੍͘͠ޚ͞Ε͍ͯΔ 

  111. 

  112. ষͷ·ͱΊ wϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ෼཭ wϚϧνςφϯτํࣜͷΑ͏ʹϦΫΤετͰςφϯτΛಛ ఆ͠ॲཧ͢Δϓϩηε͸ڞ༗͢ΔΞʔΩςΫνϟʹ༗༻ wߴूੵϚϧνςφϯτํࣜʹ͓͍ͯैདྷݚڀΑΓ΋ฏ౳ ʹϦιʔεΛ෼཭͢Δࣄ͕Մೳ 

  113. ୈষ ·ͱΊ

  114. ·ͱΊ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹؔ͢Δݚڀ ηΩϡϦςΟͱӡ༻໘Λཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ ੑೳͱηΩϡϦςΟΛཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ 8FCαʔόػೳ֦ுࢧԉػߏͷݚڀ 8FCαʔόͷϦιʔε੍ޚͷݚڀ 

  115. ߩݙ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ͓͚Δϓϩηεڞ ༗ͷ՝୊Λମܥతʹ੔ཧ͠ΞʔΩςΫνϟΛఏҊͯ͠ղܾ ηΩϡϦςΟɾੑೳɾϦιʔε੍ޚɾӡ༻ٕज़ wಛʹ8FCϗεςΟϯάαʔϏεΛର৅ʹΞʔΩςΫνϟͷ࣮ ૷Λߦ͍αʔϏε΁൓өɾվળ -JOVYΛ׆༻֤ͨ͠छ8FCαʔϏεͷߴ౓Խʹد༩ 

  116. 044ͱͯ͠ެ։ wୈষ[email protected]@TFDVSJUZ wୈষ[email protected][email protected]ͱ֤छNSVCZϞδϡʔϧ wୈষNSVCZDHSPVQ wੈքத͔Β֤छࣄྫΛ࿈བྷ௖͍͓ͯΓ·͢ 

  117. ຊ࿦จʹؚ·ΕΔൃදจݙ ࿦จࢽ࿦จ 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. 
  118. ຊ࿦จʹؚ·ΕΔൃදจݙ ࠃࡍձٞൃදʢࠪಡ෇͖ʣ 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. 
  119. ຊ࿦จʹؚ·ΕΔൃදจݙ ޱ಄ൃද 1 দຊ྄հɾԬ෦णஉ, ϦΫΤετ୯ҐͰԾ૝తʹίϯϐϡʔλϦιʔεΛ෼཭͢ΔWebαʔό ͷϦιʔε੍ޚΞʔΩςΫνϟ, ৘ใॲཧֶձݚڀใࠂ Vol.2013-IOT-23, No.4, 2013೥9݄.