「マルチメディア，分散，協調とモバイル(DICOMO2019)シンポジウム」 令和元年7月

௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔΛ໨ࢦͨ͠ωοτϫʔΫαʔϏεؒґଘؔ܎ͷࣗಈ௥੻ͷߏ૝௶಺ ༎थ†1,a)‫ݹ‬઒ խେ†2দຊ ྄հ†1֓ཁɿΠϯλʔωοτͷར༻ऀʹΑΔଟ༷ͳཁ‫ʹٻ‬Ԡ͑ΔͨΊʹɼΠϯλʔωοταʔϏεΛࢧ͑ΔγεςϜ͕େ‫ن‬໛Խ͔ͭෳࡶԽ͍ͯ͠Δɽར༻ऀͱσʔληϯλʔؒͷωοτϫʔΫͷதؒ૚Λར༻͢ΔΤοδίϯϐϡʔςΟϯά΍খɾத‫ن‬໛σʔληϯλʔ͕஍ཧతʹ෼ࢄ͢Δ௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔʹ޲͚ͯɼࠓ‫ޙ‬͸͜Ε·ͰҎ্ʹγεςϜͷ‫ن‬໛ͱෳࡶੑ͕ߴ·͍ͬͯ͘ɽͦͷ݁ՌɼγεςϜ؅ཧऀ͸γεςϜΛߏ੒͢ΔωοτϫʔΫαʔϏεಉ࢜ͷґଘؔ܎Λ೺Ѳ͢Δ͜ͱ͕೉͘͠ͳΔͨΊɼґଘΛࣗಈͰൃ‫͢ݟ‬Δ͜ͱ͕ඞཁͱͳΔɽ͔͠͠ɼґଘΛࣗಈൃ‫͢ݟ‬Δઌߦख๏͸ɼγεςϜ؅ཧऀ͕೺ѲͰ͖͍ͯͳ͍ະ஌ͷωοτϫʔΫαʔϏεͱͷ௨৴ʹରͯ͠ɼडಈతʹτϥώοΫΛ‫؍‬ଌ͠ɼ૬ؔ͢Δ‫׆‬ಈΛࣔ͢αʔϏεΛൃ‫͢ݟ‬ΔɽͦͷͨΊɼґଘ‫ݕ‬ग़ͷِཅੑ཰͕ߴ͍·ͨ͸ґଘؔ܎ͷํ޲͕ࣝผͰ͖ͳ͍ͱ͍͏՝୊͕͋Δɽͦ͜Ͱɼຊ‫Ͱڀݚ‬͸ɼωοτϫʔΫ௨৴Λऴ୺͢Δ֤ϗετ্Ͱཱ֬͞Εͨτϥϯεϙʔτ઀ଓ৘ใΛ໢ཏతʹऩू͢Δ͜ͱʹΑΓɼωοτϫʔΫαʔϏεؒͷґଘؔ܎ΛࣗಈͰ௥੻Մೳͳ‫ج‬൫ΛఏҊ͢ΔɽຊఏҊʹΑΓɼະ஌ͷωοτϫʔΫαʔϏεͰ͋ͬͯ΋ɼOS ͕αϙʔτ͢Δτϥϯεϙʔτ઀ଓΛར༻͢Δ‫ݶ‬Γ͸ɼґଘΛൃ‫ݟ‬ՄೳͱͳΔɽ·ͨɼ઀ଓΛऴ୺͢Δϗετ্ʹͯɼ࣮ࡍʹൃੜͨ͠αʔϏεؒͷ઀ଓΛ‫ݕ‬ग़͢ΔͨΊʹɼِཅੑΛ࡟‫͖Ͱݮ‬Δɽ͞Βʹɼτϥϯεϙʔτ઀ଓͷ྆୺ͷϓϩηεΛ઀ଓΛཁ‫͢ٻ‬Δଆͱ઀ଓΛ଴ͪड͚Δଆʹ෼͚Δ͜ͱʹΑΓɼલऀ͕‫ʹऀޙ‬ґଘ͢Δͱ൑ఆͰ͖Δɽ

A Concept of Automatic Tracing for Network Service Dependencies
Toward Super Organic Data CenterYuuki Tsubouchi†1,a)Masahiro Furukawa†2

Ryosuke Matsumoto†1͕΋ͭҰ෦‫ػ‬ೳΛଞͷαʔϏε͔Βར༻͢Δ৔߹ɼ‫ʹ͍ޓ‬

1. ͸͡ΊʹωοτϫʔΫ઀ଓ͢Δ͜ͱʹΑΓɼ‫ػ‬ೳΛ‫ڞ‬௨ͯ͠ར༻͢Πϯλʔωοτ͕ਓʑͷੜ‫͍ͳ͔ͤܽʹ׆‬΋ͷͱͳͬͯΔ͜ͱ͕͋Δɽ͜ͷΑ͏ͳ௕೥ͷ‫ػ‬ೳ௥Ճɼར༻ऀ͔Βͷ͍Δ͜ͱ͔Βɼ‫ ͕ۀا‬10 ೥Ҏ্ͷ௕‫౉ʹؒظ‬ΓɼΠϯλʔΞΫηε૿Ճ͓Αͼෳ਺ͷαʔϏεͷ઀ଓͳͲͷཁҼʹΑωοτΛར༻ͨ͠αʔϏεʢΠϯλʔωοταʔϏεʣΛɼΓɼ‫͕ۀا‬؅ཧ͢ΔωοτϫʔΫ͕େ‫ن‬໛Խ͔ͭෳࡶԽ͠‫ػ‬ೳΛ௥Ճͭͭ͠ɼఏ‫͠ڙ‬ଓ͚ΔΑ͏ʹͳ͖͍ͬͯͯΔɽ

͍ͯΔɽ·ͨɼΠϯλʔωοταʔϏε͕ࣄ‫ͯ͠ͱۀ‬੒௕͢ΔʹͭΠϯλʔωοταʔϏεΛఏ‫͢ڙ‬ΔͨΊʹɼ‫ࡏݱ‬ΫϥΕͯɼར༻ऀ͔ΒͷΞΫηε਺͕૿େ͍ͯ͠Δɽ͞Βʹɼ΢υίϯϐϡʔςΟϯά͕޿͘ར༻͞Ε͍ͯΔҰํͰɼΠϯλʔωοταʔϏεͷར༻ऀʹΑΔଟ༷ͳཁ‫ʹٻ‬Ԡ͑IoT(Internet of Things)[1]ɼεϚʔτγςΟɼԾ૝‫ͳ࣮ݱ‬ΔͨΊʹɼ୯Ұͷ‫͕ۀا‬ɼιʔγϟϧωοτϫʔΫɼిࢠͲͷϦΞϧλΠϜੑ͕ཁ‫͞ٻ‬ΕΔྖҬʹ͓͍ͯɼར༻ऀۙ঎औҾ͓ΑͼԻ੠ɾಈը഑৴ͳͲɼଟ༷ͳαʔϏεΛఏ‫ڙ‬๣ͷϗʔϜήʔτ΢ΣΠ΍ωοτϫʔΫϧʔλʔɼখ‫ن‬໛͢ΔΑ͏ʹͳ͖͍ͬͯͯΔɽ͋ΔΠϯλʔωοταʔϏεσʔληϯλʔ [2] ͱ͍ͬͨΑ͏ͳωοτϫʔΫ୺ʢΤο†1†2a)͘͞ΒΠϯλʔωοτ‫ࣜג‬ձࣾ ͘͞ΒΠϯλʔωοτ‫ॴڀݚ‬SAKURA Research Center, SAKURA Internet Inc.
‫ࣜג‬ձࣾ͸ͯͳ Hatena Co., Ltd.
y-tsubouchi@sakura.ad.jpδʣʹଘࡏ͢Δࢿ‫ݯ‬Λ‫͢༻׆‬ΔΤοδίϯϐϡʔςΟϯ
ά [3], [4], [5] ͕‫͞ڀݚ‬Ε͍ͯΔɽՃ͑ͯɼদຊΒͷ‫[ ڀݚ‬6]Ͱ͸ɼখɾத‫ن‬໛σʔληϯλʔɼ͋Δ͍͸σʔληϯλʔ© 2019 Information Processing Society of Japan― 1169 ―ͱ͸‫Ͳ΄͍ͳ΂ݺ‬ͷখ‫ܕ‬ͷϥοΫ‫܈‬Λ͋ΒΏΔ৔ॴʹ෼ࢄϙʔτ઀ଓͷ྆୺ͷϓϩηεΛɼ઀ଓΛཁ‫͢ٻ‬Δଆͱ઀ଓͯ͠഑ஔ͢Δ෼ࢄ‫ܕ‬σʔληϯλʔͷߏ૝͕ใࠂ͞ΕͯΛ଴ͪड͚Δଆʹ෼͚ɼલऀ͕‫ʹऀޙ‬ґଘ͢Δͱ൑ఆ͢Ε

