Slide 1

Slide 1 text

Webٕज़ͷجຊ 6ճ໨ Keisuke KAMIYA

Slide 2

Slide 2 text

ࠓճͷςʔϚ

Slide 3

Slide 3 text

Chapter 5 WebΞϓϦέʔγϣϯͷجຊ

Slide 4

Slide 4 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ ※͕͢͞ʹ෼͔ΔͰ͠ΐͬͯॴ͸Χοτͯ͠·͢

Slide 5

Slide 5 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 6

Slide 6 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • WebΞϓϦέʔγϣϯ
 ωοτϫʔΫΛհͯ͠Webϒϥ΢β্Ͱಈ࡞͢ΔΞϓ Ϧέʔγϣϯ • WebΞϓϦέʔγϣϯ͸, 3૚ߏ଄Ͱӡ༻͞Ε͍ͯΔࣄ ͕ଟ͍ ‣ ϓϨθϯςʔγϣϯ૚(Webαʔό) ‣ ΞϓϦέʔγϣϯ૚(APαʔό) ‣ σʔλ૚(DBαʔό)

Slide 7

Slide 7 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ ΞϓϦέʔγϣϯ૚ σʔλ૚ ϓϨθϯςʔγϣϯ૚ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) Ϣʔβʔ΁ͷදࣔ Ϣʔβʔ͔Βͷૢ࡞ड෇ 8FCαʔό͔Βͷ ໋ྩ࣮ߦ ը໘ͷੜ੒ σʔλͷநग़΍ ߋ৽ ิؒ

Slide 8

Slide 8 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • 3૚ΞʔΩςΫνϟͰߏ੒͢Δར఺
 1ͭͷαʔόͰશͯΛ࿫͏ΑΓ΋, ෛՙ෼ࢄ(εέʔϧΞ ΢τ)͠΍͍͢ ‣ εέʔϧΞ΢τ
 ಉ͡ػೳΛఏڙ͢ΔαʔόΛෳ਺୆༻ҙͯ͠, ϦΫΤ ετΛద౰ʹৼΓ෼͚ΔΑ͏ͳߏ੒

Slide 9

Slide 9 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ 8FCαʔό "1αʔό %#αʔό ͭͷαʔό಺ʹશͯΛ഑ஔͨ͠৔߹ WebαʔόɿϦΫΤετ਺ʹൺྫͯ͠ෛՙ͕૿Ճ APαʔόɿॲཧ͕ෳࡶʹͳΔͱෛՙ͕૿Ճ DBαʔόɿσʔλྔ͕ଟ͍ͱෛՙ͕૿Ճ

Slide 10

Slide 10 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ 8FCαʔό "1αʔό %#αʔό ૚ΞʔΩςΫνϟͷ৔߹ ͦΕͧΕͷαʔό͕ಠཱͯ͠ಈ࡞͍ͯ͠Δ →ͦΕͧΕΛϦΫΤετঢ়گʹԠͯ͡૿ݮՄೳʹ ྫ) ϦΫΤετ͕ଟ͘ͳͬͨΒWebαʔόΛεέʔϧͤ͞Δ

Slide 11

Slide 11 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ ૚ΞʔΩςΫνϟͷ৔߹ Webαʔό APαʔό DBαʔό ϦΫΤετ

Slide 12

Slide 12 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ ૚ΞʔΩςΫνϟͷ৔߹ Webαʔό APαʔό DBαʔό ϦΫΤετ Webαʔό͕མͪΔͱԠ౴ Ͱ͖ͳ͘ͳΔ

Slide 13

Slide 13 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ ૚ΞʔΩςΫνϟͷ৔߹ Webαʔό APαʔό DBαʔό ϦΫΤετ ϦΫΤετΛॲཧ͢ΔͨΊʹ WebαʔόΛ૿΍͢

Slide 14

Slide 14 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • 3૚ΞʔΩςΫνϟͰ͋Ε͹, WebαʔόͱAPαʔόͱ DBαʔό͕ಠཱ͍ͯ͠ΔͨΊ, ͦΕͧΕͷ਺ͷௐ੔ʢε έʔϧΞ΢τʣ͕΍Γ΍͍͢ ‣ 1ͭͷϚγϯʹશͯͷαʔόΛཱͯͯ͠·͏ͱ, Web αʔόΛ૿΍ͨͯ͘͠΋, ୯ମͰ૿΍͢͜ͱ͕ෆՄೳ ‣ Ұൠʹ, DBαʔόͷεέʔϧΞ΢τ͸೉͍͠ - աڈʹॻ͍ͨεϥΠυʹ৭ʑ͔͍ͯ͋ΔΑ

Slide 15

Slide 15 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • ͦΕͧΕͷ૚͕ಠཱ͍ͯ͠ΔͷͰ, վमൣғΛ੍ݶ͢Δ ͜ͱ͕Մೳ WebγεςϜ ΞϓϦέʔγϣϯ૚ σʔλ૚ ϓϨθϯςʔγϣϯ૚ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) ϨΠΞ΢τΛมߋ͚ͨ͠Ε͹ 8FCαʔόͷΈ͍͡Ε͹ྑ͍

Slide 16

Slide 16 text

WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • ΞϓϦέʔγϣϯͷن໛ʹΑͬͯ, ద੾ͳΞʔΩςΫ νϟΛ࠾༻͢Δ΂͖ • େن໛ͳαʔϏεͰ͸༗ޮ͕ͩ, ݸਓతͳখ͞ͳ΋ͷͰ 3૚ΞʔΩςΫνϟΛ࠾༻͢Δͷ͕ϕετͱ͸ݶΒͳ͍ ‣ αʔό͕3୆͋Δͱ͍͏͜ͱ͸, 3ͭ෼ͷ؅ཧίετ͕ ͔͔Δͱ͍͏͜ͱʹͳΔ WebΞϓϦέʔγϣϯͷ3૚ߏ଄ ऴྃ

Slide 17

Slide 17 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 18

Slide 18 text

