Web技術の基本 6回目 / Introduction to Web technologies 6th class

Fd09da0d9751bb7875ef4ff7e6201860?s=47 muttan
April 13, 2018

Web技術の基本 6回目 / Introduction to Web technologies 6th class

Fd09da0d9751bb7875ef4ff7e6201860?s=128

muttan

April 13, 2018
Tweet

Transcript

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

  2. ࠓճͷςʔϚ

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

  4. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

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

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  6. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • WebΞϓϦέʔγϣϯ
 ωοτϫʔΫΛհͯ͠Webϒϥ΢β্Ͱಈ࡞͢ΔΞϓ Ϧέʔγϣϯ • WebΞϓϦέʔγϣϯ͸, 3૚ߏ଄Ͱӡ༻͞Ε͍ͯΔࣄ ͕ଟ͍ ‣

    ϓϨθϯςʔγϣϯ૚(Webαʔό) ‣ ΞϓϦέʔγϣϯ૚(APαʔό) ‣ σʔλ૚(DBαʔό)
  7. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ WebγεςϜ ΞϓϦέʔγϣϯ૚ σʔλ૚ ϓϨθϯςʔγϣϯ૚ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό)

    Ϣʔβʔ΁ͷදࣔ  Ϣʔβʔ͔Βͷૢ࡞ड෇ 8FCαʔό͔Βͷ ໋ྩ࣮ߦ ը໘ͷੜ੒ σʔλͷநग़΍ ߋ৽ ิؒ
  8. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • 3૚ΞʔΩςΫνϟͰߏ੒͢Δར఺
 1ͭͷαʔόͰશͯΛ࿫͏ΑΓ΋, ෛՙ෼ࢄ(εέʔϧΞ ΢τ)͠΍͍͢ ‣ εέʔϧΞ΢τ
 ಉ͡ػೳΛఏڙ͢ΔαʔόΛෳ਺୆༻ҙͯ͠, ϦΫΤ

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

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

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

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

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

  14. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • 3૚ΞʔΩςΫνϟͰ͋Ε͹, WebαʔόͱAPαʔόͱ DBαʔό͕ಠཱ͍ͯ͠ΔͨΊ, ͦΕͧΕͷ਺ͷௐ੔ʢε έʔϧΞ΢τʣ͕΍Γ΍͍͢ ‣ 1ͭͷϚγϯʹશͯͷαʔόΛཱͯͯ͠·͏ͱ, Web

    αʔόΛ૿΍ͨͯ͘͠΋, ୯ମͰ૿΍͢͜ͱ͕ෆՄೳ ‣ Ұൠʹ, DBαʔόͷεέʔϧΞ΢τ͸೉͍͠ - աڈʹॻ͍ͨεϥΠυʹ৭ʑ͔͍ͯ͋ΔΑ
  15. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • ͦΕͧΕͷ૚͕ಠཱ͍ͯ͠ΔͷͰ, վमൣғΛ੍ݶ͢Δ ͜ͱ͕Մೳ WebγεςϜ ΞϓϦέʔγϣϯ૚ σʔλ૚ ϓϨθϯςʔγϣϯ૚ Webϒϥ΢β

    (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) ϨΠΞ΢τΛมߋ͚ͨ͠Ε͹  8FCαʔόͷΈ͍͡Ε͹ྑ͍
  16. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ • ΞϓϦέʔγϣϯͷن໛ʹΑͬͯ, ద੾ͳΞʔΩςΫ νϟΛ࠾༻͢Δ΂͖ • େن໛ͳαʔϏεͰ͸༗ޮ͕ͩ, ݸਓతͳখ͞ͳ΋ͷͰ 3૚ΞʔΩςΫνϟΛ࠾༻͢Δͷ͕ϕετͱ͸ݶΒͳ͍ ‣

    αʔό͕3୆͋Δͱ͍͏͜ͱ͸, 3ͭ෼ͷ؅ཧίετ͕ ͔͔Δͱ͍͏͜ͱʹͳΔ WebΞϓϦέʔγϣϯͷ3૚ߏ଄ ऴྃ
  17. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  18. MVCϞσϧ • MVCϞσϧ
 WebΞϓϦέʔγϣϯͷσβΠϯύλʔϯͷҰछ ‣ M(Model)
 σʔλʹؔ͢ΔॲཧΛߦ͏ ‣ V(View)
 Ϣʔβʔ΁ͷग़ྗॲཧ

    ‣ C(Controller)
 Ϣʔβʔ͔ΒͷϦΫΤετΛड͚ͯ, Model΍View΁ ॲཧΛৼΓ෼͚Δ
  19. MVCϞσϧ $POUSPMMFS 7JFX .PEFM ॲཧ໋ྩ σ ʔ λ ͷ ද

    ࣔ ໋ ྩ ׬ ྃ Ԡ ౴ දࣔσʔλ σ ʔ λ ͷ ॲ ཧ ໋ ྩ ׬ ྃ Ԡ ౴ σʔλཁٻ ը໘දࣔ σʔλॲཧ໋ྩͷྲྀΕ σʔλද໋ࣔྩͷྲྀΕ 7JFXͱ.PEFMʹࢦࣔ ग़ྗ දࣔ Λ୲౰ σʔλॲཧ
  20. MVCϞσϧ • ͜ͷΑ͏ʹ͢Δͱ, MVCϞσϧͬͯ3૚ΞʔΩςΫνϟ ͱࠞಉ͢Δਓ͕͍Δ ‣ 3૚ΞʔΩςΫνϟͱMVC͸ҟͳΔ֓೦ ‣ ૚ߏ଄ͱ͍͏ͷ͸, ྡΓ߹ͬͨ૚ಉ࢜ͰͷΈ΍ΓऔΓ

    Λ͢Δ - ϓϨθϯςʔγϣϯ૚ͱσʔλ૚͸΍ΓऔΓ͠ͳ ͍ ‣ MVCϞσϧͷ৔߹, ͢΂ͯͷ૚ʹؔ܎͕͋Δ
  21. MVCϞσϧ WebγεςϜ ΞϓϦέʔγϣϯ૚ σʔλ૚ ϓϨθϯςʔγϣϯ૚ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό)

    Controller View Model ΞϓϦέʔγϣϯ
  22. MVCϞσϧ • MVCϞσϧͷར఺ ‣ 3૚ΞʔΩςΫνϟʔಉ༷ʹ, ։ൃ΍վमͷൣғ͕໌ ֬ʹͳΔ - ֤ཁૉ͕ผΕ࣮ͯ૷͞Ε͍ͯΔͨΊ, ଞͷՕॴ΁ͷ

    Өڹ͕গͳ͍ - ໰୊Օॴͷಛఆ͕ൺֱత༰қ MVCϞσϧ ऴྃ
  23. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  24. Webαʔό • Webαʔό
 WebΫϥΠΞϯτ͔ΒͷϦΫΤετΛड͚औΔαʔό Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) ↑͜͜

  25. Webαʔό • ϦΫΤετͷ಺༰ʹΑͬͯॲཧΛม͑Δ ‣ css, js͕ϦΫΤετ͞Εͨ৔߹ʢ੩తϑΝΠϧʣ
 Webαʔό͕ϑΝΠϧΛฦ͢ ‣ ಈతॲཧ͕ඞཁͳ΋ͷ
 APαʔόʹॲཧΛґཔ͢Δ

    Webαʔό APαʔό ϦΫΤετ ಈతॲཧͷґཔ ಈతϖʔδͷ సૹ ίϯςϯπͷ సૹ ੩తϑΝΠϧ͸ ͜͜Ͱฦ͢
  26. Webαʔό • Webαʔό͸ϦΫΤετΛड͚͚ͭΔ૭ޱ ‣ Webαʔό͕ࢮ͵ͱαʔϏε͕ఀࢭͯ͠͠·͏ • ͜ͷΑ͏ͳࣗମΛආ͚ΔͨΊ, ௨ৗ͸WebαʔόΛෳ਺ ୆༻ҙͯ͠৑௕ԽΛߦ͍ͬͯΔ ‣

    1୆ͩͱ1୆ࢭ·ΔͱશͯऴΘΓ͕ͩ, Կ୆͔Քಇͯ͠ ͍Ε͹ͳΜͱ͔αʔϏεΛܧଓͰ͖Δ
  27. Webαʔό APαʔό αʔό͕ނোͯ͠΋ผͷαʔόΛ ࢖ͬͯαʔϏεܧଓ Webαʔό ΫϥΠΞϯτ ͨͩ͠, Webαʔό͸ͦΕͧΕಉ͡ ίϯςϯπΛ͍࣋ͬͯΔඞཁ͕͋Δ ઀ଓෆՄ

  28. Webαʔό • ར༻ऀ͕ଟ͚Ε͹ଟ͍΄ͲϦΫΤετ͸૿Ճ ‣ ར༻ऀ͕ଟͯ͘΋Ϩεϙϯε͸஗ͨ͘͘͠ͳ͍ • ݱঢ়Webαʔό͕ͲͷΑ͏ͳঢ়ଶͰ͋Δ͔Λਪଌͤͣ ʹܭଌ͢Δ΂͖ ‣ I/O͕ϘτϧωοΫͳͷ͔CPUͳͷ͔

    - Don't guess! Measure! - "premature optimization is the root of all evil." (ૣ ͗͢Δ࠷దԽ͸ॾѱͷࠜݯ)
  29. Webαʔό • WebαʔόΛεέʔϧΞ΢τ͢Δࡍ͸, શͯͷWebαʔ όʹಉ͡ίϯςϯπΛஔ͘ඞཁ͕͋Δ • ผʹϑΝΠϧ༻ͷαʔόΛ༻ҙ͢Δํ๏΋͋Δ ‣ ίϯςϯπͷಉظ͸ෆཁʹͳΔ͕, αʔόؒͷ௨৴͕

    ൃੜ͠Ϩεϙϯε͕௿Լ͢Δ ϑΝΠϧΛஔ͍ͨαʔό Φʔόʔϔου͕ൃੜ Webαʔό Webαʔό Webαʔό ऴྃ
  30. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  31. ΞϓϦέʔγϣϯαʔό • ΞϓϦέʔγϣϯαʔό(APαʔό)
 ࣮ࡍͷWebΞϓϦέʔγϣϯͷॲཧΛߦ͏ϓϩάϥϜ Webϒϥ΢β (ΫϥΠΞϯτεΫϦϓτ) (Webαʔό) (APαʔό) (DBαʔό) ↑͜͜

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

    ‣ CPUෛՙ͕ߴ͘ͳΓ͕ͪ
  33. ΞϓϦέʔγϣϯαʔόʢηογϣϯ؅ཧػೳʣ • Ҏલʹ΋࿩ͨ͠ηογϣϯͷ؅ཧΛߦ͍ͬͯΔ ‣ ؔ࿈ͷ͋Δ1࿈ͷॲཧͷ։͔࢝Βऴྃ·Ͱͷશظؒ ૹ৴ଆ ड৴ଆ ঎඼ΛબͿ OK ങ͍෺͔͝ʹೖΕΔ

    OK ങ͍෺͔͝ͷத਎Λ֬ೝ OK ܾࡁ OK ηογϣϯ
  34. ʢ෮शʣηογϣϯ • ෳ਺ͷΫϥΠΞϯτ͔ΒΞΫηε͞ΕΔWebαʔό͸, ηο γϣϯΛͲͷΑ͏ʹ؅ཧ͢Δͷ͔ʁ ‣ CookieΛ༻͍ͯηογϣϯΛ؅ཧ͢Δ ‣ Cookie͕࢖͑ͳ͍৔߹͸URLʹؚΊΔͱ͖΋͋Δ͕, ηΩϡ

    ϦςΟͷ໘͔Βਪ঑͞Εͳ͍ํ๏Ͱ͋Δ • ηογϣϯ؅ཧʹ͓͍ͯ, Webϒϥ΢βΛࣝผ͢ΔͨΊͷࣝผ ࢠ(id)ΛηογϣϯIDͱݺͿ ‣ ηογϣϯID͸WebαʔόͰੜ੒͞Ε, CookieʹؚΊͯWeb ϒϥ΢βʹૹ৴͞ΕΔ
  35. ʢ෮शʣηογϣϯ 4*%BBBBBB 4*%CCCCCC webαʔό webϒϥ΢βB webϒϥ΢βA ηογϣϯ*% Ϣʔβʔ ϩάΠϯ ങ͍෺͔͝

    BBBBBB TBUP 536& Ξ΢λʔº γϟπº CCCCCC HVFTU '"-4& γϡʔζº දɿWebαʔό͕อଘ͍ͯ͠Δηογϣϯσʔλ
  36. ʢ෮शʣηογϣϯ • ηογϣϯIDΛड͚औͬͯҎ߱͸, ϦΫΤετϔομʹ ηογϣϯIDΛؚΊͯૹ৴͢Δ͜ͱͰ, Webαʔόͱͷ ηογϣϯΛҡ࣋͢Δ͜ͱ͕ग़དྷΔ. • ʮങ͍෺͔͝ʹͳʹΛ͍Ε͔ͨʯͱݴͬͨ৘ใ͸, ηο

    γϣϯIDͱඥ෇͍ͯʮηογϣϯσʔλʯͱͯ͠αʔό ʹอଘ͞ΕΔ.
  37. ʢ෮शʣηογϣϯ 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ͷύϥϝʔλͱͯ͠ૹ৴
  38. ΞϓϦέʔγϣϯαʔόʢηογϣϯ؅ཧػೳʣ • HTTP͸εςʔτϨεͳϓϩτίϧͳͷͰ, ηογϣϯͳ ͲΛ࢖Θͳ͍ͱεςʔτϑϧͳॲཧΛߦ͑ͳ͍ • APαʔό͕ηογϣϯIDΛൃߦ͠, ͦΕΛجʹΫϥΠΞ ϯτͱ΍ΓऔΓ͢Δ͜ͱͰ1ͭͷηογϣϯͱͯ͠؅ཧ

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

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

    ͍͑ͳ͍ 1τϥϯβΫγϣϯ 1τϥϯβΫγϣϯ 4τϥϯβΫγϣϯ ᶈͷΈͷࣦഊͰ͋Ε͹ ϩάΞ΢τॲཧ͸ࣦഊ͕ͩͦ ͷલͷ࡞ۀͰ͋Δ॓ധࢪઃͷ༧໿࡞ۀ͸੒ޭ͍ͯ͠Δ τϥϯβΫγϣϯͷྫ ΞϓϦέʔγϣϯαʔό ऴྃ
  41. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  42. σʔλϕʔε؅ཧγεςϜ • σʔλϕʔε؅ཧγεςϜ(DBMS)
 WebΞϓϦέʔγϣϯͷσʔλΛอଘ͢Δσʔλετ Ξ. ͱ͘ʹ, ؔ܎σʔλϕʔεͰ͸RDBMS(Relational DataBase Management System)͕༻͍ΒΕΔ

    ‣ ϑϦʔͷRDBMS͸͍͔ͭ͋͘Δ - MySQL - SQLite - PostgreSQL etc.. MySQLΛྫʹॲཧͷྲྀΕΛݟͯΈΔ
  43. σʔλϕʔε؅ཧγεςϜ • MySQLͷ࢓૊Έ 1. SQLจΛύʔε͢Δ
 σʔλΛऔಘ͢Δͷ͔, ૠೖ͢Δͷ͔ͳͲ 2. ΦϓςΟϚΠβʹ͔͚Δ
 ݁߹ͷॱং౳Λߟྀͯ͠࠷దԽ͢Δ

    3. ετϨʔδΤϯδϯʹ౤͛ΔʢσʔλʹΞΫηεʣ
 ࣮ࡍͷσʔλ͕֨ೲ͞Ε͍ͯΔ৔ॴʹΞΫηε
  44. σʔλϕʔε؅ཧγεςϜ ίωΫγϣϯ εϨου ίωΫγϣϯ εϨου ίωΫγϣϯ εϨου ύʔαɾΦϓςΟϚΠβɾΞΫηε؅ཧͳͲ ετϨʔδΤϯδϯ"1* .Z*4".

    *OOP%# .Z42-ͳͲͷ ετϨʔδΤϯδϯ ετϨʔδϑΝΠϧ ΫϥΠΞϯτ͔ΒͷϦΫΤετ MySQL SELECT * FROM …
  45. σʔλϕʔε؅ཧγεςϜ • ετϨʔδΤϯδϯʹ΋ෳ਺ଘࡏ͢Δ ‣ InnoDB
 ݱࡏMySQLͷσϑΥϧτετϨʔδΤϯδϯ ‣ MyISAM
 ͔ͭͯMySQLͷσϑΥϧτͩͬͨ ‣

    MEMORY
 ϝϞϦ্ʹσʔλΛετΞ͢ΔʢͷͰشൃੑʣ ‣ Blackhole
 Ұ੾σʔλΛه࿥͠ͳ͍ʢ͚Ͳϩά͸࢒͢ʣ
  46. σʔλϕʔε؅ཧγεςϜ • ࡢ೔ͷ໷Θ͔Βͳ͍ͳ͊ͬͯͣͬͱͭͿ΍͍ͯͨ

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

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

  49. σʔλϕʔε؅ཧγεςϜ • ৭ʑ͋ΔͷͰڵຯ͋ͬͨΒௐ΂ͯΈͯ ‣ MyISAM ‣ InnoDB ‣ MEMORY ‣

    Federated ‣ BLACKHOLE ‣ ARCHIVE ‣ MySQL Cluster(NDB)
  50. σʔλϕʔε؅ཧγεςϜ • ίϛϡχςΟΤϯδϯ ‣ Tritonn ‣ SPIDER ‣ Q4M ‣

    PBXT ‣ Percona XtraDB ‣ KickFire ‣ InfiniDB
  51. σʔλϕʔε؅ཧγεςϜ • DBαʔό
 RDBMSΛ౥ࡌͨ͠αʔόʢσʔλετΞʣ ‣ σʔλϕʔε͸ΞϓϦέʔγϣϯͷ৘ใΛอ͍࣋ͯ͠ ΔͨΊ, ৴པੑ΍৑௕ੑΛߟྀͨ͠ߏ੒ʹ͢Δඞཁ͕ ͋Δ -

    I/Oෛՙ͕ߴΊʹͳΔ఺΋ߟྀ͠ͳ͍ͱ͍͚ͳ͍ ‣ DBαʔόͷεέʔϧΞ΢τ͸೉͍͠…
  52. σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ • อ࣋͢Δσʔλͷอશ͸ඇৗʹॏཁ ‣ ௨ৗDBαʔό͸৑௕Խߏ੒ΛऔΔ • ͔͠͠, DBαʔόͷ৑௕Խߏ੒͸೉͍͠ ‣ ෳ਺୆Ͱߏ੒ͨ͠৔߹,

    ෳ਺୆ͰσʔλΛڞ༗͓ͯ͠ ͘ඞཁ͕͋Δ ‣ ͨͩ͠සൟʹσʔλͷߋ৽͕ى͜ΔͨΊ, ͲͷΑ͏ʹ ڞ༗Λ͢Δ͔͕ॏཁ
  53. σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ • ৑௕Խͷํ๏͸ෳ਺͋Δ ‣ ϛϥʔϦϯά ‣ ϨϓϦέʔγϣϯ ‣ γΣΞʔυσΟεΫ

  54. σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ • ϛϥʔϦϯά
 ߋ৽໋ྩΛड͚ͨRDBMS͕ෳ਺ͷσʔλϕʔεʹରͯ͠ಉ࣌ʹಉ ͡ߋ৽Λߦ͏ • ϨϓϦέʔγϣϯ
 ߋ৽໋ྩΛड͚ͨRDBMS͕ෳ਺ͷσʔλϕʔεʹରͯ͠ಉ͡ߋ৽ Λߦ͏. λΠϛϯά͸ಉ࣌ͱ͸ݶΒͳ͍

    • γΣΞʔυσΟεΫ
 σʔλϕʔεΛڞ༻ͷετϨʔδʹ࣋ͪ, ෳ਺ͷDBαʔό͔ΒͦΕ Λߋ৽͢Δ
  55. σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό ϓϦϯγύϧʢਖ਼ʣ ϛϥʔʢ෭ʣ ߋ৽໋ྩ ߋ৽໋ྩ ฏৗ࣌͸ϓϦϯγύϧʹ໋ྩΛૹΓ  ো֐ൃੜ࣌ʹ͸ϛϥʔʹ໋ྩΛૹΔ

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

    ߋ৽͢Δͱ εϨʔϒʹ
 ߋ৽ϩάϑΝΠϧ͕ૹΒΕΔ ߋ৽ϩάͷ಺༰Λجʹ εϨʔϒͷσʔ λϕʔεͷߋ৽Λ೚ҙͷλΠϛϯάͰ ߦ͏ Master-Slaveߏ੒ͷ৔߹, ߋ৽ʹಉظ/ඇಉظ͕ଘࡏ͢Δ. ϨϓϦέʔγϣϯ
  57. σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό ϚελʢBlackholeʣ εϨʔϒʢInnoDBʣ όΠφϦϩά ߋ৽໋ྩ ϚελͷετϨʔδΤϯδϯΛBlackhole͢Δ͜ͱͰ, INSERT͕ଟ͍Α͏ͳαʔϏεʹ࠷దԽ͢Δ͜ͱ΋ ϨϓϦέʔγϣϯ

  58. σʔλϕʔε؅ཧγεςϜʢ৑௕Խʣ webαʔό APαʔό DBMS ϛϥʔʢ෭ʣ ߋ৽໋ྩ ߋ৽໋ྩ ໋ྩ͸Ͳͷ%#.4Ͱ΋ྑ͍ γΣΞʔυσΟεΫͷ%#.4ʹ͸ ਖ਼෭ͷ֓೦͸ͳ͍

    γΣΞʔυσΟεΫ DBMS σʔλετϨʔδ σʔλϕʔε͸৑௕Խ ͞Εͳ͍ͷͰରো֐ੑ ͷڧ͍෺ΛબͿ DBMS ऴྃ
  59. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  60. Ωϟογϡαʔό • ϦΫΤετ਺͕૿͑Δͱ, ίϯςϯπͷಡΈग़͠(I/O)΍ ॲཧ͕ແࢹͰ͖ͳ͍Ϩϕϧʹͳͬͯ͘Δ ‣ ϨεϙϯελΠϜͷ௿ԼΛট͘ • ίϯςϯπΛΩϟογϡͤ͞Δ͜ͱͰ, ස౓ͷߴ͍΋ͷ

    ΍αΠζ͕େ͖͍΋ͷʹؔͯ͠ߴ଎ʹϨεϙϯεΛฦ͢ ͜ͱ͕ग़དྷΔ ‣ Ωϟογϡαʔόʔ͕ͦͷ໾ׂΛ୲͏
  61. Ωϟογϡαʔό • Ωϟογϡ
 ϦΫΤετʹର͢ΔϨεϙϯεͷهԱ ‣ ίϯςϯπΩϟογϡ
 จॻ΍ը૾, ಈըͱ͍ͬͨίϯςϯπͷΩϟογϡ ‣ ΫΤϦΩϟογϡ


    DBMSͷσʔλݕࡧཁٻʢΫΤϦʣͷ݁ՌͷΩϟο γϡ
  62. Ωϟογϡαʔό ίϯςϯπ Ωϟογϡαʔό Webαʔό هԱͯ͠ͳ͍ϦΫΤετ͸ͦͷཁٻΛ 8FCαʔόʹసૹ͢Δ هԱ͍ͯ͠ΔϦΫΤετ͕དྷͨ৔߹ 8FC αʔόͷ୅ΘΓʹϨεϙϯεΛฦ͢ ϦΫΤετͱ8FCαʔόͷϨεϙϯεͷ

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

    DBαʔό WebγεςϜ
  64. ΩϟογϡαʔόʢΩϟογϡͷ༗ޮظݶʣ • Ωϟογϡ͸଎౓ΛಘΔͨΊʹඞཁͳٕज़ • ͔͠͠, ίϯςϯπ͕Ξοϓσʔτ͞Εͨ৔߹, Ωϟο γϡͷ༗ޮظݶ͕௕͍ͱ͍ͭ·ͰͷچϑΝΠϧ͕഑৴ ͞Εͯ͠·͏ ‣

    ༗ޮظݶΛద੾ʹઃఆ͢Δ͜ͱͰ, ҰఆִؒͰΩϟο γϡ಺༰ΛΞοϓσʔτ͢Δඞཁ͕͋Δ ‣ ͦͷͨΊͷHTTP ETag
  65. ΩϟογϡαʔόʢCDNʣ • ಥવͰ͕͢, ϓϩάϥϚ͕஌Δ΂͖ϨΠςϯγͰ͢ Ҿ༻ɿhttps://speakerdeck.com/fujiwara3/isucon-summer-school-1

  66. ΩϟογϡαʔόʢCDNʣ • CDN(Contents Delivery Network)
 ੈք֤஍ʹ഑ஔ͞ΕͨΩϟογϡαʔόͷू߹ମ ‣ ೔ຊ͔Β഑৴͢Δͷʹ೔ຊʹ͚ͩΩϟογϡαʔόΛ ஔ͍͍ͯͯ͸, ࠃ֎͔ΒͷΞΫηε͸஗͘ͳΔ

    ‣ ੈքதʹΩϟογϡαʔόΛ෼ࢄͯ͠഑ஔ͢Δ͜ͱ Ͱ, Ͳ͔͜ΒΞΫηεͯ͠΋͋Δఔ౓ߴ଎ʹ
  67. ΩϟογϡαʔόʢCDNʣ • CDNͷ༗໊ͳαʔϏε ‣ CloudFront(Amazon) ‣ CloudFlare ‣ Akamai CloudFrontͷωοτϫʔΫʢҾ༻ɿhttps://aws.amazon.com/jp/cloudfront/details/ʣ

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

  69. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  70. Ajax • ಉظ௨৴
 ΫϥΠΞϯτͱαʔό͕ަޓʹ௨৴Λߦ͍, ಉௐͯ͠௨ ৴Λߦ͏͜ͱ ‣ ಡΈࠐΈ͕ऴΘΔ·ͰଞͷॲཧΛߦ͑ͳ͍ʢ଴ͭ͜ ͱ͔͠Ͱ͖ͳ͍ʣ

  71. Ajax • Ajax(Asynchronous JavaScript + XML)
 ΫϥΠΞϯτͷJavaScript͕௚઀Webαʔόͱ௨৴Λߦ ͍, σʔλΛऔಘͯ͠ඳը͢ΔඇಉظॲཧͷΠϯλ ϑΣʔε

    ‣ ͍͍ͪͪϖʔδΛϦϩʔυ͠ͳͯ͘΋, มߋ͍ͨ͠෦ ෼͚ͩΛAjaxΛ࢖ͬͯ࠶ඳը͢Δ͜ͱ͕Ͱ͖Δ
  72. Ajax ϦΫΤετ ߋ৽ʹඞཁͳσʔλͱϦΫΤετΛૹ৴ Ϩεϙϯε଴ͪͷؒ͸ଞͷՕॴͷ දࣔߋ৽΍Ϣʔβʔͷૢ࡞ड෇͕Մೳ HTMLશମͷ࡞੒ΑΓ ॲཧ͕গͳΊ Ϩεϙϯε HTMLશମΛฦ͢ΑΓ αΠζ͸খ͞Ί

  73. Ajax • Ajaxʹ࢖༻͞Ε͍ͯΔٕज़ ‣ HTML
 WebϖʔδΛهड़͢ΔͨΊͷݴޠ ‣ JavaScript
 JavaScriptͷXMLHttpRequestΦϒδΣΫτΛ࢖༻ ‣

    DHTML
 ΫϥΠΞϯτεΫϦϓτͰϖʔδΛಈతʹมߋ͢Δ΢Σϒٕ ज़Λࢦ͢ந৅֓೦ ‣ DOM
 HTML΍XMLΛѻ͏ͨΊͷAPI Ajax ऴྃ
  74. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  75. Web API • WebAPI(Web Application Program Interface)
 WebΛ௨ͯ͡ϓϩάϥϜ͕௚઀αʔϏεΛར༻͢Δͨ ΊͷΠϯλʔϑΣʔε ར༻ঢ়گ

    WebAPIͷURL΁ σʔλΛૹ৴ ॲཧ݁Ռ WebAPIͷURL΁ σʔλΛૹ৴ ॲཧ݁Ռ Webαʔό 8FC"1* APαʔό
  76. Web API • Web APIͷྫ ‣ Ң౓ͱܦ౓Λૹ৴͢Δͱ, ରԠ͢Δ৔ॴͷఱؾ༧ใ͕ ฦ৴͞ΕΔఱؾ༧ใAPI(Weather Hacksͱ͔)

    ‣ ϩάΠϯ৘ใͱจষΛૹ৴͢Ε͹, จষΛϙετ͢Δ ͜ͱ͕ग़དྷΔ(Twitterͱ͔) ‣ σʔλΛૹΔͱ෼ੳͨ݁͠ՌΛฦͯ͘͠ΕΔ(Watson API)
  77. Web API • Web APIͷ΍ΓऔΓʹ͸༷ʑͳํ๏͕࢖ΘΕΔ ‣ XML-RPCʢϓϩτίϧʣ
 XMLͰූ߸Խͯ͠ॲཧͷ࣮ߦΛཁٻ͢Δ ‣ SOAPʢϓϩτίϧʣ


    XML-RPCΛ֦ுͨ͠ߴػೳͳϓϩτίϧ ‣ RESTʢઃܭࢥ૝ʣ
 Web্ͷϦιʔεΛҰҙͳURLͰදͯ͠, ࢖༻͢Δϝ ιουʹΑͬͯڍಈΛม͑ΔΞϨʢલʹ΍ͬͨʣ
  78. Web API(XML-RPCͷྫ) <?xml version="1.0"?> <methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>40</i4></value> </param>

    </params> </methodCall> XML-RPCϦΫΤετ XML-RPCϨεϙϯε <?xml version="1.0"?> <methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse>
  79. Web API(SOAPͷྫ) SOAPϦΫΤετ SOAPϨεϙϯε <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productId>827635</productId>

    </getProductDetails> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productId>827635</productId> <description>3-Piece luggage set. Black Polyester.</description> <price>100.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
  80. Web API(RESTͷࢥ૝(෮श)) • RESTful(REpresentational State Transfer)
 4ͭͷݪଇ͔ΒͳΔγϯϓϧͳઃܭͷ͜ͱ 1. εςʔτϨε
 ΍ΓऔΓ͸1ճ͝ͱʹ׬݁.

    ଞͷ΍ΓऔΓʹӨڹ͠ͳ͍. 2. ΞυϨεՄಡੑ
 ͢΂ͯͷϦιʔε͕ҰҙͳURIͷߏจͰදݱՄೳ 3. ౷ҰΠϯλʔϑΣʔε
 HTTPϝιουͷར༻͕౷Ұ͞Ε͍ͯΔ 4. ઀ଓੑ
 ΍ΓऔΓ͞ΕΔ৘ใʹϦϯΫΛؚΊΔࣄ͕Ͱ͖Δ
  81. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  82. CGI • CGI(Common Gateway Interface)
 ΫϥΠΞϯτ͔ΒͷཁٻʹԠͯ͡αʔόʔαΠυεΫϦ ϓτΛىಈ͢ΔͨΊͷ࢓૊Έ ‣ ϦΫΤετʹԠͯ͡༧Ί༻ҙ͞Ε͍ͯΔϓϩάϥϜΛ ࣮ߦ͠,

    ͦͷ࣮ߦ݁ՌΛฦ͢
  83. CGI 8FCαʔό ίϯςϯπ $(*ϓϩάϥϜ ಡΈࠐΈ ϓϩάϥϜͷىಈ ࣮ߦ݁Ռ ϦΫΤετ Ϩεϙϯε w

    $(*΁ͷϦΫΤετ
 $(*ϓϩάϥϜͷಈ࡞݁Ռ w ͦΕҎ֎
 63-ʹରԠ͢Δίϯςϯπ Λฦ৴ DHJCJOϑΥϧμ֎ͷϑΝΠϧ΍  ֦ுࢠ͕DHJͰͳ͍ϑΝΠϧ DHJCJOϑΥϧμʹ͋Δ֦ுࢠ ͕DHJͰ͋ΔϑΝΠϧΛ$(*ϓ ϩάϥϜͱΈͳ͢ %JSFDUPSZDHJCJO 0QUJPOT &YFD$(*
 "EE)BOEMFSDHJTDSJQUDHJ %JSFDUPSZ DHJCJOϑΥϧμ಺ʹ͋Δ֦ுࢠ ͕DHJͰ͋ΔϑΝΠϧ
  84. CGI • ΫϥΠΞϯτ͕ΤϯυϙΠϯτ(CGIͷURL)ʹΞΫηε͢ Δ͜ͱͰର৅ͷϓϩάϥϜ͕ىಈ͢Δ • ϓϩάϥϜʹσʔλΛ౉͢͜ͱ͕ग़དྷΔ ‣ ίϚϯυϥΠϯҾ਺౉͠
 URLͷ຤ඌʹ?Λ෇͚ͯσʔλΛ+۠੾ΓͰ෇Ճ͢Δํ๏ ‣

    ύε౉͠
 URLͷޙΖʹʮ/ʯͰ۠੾ͬͯσʔλΛฒ΂Δํ๏ ‣ GET, POSTϝιουΛ࢖͏
  85. CGI 8FCαʔό $(*ϓϩάϥϜ σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi? σʔλ1+σʔλ2 ίϚϯυϥΠϯҾ਺౉͠ 8FCαʔό $(*ϓϩάϥϜ

    σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi/ σʔλ1/σʔλ2 ύε౉͠ ىಈ࣌ʹσʔλΛอ͍࣋ͯ͠Δ ىಈޙʹ1"5)@*/'0͔Βऔಘ
  86. CGI 8FCαʔό $(*ϓϩάϥϜ σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi? σʔλ໊1=σʔλ1 GETϝιου 8FCαʔό $(*ϓϩάϥϜ

    σʔλΛ౉ͯ͠ ϓϩάϥϜͷىಈ http://example.com/program.cgi/ POSTϝιου ىಈޙ ม਺26&3:@453*/(
 ͔ΒσʔλΛऔಘ ىಈޙผʹૹΒΕ͖ͯͨ
 σʔλΛಡΈࠐΉ TUEJO
  87. ໨࣍ 1. WebΞϓϦέʔγϣϯͷ3૚ߏ଄ 2. MVCϞσϧ 3. Webαʔό 4. ΞϓϦέʔγϣϯαʔό 5.

    σʔλϕʔε؅ཧγεςϜ 6. Ωϟογϡαʔό 7. Ajax 8. Web API 9. CGI 10.αʔόؒͷ࿈ܞ
  88. αʔόؒͷ࿈ܞ • CGIΛར༻ͤͣʹαʔόʔαΠυεΫϦϓτΛىಈ͢Δ৔ ߹͸, ֤αʔό͸αʔόʹ΋ΫϥΠΞϯτʹ΋ͳΓ͏Δ ‣ Webαʔό͕APαʔόʹσʔλͷॲཧΛґཔ ‣ APαʔό͕αʔόʔαΠυεΫϦϓτΛ࣮ߦ Webαʔό

    APαʔό DBαʔό αʔό ΫϥΠ Ξϯτ αʔό ΫϥΠ Ξϯτ αʔό αʔϏεཁٻ σʔλ ॲཧґཔ σʔλ ݕࡧɾߋ৽
  89. αʔόؒͷ࿈ܞ • αʔόಉ࢜ͷ௨৴ʹ͓͍ͯ΋, ϦΫΤετΛૹ৴͢Δଆ ͕ΫϥΠΞϯτ, ϨεϙϯεΛฦ͢ଆ͕αʔό ‣ APαʔό΍DBαʔόʹରͯ͠༧Ίઃఆͨ͠ϙʔτΛ ࢦఆ͠௨৴ ‣

    ಉ͡αʔόʔ಺Ͱ͋Ε͹127.0.0.1(localhost)
  90. αʔόؒͷ࿈ܞ ػث͕ҟͳΔ৔߹ 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ϙʔτʹ઀ଓ
  91. αʔόؒͷ࿈ܞʢར༻͢Δϓϩτίϧʣ • WebαʔόͱAPαʔόͷ࿈ܞʹ࢖ΘΕΔن֨ ‣ HTTP ‣ AJP(Apache Jserv Protocol)
 ApacheͱTomcat(JSPͷ࣮ߦίϯςφʣͷ࿈ܞʹ࢖Θ

    Ε͍ͯΔ ‣ WebSocket
 ΫϥΠΞϯτͱαʔόؒͰ1౓઀ଓΛཱ֬ͨ͠ޙ, σʔ λͷ΍ΓऔΓΛιέοτ௨৴Ͱߦ͏΋ͷʢϦΞϧλΠ Ϝੑ͕ߴ͍ʣ
  92. αʔόؒͷ࿈ܞʢར༻͢Δϓϩτίϧʣ • APαʔόͱDBαʔό͸Ͳ͏͢Δͷ͔ ‣ ODBC(Open DataBase Connectivity)
 DBMSຖͷҧ͍Λٵऩ͠, ڞ௨ͷίʔυͰσʔλϕʔ εʹΞΫηε͢ΔͨΊͷن֨

    - ODBCυϥΠόΛ࢖͏͜ͱͰ࣮ݱ 0%#$υϥΠό APαʔό DBαʔό ODBCυϥΠόΛར༻༷ͯ͠ʑͳ
 DBMSͷಠࣗن֨ʹରԠ ಠࣗϓϩτίϧͰ௨৴
  93. ࢀߟαΠτ౳

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