͍Δɽ෼ࢄ‫ܕ‬σʔληϯλʔʹ͓͚Δ֤σʔληϯλʔ͸͹Α͍ɽͦ͜Ͱɼຊ‫Ͱڀݚ‬͸ɼωοτϫʔΫ௨৴Λऴ୺͢୯ʹ෼ࢄ͢Δ͚ͩͰͳ͘ɼͦΕͧΕ͕‫ڠ‬ௐ͠ɼશମͱͯ͠Δ֤ϗετ্Ͱཱ֬͞Εͨτϥϯεϙʔτ઀ଓ৘ใΛ໢ཏ͸Ұͭͱͯ͠‫͑ݟ‬ΔΑ͏ʹಈ࡞͢Δ͜ͱ͔ΒɼຊߘͰ͸ɼతʹऩू͢Δ͜ͱʹΑΓɼωοτϫʔΫαʔϏεؒͷґଘ෼ࢄ‫ܕ‬σʔληϯλʔͷ໋໊ΛվΊɼ௒‫ݸ‬ମ‫ܕ‬σʔληϯؔ܎ΛࣗಈͰ௥੻Մೳͳ‫ج‬൫ΛఏҊ͢Δɽ͜ͷ௥੻‫ج‬൫Ͱλʔͱ͢Δɽ͜ͷΑ͏ͳίϯϐϡʔςΟϯά‫ج‬൫ͷมભ͔͸ɼ֤ϗετ্Ͱ‫ݕ‬ग़ͨ͠τϥϯεϙʔτ઀ଓ৘ใΛɼ઀ΒɼγεςϜͷ෼ࢄԽ͕͞ΒʹਐΈɼγεςϜͷ‫ن‬໛ͱෳଓઌ͓Αͼ઀ଓ‫ݩ‬ͷωοτϫʔΫαʔϏεͷϓϩηε৘ใࡶੑ͕ࠓ‫ͱ͍ͯͬ͘·ߴޙ‬༧૝Ͱ͖ΔɽΛ‫ؚ‬Ίͯɼதԝͷσʔλϕʔεʹఆ‫ظ‬తʹૹ৴͢Δ͜ͱʹຊใࠂͰ͸ɼϗετ্Ͱಈ࡞͠ɼωοτϫʔΫιέοτΑΓɼγεςϜ؅ཧऀ·ͨ͸֤ϗετ͕தԝͷσʔλϕʔѼͯͷཁ‫ٻ‬Λॲཧ͢ΔϓϩηεΛωοτϫʔΫαʔϏεͱεʹ໰͍߹ΘͤɼಛఆͷωοτϫʔΫαʔϏεͷґଘؔ܎‫Ϳݺ‬ɽωοτϫʔΫαʔϏε͕૬‫ʹޓ‬ωοτϫʔΫ௨৴͢Λऔಘ͢Δɽ

Δ͜ͱʹΑΓɼΠϯλʔωοταʔϏε͕ߏ੒͞ΕΔͨΊɼຊ‫Ͱڀݚ‬ఏҊ͢Δ‫ج‬൫Λ࣮‫͢ݱ‬Δ͜ͱʹΑΓɼ·ͣɼະϗετͷ‫ނ‬ো΍ੑೳྼԽʹΑΓɼଞͷωοτϫʔΫαʔϏ஌ͷωοτϫʔΫαʔϏεͰ͋ͬͯ΋ɼOS ͕αϙʔτ͢εʹӨ‫͢ڹ‬Δ͜ͱ͕͋ΔɽγεςϜΛมߋ͢Δͱ͖ʹɼͦΔτϥϯεϙʔτ઀ଓΛར༻͢Δ‫ݶ‬Γ͸ɼґଘؔ܎Λ௥੻ͷมߋʹ໰୊͕͋ͬͨ৔߹ʹมߋՕॴʹґଘ͢ΔશͯͷͰ͖Δɽ࣍ʹɼτϥϯεϙʔτ௨৴ͷ͏ͪ޿͘ར༻͞ΕͯωοτϫʔΫαʔϏε΁Ө‫఻͕ڹ‬ൖ͢ΔՄೳੑ͕͋Δ͍ͨΔ TCP ͓Αͼ UDP ͷ઀ଓ৘ใͱαʔϏεͷϓϩηεΊɼαʔϏεಉ࢜ͷωοτϫʔΫґଘؔ܎Λ஌Βͣʹมߋ৘ใΛ OS ͕ఏ‫͢ڙ‬ΔͨΊɼ‫ط‬ଘͷαʔϏεΛมߋͤͣʹ͢ΔͱɼγεςϜ؅ཧऀͷ༧૝ΑΓ΋େ͖ͳൣғʹো֐͕ґଘؔ܎Λ௥੻Ͱ͖Δɽ͞ΒʹɼωοτϫʔΫαʔϏεͷൃੜ͢Δ͜ͱ͕͋Δɽ͕ͨͬͯ͠ɼγεςϜ؅ཧऀ͸αʔϓϩηε৘ใΛ‫ؚ‬ΉͨΊʹɼϗετ୯Ґͷґଘؔ܎Ͱ͸ͳϏεؒͷґଘؔ܎Λ೺Ѳ͢Δ͜ͱʹΑΓɼมߋ͕Ө‫͢ڹ‬Δ͘ɼΑΓখ͞ͳཻ౓Ͱ͋Δϗετ্ͷϓϩηε୯ҐͷґଘൣғΛಛఆͰ͖Δ͜ͱ͕ॏཁͱͳΔɽ͔͠͠ɼ͋Δωοτؔ܎Λ௥੻Ͱ͖ΔɽՃ͑ͯɼதԝͷσʔλϕʔεʹ‫͔ࡏݱ‬ϫʔΫαʔϏε͕ҟͳΔผͷαʔϏεʹωοτϫʔΫ઀ଓΒա‫઀ͯͬ౉ʹڈ‬ଓ৘ใΛอଘ͢ΔͨΊʹɼಛఆͷ࣌ࠁ΍͢Δʹ͸ɼ௨ৗɼωοτϫʔΫαʔϏεϓϩάϥϜͷιʔҰఆִؒͰ୹࣌ؒͷ࣮ؒߦ͞ΕΔϓϩηεʹΑΓҰ࣌తʹείʔυ΍ઃఆϑΝΠϧʹ઀ଓઌΛ੩తʹ‫ه‬ड़͢ΔͨΊɼ઀ଓ͞ΕΔґଘؔ܎Λ௥੻Ͱ͖Δɽ࠷‫ʹޙ‬ɼ֤ϗετ͕ࣗ͋ΒΏΔ৔ॴʹ઀ଓͷͨΊͷઃఆ͕ॻ͔Ε͍ͯΔ͜ͱʹͳ཯తʹࣗ਎ͷґଘؔ܎Λऩूͭͭ͠ɼࣗ਎ͷґଘؔ܎ΛதΔɽͦͷͨΊɼγεςϜ؅ཧऀ͸ɼ‫ݟ‬མͱ͕͠ͳ͍Α͏ʹԝͷσʔλϕʔε͔ΒऔಘͰ͖Δɽະ஌ͷωοτϫʔΫαʔϏεͷґଘؔ܎Λ໢ཏ͢ΔͨΊʹຊ࿦จΛ࣍ͷΑ͏ʹߏ੒͢Δɽ2 ষͰ͸ɼωοτϫʔΫखؒΛཁ͢Δ͜ͱʹͳΔɽ͕ͨͬͯ͠ɼ࣮ࡍͷωοτϫʔαʔϏεͷґଘؔ܎ͷൃ‫ؔ͢ʹݟ‬Δઌߦ‫ڀݚ‬Λ੔ཧ͢ΔɽΫ઀ଓΛ௥੻͢Δ͜ͱʹΑΓɼγεςϜ؅ཧऀͷखʹΑΒ