MVCϞσϧ • MVCϞσϧ
 WebΞϓϦέʔγϣϯͷσβΠϯύλʔϯͷҰछ ‣ M(Model)
 σʔλʹؔ͢ΔॲཧΛߦ͏ ‣ V(View)
 Ϣʔβʔ΁ͷग़ྗॲཧ ‣ C(Controller)
 Ϣʔβʔ͔ΒͷϦΫΤετΛड͚ͯ, Model΍View΁ ॲཧΛৼΓ෼͚Δ

Slide 19

Slide 19 text

MVCϞσϧ $POUSPMMFS 7JFX .PEFM ॲཧ໋ྩ σ ʔ λ ͷ ද ࣔ ໋ ྩ ׬ ྃ Ԡ ౴ දࣔσʔλ σ ʔ λ ͷ ॲ ཧ ໋ ྩ ׬ ྃ Ԡ ౴ σʔλཁٻ ը໘දࣔ σʔλॲཧ໋ྩͷྲྀΕ σʔλද໋ࣔྩͷྲྀΕ 7JFXͱ.PEFMʹࢦࣔ ग़ྗ දࣔ Λ୲౰ σʔλॲཧ

Slide 20

Slide 20 text

MVCϞσϧ • ͜ͷΑ͏ʹ͢Δͱ, MVCϞσϧͬͯ3૚ΞʔΩςΫνϟ ͱࠞಉ͢Δਓ͕͍Δ ‣ 3૚ΞʔΩςΫνϟͱMVC͸ҟͳΔ֓೦ ‣ ૚ߏ଄ͱ͍͏ͷ͸, ྡΓ߹ͬͨ૚ಉ࢜ͰͷΈ΍ΓऔΓ Λ͢Δ - ϓϨθϯςʔγϣϯ૚ͱσʔλ૚͸΍ΓऔΓ͠ͳ ͍ ‣ MVCϞσϧͷ৔߹, ͢΂ͯͷ૚ʹؔ܎͕͋Δ

Slide 21

Slide 21 text

MVCϞσϧ WebγεςϜ ΞϓϦέʔγϣϯ૚ σʔλ૚ ϓϨθϯςʔγϣϯ૚ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) Controller View Model ΞϓϦέʔγϣϯ

Slide 22

Slide 22 text

MVCϞσϧ • MVCϞσϧͷར఺ ‣ 3૚ΞʔΩςΫνϟʔಉ༷ʹ, ։ൃ΍վमͷൣғ͕໌ ֬ʹͳΔ - ֤ཁૉ͕ผΕ࣮ͯ૷͞Ε͍ͯΔͨΊ, ଞͷՕॴ΁ͷ Өڹ͕গͳ͍ - ໰୊Օॴͷಛఆ͕ൺֱత༰қ MVCϞσϧ ऴྃ

Slide 23

Slide 23 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 24

Slide 24 text

Webαʔό • Webαʔό
 WebΫϥΠΞϯτ͔ΒͷϦΫΤετΛड͚औΔαʔό Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) ↑͜͜

Slide 25

Slide 25 text

Webαʔό • ϦΫΤετͷ಺༰ʹΑͬͯॲཧΛม͑Δ ‣ css, js͕ϦΫΤετ͞Εͨ৔߹ʢ੩తϑΝΠϧʣ
 Webαʔό͕ϑΝΠϧΛฦ͢ ‣ ಈతॲཧ͕ඞཁͳ΋ͷ
 APαʔόʹॲཧΛґཔ͢Δ Webαʔό APαʔό ϦΫΤετ ಈతॲཧͷґཔ ಈతϖʔδͷ సૹ ίϯςϯπͷ సૹ ੩తϑΝΠϧ͸ ͜͜Ͱฦ͢

Slide 26

Slide 26 text

Webαʔό • Webαʔό͸ϦΫΤετΛड͚͚ͭΔ૭ޱ ‣ Webαʔό͕ࢮ͵ͱαʔϏε͕ఀࢭͯ͠͠·͏ • ͜ͷΑ͏ͳࣗମΛආ͚ΔͨΊ, ௨ৗ͸WebαʔόΛෳ਺ ୆༻ҙͯ͠৑௕ԽΛߦ͍ͬͯΔ ‣ 1୆ͩͱ1୆ࢭ·ΔͱશͯऴΘΓ͕ͩ, Կ୆͔Քಇͯ͠ ͍Ε͹ͳΜͱ͔αʔϏεΛܧଓͰ͖Δ

Slide 27

Slide 27 text

Webαʔό APαʔό αʔό͕ނোͯ͠΋ผͷαʔόΛ ࢖ͬͯαʔϏεܧଓ Webαʔό ΫϥΠΞϯτ ͨͩ͠, Webαʔό͸ͦΕͧΕಉ͡ ίϯςϯπΛ͍࣋ͬͯΔඞཁ͕͋Δ ઀ଓෆՄ

Slide 28

Slide 28 text

Webαʔό • ར༻ऀ͕ଟ͚Ε͹ଟ͍΄ͲϦΫΤετ͸૿Ճ ‣ ར༻ऀ͕ଟͯ͘΋Ϩεϙϯε͸஗ͨ͘͘͠ͳ͍ • ݱঢ়Webαʔό͕ͲͷΑ͏ͳঢ়ଶͰ͋Δ͔Λਪଌͤͣ ʹܭଌ͢Δ΂͖ ‣ I/O͕ϘτϧωοΫͳͷ͔CPUͳͷ͔ - Don't guess! Measure! - "premature optimization is the root of all evil." (ૣ ͗͢Δ࠷దԽ͸ॾѱͷࠜݯ)

Slide 29

Slide 29 text

