Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Webサーバの高集積マルチテナントアーキテクチャに関する研究 / Studies on Hig...
Search
MATSUMOTO Ryosuke
PRO
September 05, 2016
Research
17k
12
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Webサーバの高集積マルチテナントアーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers
松本亮介
2016年8月30日
2016年度 京都大学大学院 情報学研究科 博士課程 予備審査
MATSUMOTO Ryosuke
PRO
September 05, 2016
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
問いを起点に、社会と共鳴する知を育む場へ
matsumoto_r
PRO
0
910
さくらインターネット研究所 アップデート2025年
matsumoto_r
PRO
0
960
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
5.6k
エンジニアのキャリアパスはどう描く? まつもとりーさんと考える後悔しないキャリア選択
matsumoto_r
PRO
10
2.5k
まつもとりーのこれまでとCOGNANOのこれから
matsumoto_r
PRO
0
390
2022年の研究所の評価制度振り返りと今後
matsumoto_r
PRO
0
950
VUCAワールドから紐解く組織や評価制度の変遷と再設計
matsumoto_r
PRO
9
27k
コンテナの研究開発から学ぶLinuxの要素技術
matsumoto_r
PRO
2
1.6k
開発者体験をさらに向上させる 事業と研究との連携
matsumoto_r
PRO
2
2.6k
Other Decks in Research
See All in Research
CVPR2026論文紹介_VLMにとって良いvision encoderとは何か?Rethinking Model Selection in VLM Through the Lens of Gromov-Wasserstein Distance
kobayashi31
1
220
Claude Code × autoresearch 実践
mathbullet
0
270
マーケットストリート 社会実験2024 in 秋葉原ジャンク通り 調査報告書
izumiyama_lab
1
140
[Fishers] DIVER OSINT CTF 2026 特化AIエージェントハーネスで挑戦するOSINT CTF
analokmaus
0
580
The story of RefactoringMiner. Slow research, long-term impact
tsantalis
0
150
クラウド・AI 時代の研究開発 DX / R&D Digital Transformation
hariby
0
140
VRID: View-Invariant Representation through Dual-Axis Transformation for Cross-iew Pose Estimation
satai
3
110
SoftMatcha 2: 1兆語規模コーパスの超高速かつ柔らかい検索
e869120_sub
7
3.8k
人間中心の意思決定支援AI
yukinobaba
PRO
7
4.1k
MIRU2026 チュートリアル講演2:三次元データ処理の動向
nnchiba
6
4.9k
Spatial Active Noise Control Based onSound Field Interpolation Incorporating Physical Constraints
skoyamalab
0
190
論文紹介:Doc-to-LoRA: Learning to Instantly Internalize Contexts
yukako_nakano
0
160
Featured
See All Featured
Test your architecture with Archunit
thirion
2
2.4k
4 Signs Your Business is Dying
shpigford
187
23k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
460
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
520
GraphQLとの向き合い方2022年版
quramy
50
15k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
WENDY [Excerpt]
tessaabrams
14
39k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Thoughts on Productivity
jonyablonski
76
5.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
RailsConf 2023
tenderlove
30
1.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
4UVEJFTPO)JHIMZ*OUFHSBUFE.VMUJ5FOBOU"SDIJUFDUVSF GPS8FC4FSWFST দຊ྄հ ݄ ژେֶେֶӃใֶݚڀՊത࢜՝ఔ༧උ৹ࠪ 8FCαʔόͷߴूੵϚϧνςφϯτ ΞʔΩςΫνϟʹؔ͢Δݚڀ
࣍ʢʣ ݚڀͷతͱҐஔ͚ͮ ैདྷͷݚڀͱ՝ͷཧ ߴूੵϚϧνςφϯτํࣜͷӡ༻ޮͱηΩϡϦςΟͷཱ྆ ͷͨΊͷΞΫηε੍ޚΞʔΩςΫνϟ ߴूੵϚϧνςφϯτํࣜͷߴʹݖݶ͢ΔΞΫηε੍
ޚΞʔΩςΫνϟ
࣍ʢʣ ߴ͔ͭ҆શʹεΫϦϓτݴޠͰ8FCαʔόΛ֦ு͢ΔͨΊ ͷΞʔΩςΫνϟ ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ͢ΔϦιʔε੍ ޚΞʔΩςΫνϟ ·ͱΊ
ୈষ ݚڀͷతͱҐஔ͚ͮ
ݚڀͷഎܠ wΫϥυ֤छ8FCαʔϏεͷීٴͱݸਓͷར༻ w8FCαʔϏεͷՁ֨Խͱ࣭ͷڝ૪ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ wηΩϡϦςΟͱੑೳ্͕ॏཁ wӡ༻ٕज़ͷݚڀͱγεςϜͷ҆ఆԽ͕՝
ݚڀͷత wߴूੵϚϧνςφϯτํࣜͷ՝Λཧɾղܾ wಛʹςφϯτͷίϯςϯπΛࣄۀऀ͕ཧͰ͖ͳ͍߹ ߴूੵϚϧνςφϯτؒͰͷݖݶͷ՝ղܾ ߴूੵϚϧνςφϯτํࣜͷػೳ֦ுͷ՝ղܾ ߴूੵϚϧνςφϯτؒͰͷϦιʔεͷ՝ղܾ
ݚڀͷҐஔ͚ͮ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ͓͍ͯίϯςϯπ ੍͕ޚग़དྷͳ͍߹ͷෳͷ՝Λཧͯ͠ղܾ wߴूੵϚϧνςφϯτํࣜͷ8FCϗεςΟϯάʹண wମܥతʹϚϧνςφϯτํࣜͷैདྷख๏ͷ՝Λཧ wੑೳɾηΩϡϦςΟɾϦιʔε੍ޚɾӡ༻ٕज़ͷ؍Ͱղܾ w044ͱͯ͠ӡ༻ʹ͑͏Δ࣮Λߦ͍෯͘ར༻ͯ͘͠
ୈষ ैདྷͷݚڀͱ՝ͷཧ
ߴूੵϚϧνςφϯτํࣜͷ՝Λཧ جຊ֓೦ ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝ 8FCαʔόػೳ֦ுͷ՝ 8FCαʔόͷϦιʔε੍ޚͷ՝
جຊ֓೦
Ϛϧνςφϯτํࣜ
8FCαʔόͷϚϧνςφϯτํࣜ w୯ҰͷαʔόʹෳͷϢʔβڥΛߏங wӡ༻ίετͱऩ༰ʢϋʔυΣΞʣίετΛݮՄೳ wϢʔβڥͷίϯςϯπ੍͕ޚՄೳͳ߹ద wࣄۀऀ͕ίϯςϯπΛཧͰ͖ͳ͍߹ӡ༻͕ඇৗʹࠔ ςφϯτؒͷϦιʔεͷڝ߹ੑೳͷόϥϯε
8FCίϯςϯπͷཧͱϚϧνςφϯτ w8FCίϯςϯπΛࣄۀऀ͕ཧͰ͖Δ߹ 8FCίϯςϯπͰϦιʔεݖݶͷΛఆՄೳ ςφϯτͷऩ༰ઃܭൺֱత༰қ w8FCίϯςϯπΛࣄۀऀ͕ཧͰ͖ͳ͍߹ ͋ΒΏΔίϯςϯπ͕ಈͨ͘Ίऩ༰ઃܭɾӡ༻͕ࠔ ੬ऑͳίϯςϯπ͕͋ΔલఏͰϦιʔεɾݖݶ
8FCϗεςΟϯάαʔϏε
8FCϗεςΟϯάαʔϏεͷಛ wࣄۀऀ͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍ wϛυϧΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ wͰ͖Δ͚ͩฏʹϢʔβମݧΛఏڙ͖͢ wڞ༗ͷ߹Ϧιʔε੍ޚηΩϡϦςΟ͕ॏཁ wੑೳͱऩ༰Λ͍͔ʹόϥϯεΛͱΔ͔ॏཁ
ߴूੵͷඞཁੑͱՁ֨Խ
ݸਓ͚ͷ8FCαʔϏεͷ૿ՃͱՁ֨Խ wֶੜओ්ͩͬͨΓݸਓ͕झຯͰ͏༻్͕ଟ͍ wϋʔυΣΞʹͲΕ͚ͩߴूੵͰ͖Δ͔͕ॏཁ wͱʹ͔҆͘͘ੑೳͷྑ͍ͷΛఏڙ͍ͨ͠ wຊݚڀͰιϑτΣΞٕज़ʹΑΔղܾͷΞϓϩʔν
ϚϧνςφϯτΞʔΩςΫνϟͷجຊ֓೦ wߴूੵϚϧνςφϯτํࣜͷ8FCαʔόͷΞʔΩςΫνϟ wಈతίϯςϯπͷ࣮ߦํࣜ
ߴूੵϚϧνςφϯτํࣜͷ 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 Ϣʔβ" Ϣʔβ#
Ϣʔβ$ ޮྑ͘ϦιʔεΛ͑Δ ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁͳϦιʔε ߴूੵ͕ཁٻ͞ΕΔ߹ͷ Ϛϧνςφϯτʢຊݚڀʣ ϚϧνςφϯτͷผΞϓϩʔν
ಈతίϯςϯπͷ࣮ߦํࣜ
ಈతίϯςϯπͷ࣮ߦํࣜ w$(*࣮ߦํࣜ ಉҰΠϯλϓϦλͷෳόʔδϣϯΛ༻ҙͰ͖Δར w%40࣮ߦํࣜ ੑೳߴ͍͕جຊతʹ୯Ұͷ8FCαʔόʹΠϯλϓ ϦλΛෳόʔδϣϯ࣋ͯͳ͍
$(*࣮ߦํࣜ $(*QSPDFTT QIQDHJJOEFYQIQ $(*QSPDFTT GPSL UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT
PXOFSBQBDIF ϦΫΤετຖʹϓϩηεͷੜɾഁغͱ ൺֱతେ͖ͳόΠφϦʢ1)1ͩͱQIQDHJόΠφϦʣͷ FYFDWF ͕ඞཁ
%40࣮ߦํࣜ 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF JOEFYQIQ QBSTF SVO αʔόϓϩηεʹΠϯλϓϦλΛ
ΈࠐΜͰ͓͘
ߴूੵϚϧνςφϯτํࣜͷ՝ wߴूੵΛ࣮ݱ͢Δ"QBDIFͷ7JSUVBM)PTUͷΑ͏ͳ ΞʔΩςΫνϟίετޮ͕ྑ͍͕ෳ՝͕Δ ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝ 8FCαʔόͷػೳ֦ுͱ՝ 8FCαʔόͷϦιʔε੍ޚͱ՝
ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝
ӡ༻ٕज़ͱੑೳͷ՝ wςφϯτ୯ҐʹઃఆΛՃͯ͠ཧɾ੍ޚ͢Δӡ༻ wςφϯτͷ੩తઃఆʹΑΔϝϞϦͱಡࠐΈෛՙ૿େ ϖʔδςʔϒϧΤϯτϦͷංେԽʹΑΓ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ͭͷΞʔΩςΫνϟΛఏҊ $(*൛ͰηΩϡϦςΟͱӡ༻ٕज़Λཱ྆͢ΔΞΫηε ੍ޚΞʔΩςΫνϟˠষ %40൛ͰηΩϡϦςΟͱੑೳΛཱ྆͢ΔΞΫηε੍ ޚΞʔΩςΫνϟˠষ
8FCαʔόͷػೳ֦ுͱ՝
8FCαʔϏεͷ҆ఆੑ্ͷඞཁੑ wηΩϡϦςΟϦιʔεͷॏཁੑ wαʔϏεͷӡ༻ɾཧίετͷݮ͕ඞཁ wαʔϏεܗଶʹΑͬͯ8FCαʔόΛ࠷దԽ wίϯςϯπʹґଘ͠ͳ͍ػೳͷඞཁੑ͕૿Ճ
8FCαʔόͷػೳ֦ு͕ॏཁ w8FCίϯςϯπॲཧલޙʹॲཧΛࠩ͠ࠐΉ w8FCίϯςϯπʹґଘ͠ͳ͍ޮͷྑ͍ΞΫηε੍ ޚϦιʔεΛ࣮ݱՄೳ w8FCαʔϏεͷӡ༻ɾཧΛޮԽ wػೳ֦ுͱ࣮ͯ͢͠Δ͜ͱͰӡ༻อकΛߟྀ
ैདྷͷ8FCαʔόͷػೳ֦ுख๏ w$ݴޠʹΑΔ࣮͕ఆ൪ ߴ͔ͭলϝϞϦ㱻อकੑੜ࢈ੑ͕͍ wεΫϦϓτݴޠʹΑΔ࣮ อकੑੜ࢈ੑ͕ߴ͍㱻ੑೳɾ҆શੑͷ
ఏҊख๏
εΫϦϓτͰߴ͔ͭলϝϞϦʹ֦ுՄೳ w8FCαʔόϓϩηεͷΠϯλϓϦλΈࠐΈΛ࠷దԽ wߴूੵϚϧνςφϯτํࣜͰӡ༻อकΛߟྀͨ͠ػೳ ֦ுΞʔΩςΫνϟॏཁ ੑೳ໘ͱ҆શੑΛཱ྆ͨ͠ΞʔΩςΫνϟͷઃܭͱੜ ࢈ੑΛߴΊΔ࣮ˠষ
8FCαʔόͷϦιʔε੍ޚͱ՝
ैདྷͷ8FCαʔόͷϦιʔε੍ޚ wϋʔυΣΞϦιʔεಉ࣌ଓͳͲΛ୯७ͳᮢ ॲཧͰ੍ݶ wᮢΛ͑ΔͱϦΫΤετॲཧΛڧ੍அɾڋ൱ wड͚Δ͔ड͚ͳ͍͔ͷ୯७ͳ੍ޚ
ैདྷͷϦιʔε੍ޚͷ՝ wϚϧνςφϯτʹ͓͍ͯཧऀ͕ίϯςϯπΛཧͰ͖ ͳ͍ঢ়گͰϦιʔε༻ྔΛॊೈʹ੍ޚͰ͖ͳ͍ wಉ࣌ଓͳ͍ͰҰͭͷϦΫΤετͰେྔʹϦιʔε Λ༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍ wಉҰͷαʔϏεར༻ྉΛ͍ͬͯΔ͕Ϧιʔεڝ߹ʹΑ Γշదʹ͑ΔϢʔβͱ͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍
ఏҊख๏
ϦΫΤετ୯ҐͰϦιʔεΛ wϦΫΤετͷதஅͰͳ͘ܧଓతʹॲཧ wϦΫΤετ୯ҐͰϦΫΤετͷଐੑʹج͍ͯϦιʔε੍ޚ wཧऀ͕ෳࡶͳઃఆΛϓϩάϥϚϒϧʹදݱՄೳ ಛఆͷίϯϐϡʔλϦιʔεൣғͰॲཧ͢ΔΞʔΩς Ϋνϟˠষ
ୈষ ߴूੵϚϧνςφϯτํࣜʹΑΔ WebόʔνϟϧϗεςΟϯάج൫ͷ ηΩϡϦςΟͱӡ༻ٕज़ͷ՝ͱվળ
ষͷ՝ͷ·ͱΊ wಈతίϯςϯπ$(*ํࣜΛ͏ඞཁ͕͋Δ ෳόʔδϣϯͷΠϯλϓϦλΛѻ͍͍ͨ %40൛ͷΞΫηε੍ޚ$(*ఔͷੑೳʹͳΔ ੩తઃఆͷ૿ՃʹΑΔϝϞϦ༻ྔͷ૿େ wγεςϜྖҬͷӾཡෆՄͷͨΊͷઃఆίετ͕ߴ͍
ӡ༻໘ͱηΩϡϦςΟΛཱ྆͢ΔఏҊ wϦΫΤετϑΝΠϧ͔ΒಈతʹPXOFSΛऔಘ ઃఆΛςφϯτͷʹ߹Θͤͯ૿͢ඞཁແ͠ ूੵʹґଘ͢ΔϝϞϦ૿େΛݮ ߴूੵ࣌ʹ͓͍ͯϝϞϦ૿େʹ͏ϖʔδςʔϒϧΤϯ τϦ͕૿͑ͳ͍ͨΊGPSL ͕͘ͳΒͳ͍ wݖݶͷࡍʹϑΝΠϧγεςϜΛ߹Θִͤͯ
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%40ͷैདྷͷΞΫηε੍ޚɾ$(*ͷैདྷͷΞΫηε੍ޚɾ $(*ͷఏҊ͢ΔΞΫηε੍ޚͰൺֱ
࣮ݧڥ
̏ষ·ͱΊ wӡ༻ٕज़ͱηΩϡϦςΟΛߟྀͨ͠$(*ͷ৽͍͠ΞʔΩςΫνϟΛఏҊ wैདྷͷΞʔΩςΫνϟͱಉͷੑೳͰΑΓηΩϡΞͰѻ͍͍༷͢ ߴूੵ࣌ʹ͓͍ͯઃఆʹԠͨ͡ϝϞϦ૿Ճ͕ੜ͡ͳ͍ͨΊ࣮ӡ༻ ্ߴʹಈ࡞Մೳ wߴूੵϚϧνςφϯτͷςφϯτ૿ՃΛߟྀͨ͠ΞʔΩςΫνϟ
ୈষ εϨου୯ҐͰߴʹݖݶΛߦ͏ WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ wষͷΞΫηε੍ޚΞʔΩςΫνϟӡ༻ੑʹண $(*ͷརʢෳόʔδϣϯͷఏڙʣΛߟྀ w%40൛ͷੑೳΛ׆͔͢ΞΫηε੍ޚख๏͕ແ͍ ࣮ߦํࣜΠϯλϓϦλʹΑͬͯΞΫηε੍ޚख๏ ͕ෳଘࡏ͓ͯ͠Γࡶ
ߴूੵϚϧνςφϯτͱ$(*ɾ%40ͷੑೳ wੑೳ໘Ͱ$(*ຊདྷద͍ͯ͠ͳ͍ ऩ༰͕૿͑ΔͱϓϩηεͷϝϞϦ༻ྔ͕૿͑GPSL ͷޮԼ ͦͦϦΫΤετ୯ҐͰGPSL ͢ΔͷͰ͍ w%40GPSL ͠ͳ͍ͷͰద͍ͯ͠Δ
%40ͷΞΫηε੍ޚΞʔΩςΫνϟϦΫΤετຖʹGPSL ͕ඞཁ
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSSPPU JOEFYQIQ PXOFSVTFS TFUVJE TFUHJE QBSTF SVO
˞%40 ैདྷͷΞΫηε੍ޚख๏ $IJMEIUUQEQSPDFTT PXOFSVTFS $IJMEIUUQEQSPDFTT PXOFSVTFS UFSNJOBUFQSPDFTT ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜഁغ͕ඞཁ
ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ wಈతίϯςϯπ࣮ߦલʹΦʔφมߋͷಛݖͷΈΛ༩ ͑ͨεϨουΛ࡞ wΦʔφมߋͨ͠εϨου্ͰίϯςϯπΛॲཧ wίϯςϯπ࣮ߦޙεϨουͷΈΛআ w$(*ɾ%40྆ํͷ࣮ߦํࣜʹରԠ͢ΔΞʔΩςΫνϟ
εϨουͱ-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
-JOVYͰ"QBDIFϞδϡʔϧͱ࣮ͯ͠ wNPE@QSPDFTT@TFDVSJUZϞδϡʔϧ wઃఆҎԼͷΑ͏ʹγϯϓϧ
ੑೳධՁ w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮ wඵؒͷϦΫΤετΛมԽͤ͞ϨεϙϯεΛܭଌ wQIQJOGP Λग़ྗ͢Δ͚ͩͷ؆୯ͳϓϩάϥϜΛ༰қ w%40ͷैདྷͷΞΫηε੍ޚɾ$(*ͷैདྷͷΞΫηε੍ޚɾ %40$(*ͷఏҊ͢ΔΞΫηε੍ޚͰൺֱ
࣮ݧڥ
%40࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ w ඵؒϦΫΤετΛ૿Ճͤ͞ͳ͕ ΒඵؒϨεϙϯεΛܭଌ w ͷैདྷͷΞΫηε੍ޚ΄ͱΜ Ͳੑೳ͕Ͱ͍ͯͳ͍ w ͷఏҊ͢ΔΞΫηε੍ޚΞΫ ηε੍ޚແ͠ͷ߹ͱൺͯ΄
ͱΜͲΦʔόʔϔουແ͠ ੨ɿΞΫηε੍ޚແ͠ ɿఏҊ͢ΔΞΫηε੍ޚ ɿैདྷͷΞΫηε੍ޚ
$(*࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ w ඵؒϦΫΤετΛ૿Ճͤ͞ͳ͕ ΒඵؒϨεϙϯεΛܭଌ w $(*ͷΞΫηε੍ޚͷ༗ແʹؔΘ Βͣ$(*ͷ࣮ߦํࣜͷΦʔόʔ ϔου͕େ͖͍ͨΊɺΞΫηε੍ ޚʹΑΔΦʔόʔϔουແ͍ ੨ɿΞΫηε੍ޚແ͠
ɿैདྷͷΞΫηε੍ޚ ɿఏҊ͢ΔΞΫηε੍ޚ
ষ·ͱΊ wߴूੵϚϧνςφϯτํࣜʹ͓͚ΔੑೳΛߟྀͨ͠Ξ Ϋηε੍ޚΞʔΩςΫνϟͷఏҊ w࣮ߦํࣜͷࠩΛٵऩͨ͠ΞΫηε੍ޚ w%40࣮ߦํࣜͷΞΫηε੍ޚͱͯ͠େ෯ʹੑೳվળ
ୈষ εΫϦϓτݴޠͰߴ͔ͭলϝϞϦʹ ֦ுՄೳͳWebαʔόͷ ػೳ֦ுࢧԉΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ w8FCαʔόͷػೳ֦ுʹ͓͍ͯੑೳΛߟྀͨ͠߹ $ݴޠʹΑΔ࣮͕ఆ൪ wैདྷͷ8FCαʔόͷεΫϦϓτݴޠʹΑΔ֦ுੑ ೳ໘ͱ҆શੑʹ՝ wαʔόϓϩηεͷΠϯλϓϦλΈࠐΈͷΞʔΩς ΫνϟͷఏҊ͕ॏཁ
ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̍ʣ wΠϯλϓϦλڞ༗ํࣜʢNPE@QFSMɺNPE@SVCZʣ αʔόϓϩηεىಈ࣌ʹ୯ҰͷΠϯλϓϦλ֬อ ϦΫΤετॲཧ࣌ʹෳͷεΫϦϓτͰΠϯλϓϦλڞ༗ άϩʔόϧͷঢ়ଶڞ༗ ߴػೳ͔ͭنͷେ͖͍ΠϯλϓϦλʹ࠷ద
ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̎ʣ wෳΠϯλϓϦλํࣜʢNPE@MVBʣ εΫϦϓτ࣮ߦʢϦΫΤετॲཧʣ୯ҐͰΠϯλϓϦλ֬อ άϩʔόϧͳঢ়ଶಠཱͰ҆શ ΠϯλϓϦλ͕֬อ͢Δঢ়ଶ։์ͯ͠লϝϞϦ ػೳͰߴɾলϝϞϦͳΈࠐΈεΫϦϓτݴޠͳͲʹ࠷ద
ैདྷͷػೳ֦ு NPE@QFSM NPE@SVCZ NPE@MVB ݴޠ $ 1FSM 3VCZ -VB ΠϯλϓϦλॳظԽ
ॲཧ ࣄલ ϥΠϒϥϦಡΈࠐΈ ࣄલ ίϯύΠϧ ࣄલ ίʔυͷมߋ ෆՄ Մ Մ άϩʔόϧঢ়ଶ ڞ༗ ڞ༗ ඇڞ༗
ैདྷख๏ͷ՝ 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
NPE@NSVCZͷ#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
ҟͳΔ8FCαʔόͷ౷Ұత֦ுهड़ "QBDIF "1* 3VCZTDSJQU NPE@NSVCZ 3VCZTDSJQU ɾ ɾ ɾ ɾ
3VCZTDSJQUO /HJOY "1* OHY@NSVCZ 3VCZTDSJQU "QBDIF $PSF /HJOY $PSF 3VCZ %4- GPS8FC "QBDIF 5SB⒏D 4FSWFS "1* UT@NSVCZ "QBDIF 5SB⒏D 4FSWFS $PSF SFGIUUQTHJUIVCDPNTZVDSFBNUT@NSVCZ
౷Ұతهड़ྫ # 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!"
࣮ݧ wϝϞϦ༻ྔͷධՁ 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αʔόͷ Ϧιʔε੍ޚΞʔΩςΫνϟ
ষͷ՝ͷ·ͱΊ wϚϧνςφϯτʹ͓͍ͯཧऀ͕ίϯςϯπΛཧͰ ͖ͳ͍ঢ়گͰϦιʔε༻ྔΛॊೈʹ੍ޚͰ͖ͳ͍ wಉ࣌ଓͰҰͭͷϦΫΤετͰେྔʹϦιʔε Λ༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍ wಉҰͷαʔϏεར༻ྉΛ͍ͬͯΔ͕շదʹ͑ΔϢʔ βͱ͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍
࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̍ʣ 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σλον
"QBDIFͱNPE@NSVCZʹΑΔ࣮֓ཁ
Ϧιʔε੍ޚͷઃఆྫ 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
Ϧιʔε੍ޚͷઃఆྫ 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
Ϧιʔε੍ޚͷઃఆྫ 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
Ϧιʔε੍ޚͷઃఆྫ 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
ਫ਼ͱΦʔόʔϔουͷධՁ wϦιʔε੍ޚಋೖʹΑΔΦʔόʔϔουධՁ wϦιʔε੍ޚͷਫ਼ධՁ
࣮ݧڥ
ΦʔόʔϔουͷධՁ w)FMMP8PSME͢Δ͚ͩͷ)5.-ϑΝΠϧ wϦιʔε੍ޚಋೖ੍͠ݶΛ͠ͳ͍߹ͷΦʔόʔϔου wಉ࣌ଓɾ૯ଓສϦΫΤετ ະಋೖ࣌ɿSFTQPOTFTFD ɹಋೖ࣌ɿSFTQPOTFTFD
Ϧιʔε੍ޚͷਫ਼ධՁ w$16༻͢Δ$(*ϦΫΤετ w$16ʹϦιʔε੍ޚ w$(*ͷ$16༻࣌ؒΛมߋͯ͠ਫ਼Λൺֱ wੑೳ੍ޚΛఆٛɿ wϨεϙϯε࣌ؒʢ੍ޚ࣌ʣ$16༻࣌ؒʢ੍ޚແ࣌͠ʣ wੑೳ੍ޚ͕ʹ͚ۙΕਖ਼੍͘͠ޚ͞Ε͍ͯΔ
ষͷ·ͱΊ wϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ wϚϧνςφϯτํࣜͷΑ͏ʹϦΫΤετͰςφϯτΛಛ ఆ͠ॲཧ͢Δϓϩηεڞ༗͢ΔΞʔΩςΫνϟʹ༗༻ wߴूੵϚϧνςφϯτํࣜʹ͓͍ͯैདྷݚڀΑΓฏ ʹϦιʔεΛ͢Δࣄ͕Մೳ
ୈষ ·ͱΊ
·ͱΊ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹؔ͢Δݚڀ ηΩϡϦςΟͱӡ༻໘Λཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ ੑೳͱηΩϡϦςΟΛཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ 8FCαʔόػೳ֦ுࢧԉػߏͷݚڀ 8FCαʔόͷϦιʔε੍ޚͷݚڀ
ߩݙ w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ͓͚Δϓϩηεڞ ༗ͷ՝Λମܥతʹཧ͠ΞʔΩςΫνϟΛఏҊͯ͠ղܾ ηΩϡϦςΟɾੑೳɾϦιʔε੍ޚɾӡ༻ٕज़ wಛʹ8FCϗεςΟϯάαʔϏεΛରʹΞʔΩςΫνϟͷ࣮ Λߦ͍αʔϏεөɾվળ -JOVYΛ׆༻֤ͨ͠छ8FCαʔϏεͷߴԽʹد༩
044ͱͯ͠ެ։ wୈষNPE@QSPDFTT@TFDVSJUZ wୈষNPE@NSVCZOHY@NSVCZͱ֤छNSVCZϞδϡʔϧ wୈষNSVCZDHSPVQ wੈքத͔Β֤छࣄྫΛ࿈བྷ͍͓ͯΓ·͢
ຊจʹؚ·ΕΔൃදจݙ จࢽจ 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݄.