3 ষͰ͸ɼ2 ষͰ੔ཧͨ͠՝୊Λղܾ͢ΔͨΊͷఏҊख๏ΛͣɼࣗಈͰະ஌ͷωοτϫʔΫαʔϏεͷґଘؔ܎Λൃ‫ݟ‬ड़΂Δɽ4 ষͰ͸ɼຊ࿦จΛ·ͱΊɼࠓ‫ޙ‬ͷల๬Λड़΂Δɽ͢Δඞཁ͕͋Δɽະ஌ͷωοτϫʔΫαʔϏεͷґଘؔ܎Λൃ‫͢ݟ‬ΔͨΊ

2. ωοτϫʔΫαʔϏεͷߏ੒ͱґଘʹɼ͍͔ͭ͘ͷઌߦख๏ [7], [8], [9], [10] ͕ఏҊ͞Ε͍ͯγεςϜ͕େ‫ن‬໛Խ͔ͭෳࡶԽ͍ͯ͠Δঢ়‫͍͓ͯʹگ‬ɼΔɽ͜ΕΒͷख๏͸ɼωοτϫʔΫτϥώοΫΛडಈతʹγεςϜΛߏ੒͢ΔωοτϫʔΫαʔϏεؒͷґଘؔ܎Λ‫؍‬ଌ͠ɼ૬ؔ͢Δ‫׆‬ಈΛࣔ͢ωοτϫʔΫαʔϏεΛൃ‫ݟ‬γεςϜ؅ཧऀ͕೺Ѳ͢Δ͜ͱ͕೉͘͠ͳ͍ͬͯΔͨΊɼ͢Δ͜ͱ͔ΒɼΞϓϦέʔγϣϯʹґଘͤͣʹɼґଘؔ܎γεςϜͷมߋ࣌ͷӨ‫ڹ‬ൣғΛಛఆͰ͖ͣɼ༧૝Λ௒͑ΔΛൃ‫͖Ͱݟ‬Δɽ͔͠͠ɼຊདྷґଘ͕ͳ͍ωοτϫʔΫαʔ‫ن‬໛ͷো֐ʹൃల͢Δ͜ͱ͕͋ΔɽຊষͰ͸ɼωοτϫʔϏεʹґଘ͕͋Δͱ‫ޡ‬൑ఆͯ͠͠·͏ൺ཰ʢِཅੑ཰ʣ͕ΫαʔϏεͷ෼ࢄߏ੒ͱωοτϫʔΫαʔϏεͷґଘؔ܎ߴ͍͜ͱͱɼ୭͕୭ʹґଘ͢Δͷ͔ͱ͍͏ґଘؔ܎ͷํ޲ΛࣗಈͰൃ‫͢ݟ‬ΔͨΊͷٕज़Λ੔ཧ͢ΔɽΛࣝผͰ͖ͳ͍ͱ͍͏՝୊͕͋Δ [11]ɽ
ະ஌ͷωοτϫʔΫαʔϏεͱͷ௨৴Λൃ‫͢ݟ‬ΔͨΊʹ

2.1 ωοτϫʔΫαʔϏεͷ෼ࢄߏ੒͸ɼOS ͷ‫ػ‬ೳʹΑΓ໢ཏతʹ઀ଓ৘ใΛऔಘͰ͖ΔτϥΠϯλʔωοταʔϏε͸ɼখ͘͞࠶ར༻Մೳͳෳ਺ϯεϙʔτ௨৴ͷ઀ଓΛऴ୺͢Δϗετ্Ͱ‫ݕ‬ग़͢Ε͹ΑͷϞδϡʔϧΛ߹੒ͯ͠ɼ࣮‫͞ݱ‬Ε͍ͯΔɽྫͱͯ͠ɼ͍ɽ·ͨɼِཅੑΛ࡟‫͢ݮ‬ΔͨΊʹɼωοτϫʔΫαʔϏ