Webαʔό • WebαʔόΛεέʔϧΞ΢τ͢Δࡍ͸, શͯͷWebαʔ όʹಉ͡ίϯςϯπΛஔ͘ඞཁ͕͋Δ • ผʹϑΝΠϧ༻ͷαʔόΛ༻ҙ͢Δํ๏΋͋Δ ‣ ίϯςϯπͷಉظ͸ෆཁʹͳΔ͕, αʔόؒͷ௨৴͕ ൃੜ͠Ϩεϙϯε͕௿Լ͢Δ ϑΝΠϧΛஔ͍ͨαʔό Φʔόʔϔου͕ൃੜ Webαʔό Webαʔό Webαʔό ऴྃ

Slide 30

Slide 30 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 31

Slide 31 text

ΞϓϦέʔγϣϯαʔό • ΞϓϦέʔγϣϯαʔό(APαʔό)
 ࣮ࡍͷWebΞϓϦέʔγϣϯͷॲཧΛߦ͏ϓϩάϥϜ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) ↑͜͜

Slide 32

Slide 32 text

ΞϓϦέʔγϣϯαʔό • Webαʔό͔Βసૹ͞Ε͖ͯͨσʔλΛجʹ, σʔλ ϕʔε಺ͷݕࡧ΍Ճ޻Λߦ͍Ԡ౴Λฦ͢ ‣ 3૚ΞʔΩςΫνϟʹ͓͚ΔΞϓϦέʔγϣϯ૚ʹҐ ஔ͢Δαʔό ‣ ϓϨθϯςʔγϣϯ૚ͱσʔλ૚ͱͷ஥հ໾ ‣ CPUෛՙ͕ߴ͘ͳΓ͕ͪ

Slide 33

Slide 33 text

ΞϓϦέʔγϣϯαʔόʢηογϣϯ؅ཧػೳʣ • Ҏલʹ΋࿩ͨ͠ηογϣϯͷ؅ཧΛߦ͍ͬͯΔ ‣ ؔ࿈ͷ͋Δ1࿈ͷॲཧͷ։͔࢝Βऴྃ·Ͱͷશظؒ ૹ৴ଆ ड৴ଆ ঎඼ΛબͿ OK ങ͍෺͔͝ʹೖΕΔ OK ങ͍෺͔͝ͷத਎Λ֬ೝ OK ܾࡁ OK ηογϣϯ

Slide 34

Slide 34 text

ʢ෮शʣηογϣϯ • ෳ਺ͷΫϥΠΞϯτ͔ΒΞΫηε͞ΕΔWebαʔό͸, ηο γϣϯΛͲͷΑ͏ʹ؅ཧ͢Δͷ͔ʁ ‣ CookieΛ༻͍ͯηογϣϯΛ؅ཧ͢Δ ‣ Cookie͕࢖͑ͳ͍৔߹͸URLʹؚΊΔͱ͖΋͋Δ͕, ηΩϡ ϦςΟͷ໘͔Βਪ঑͞Εͳ͍ํ๏Ͱ͋Δ • ηογϣϯ؅ཧʹ͓͍ͯ, Webϒϥ΢βΛࣝผ͢ΔͨΊͷࣝผ ࢠ(id)ΛηογϣϯIDͱݺͿ ‣ ηογϣϯID͸WebαʔόͰੜ੒͞Ε, CookieʹؚΊͯWeb ϒϥ΢βʹૹ৴͞ΕΔ

Slide 35

Slide 35 text

ʢ෮शʣηογϣϯ 4*%BBBBBB 4*%CCCCCC webαʔό webϒϥ΢βB webϒϥ΢βA ηογϣϯ*% Ϣʔβʔ ϩάΠϯ ങ͍෺͔͝ BBBBBB TBUP 536& Ξ΢λʔº γϟπº CCCCCC HVFTU '"-4& γϡʔζº දɿWebαʔό͕อଘ͍ͯ͠Δηογϣϯσʔλ

Slide 36

Slide 36 text

ʢ෮शʣηογϣϯ • ηογϣϯIDΛड͚औͬͯҎ߱͸, ϦΫΤετϔομʹ ηογϣϯIDΛؚΊͯૹ৴͢Δ͜ͱͰ, Webαʔόͱͷ ηογϣϯΛҡ࣋͢Δ͜ͱ͕ग़དྷΔ. • ʮങ͍෺͔͝ʹͳʹΛ͍Ε͔ͨʯͱݴͬͨ৘ใ͸, ηο γϣϯIDͱඥ෇͍ͯʮηογϣϯσʔλʯͱͯ͠αʔό ʹอଘ͞ΕΔ.

Slide 37

Slide 37 text

ʢ෮शʣηογϣϯ webαʔό webϒϥ΢βA Set-Cookie:SID=aaaaaa Cookie:SID=aaaaaa CookieʹؚΊͯ౉͢ ϦϯΫͷURLʹؚΊΔ webαʔό webϒϥ΢βA http://example.com/cart?SID=aaaaaa ͱ͍͏ϦϯΫ෇͖ͷWebϖʔδΛૹ৴ ϦϯΫ͕ΫϦοΫ͞ΕΔͱ, ηογϣϯID෇͖ ͰWebαʔό΁ϦΫΤετ͕ૹ৴͞ΕΔ http://example.com/cart?SID=aaaaaa ηογϣϯIDΛURLͷύϥϝʔλͱͯ͠ૹ৴

Slide 38

Slide 38 text

ΞϓϦέʔγϣϯαʔόʢηογϣϯ؅ཧػೳʣ • HTTP͸εςʔτϨεͳϓϩτίϧͳͷͰ, ηογϣϯͳ ͲΛ࢖Θͳ͍ͱεςʔτϑϧͳॲཧΛߦ͑ͳ͍ • APαʔό͕ηογϣϯIDΛൃߦ͠, ͦΕΛجʹΫϥΠΞ ϯτͱ΍ΓऔΓ͢Δ͜ͱͰ1ͭͷηογϣϯͱͯ͠؅ཧ

Slide 39

Slide 39 text

ΞϓϦέʔγϣϯαʔόʢτϥϯβΫγϣϯ؅ཧػೳʣ • τϥϯβΫγϣϯ
 ηογϣϯதͰߦΘΕΔؔ࿈ͨ͠Ұ࿈ͷ࡞ۀ ‣ ෳ਺ͷॲཧͷ1ͭ1ͭ͸HTTPϦΫΤετͰ੒Γཱͬͯ ͍ΔͨΊ, ͜ΕΒΛ1ͭͷτϥϯβΫγϣϯͱͯ͠·ͱ Ί͍ͯΔ

Slide 40

Slide 40 text

ΞϓϦέʔγϣϯαʔόʢτϥϯβΫγϣϯ؅ཧػೳʣ ᶃϩάΠϯ ᶄີࣨ৘ใͷ֬ೝ ᶅ٬ࣨΛ෦԰ݮΒ͢ ᶆۭࣨʹ༧໿ऀ৘ใΛ௥Ճ ᶇ༧໿ͷ੒ཱ ᶈϩάΞ΢τ ᶆͷΈࣦഊͯ͠ଞ͸͢΂ͯਖ਼ৗʹऴྃͨ͠ͱ͠ ͯ΋ ॓ധࢪઃͷ༧໿࡞ۀͱͯ͠੒ޭͨ͠ͱ͸ ͍͑ͳ͍ 1τϥϯβΫγϣϯ 1τϥϯβΫγϣϯ 4τϥϯβΫγϣϯ ᶈͷΈͷࣦഊͰ͋Ε͹ ϩάΞ΢τॲཧ͸ࣦഊ͕ͩͦ ͷલͷ࡞ۀͰ͋Δ॓ധࢪઃͷ༧໿࡞ۀ͸੒ޭ͍ͯ͠Δ τϥϯβΫγϣϯͷྫ ΞϓϦέʔγϣϯαʔό ऴྃ

Slide 41

Slide 41 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 42

Slide 42 text

σʔλϕʔε؅ཧγεςϜ • σʔλϕʔε؅ཧγεςϜ(DBMS)
 WebΞϓϦέʔγϣϯͷσʔλΛอଘ͢Δσʔλετ Ξ. ͱ͘ʹ, ؔ܎σʔλϕʔεͰ͸RDBMS(Relational DataBase Management System)͕༻͍ΒΕΔ ‣ ϑϦʔͷRDBMS͸͍͔ͭ͋͘Δ - MySQL - SQLite - PostgreSQL etc.. MySQLΛྫʹॲཧͷྲྀΕΛݟͯΈΔ

Slide 43

Slide 43 text

σʔλϕʔε؅ཧγεςϜ • MySQLͷ࢓૊Έ 1. SQLจΛύʔε͢Δ
 σʔλΛऔಘ͢Δͷ͔, ૠೖ͢Δͷ͔ͳͲ 2. ΦϓςΟϚΠβʹ͔͚Δ
 ݁߹ͷॱং౳Λߟྀͯ͠࠷దԽ͢Δ 3. ετϨʔδΤϯδϯʹ౤͛ΔʢσʔλʹΞΫηεʣ
 ࣮ࡍͷσʔλ͕֨ೲ͞Ε͍ͯΔ৔ॴʹΞΫηε

Slide 44

Slide 44 text

σʔλϕʔε؅ཧγεςϜ ίωΫγϣϯ εϨου ίωΫγϣϯ εϨου ίωΫγϣϯ εϨου ύʔαɾΦϓςΟϚΠβɾΞΫηε؅ཧͳͲ ετϨʔδΤϯδϯ"1* .Z*4". *OOP%# .Z42-ͳͲͷ ετϨʔδΤϯδϯ ετϨʔδϑΝΠϧ ΫϥΠΞϯτ͔ΒͷϦΫΤετ MySQL SELECT * FROM …

Slide 45

Slide 45 text

σʔλϕʔε؅ཧγεςϜ • ετϨʔδΤϯδϯʹ΋ෳ਺ଘࡏ͢Δ ‣ InnoDB
 ݱࡏMySQLͷσϑΥϧτετϨʔδΤϯδϯ ‣ MyISAM
 ͔ͭͯMySQLͷσϑΥϧτͩͬͨ ‣ MEMORY
 ϝϞϦ্ʹσʔλΛετΞ͢ΔʢͷͰشൃੑʣ ‣ Blackhole
 Ұ੾σʔλΛه࿥͠ͳ͍ʢ͚Ͳϩά͸࢒͢ʣ

Slide 46

Slide 46 text

σʔλϕʔε؅ཧγεςϜ • ࡢ೔ͷ໷Θ͔Βͳ͍ͳ͊ͬͯͣͬͱͭͿ΍͍ͯͨ

Slide 47

Slide 47 text

σʔλϕʔε؅ཧγεςϜ • ͭͿ΍͍ͨΒฦ৴͕དྷͨ(Blackholeͷ࢖͍ํ)

Slide 48

Slide 48 text

σʔλϕʔε؅ཧγεςϜ • ϦΞϧλΠϜੑ͕ཉ͍࣌͠ͷߏ੒

Slide 49

Slide 49 text

σʔλϕʔε؅ཧγεςϜ • ৭ʑ͋ΔͷͰڵຯ͋ͬͨΒௐ΂ͯΈͯ ‣ MyISAM ‣ InnoDB ‣ MEMORY ‣ Federated ‣ BLACKHOLE ‣ ARCHIVE ‣ MySQL Cluster(NDB)

Slide 50

Slide 50 text

σʔλϕʔε؅ཧγεςϜ • ίϛϡχςΟΤϯδϯ ‣ Tritonn ‣ SPIDER ‣ Q4M ‣ PBXT ‣ Percona XtraDB ‣ KickFire ‣ InfiniDB

Slide 51

Slide 51 text

σʔλϕʔε؅ཧγεςϜ • DBαʔό
 RDBMSΛ౥ࡌͨ͠αʔόʢσʔλετΞʣ ‣ σʔλϕʔε͸ΞϓϦέʔγϣϯͷ৘ใΛอ͍࣋ͯ͠ ΔͨΊ, ৴པੑ΍৑௕ੑΛߟྀͨ͠ߏ੒ʹ͢Δඞཁ͕ ͋Δ - I/Oෛՙ͕ߴΊʹͳΔ఺΋ߟྀ͠ͳ͍ͱ͍͚ͳ͍ ‣ DBαʔόͷεέʔϧΞ΢τ͸೉͍͠…