ਤ 1 ʹΠϯλʔωοταʔϏεͷ͏ͪͷ 1 ͭͰ͋Δ WebεؒͷτϥώοΫͷ૬ؔੑΛ‫؍‬ଌ͢ΔͷͰ͸ͳ͘ɼ࣮ࡍʹαʔϏεͷయ‫ܕ‬తͳߏ੒Λࣔ͢ɽWeb αʔϏε͸ɼWebϗετ্Ͱൃੜͨ͠αʔϏεؒͷ઀ଓΛ௚઀‫ݕ‬ग़͢Ε͹ΑαʔόɼΞϓϦέʔγϣϯαʔόɼσʔλϕʔεαʔό͍ɽ͞Βʹɼґଘؔ܎ͷํ޲Λࣝผ͢ΔͨΊʹɼτϥϯεͷ 3 ֊૚ͷωοτϫʔΫαʔϏεΛ‫ج‬ຊͱͯ͠ߏ੒͞Ε© 2019 Information Processing Society of Japan― 1170 ―ෳ਺ͷखஈ͕͋Γɼྫ͑͹ɼਤ 2 ʹ͓͚Δ Web αʔό͔ΒҟͳΔผͷαʔϏεͷ Web αʔό΁઀ଓ͢Δ͜ͱ͕͋Δɽ·ͨɼ୯Ұͷ‫ڊ‬େͳαʔϏεΛෳ਺ͷখ͞ͳαʔϏεʹ෼্ׂͨ͠Ͱɼૄ݁߹ͳঢ়ଶʹ֤ͯ͠αʔϏεͷ࠶ར༻ΛߴΊͨߏ੒ΛͱΔϚΠΫϩαʔϏεΞʔΩςΫνϟ [19]͕஫໨͞Ε͍ͯΔɽ
ਤ 1Web αʔϏεͷ 3 ֊૚ߏ੒2.2 ωοτϫʔΫαʔϏεؒͷґଘؔ܎զʑ͸ɼωοτϫʔΫαʔϏεؒͷґଘؔ܎ΛɼZandΒͷ‫[ ڀݚ‬11] ͱಉ༷ʹɼ࣍ͷΑ͏ʹఆٛ͢ΔɽαʔϏεS1 Ͱͷ஗Ԇɼੑೳ௿Լ͓Αͼ‫ނ‬ো͕ɼ௚઀·ͨ͸ؒ઀తʹɼαʔϏε S2 ͷ஗Ԇɼੑೳ௿Լ͓Αͼ‫ނ‬োΛҾ͖‫͜ى‬͢ͷͰ͋Ε͹ɼαʔϏε S2 ͸αʔϏε S1 ʹґଘ͢ΔɽChen Βͷ‫[ ڀݚ‬8] ͸ɼωοτϫʔΫαʔϏεґଘؔ܎Λ
local-remote ґଘͱ remote-remote ґଘͷ 2 ͭʹ෼ྨͯ͠ਤ 2͍ΔɽS1 ͕ΫϥΠΞϯτʹαʔϏεΛఏ‫͢ڙ‬ΔͨΊʹ S2Web αʔϏεͷ෼ࢄߏ੒ʹ઀ଓ͢Δඞཁ͕͋Δ৔߹ɼαʔϏε S1 ͸αʔϏε S2 ʹΔ [12]ɽ͜ͷ‫ج‬ຊߏ੒ʹՃ͑ͯɼWeb αʔϏεͷҰ෦‫ػ‬

local-remote ґଘؔ܎Λ΋ͭɽαʔϏε S2 ʹ઀ଓ͢ΔͨೳΛޮՌతʹ࣮૷͢ΔͨΊʹɼઐ༻ͷϛυϧ΢ΣΞΛ௥Ίʹɼԕִʹ͋ΔΫϥΠΞϯτ͕αʔϏε S1 ʹ࠷ॳʹ઀Ճͨ͠ߏ੒Λਤ 2 ʹࣔ͢ɽ·ͣɼΞϓϦέʔγϣϯαʔ

ଓ͢Δඞཁ͕͋ΔͷͰ͋Ε͹ɼαʔϏε S2 ͸αʔϏε S1ό͔ΒɼϦϨʔγϣφϧσʔλϕʔεʢRDB: Relationalʹ remote-remote ґଘؔ܎Λ΋ͭɽ

DatabaseʣαʔόɼΩʔόϦϡʔετΞʢKVS: Key-Valueྫ͑͹ɼΫϥΠΞϯτͰ͋Δ Web αʔό͔Βཁ‫ٻ‬ΛडStoreʣαʔό [13], [14], [15] ΍શจ‫ࡧݕ‬αʔό [16], [17] ͳ͚ͨΞϓϦέʔγϣϯαʔό͸ɼσʔλϕʔεαʔόʹ໰Ͳͷ NoSQL[18] Λར༻͢Δɽ࣍ʹɼಛఆͷ࣌ࠁ΍͍࣌ؒؒ߹Θͤɼ݁ՌΛऔಘͨ͠ͷͪʹɼWeb αʔό΁Ԡ౴ΛฦִͰΞϓϦέʔγϣϯΛ࣮ߦ͢Δ৔߹ɼόοναʔό্ͷ٫͢ΔͨΊɼΞϓϦέʔγϣϯαʔό͸σʔλϕʔεαʔλΠϚʔ͕ΞϓϦέʔγϣϯΛ࣮ߦ͢ΔɽWeb αʔϏεόʹ local-remote ґଘؔ܎Λ΋ͭɽҰํͰɼWeb αʔόͷར༻ऀ͸ɼWeb αʔϏεʹΞΫηε͢ΔͨΊʹɼ֎෦ͷʹ઀ଓ͢ΔΫϥΠΞϯτ͸ɼ·ͣ DNS αʔόʹ઀ଓ͠ɼ

DNS αʔόʹ໰͍߹ΘͤɼWeb αʔόͷ IP ΞυϨεΛIP ΞυϨεΛऔಘͨ͠ͷͪʹɼWeb αʔόʹ઀ଓ͢Δͨऔಘ͢Δɽ಺෦ͷΞϓϦέʔγϣϯαʔό΍όοναʔόΊɼWeb αʔό͸ DNS αʔόʹ remote-remote ґଘؔ܎্ͷΞϓϦέʔγϣϯ͔Βσʔλϕʔεαʔό΍શจ‫ࡧݕ‬Λ΋ͭɽαʔόʹ઀ଓ͢Δͱ͖ʹɼυϝΠϯ໊Λར༻͢Δ৔߹ɼ಺෦ DNS αʔόʹ໰͍߹Θͤɼσʔλϕʔεαʔόͷ IP Ξ2.3 ωοτϫʔΫαʔϏεͷґଘؔ܎ͷൃ‫ݟ‬ωοτϫʔΫαʔϏεؒͷґଘؔ܎ͷൃ‫ݟ‬ͷͨΊͷख๏υϨεΛऔಘ͢Δɽ1 ୆ͷαʔόͷॲཧೳྗʹ͸‫ݶ‬ք͕͋Δ͜ͱ͔ΒɼWeb͸ɼେ͖͘෼͚ͯɼ֎෦͔ΒγεςϜͷৼΔ෣͍Λ‫؍‬ଌ͢αʔϏεͷΞΫηε͕૿Ճ͢Δͱɼ૿ՃྔʹԠͯ͡ෛՙΛΔ‫؍‬ଌࢤ޲ͷΞϓϩʔνͱɼΞϓϦέʔγϣϯॲཧ΍ωοෳ਺ͷαʔόʹ෼ࢄ͢Δඞཁ͕͋ΔɽWeb αʔό΍ΞϓϦτϫʔΫ௨৴ͷؒʹ‫ܭ‬ଌ఺Λઃఆ͢Δ͜ͱʹΑΓɼཁ‫ॲٻ‬έʔγϣϯαʔό͸ɼϩʔυόϥϯαΛར༻͢Δ͜ͱʹΑཧͷҰ࿈ͷྲྀΕͷதͰ‫ܭ‬ଌ఺Λ௨աͤ͞Δհೖࢤ޲ͷΞϓΓɼෳ਺ͷಉҰͷ Web αʔό΍ΞϓϦέʔγϣϯαʔόϩʔνʹ෼ྨͰ͖Δɽ΁ෛՙΛ෼ࢄ͢ΔɽRDB αʔό΍ NoSQL αʔόʹ͍ͭ

2.3.1 ‫؍‬ଌࢤ޲Ξϓϩʔνͯ͸ɼಉҰͷσʔλΛෳ਺ͷαʔόʹ഑ஔ͢ΔϨϓϦέʔ‫؍‬ଌࢤ޲ͷΞϓϩʔνͱͯ͠ɼωοτϫʔΫτϥώοΫͷγϣϯΛར༻͠ɼ໰͍߹ΘͤΛෳ਺ͷαʔό΁෼ࢄͤ͞ৼΔ෣͍Λ‫؍‬ଌ͢Δ Sherlock[7]ɼOrion[8]ɼMacroscope[9]ɼ

Δɽ·ͨɼಛఆͷσʔλΛಛఆͷαʔόʹ഑ஔ͢Δ͜ͱʹ

NSDMiner[10], [20] ͕͋ΔɽSherlock[7] ͸ɼҟͳΔαʔϏΑΓɼσʔλϕʔεͷॲཧΛෳ਺ͷαʔό΁෼ࢄͤ͞Δ͜εؒͷύέοτͷ࣌ؒ૬ؔΛར༻͢ΔɽOrion ͸ɼτϥͱ΋͋ΔɽώοΫͷ஗Ԇ෼෍ͷεύΠΫΛར༻͢Δ [8]ɽNSDMinerWeb αʔϏε‫Ͱۀا‬͸ɼ୯Ұͷ‫Ͱۀا‬ෳ਺ͷ Web αʔ͸ɼϩʔΧϧͷωοτϫʔΫαʔϏε͕ཁ‫͞ٻ‬Ε͍ͯΔͱϏεΛఏ‫͢ڙ‬Δ͜ͱ͕͋ΔͨΊɼ͋ΔαʔϏεͷ‫ػ‬ೳΛଞԾఆͯ͠ɼϦϞʔτͷαʔϏε͕ཁ‫͞ٻ‬Ε͍ͯΔ֬཰Λ‫ܭ‬ͷαʔϏε͔Βར༻͢ΔͨΊʹɼαʔϏεؒΛωοτϫʔࢉ͢Δ͜ͱʹΑΓɼlocal-remote ґଘΛൃ‫͢ݟ‬Δ [10]ɽ

Ϋ઀ଓ͢Δ͜ͱ͕͋ΔɽωοτϫʔΫ઀ଓͷߏ੒ͷํ๏͸͍ͣΕͷख๏ʹ͓͍ͯ΋ɼ·ͣɼτϥώοΫͷ૬ؔੑΛ© 2019 Information Processing Society of Japan― 1171 ―‫؍‬ଌ͢Δ΋ͷͰ͋Γɼґଘؔ܎Λൃ‫͢ݟ‬Δܾఆతͳख๏Ͱ͸ͳ͍ͨΊɼِӄੑͱِཅੑ͕͋ΔɽτϥώοΫʹؔͯ͠ɼΞϓϦέʔγϣϯ૚ͷ৘ใΛߟྀ͠ͳ͍͜ͱ͔ΒɼͲͷτϥώοΫ͕ґଘؔ܎ʹ‫ى‬Ҽ͢Δͷ͔ɼͦΕͱ΋୯ʹ‫ۮ‬વͷҰகʹΑΓɼґଘؔ܎͕͋ΔΑ͏ʹΈ͑Δ͔Λ۠ผ͢Δ͜ͱ͸ࠔ೉Ͱ͋Δɽ·ͨɼ૬ؔΛ‫؍‬ଌ͢Δ͜ͱ͔Βɼґଘؔ܎ͷํ޲Λࣝผ͢Δ͜ͱ͕೉͍͠ɽ͞ΒʹɼτϥώοΫ͔ΒશମతʹґଘΛநग़͢Δ͜ͱ͔Βɼ΄ͱΜͲར༻͞Εͳ͍ωοτϫʔΫαʔϏε΁ͷґଘΛ‫ݟ‬ಀ͠͏Δɽ

Macroscope ͸ɼϗετ·ͨ͸ωοτϫʔΫσόΠεͰऩू͢ΔωοτϫʔΫύέοτͱϗετ্ͷτϥϯεϙʔτ઀ଓ৘ใΛ݁߹͢Δ [9]ɽϗετ্ͷτϥϯεϙʔτ઀ଓਤ 3ఏҊख๏ͷ‫ج‬൫ߏ੒৘ใͱΞϓϦέʔγϣϯϓϩηεͷ৘ใΛར༻͢Δ͜ͱʹΑΓɼِཅੑΛ௿‫͍ͯ͠ݮ‬Δ͜ͱ͕ಛ௃Ͱ͋Δɽ͔͠͠ɼ͸ɼ֤ωοτϫʔΫαʔϏε͕ಛఆͷ࣌ؒ࿮Ͱ஗Ԇ͢Δͨ

ΫϥΠΞϯτ PC ʹ͓͍ͯͲͷΑ͏ͳωοτϫʔΫαʔϏΊɼ͋Β͔͡ΊֶशதͷαʔϏεͷηοτΛ஌͓ͬͯ͘εΛར༻͍ͯ͠Δ͔Λௐࠪ͢ΔͨΊͷख๏Ͱ͋Γɼαʔόඞཁ͕͋ΔɽClawson ͷ‫[ ڀݚ‬25] ͸ɼશͯͷύέοτ͕ઃαΠυͷґଘؔ܎ͷൃ‫͍ͯͭʹݟ‬͸ɼࠓ‫ޙ‬ͷ՝୊ͱ͞Εͯఆͨ͠‫ܭ‬ଌ఺Λ௨ա͢ΔΑ͏ʹ͢Δ͜ͱͰɼະ஌ͷωο͍ΔɽτϫʔΫαʔϏεͷґଘΛൃ‫͖Ͱݟ‬Δɽಉ༷ʹɼαʔϏε2.3.2 հೖࢤ޲Ξϓϩʔνϝογϡ [26] ͸ɼαʔϏε୯ҐͷϓϩΩγΛಁա‫ܕ‬ϓϩհೖࢤ޲Ξϓϩʔνͱͯ͠ɼPinpint[21]ɼMagpie[22]ɼ

Ωγͱͯ͠ར༻͢Δ͜ͱʹΑΓɼະ஌ͷωοτϫʔΫαʔ

X-Trace[23]ɼDapper[24]ɼRippler[11]ɼClawson ͷ‫[ ڀݚ‬25]ϏεͷґଘΛൃ‫͖Ͱݟ‬Δ [34]ɽ͔͠͠ɼClawson ͷ‫ͱڀݚ‬͓ΑͼαʔϏεϝογϡ [26] ͕͋ΔɽPinpointɼMagpieɼ

αʔϏεϝογϡҎ֎ͷख๏͸ɼ‫ط‬஌ͷτϥώοΫ΍ཁ‫ٻ‬

X-Trace ͸ɼΞϓϦέʔγϣϯͷॲཧதʹɼϦΫΤετ

ॲཧʹ‫ܭ‬ଌ఺Λઃఆ͢Δඞཁ͕͋ΔͨΊɼະ஌ͷωοτͷࣝผࢠΛωοτϫʔΫϓϩτίϧʹຒΊࠐΈɼ‫ޙ‬ଓͷϫʔΫαʔϏεͷґଘΛൃ‫͍ͳ͖Ͱݟ‬ɽґଘ͢ΔγεςϜ΁ࣝผࢠΛ఻ൖͤ͞Δ [21], [22], [23]ɽ

Dapper ͸ɼϦΫΤετͷࣝผࢠΛຒΊࠐΉΦʔόʔϔο

3. ఏҊख๏