Slide 52

Slide 52 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ • อ࣋͢Δσʔλͷอશ͸ඇৗʹॏཁ ‣ ௨ৗDBαʔό͸৑௕Խߏ੒ΛऔΔ • ͔͠͠, DBαʔόͷ৑௕Խߏ੒͸೉͍͠ ‣ ෳ਺୆Ͱߏ੒ͨ͠৔߹, ෳ਺୆ͰσʔλΛڞ༗͓ͯ͠ ͘ඞཁ͕͋Δ ‣ ͨͩ͠සൟʹσʔλͷߋ৽͕ى͜ΔͨΊ, ͲͷΑ͏ʹ ڞ༗Λ͢Δ͔͕ॏཁ

Slide 53

Slide 53 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ • ৑௕Խͷํ๏͸ෳ਺͋Δ ‣ ϛϥʔϦϯά ‣ ϨϓϦέʔγϣϯ ‣ γΣΞʔυσΟεΫ

Slide 54

Slide 54 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ • ϛϥʔϦϯά
 ߋ৽໋ྩΛड͚ͨRDBMS͕ෳ਺ͷσʔλϕʔεʹରͯ͠ಉ࣌ʹಉ ͡ߋ৽Λߦ͏ • ϨϓϦέʔγϣϯ
 ߋ৽໋ྩΛड͚ͨRDBMS͕ෳ਺ͷσʔλϕʔεʹରͯ͠ಉ͡ߋ৽ Λߦ͏. λΠϛϯά͸ಉ࣌ͱ͸ݶΒͳ͍ • γΣΞʔυσΟεΫ
 σʔλϕʔεΛڞ༻ͷετϨʔδʹ࣋ͪ, ෳ਺ͷDBαʔό͔ΒͦΕ Λߋ৽͢Δ

Slide 55

Slide 55 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό ϓϦϯγύϧʢਖ਼ʣ ϛϥʔʢ෭ʣ ߋ৽໋ྩ ߋ৽໋ྩ ฏৗ࣌͸ϓϦϯγύϧʹ໋ྩΛૹΓ ো֐ൃੜ࣌ʹ͸ϛϥʔʹ໋ྩΛૹΔ ϓϦϯγύϧ͕ߋ৽໋ྩΛड͚Δͱ ϛϥʔʹ΋ߋ৽໋ྩΛసૹ͢Δ ϛϥʔ%#.4͸ߋ৽໋ྩΛड͚ ϛϥʔ ͷσʔλϕʔεߋ৽Λߦͳ͏ ฏৗ࣌ͷॲཧΛߦͳ͏ػثɿਖ਼ܥ ো֐࣌ʹਖ਼ܥʹ୅ΘͬͯॲཧΛߦ͏ػثɿ෭ܥor଴ػܥ ϛϥʔϦϯά

Slide 56

Slide 56 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό Ϛελʢਖ਼ʣ εϨʔϒʢ෭ʣ ߋ৽໋ྩ ฏৗ࣌͸Ϛελʹ໋ྩΛૹΓ ো֐ൃ ੜ࣌ʹ͸εϨʔϒʹ໋ྩΛૹΔ ߋ৽ͷ໋ྩ͸ϚελʹͷΈૹΒΕΔ ߋ৽͢Δͱ εϨʔϒʹ
 ߋ৽ϩάϑΝΠϧ͕ૹΒΕΔ ߋ৽ϩάͷ಺༰Λجʹ εϨʔϒͷσʔ λϕʔεͷߋ৽Λ೚ҙͷλΠϛϯάͰ ߦ͏ Master-Slaveߏ੒ͷ৔߹, ߋ৽ʹಉظ/ඇಉظ͕ଘࡏ͢Δ. ϨϓϦέʔγϣϯ

Slide 57

Slide 57 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό ϚελʢBlackholeʣ εϨʔϒʢInnoDBʣ όΠφϦϩά ߋ৽໋ྩ ϚελͷετϨʔδΤϯδϯΛBlackhole͢Δ͜ͱͰ, INSERT͕ଟ͍Α͏ͳαʔϏεʹ࠷దԽ͢Δ͜ͱ΋ ϨϓϦέʔγϣϯ

Slide 58

Slide 58 text

σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό DBMS ϛϥʔʢ෭ʣ ߋ৽໋ྩ ߋ৽໋ྩ ໋ྩ͸Ͳͷ%#.4Ͱ΋ྑ͍ γΣΞʔυσΟεΫͷ%#.4ʹ͸ ਖ਼෭ͷ֓೦͸ͳ͍ γΣΞʔυσΟεΫ DBMS σʔλετϨʔδ σʔλϕʔε͸৑௕Խ ͞Εͳ͍ͷͰରো֐ੑ ͷڧ͍෺ΛબͿ DBMS ऴྃ

Slide 59

Slide 59 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 60

Slide 60 text

Ωϟογϡαʔό • ϦΫΤετ਺͕૿͑Δͱ, ίϯςϯπͷಡΈग़͠(I/O)΍ ॲཧ͕ແࢹͰ͖ͳ͍Ϩϕϧʹͳͬͯ͘Δ ‣ ϨεϙϯελΠϜͷ௿ԼΛট͘ • ίϯςϯπΛΩϟογϡͤ͞Δ͜ͱͰ, ස౓ͷߴ͍΋ͷ ΍αΠζ͕େ͖͍΋ͷʹؔͯ͠ߴ଎ʹϨεϙϯεΛฦ͢ ͜ͱ͕ग़དྷΔ ‣ Ωϟογϡαʔόʔ͕ͦͷ໾ׂΛ୲͏

Slide 61

Slide 61 text