υΛαϯϓϦϯάʹΑΓ௿‫͍ͯͤ͞ݮ‬Δ [24]ɽDapper ͷ‫ط‬ଘख๏ͷಛ௃Λ౿·͑Δͱɼґଘؔ܎ͷ‫ݕ‬஌ਫ਼౓ΛߴϞσϧʹ͕ͨͬͨ͠Φʔϓϯιʔεͷ࣮૷ͱͯ͠ɼApacheΊͭͭɼґଘͷํ޲Λࣝผ্ͨ͠Ͱɼະ஌ͷωοτϫʔΫ

HTrace[27]ɼOpenZipkin[28]ɼJaeger[29] ͳͲ͕͋Γɼ͜ΕαʔϏεͷґଘؔ܎Λൃ‫͢ݟ‬ΔͨΊʹ͸ɼωοτϫʔΫ௨Βͷख๏Λ·ͱΊͯ෼ࢄτϨʔγϯάͱ‫ͼݺ‬ɼ෼ࢄτϨʔ৴Λऴ୺͢Δ֤ϗετ্Ͱཱ֬͞Εͨ઀ଓ৘ใΛ໢ཏతʹγϯάͷ࢓༷Λඪ४Խ͢Δ OpenTracing[30] ͕ొ৔͍ͯ͠ऩू͢Δ‫ج‬൫͕ඞཁͱͳΔɽ໢ཏతʹऩू͢Δʹ͸ɼ‫؍‬ଌ

ΔɽRippler ͸ɼωοτϫʔΫτϥώοΫʹ஗ԆΛ஫ೖ͢ͷͨΊͷΦʔόʔϔουΛখ͘͢͞Δ͜ͱ͕๬·͍ͨ͠ΊɼΔ͜ͱʹΑΓɼґଘ͢ΔγεςϜ΁஗Ԇ͕఻ൖ͢ΔಛੑΛΞϓϦέʔγϣϯॲཧʹհೖ͠ͳ͍ख๏͕‫ٻ‬ΊΒΕΔɽ

ར༻͢Δ [11]ɽClawson ͷ‫ڀݚ‬͸ɼϗετ্ͷ OS ಺ͷύέοτॲཧ෦෼ʹ‫ܭ‬ଌ఺Λઃఆ͠ɼύέοτͷ௨աΛϩάͱͯ͠‫ه‬࿥͢Δ [25]ɽαʔϏεϝογϡ͸ɼϚΠΫϩαʔ

3.1 ఏҊख๏ͷৄࡉҎԼʹఏҊख๏ͷཁ݅Λࣔ͢ɽϏε [19] ΍ωοτϫʔΫαʔϏεͷ୯ҐͰϓϩΩγΛ഑ஔ(1) OS ͷ‫ػ‬ೳʹΑΓɼϗετ্ͷશͯͷ઀ଓ৘ใΛऔಘͰ͠ɼϓϩΩγΛ‫ܦ‬༝ͯͦ͠ͷଞͷαʔϏεͱ௨৴ͤ͞Δ͖͜Δτϥϯεϙʔτ௨৴ͷ઀ଓϩάΛΞϓϦέʔγϣͱʹΑΓɼΞϓϦέʔγϣϯΛมߋ͢Δ͜ͱͳ͘ɼґଘ͢ϯॲཧʹհೖ͢Δ͜ͱͳ͘ऩूͰ͖ΔΔαʔϏεͷґଘΛൃ‫͠ݟ‬ɼτϥώοΫΛ੍‫͢ޚ‬Δ [26]ɽ

(2) τϥϯεϙʔτ઀ଓͷ྆୺ͷϓϩηεΛɼ઀ଓΛཁ‫ٻ‬αʔϏεϝογϡͷ࣮૷ͱͯ͠ Istio[31] ͱ Linkerd[32] ͕͋ΓɼϓϩΩγͷΈͷ࣮૷ͱͯ͠ Envoy Proxy[33] ͕͋Δɽ͢Δଆͱ઀ଓΛ଴ͪड͚Δଆʹ෼͚ΒΕΔ(3) ઀ଓϩάΛӬଓอଘ͠ɼࢦఆͨ࣌ؒ͠ൣғͰ‫Ͱࡧݕ‬͍ͣΕͷख๏΋ɼ‫ܭ‬ଌ఺Λ໌ࣔతʹઃఆ͍ͯ͠ΔͨΊɼ͖Δِཅੑ͕ൃੜͮ͠Β͍ͱ͍͏ར఺͕͋Δɽ͔͠͠ɼΞϓϦਤ 3 ʹɼ֤ཁ݅Λຬͨ͢‫ج‬൫ͷߏ੒Λࣔ͢ɽ·ͣɼτέʔγϣϯͷҰ࿈ͷॲཧʹհೖ͢ΔͨΊɼຊདྷͷΞϓϦϨʔαʔΛ֤ϗετ্Ͱಈ࡞ͤ͞ɼτϨʔαʔ͕ OS ͔ΒέʔγϣϯॲཧʹՃ͑ͯΦʔόʔϔου͕ൃੜ͢Δɽ·τϥϯεϙʔτ઀ଓ৘ใΛఆ‫ظ‬తʹऩू͢Δɽ࣍ʹɼτ

ͨɼX-Trace[23] ͱ Dapper[24] ͸ɼࣝผࢠΛຒΊࠐΉ͜ͱϨʔαʔ͸ࣗ਎ͷϗετͷ OS ͔Β଴ͪड͚ঢ়ଶͷϙʔτ͔ΒɼΞϓϦέʔγϣϯͷมߋ͕ඞཁͱͳΔɽRippler[11]ҰཡΛऔಘ͠ɼ౰֘ϙʔτͷ઀ଓͷ૬खઌαʔϏε͔Β

© 2019 Information Processing Society of Japan― 1172 ―౰֘ϙʔτͰ଴ͪड͚ΔαʔϏεʹґଘ͢Δͱ൑ఆ͢Δɽηεͷ৘ใΛӅณ͢ΔՄೳੑ͕͋Δɽ͞ΒʹɼτϨʔαʔ͸ɼ઀ଓ৘ใʹ൑ఆͨ͠ґଘͷํ޲ΛఏҊख๏ͷ࣮૷͸ɼϗετ্ͷཱ֬ࡁΈͷ઀ଓͷεφο‫ؚ‬Ίɼதԝͷ CMDBʢ઀ଓ؅ཧσʔλϕʔεʣ΁ૹ৴͢ϓγϣοτΛఆ‫ظ‬తʹऔಘ͢Δ͜ͱ͔Βɼऔಘ͢Δ࣌ؒؒΔɽ࠷‫ʹޙ‬ɼγεςϜ؅ཧऀ·ͨ͸֤ϗετ͕ɼϗετ΍ִҎ಺ʹऴྃ͢Δ઀ଓΛൃ‫͍ͳ͖Ͱݟ‬Մೳੑ͕͋ΔͨΊɼωοτϫʔΫαʔϏεΛҰҙʹࣝผ͢Δ৘ใͱ࣌ؒൣғΛِӄੑ͕͋Δɽ

CMDB ʹ໰͍߹Θͤɼର৅ʹඥͮ͘ґଘؔ܎Λऔಘ͢ΔɽఏҊख๏ʹ͓͚Δ઀ଓ৘ใ͸ɼૹ৴‫ૹͱݩ‬৴ઌͷ IP Ξ

4. ·ͱΊͱࠓ‫ޙ‬ͷల๬υϨεͱϙʔτ൪߸ʹωοτϫʔΫαʔϏεͷϓϩηεຊ‫Ͱڀݚ‬͸ɼ௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔʹ޲͚ͯɼϗετID ͱϓϩηε໊ΛՃ͑ͨɼ(< src ip >, < src port >, <্ͷτϥϯεϙʔτ઀ଓͷ৘ใΛऩू͢Δ͜ͱʹΑΓɼະdst ip >, < dst port >, < pid >, < process name >) ͷ 6

஌ͷωοτϫʔΫαʔϏεΛ‫ؚ‬ΉαʔϏεؒͷґଘؔ܎ΛλϓϧͰද‫͢ݱ‬Δɽ< pid > ͱ < process name > ʹ͍ͭࣗಈͰൃ‫͢ݟ‬Δख๏ΛఏҊͨ͠ɽͯ͸ɼ઀ଓ৘ใΛऩू͢Δϗετ্ͷϓϩηε໊Λࢦ͢ɽࠓ‫ޙ‬ͷల๬ͱͯ͠ɼ·ͣɼఏҊख๏ͷ࣮૷ΛਐΊɼ࣮‫ݧ‬ωοτϫʔΫαʔϏεؒͷґଘͷํ޲Λࣝผ͢ΔͨΊΛ্ͨ͠Ͱِཅੑͱِӄੑʹ͍ͭͯɼධՁ͢Δ༧ఆͰ͋ʹɼωοτϫʔΫαʔϏεؒͷτϥϯεϙʔτ઀ଓʹ͍ͭΔɽ࣍ʹɼίϯςφ‫ܕ‬Ծ૝Խ‫͍͓ͯʹڥ؀‬ಈ࡞ͯ͠ωοτͯɼ࣍ͷΑ͏ʹɼ઀ଓΛཁ‫͢ٻ‬Δଆͱ઀ଓΛ଴ͪड͚ΔଆϫʔΫαʔϏεͷґଘؔ܎Λ௥੻Ͱ͖ΔΑ͏ʹ͍ͯͭ͘͠ʹ෼্͚ͨͰɼґଘͷํ޲Λܾఆ͢Δɽϗετ X ্ͷωο΋ΓͰ͋Δɽ͞Βʹɼґଘؔ܎ΛϦΞϧλΠϜʹऩूͰ͖τϫʔΫαʔϏε A ͕ϙʔτ M Ͱ଴ͪड͚͍ͯΔͱͯ͠ɼΔఏҊख๏ͷಛ௃Λ‫͔͠׆‬ɼγεςϜ؅ཧऀ͕ҙਤ͍ͯ͠ϗετ Y ্ͷαʔϏε B ͕ϗετ X ্ͷϙʔτ M ʹର͠ͳ͍ґଘͷ‫ݕ‬஌ʹΑΔϚϧ΢ΣΞ‫ݕ‬ग़΍ɼຊདྷଘࡏ͢Δ͸ͯ઀ଓ͢Δͱ͢ΔͱɼαʔϏε A ͕ͳ͚Ε͹αʔϏε BͣͷґଘΛൃ‫͍ͳ͖Ͱݟ‬৔߹ʹҟৗͱΈͳ͢Α͏ͳҟৗ‫ݕ‬͸઀ଓॲཧʹࣦഊ͢ΔͨΊɼαʔϏε B ͸αʔϏε A ʹ஌΁ͷԠ༻ΛਐΊΔɽ࠷‫ʹޙ‬ɼΤοδίϯϐϡʔςΟϯάґଘ͢Δͱ‫͑ݴ‬Δɽ΍খɾத‫ن‬໛σʔληϯλʔʹ͓͍ͯɼΤοδ΍σʔληϗετ্ͰऔಘՄೳͳશͯͷτϥϯεϙʔτ઀ଓ৘ใΛϯλʔؒͷґଘؔ܎ͷΑ͏ͳωοτϫʔΫαʔϏεΑΓ΋

ऩू͢Δͱɼ઀ଓ৘ใͷ‫͕਺ݸ‬େ͖͘ͳΓɼCMDB ্ͷϨେ͖ͳཻ౓ʹ͓͚ΔґଘΛൃ‫͢ݟ‬Δख๏Λߟ͍͑ͯ͘ඞཁίʔυ਺͕େ͖͘ͳΔͱ͍͏໰୊͕͋Δɽͦ͜ͰɼϨίʔ

͕͋Δɽυ਺Λ࡟‫͢ݮ‬ΔͨΊʹɼωοτϫʔΫαʔϏεؒͷґଘؔ܎Λࣝผ͢ΔͷΈͰ͋Ε͹ɼ৑௕ͱͳΔ઀ଓ৘ใΛ࡟‫͢ݮ‬ࢀߟจ‫ݙ‬ΔɽωοτϫʔΫαʔϏεΛߏ੒͢Δ֤ϓϩηε΍εϨο

[1]υ͕ OS ͔ΒׂΓ౰ͯΒΕΔϥϯμϜͳૹ৴‫ݩ‬ϙʔτͰ͋ΔΤϑΣϝϥϧϙʔτʢEphemeral Portɼ୹໋ϙʔτʣΛར༻ͯ͠ɼผͷωοτϫʔΫαʔϏε΁઀ଓ͢Δ͜ͱ͕͋Δɽ͕ͨͬͯ͠ɼಛఆͷϙʔτͰ଴ͪड͚ΔωοτϫʔΫ[2]αʔϏεʹରͯ͠ɼಛఆͷωοτϫʔΫαʔϏεͷΫϥΠΞϯτ͔Βෳ਺ͷϥϯμϜͳૹ৴‫ݩ‬ϙʔτΛར༻ͯ͠઀ଓ͞ΕΔ͜ͱ͕͋Δͱ‫͑ݴ‬Δɽ͔͠͠ɼґଘؔ܎Λࣝผ͢ΔͷΈͰ͋Ε͹ɼ઀ଓͷ౓ʹҟͳΔϙʔτ൪߸ׂ͕Γ౰ͯΒ[3]ΕΔΤϑΣϝϥϧϙʔτΛҰҙͳ઀ଓ৘ใͱΈͳ͢ඞཁ͕ͳ͍ͨΊɼτϨʔαʔ͕ಛఆͷϗετͷಛఆͷϙʔτʹର[4]͢ΔΤϑΣϝϥϧϙʔτʹΑΔ઀ଓ৘ใΛॏෳ͢Δ΋ͷͱΈͳ͠ɼͦΕΒΛू໿্ͨ͠ͰɼCMDB ΁ૹ৴͢Δɽ

[5]

3.2 ఏҊख๏ͷ੍໿[6]ఏҊख๏͸ɼOS ͷϓϩηε୯Ґͷґଘؔ܎Λൃ‫͖Ͱݟ‬ΔҰํͰɼωοτϫʔΫαʔϏεʹର͢Δཁ‫ٻ‬୯Ґͷґଘؔ܎Λ௥੻Ͱ͖ͳ͍ɽཁ‫ٻ‬୯Ґͷґଘؔ܎Λ௥੻͢ΔͨΊʹ