Ωϟογϡαʔό • Ωϟογϡ
 ϦΫΤετʹର͢ΔϨεϙϯεͷهԱ ‣ ίϯςϯπΩϟογϡ
 จॻ΍ը૾, ಈըͱ͍ͬͨίϯςϯπͷΩϟογϡ ‣ ΫΤϦΩϟογϡ
 DBMSͷσʔλݕࡧཁٻʢΫΤϦʣͷ݁ՌͷΩϟο γϡ

Slide 62

Slide 62 text

Ωϟογϡαʔό ίϯςϯπ Ωϟογϡαʔό Webαʔό هԱͯ͠ͳ͍ϦΫΤετ͸ͦͷཁٻΛ 8FCαʔόʹసૹ͢Δ هԱ͍ͯ͠ΔϦΫΤετ͕དྷͨ৔߹ 8FC αʔόͷ୅ΘΓʹϨεϙϯεΛฦ͢ ϦΫΤετͱ8FCαʔόͷϨεϙϯεͷ ૊Έ߹ΘͤΛهԱ͓ͯ͘͠ ϒϥ΢β ίϯςϯπΩϟογϡαʔό

Slide 63

Slide 63 text

Ωϟογϡαʔό هԱ͍ͯ͠ͳ͍ΫΤϦͷ৔߹͸ͦͷ·· %#.4ʹసૹ "1αʔό͔Βͷσʔλݕࡧཁٻͱ%#.4 ͷϨεϙϯεͷ૊Έ߹ΘͤΛΩϟογϡ ΫΤϦΩϟογϡαʔό Webαʔό APαʔό ΫΤϦ Ωϟογϡαʔόʔ DBαʔό WebγεςϜ

Slide 64

Slide 64 text

ΩϟογϡαʔόʢΩϟογϡͷ༗ޮظݶʣ • Ωϟογϡ͸଎౓ΛಘΔͨΊʹඞཁͳٕज़ • ͔͠͠, ίϯςϯπ͕Ξοϓσʔτ͞Εͨ৔߹, Ωϟο γϡͷ༗ޮظݶ͕௕͍ͱ͍ͭ·ͰͷچϑΝΠϧ͕഑৴ ͞Εͯ͠·͏ ‣ ༗ޮظݶΛద੾ʹઃఆ͢Δ͜ͱͰ, ҰఆִؒͰΩϟο γϡ಺༰ΛΞοϓσʔτ͢Δඞཁ͕͋Δ ‣ ͦͷͨΊͷHTTP ETag

Slide 65

Slide 65 text

ΩϟογϡαʔόʢCDNʣ • ಥવͰ͕͢, ϓϩάϥϚ͕஌Δ΂͖ϨΠςϯγͰ͢ Ҿ༻ɿhttps://speakerdeck.com/fujiwara3/isucon-summer-school-1

Slide 66

Slide 66 text

ΩϟογϡαʔόʢCDNʣ • CDN(Contents Delivery Network)
 ੈք֤஍ʹ഑ஔ͞ΕͨΩϟογϡαʔόͷू߹ମ ‣ ೔ຊ͔Β഑৴͢Δͷʹ೔ຊʹ͚ͩΩϟογϡαʔόΛ ஔ͍͍ͯͯ͸, ࠃ֎͔ΒͷΞΫηε͸஗͘ͳΔ ‣ ੈքதʹΩϟογϡαʔόΛ෼ࢄͯ͠഑ஔ͢Δ͜ͱ Ͱ, Ͳ͔͜ΒΞΫηεͯ͠΋͋Δఔ౓ߴ଎ʹ

Slide 67

Slide 67 text

ΩϟογϡαʔόʢCDNʣ • CDNͷ༗໊ͳαʔϏε ‣ CloudFront(Amazon) ‣ CloudFlare ‣ Akamai CloudFrontͷωοτϫʔΫʢҾ༻ɿhttps://aws.amazon.com/jp/cloudfront/details/ʣ

Slide 68

Slide 68 text

ΩϟογϡαʔόʢCDNʣ • ΞΫηε͢Δͱࣗ෼ʹҰ൪͍ۙCDN͔Βμ΢ϯϩʔυ ͢Δ͜ͱͰߴ଎ʹͳΔ • ͜ͷลͷ࿩͸લεϥΠυʹॻ͍ͨ
 https://speakerdeck.com/bath_poo_/introduction-to- large-scale-web-service-15 CDN ऴྃ

Slide 69

Slide 69 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 70

Slide 70 text

Ajax • ಉظ௨৴
 ΫϥΠΞϯτͱαʔό͕ަޓʹ௨৴Λߦ͍, ಉௐͯ͠௨ ৴Λߦ͏͜ͱ ‣ ಡΈࠐΈ͕ऴΘΔ·ͰଞͷॲཧΛߦ͑ͳ͍ʢ଴ͭ͜ ͱ͔͠Ͱ͖ͳ͍ʣ

Slide 71

Slide 71 text

Ajax • Ajax(Asynchronous JavaScript + XML)
 ΫϥΠΞϯτͷJavaScript͕௚઀Webαʔόͱ௨৴Λߦ ͍, σʔλΛऔಘͯ͠ඳը͢ΔඇಉظॲཧͷΠϯλ ϑΣʔε ‣ ͍͍ͪͪϖʔδΛϦϩʔυ͠ͳͯ͘΋, มߋ͍ͨ͠෦ ෼͚ͩΛAjaxΛ࢖ͬͯ࠶ඳը͢Δ͜ͱ͕Ͱ͖Δ

Slide 72

Slide 72 text

Ajax ϦΫΤετ ߋ৽ʹඞཁͳσʔλͱϦΫΤετΛૹ৴ Ϩεϙϯε଴ͪͷؒ͸ଞͷՕॴͷ දࣔߋ৽΍Ϣʔβʔͷૢ࡞ड෇͕Մೳ HTMLશମͷ࡞੒ΑΓ ॲཧ͕গͳΊ Ϩεϙϯε HTMLશମΛฦ͢ΑΓ αΠζ͸খ͞Ί

Slide 73