[7]͸ɼX-Trace[23] ΍ Dapper[24] ͷΑ͏ʹɼΞϓϦέʔγϣϯॲཧʹհೖ͠ɼཁ‫ٻ‬Λࣝผ͢ΔͨΊͷࣝผࢠΛຒΊࠐΉඞཁ͕͋ΔɽϩʔΧϧϗετ্ͷϓϩΩγͳͲͷ઀ଓΛҕৡ͢ΔωοτϫʔΫαʔϏεʹΑΓɼ࣮ࡍͷ઀ଓ‫ݩ‬ͷϓϩ

[8]© 2019 Information Processing Society of Japan― 1173 ―J Lin, W Yu, N Zhang, X Yang, H Zhang, and W Zhao:
A Survey on Internet of Things: Architecture, EnablingTechnologies, Security and Privacy, and Applications,
IEEE Internet of Things Journal, Vol. 4, No. 5, pp.
1125–1142 2017.
M Aazam and E N Huh: Fog Computing Micro Datacenter Based Dynamic Resource Estimation and Pricing
Model for IoT, IEEE International Conference on Advanced Information Networking and Applications, pp.
687–694 2015.
B Kashif, K Osman, E Aiman, and S U Khan: Potentials, Trends, and Prospects in Edge Technologies: Fog,Cloudlet, Mobile Edge, and Micro Data Centers, Computer Networks, Vol. 130, pp. 94–120 2018.
ࢁ‫߂ޱ‬७, ҆ຊ‫ܚ‬ҰɿΤοδίϯϐϡʔςΟϯά‫͓ʹڥ؀‬
͚Δ஌త෼ࢄσʔλॲཧͷ࣮‫ݱ‬ɼిࢠ৘ใ௨৴ֶձ࿦จ
ࢽ Bɼ Vol. 101, No. 5, pp. 298–309 2018.
M Satyanarayanan: The Emergence of Edge Computing,Computer, Vol. 50, No. 1, pp. 30–39 2017.
দຊ྄հ, ௶಺༎थ, ‫ٶ‬Լ߶ีɿ෼ࢄ‫ܕ‬σʔληϯλʔ OSΛ໨ࢦͨ͠ϦΞΫςΟϒੑΛ࣋ͭίϯςφ࣮ߦ‫ج‬൫ٕज़ɼ৘ใॲཧֶձ‫ڀݚ‬ใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣɼVol. 2019-IOT-44, No. 27, pp. 1–8 2019.
P Bahl, R Chandra, A Greenberg, S Kandula, MSrikanth, D A Maltz, and M Zhang: Towards Highly Reliable Enterprise Network Services via Inference of MultiLevel Dependencies, ACM SIGCOMM Computer Communication Review, Vol. 37, No. 4, pp. 13–24 2007.
X Chen, M Zhang, Z M Mao, and P Bahl: Automat-[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16]

[17]
[18]

[19]
[20]

[21]

[22]

[23]

[24]

ing Network Application Dependency Discovery: Experiences, Limitations, and New Solutions, USENIX Symposium on Operating Systems Design and Implementation (OSDI), pp. 117–130 2008.
P Lucian, B-G Chun, I Stoica, J Chandrashekar, andN Taft: Macroscope: End-Point Approach to Networked Application Dependency Discovery, International Conference on Emerging Networking Experiments and Technologies (CoNEXT), pp. 229–240 2009.
A Natarajan, P Ning, Y Liu, S Jajodia, and S E Hutchinson: NSDMiner: Automated Discovery of Network Service Dependencies, IEEE International Conference onComputer Communications (INFOCOM), pp. 2507–2515 2012.
A Zand, G Vigna, R Kemmerer, and C Kruegel: Rippler: Delay Injection for Service Dependency Detection,
IEEE International Conference on Computer Communications (INFOCOM), pp. 2157–2165 2014.
X Liu, J Heo, and L Sha: Modeling 3-tiered Web Applications, IEEE International Symposium on Modeling,Analysis, and Simulation of Computer and Telecommunication Systems, pp. 307–310 2005.
G DeCandia, D Hastorun, M Jampani, G Kakulapati,
A Lakshman, A Pilchin, S Sivasubramanian, P Vosshall,and W Vogels: Dynamo: Amazonʟs Highly Available
Key-value StoreɼTwenty-First ACM SIGOPS Symposium on Operating Systems Principles, pp. 205–220
2007.
F Chang, J Dean, S Ghemawat, W C Hsieh, D A Wallach, M Burrows, T Chandra, A Fikes, and R E Gruber:
Bigtable: A Distributed Storage System for Structured
Data, Vol. 26, No. 2, pp. 4:1–4:26 2008.
A Lakshman and P Malik: Cassandra: A Decentralized
Structured Storage System, ACM SIGOPS Operating
Systems Review, Vol. 44, No. 2, pp. 35–40 2010.
C Gormley and Z Tong: Elasticsearch: The Definitive
Guide: A Distributed Real-time Search and Analytics
Engine, O’Reilly Media, Inc. 2015.
T Grainger and T Potter: Solr in Action, Manning Publications Co. 2014.
J Han, E Haihong, G Le, and J Du: Survey on NoSQL
database, 2011 Sixth International Conference on Pervasive Computing and Applications (ICPCA), pp. 363–366 2011.
M Fowler and J Lewis:
Microservices, http://martinfowler.com/articles/microservices.html.
B Peddycord III and P Ning, and S Jajodia: On the Accurate Identification of Network Service Dependencies inDistributed Systems, Large Installation System Administration Conference (LISA), pp. 181–194 2012.
M Y Chen, E Kiciman, E Fratkin, A Fox, and E Brewer:
Pinpoint: Problem Determination in Large, Dynamic
Internet Services, IEEE/IFIP International Conferenceon Dependable Systems and Networks (DSN), pp. 595–604 2002.
P Barham, R Isaacs, R Mortier, and D Narayanan: Magpie: Online Modelling and Performance-aware Systems,
17th Workshop on Hot Topics in Operating Systems(HotOS), pp. 85–90 2003.
R Fonseca, G Porter, R H Katz, S Shenker, and I Stoica: X-Trace: A Pervasive Network Tracing Framework,
USENIX Conference on Networked Systems Design &Implementation (NSDI), pp. 20–20 2007.
B H Sigelman, L A Barroso, M Burrows, P Stephenson, M Plakal, D Beaver, S Jaspan, and C Shanbhag:

[25]

[26]

[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]

© 2019 Information Processing Society of Japan― 1174 ―Dapper, a Large-Scale Distributed Systems Tracing Infrastructure, Technical report, Google 2010.
J K Clawson:
Service Dependency Analysis via
TCP/UDP Port Tracing, Master’s thesis, BrighamYoung University-Provo 2015.
W Li, Y Lemieux, J Gao, Z Zhao, and Y Han: Service Mesh: Challenges, State of the Art, and Future Research Opportunities, IEEE International Conference
on Service-Oriented System Engineering (SOSE), pp.
122–1225 2019.
Apache HTrace, http://incubator.apache.org/projects/
htrace.html.
OpenZipkin, https://zipkin.io/.
Jaeger, https://www.jaegertracing.io/.
The OpenTracing project, https://opentracing.io/.
Istio, https://istio.io/.
Linkerd, https://linkerd.io/.
Envoy Proxy, https://www.envoyproxy.io/.
Proxy redirection - istio/istio Wiki, https://github.com/
istio/istio/wiki/Proxy-redirection.