Slide 73 text

Ajax • Ajaxʹ࢖༻͞Ε͍ͯΔٕज़ ‣ HTML
 WebϖʔδΛهड़͢ΔͨΊͷݴޠ ‣ JavaScript
 JavaScriptͷXMLHttpRequestΦϒδΣΫτΛ࢖༻ ‣ DHTML
 ΫϥΠΞϯτεΫϦϓτͰϖʔδΛಈతʹมߋ͢Δ΢Σϒٕ ज़Λࢦ͢ந৅֓೦ ‣ DOM
 HTML΍XMLΛѻ͏ͨΊͷAPI Ajax ऴྃ

Slide 74

Slide 74 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 75

Slide 75 text

Web API • WebAPI(Web Application Program Interface)
 WebΛ௨ͯ͡ϓϩάϥϜ͕௚઀αʔϏεΛར༻͢Δͨ ΊͷΠϯλʔϑΣʔε ར༻ঢ়گ WebAPIͷURL΁ σʔλΛૹ৴ ॲཧ݁Ռ WebAPIͷURL΁ σʔλΛૹ৴ ॲཧ݁Ռ Webαʔό 8FC"1* APαʔό

Slide 76

Slide 76 text

Web API • Web APIͷྫ ‣ Ң౓ͱܦ౓Λૹ৴͢Δͱ, ରԠ͢Δ৔ॴͷఱؾ༧ใ͕ ฦ৴͞ΕΔఱؾ༧ใAPI(Weather Hacksͱ͔) ‣ ϩάΠϯ৘ใͱจষΛૹ৴͢Ε͹, จষΛϙετ͢Δ ͜ͱ͕ग़དྷΔ(Twitterͱ͔) ‣ σʔλΛૹΔͱ෼ੳͨ݁͠ՌΛฦͯ͘͠ΕΔ(Watson API)

Slide 77

Slide 77 text

Web API • Web APIͷ΍ΓऔΓʹ͸༷ʑͳํ๏͕࢖ΘΕΔ ‣ XML-RPCʢϓϩτίϧʣ
 XMLͰූ߸Խͯ͠ॲཧͷ࣮ߦΛཁٻ͢Δ ‣ SOAPʢϓϩτίϧʣ
 XML-RPCΛ֦ுͨ͠ߴػೳͳϓϩτίϧ ‣ RESTʢઃܭࢥ૝ʣ
 Web্ͷϦιʔεΛҰҙͳURLͰදͯ͠, ࢖༻͢Δϝ ιουʹΑͬͯڍಈΛม͑ΔΞϨʢલʹ΍ͬͨʣ

Slide 78

Slide 78 text

Web API(XML-RPCͷྫ) examples.getStateName 40 XML-RPCϦΫΤετ XML-RPCϨεϙϯε South Dakota

Slide 79

Slide 79 text

Web API(SOAPͷྫ) SOAPϦΫΤετ SOAPϨεϙϯε 827635 Toptimate 3-Piece Set 827635 3-Piece luggage set. Black Polyester. 100.50 true

Slide 80

Slide 80 text

Web API(RESTͷࢥ૝(෮श)) • RESTful(REpresentational State Transfer)
 4ͭͷݪଇ͔ΒͳΔγϯϓϧͳઃܭͷ͜ͱ 1. εςʔτϨε
 ΍ΓऔΓ͸1ճ͝ͱʹ׬݁. ଞͷ΍ΓऔΓʹӨڹ͠ͳ͍. 2. ΞυϨεՄಡੑ
 ͢΂ͯͷϦιʔε͕ҰҙͳURIͷߏจͰදݱՄೳ 3. ౷ҰΠϯλʔϑΣʔε
 HTTPϝιουͷར༻͕౷Ұ͞Ε͍ͯΔ 4. ઀ଓੑ
 ΍ΓऔΓ͞ΕΔ৘ใʹϦϯΫΛؚΊΔࣄ͕Ͱ͖Δ

Slide 81

Slide 81 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 82

Slide 82 text

CGI • CGI(Common Gateway Interface)
 ΫϥΠΞϯτ͔ΒͷཁٻʹԠͯ͡αʔόʔαΠυεΫϦ ϓτΛىಈ͢ΔͨΊͷ࢓૊Έ ‣ ϦΫΤετʹԠͯ͡༧Ί༻ҙ͞Ε͍ͯΔϓϩάϥϜΛ ࣮ߦ͠, ͦͷ࣮ߦ݁ՌΛฦ͢

Slide 83

Slide 83 text

CGI 8FCαʔό ίϯςϯπ $(*ϓϩάϥϜ ಡΈࠐΈ ϓϩάϥϜͷىಈ ࣮ߦ݁Ռ ϦΫΤετ Ϩεϙϯε w $(*΁ͷϦΫΤετ
 $(*ϓϩάϥϜͷಈ࡞݁Ռ w ͦΕҎ֎
 63-ʹରԠ͢Δίϯςϯπ Λฦ৴ DHJCJOϑΥϧμ֎ͷϑΝΠϧ΍ ֦ுࢠ͕DHJͰͳ͍ϑΝΠϧ DHJCJOϑΥϧμʹ͋Δ֦ுࢠ ͕DHJͰ͋ΔϑΝΠϧΛ$(*ϓ ϩάϥϜͱΈͳ͢ %JSFDUPSZDHJCJO 0QUJPOT&YFD$(*
 "EE)BOEMFSDHJTDSJQUDHJ %JSFDUPSZ DHJCJOϑΥϧμ಺ʹ͋Δ֦ுࢠ ͕DHJͰ͋ΔϑΝΠϧ

Slide 84

Slide 84 text

CGI • ΫϥΠΞϯτ͕ΤϯυϙΠϯτ(CGIͷURL)ʹΞΫηε͢ Δ͜ͱͰର৅ͷϓϩάϥϜ͕ىಈ͢Δ • ϓϩάϥϜʹσʔλΛ౉͢͜ͱ͕ग़དྷΔ ‣ ίϚϯυϥΠϯҾ਺౉͠
 URLͷ຤ඌʹ?Λ෇͚ͯσʔλΛ+۠੾ΓͰ෇Ճ͢Δํ๏ ‣ ύε౉͠
 URLͷޙΖʹʮ/ʯͰ۠੾ͬͯσʔλΛฒ΂Δํ๏ ‣ GET, POSTϝιουΛ࢖͏

Slide 85

Slide 85 text

CGI 8FCαʔό $(*ϓϩάϥϜ σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi? σʔλ1+σʔλ2 ίϚϯυϥΠϯҾ਺౉͠ 8FCαʔό $(*ϓϩάϥϜ σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi/ σʔλ1/σʔλ2 ύε౉͠ ىಈ࣌ʹσʔλΛอ͍࣋ͯ͠Δ ىಈޙʹ1"5)@*/'0͔Βऔಘ

Slide 86

Slide 86 text

CGI 8FCαʔό $(*ϓϩάϥϜ σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi? σʔλ໊1=σʔλ1 GETϝιου 8FCαʔό $(*ϓϩάϥϜ σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi/ POSTϝιου ىಈޙ ม਺26&3:@453*/(
 ͔ΒσʔλΛऔಘ ىಈޙผʹૹΒΕ͖ͯͨ
 σʔλΛಡΈࠐΉ TUEJO

Slide 87

Slide 87 text

໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5. σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ

Slide 88

Slide 88 text

αʔόؒͷ࿈ܞ • CGIΛར༻ͤͣʹαʔόʔαΠυεΫϦϓτΛىಈ͢Δ৔ ߹͸, ֤αʔό͸αʔόʹ΋ΫϥΠΞϯτʹ΋ͳΓ͏Δ ‣ Webαʔό͕APαʔόʹσʔλͷॲཧΛґཔ ‣ APαʔό͕αʔόʔαΠυεΫϦϓτΛ࣮ߦ Webαʔό APαʔό DBαʔό αʔό ΫϥΠ Ξϯτ αʔό ΫϥΠ Ξϯτ αʔό αʔϏεཁٻ σʔλ ॲཧґཔ σʔλ ݕࡧɾߋ৽

Slide 89

Slide 89 text

αʔόؒͷ࿈ܞ • αʔόಉ࢜ͷ௨৴ʹ͓͍ͯ΋, ϦΫΤετΛૹ৴͢Δଆ ͕ΫϥΠΞϯτ, ϨεϙϯεΛฦ͢ଆ͕αʔό ‣ APαʔό΍DBαʔόʹରͯ͠༧Ίઃఆͨ͠ϙʔτΛ ࢦఆ͠௨৴ ‣ ಉ͡αʔόʔ಺Ͱ͋Ε͹127.0.0.1(localhost)

Slide 90

Slide 90 text

αʔόؒͷ࿈ܞ ػث͕ҟͳΔ৔߹ Webαʔό ip-addr : 127.18.1.100 172.18.1.150ͷ8009ϙʔτʹ઀ଓ APαʔό ip-addr : 127.18.1.150 port : 8009 ػث͕ҟͳΔ৔߹ Webαʔό 127.18.1.100ͷ8009ϙʔτʹ઀ଓ APαʔό port : 8009 ip-addr : 127.18.1.100 localhostͷ8009ϙʔτʹ઀ଓ

Slide 91

Slide 91 text

αʔόؒͷ࿈ܞʢར༻͢Δϓϩτίϧʣ • WebαʔόͱAPαʔόͷ࿈ܞʹ࢖ΘΕΔن֨ ‣ HTTP ‣ AJP(Apache Jserv Protocol)
 ApacheͱTomcat(JSPͷ࣮ߦίϯςφʣͷ࿈ܞʹ࢖Θ Ε͍ͯΔ ‣ WebSocket
 ΫϥΠΞϯτͱαʔόؒͰ1౓઀ଓΛཱ֬ͨ͠ޙ, σʔ λͷ΍ΓऔΓΛιέοτ௨৴Ͱߦ͏΋ͷʢϦΞϧλΠ Ϝੑ͕ߴ͍ʣ

Slide 92

Slide 92 text

αʔόؒͷ࿈ܞʢར༻͢Δϓϩτίϧʣ • APαʔόͱDBαʔό͸Ͳ͏͢Δͷ͔ ‣ ODBC(Open DataBase Connectivity)
 DBMSຖͷҧ͍Λٵऩ͠, ڞ௨ͷίʔυͰσʔλϕʔ εʹΞΫηε͢ΔͨΊͷن֨ - ODBCυϥΠόΛ࢖͏͜ͱͰ࣮ݱ 0%#$υϥΠό APαʔό DBαʔό ODBCυϥΠόΛར༻༷ͯ͠ʑͳ
 DBMSͷಠࣗن֨ʹରԠ ಠࣗϓϩτίϧͰ௨৴

Slide 93

Slide 93 text

ࢀߟαΠτ౳

Slide 94

Slide 94 text

ࢀߟαΠτ • MySQLೖ໳ɹϨϓϦέʔγϣϯฤ
 https://qiita.com/Tocyuki/items/c224cef57493f536a94 • Ajax Introduction
 https://www.w3schools.com/js/js_ajax_intro.asp • Ajaxͷ঺հʢݹΊʣ
 https://www.ibm.com/developerworks/jp/web/library/wa- ajaxintro1.html • XML-RPC
 https://ja.wikipedia.org/wiki/XML-RPC • SOAP
 https://ja.wikipedia.org/wiki/ SOAP_(%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3% 83%AB)

Slide 95

Slide 95 text

ࢀߟαΠτ • MySQL ӡ༻+؅ཧ τϥϒϧγϡʔςΟϯάΨΠυ
 http://gihyo.jp/book/2010/978-4-7741-4294-4 • ήʔϜΤϯδχΞͷͨΊͷσʔλϕʔεઃܭ
 https://www.slideshare.net/sairoutine/ss-62485460