Slide 1

Slide 1 text

!QZBNB(.01FQBCP *OD CVJMEFSTDPO5PLZP ͜͜·Ͱग़དྷΔNSVCZ

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

νʔϑςΫχΧϧϦʔυ ࢁԼ࿨඙!QZBNB ϗεςΟϯάࣄۀ෦ IUUQTUFOTOBQPODPN

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

-JOVYͷ౷߹Ϣʔβʔ؅ཧ 50.-ܗࣜ )551+40/ -%"1΍%#ͷ؅ཧͷӡ༻ෛՙ ѻ͍΍͍͢ϑΥʔϚοτ ൚༻ੑɾ֦ுੑ

Slide 6

Slide 6 text

Ͳ͜·Ͱग़དྷΔͷ NSVCZ

Slide 7

Slide 7 text

NSVCZͷಛ௃ ܰྔ3VCZ ૊ΈࠐΈ Մൖੑ

Slide 8

Slide 8 text

ܰྔ3VCZ $ valgrind ruby -e 'puts “buildercon Tokyo 2017 Yeah!!!!” ==3537== HEAP SUMMARY: ==3537== in use at exit: 2,719,641 bytes in 23,303 blocks ==3537== total heap usage: 48,117 allocs, 8,876,176 bytes allocated $ valgrind mruby -e 'puts “buildercon Tokyo 2017 Yeah!!!!” ==3638== HEAP SUMMARY: ==3638== in use at exit: 0 bytes in 0 blocks ==3638== total heap usage: 4,468 allocs, 483,579 bytes allocated লϝϞϦ

Slide 9

Slide 9 text

ܰྔ3VCZ $3VCZͱͷҧ͍ ૊ΈࠐΈ༻్ ඪ४ϞδϡʔϧɾΫϥε HFNNSCHFN 3FHFYQ΍'JMFͳͲNSVCZͰ͸֦ுѻ͍ OPHFNJOTUBMM

Slide 10

Slide 10 text

૊ΈࠐΈ লϝϞϦΛ׆͔ͯ͠ϛυϧ΢ΣΞ΁ ૊ΈࠐΈ NPE@NSVCZ OHY@NSVCZ "QBDIF)551%4FSWFSͷઃఆ΍τϥϑΟοΫΛNSVCZͰ੍ޚ NPE@NSVCZ૬౰ͷಈ࡞ΛOHJOYͰ࣮ݱ

Slide 11

Slide 11 text

NPE@NSVCZ "QBDIF)551% mrubyFixupsFirst (ap_hook_fixups) mrubyLogTransactionLast (ap_hook_log_transaction) ɾ ɾ ɾ request *G.PEVMFNPE@NSVCZD NSVCZ'JYVQT'JSTUFUDIUUQEDPOGEIPPLSCDBDIF *G.PEVMF # hook.rb Apache.echo "hello world!" "QBDIFͷϑοΫΛར༻͠ɺNSVCZΛ࣮ߦ

Slide 12

Slide 12 text

Մൖੑ ΫϩείϯύΠϧ ΦϖϨʔγϣϯπʔϧ NSVCZDMJ IUUQTHJUIVCDPNIPOFNSVCZDMJ

Slide 13

Slide 13 text

NSVCZΛར༻ͨ͠։ൃ NSCHFN

Slide 14

Slide 14 text

HFNͱNSCHFNͷҧ͍ ࢀর ಺แ ίϯύΠϧ ಈ࡞؀ڥ NSCHFN͸ίϯύΠϧ࣌ʹNSVCZʹ ૊ΈࠐΈ ϑΝΠϧγεςϜ͕ଘࡏ͠ͳ͍ಈ࡞؀ڥ΋ ͋ΔͨΊɺSFRVJSF΍MPBE͸ඪ४Ͱ͸ αϙʔτ֎ gem CRuby CRuby mruby mrbgem

Slide 15

Slide 15 text

NSCHFN SFRVJSF͕ͳͯ͘΋ϑΝΠϧΛ෼ׂͰ͖Δ ࠶ར༻ੑ ίϯύΠϧͰߟྀ͞ΕΔͷͰɺϑΝΠϧΛ෼ׂͯ͠؅ཧग़དྷΔ HFNͱߟ͑ํ͸ࣅ͍ͯΔ 3VCZ(FNTʹ͋ͨΔNHFNMJTU

Slide 16

Slide 16 text

NSCHFNΛ։ൃ͢Δ ݴޠ͸3VCZ͔$ݴޠΛओʹར༻ 3VCZ ᶃ ܭࢉίετͷ௿͍ॲཧΛ
 ੜ࢈ੑߴ͘։ൃ ᶄ $ݴޠͰ։ൃͨ͠ΫϥεΛ
 ར༻ͨ͠ϏδωεϩδοΫ ᶃ ܭࢉίετͷߴ͍ॲཧΛ࣮૷ ᶄ γεςϜɾίʔϧ΍"1*Λར༻ $ݴޠ

Slide 17

Slide 17 text

NSCHFNΛ։ൃ͢Δ NSVCZNSCHFNUFNQMBUF /mruby-builderscon |--mrblib | |—mrb_builderscon.rb |—Rakefile |--src | |--mrb_builderscon.c | |--mrb_builderscon.h |--test | |--mrb_builderscon.rb |--mrbgem.rake NSVCZͷ֦ுϞδϡʔϧͰ͋ΔNSCHFNͷςϯϓϨʔτΛࣗಈͰੜ੒͢ΔNSCHFN࡞ͬͨʯ IUUQCMPHNBUTVNPUPSKQ Q ਺ߦͷઃఆϑΝΠϧͰίʔυͷ਽ܗɺ ίϯύΠϧఆٛɺςετɺ3FBENFɺ ϥΠηϯεϑΝΠϧΛ࡞੒

Slide 18

Slide 18 text

ͳͥ๻͸ɺNSVCZͳͷ͔

Slide 19

Slide 19 text

NSVCZ͸ -JHIU-BOHVBHFͷ΋͏Ұาઌ΁ ΤϯδχΞΛ੒௕ͤ͞Δ

Slide 20

Slide 20 text

$ݴޠ΍γεςϜϨΠϠʔͱͷ ग़ձ͍

Slide 21

Slide 21 text

࠶ܝ NSVCZͷಛ௃ ܰྔ3VCZ ૊ΈࠐΈ Մൖੑ

Slide 22

Slide 22 text

NSVCZͷಛੑΛ׆͔͢ͳΒ ௿ϨΠϠʔ

Slide 23

Slide 23 text

ΑΓਂ͘જΔͨΊʹ NSVCZTJHOBMUISFBE εϨουηʔϑͳ4JHOBMΫϥε ॲཧ͍ͨ͠γάφϧҎ֎ΛTJHNBTLͨ͠εϨουͰ
 TJHXBJU͢Δ 4QFDJBM5IBOLTIUUQTHJUIVCDPNLTTTNSVCZTJHOBM

Slide 24

Slide 24 text

ΑΓਂ͘જΔͨΊʹ main thread(pid:X) signal thread kill -HUP X SignalThread.trap(:HUP) do configure.reload end reload ᶃγάφϧىಈ ᶄ)61γάφϧΛϝΠϯεϨουͷ1*%΁ૹΔ NSVCZTJHOBMUISFBE

Slide 25

Slide 25 text

ΑΓਂ͘જΔͨΊʹ

Slide 26

Slide 26 text

NSVCZ4ZNCPM hash = { key: “ઈର༏উ͢Δͧ” } LFZ͸ͲͷΑ͏ʹղܾ͞Ε͍ͯΔʁ

Slide 27

Slide 27 text

ͦ͜ʹίʔυ͕͋Ε͹ ෼͔Εͳ͍͜ͱ͸Ұͭ΋ͳ͍

Slide 28

Slide 28 text

NSVCZ͸௥͍΍͍͢ /mruby-builderscon |--mrblib | |—mrb_builderscon.rb |—Rakefile |--src | |--mrb_builderscon.c | |--mrb_builderscon.h |--test | |—mrb_builderscon.rb |--build_config.rb |--mruby CVJME@DPOpHSC NSVCZ 3VCZͷ%4-ͰNSVCZͷϏϧυઃఆ NSVCZͷιʔεҰࣜ .# HJUIVCDPNNSVCZNSVCZ

Slide 29

Slide 29 text

σόοάͷ͠΍͢͞ ࠷దԽఀࢭ NSVCZͱNSCHFNΛڥͳ͘σόοά DUBHTඞܞ DPOGDDqBHT0H

Slide 30

Slide 30 text

HEC $ gdb mruby/bin/mruby (gdb) b mrb_sym2name (gdb) run example/builderscon.rb (gdb) p name $3 = 0x70d4b0 “Lazy” … (gdb) p mrb->symtbl[0] $6 = {lit = 1 '\001', len = 9, name = 0x474950 "inherited"} (gdb) p mrb->symtbl[1] $7 = {lit = 1 '\001', len = 12, name = 0x4748b2 "__attached__"} (gdb) p mrb->symtbl[2] $8 = {lit = 0 '\000', len = 11, name = 0x6c1e20 "BasicObject"}

Slide 31

Slide 31 text

mrb->symtbl [0] name =>inherited [1] name => __attached__ … [10] name => Lazy … [31] name => USR1 NSVCZ4ZNCPM 4ZNCPM5BCMF mrb_value :USR1 => sym => 10

Slide 32

Slide 32 text

OBNFUP@T

Slide 33

Slide 33 text

໰୊ͷઌૹΓΛಉ྅͕ϑΥϩʔ͢Δ νʔϜϓϨΠ͕ϖύϘʹ͸͋Γ·͢ SFGTIUUQTHJUIVCDPNNBUUONSVCZUISFBEQVMM

Slide 34

Slide 34 text

NSCHFNͷσόοά͸ NSVCZͱͷͭͳ͕Γ͕ڧ͍ ͭ·Γ ݴޠ΁ͷཧղ͕ਂ·Δ

Slide 35

Slide 35 text

4&(7

Slide 36

Slide 36 text

Նͷ෩෺ࢻηάϝϯςʔγϣϯϑΥʔϧτ ϝϞϦͷΞΫηεҧ൓ ม਺ॳظԽ࿙Ε Ṗόά

Slide 37

Slide 37 text

CFGPSFNSVCZ

Slide 38

Slide 38 text

BGUFSNSVCZ # gdb /usr/sbin/nginx core.11528 GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-94.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details.

Slide 39

Slide 39 text

HECͰσόοά ม਺͕/6-- ίϯύΠϧ Φϓγϣϯʁ ϚΫϩʁ FUD HECͷ͋Δ฻Β͠ ௐ΂Δ ෼͔Δ ରॲ͢Δ

Slide 40

Slide 40 text

CFGPSF BGUFS

Slide 41

Slide 41 text

ਂ͘ཧղ͢Δͱ͍͏͜ͱ NSVCZ͚ͩͰ͸ͳ͍ීวత஌ࣝ *OUFSOFUΑΓԶͷ΄͏͕ৄ͍͠ମݧ HECσόοά͚ͩͰ͸ͳ͘ɺ,FSOFMɺ$ϥΠϒϥϦपลͷ஌ࣝ ϛυϧ΢ΣΞ΍ɺ04ͷϘτϧωοΫ΍ύϥϝʔλʔʹഭΕΔΑ͏ʹͳΔ ݕࡧͯ͠΋ग़ͯ͜ͳ͍஌ࣝΛಘΔաఔͰֶͿ͜ͱ΍ɺ ໰୊ʹରͯ͠ɺ௥͍੾Δͱ͍͏͜ͱ

Slide 42

Slide 42 text

NSVCZʹݟग़͢ ΤϯδχΞͱͯ͠ͷνϟϯε

Slide 43

Slide 43 text

NHFNMJTU NSCHFNΛެ։͢ΔϦϙδτϦ

Slide 44

Slide 44 text

NSCHFNSBLF NSCHFNͷґଘؔ܎ ίϯύΠϧΦϓγϣϯΛఆٛ MRuby::Gem::Specification.new('mruby-signal-thread') do |spec| spec.license = 'MIT' spec.authors = 'pyama86' spec.cc.flags << "-DMRB_THREAD_COPY_VALUES" spec.add_dependency 'mruby-thread' spec.add_test_dependency 'mruby-process' end

Slide 45

Slide 45 text

Slide 46

Slide 46 text

࣌఺ͷNHFNMJTU SVCZHFNTPSHͷొ࿥਺

Slide 47

Slide 47 text

NSCHFNԽ͞Εͯͳ͍ϥΠϒϥϦ (FNUPNSCHFN PQFOTTM UIPS GBSBEBZ NSVCZBDNFDMJFOU

Slide 48

Slide 48 text

'BTU$FSUJpDBUF ngx_mruby acme-client Redis client ʮOHY@NSVCZͰ࠷ॳͷ)5514ΞΫηε࣌ʹࣗಈͰূ໌ॻΛઃఆՄೳʹ͢Δ ɹ'BTU$FSUJpDBUFͷఏҊͱ1P$ʯ ɹɹIUUQICNBUTVNPUPSKQFOUSZ ᶃΫϥΠΞϯτ͔ΒΞΫηε ᶄOHY@NSVCZ͔Β3FEJTʹΞΫηε͠ɺূ໌ॻͷ༗ແΛ֬ೝ ᶅূ໌ॻ͕ͳ͍৔߹ɺ-FU`T&ODSZQUΛར༻ͯ͠৽نൃߦ ᶆൃߦͨ͠ূ໌ॻΛ3FEJTʹॻ͖ࠐΉ ᶇΫϥΠΞϯτ͸IUUQT௨৴Ͱ͖Δ

Slide 49

Slide 49 text

NSVCZBDNFDMJFOU VOJYDIBSMFTBDNFDMJFOU SVCZPQFOTTM -FU`T&ODSZQUΛར༻ͨ͠ূ໌ॻൃߦ ূ໌ॻͷൃߦʹඞཁͳϞδϡʔϧɺΫϥεΛDMPOF

Slide 50

Slide 50 text

(FNUPNSCHFN $3VCZͱͷࠩҟ͸ϚΫϩͰରॲ͢Δ $3VCZͷ࣮૷ʹҾ͖ͮΒΕ͗͢ͳ͍

Slide 51

Slide 51 text

$3VCZͱͷࠩҟ͸ϚΫϩͰରॲ͢Δ #define VALUE mrb_value #define ID mrb_sym #define SYM2ID(mrb, o) mrb_sym2str(mrb, mrb_symbol(o)) #define ID2SYM(o) mrb_symbol(o) $3VCZͰ͸ఆٛࡁΈɺNSVCZͰ͸ະఆٛͳ ϚΫϩ΍ϝιου͸ͦΕͳΓʹ͋Δ

Slide 52

Slide 52 text

όουϊ΢ϋ΢ ஔ׵

Slide 53

Slide 53 text

όουϊ΢ϋ΢ த్൒୺ͳ࠷దԽ

Slide 54

Slide 54 text

$3VCZͷ࣮૷ʹҾ͖ͮΒΕ͗͢ͳ͍ Linux Ruby on Rails CRuby Linux nginx mruby ద༻ྖҬ͕ҟͳΔͷͰ ࣅͯඇͳΔ΋ͷͱߟ͑Δ

Slide 55

Slide 55 text

ͱ͖ʹ͸ׂΓ੾Δ ڱ͍ͱ͜ΖͰ࢖͏ͳΒ͹ແཧʹ޿͘αϙʔτ͠ͳ͍ ΠϯλʔϑΣʔε΋؀ڥʹ߹Θͤͯ΍͍͖ͬͯ

Slide 56

Slide 56 text

NSVCZͰ΍͍͖ͬͯ ͋ͳͨ΋ஶ໊ͳϥΠϒϥϦͷ࡞ऀʹ NSVCZ͔Β޿͕ΔϨΠϠʔͷੈքɺͦͷઌʹ

Slide 57

Slide 57 text

զʑ͸Ͳ͏΍ͬͯདྷ͔ͨ

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

΍͍͖ͬͯن໛ Ϣʔβʔ਺ສਓ αΠτ਺ສαΠτ ΞΫηε਺ԯΞΫηε೔ ௒ߴूੵϨϯλϧαʔό 1SPYZ͸OHJOYɺ6TFST͸"QBDIF)551%Λ࠾༻

Slide 60

Slide 60 text

No content

Slide 61

Slide 61 text

ϦϦʔεޙɺ ̍िؒͰ ສαΠτҎ্͕ )5514)551

Slide 62

Slide 62 text

44-ূ໌ॻͷ؅ཧ TJUFFYBNQMFDPN ൿີ伴 ূ໌ॻ ̍ສຕͷূ໌ॻ؅ཧ ഑෍ํࣜ ෳ਺ͷαʔόʹͲͷΑ͏ʹ഑෍͢Δ͔ ߋ৽ ߋ৽ظݶͷ؅ཧ΍ɺߋ৽͸Ͳ͏ߦ͏͔ ཤྺ όʔδϣχϯάͲ͏͢Δ͔ɺ੾Γ໭͠ σʔλ͸͋Δ͔

Slide 63

Slide 63 text

server { listen 443 ssl http2; ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; server_name example.com; root /var/www/releases; } º

Slide 64

Slide 64 text

ಈతূ໌ॻಡΈࠐΈ

Slide 65

Slide 65 text

OHY@NSVCZূ໌ॻͷಈతಡΈࠐΈ ਃ͠ࠐΈ ϖʔδ HPMBOH &DIP TJEFLJR .Z42- OHY@NSVCZ SFEJT NSVCZ@TTM@IBOETIBLF@IBOEMFS@DPEF TTM/HJOY44-OFX EPNBJOTTMTFSWFSOBNF SFEJT6TFSEBUBOFXSFEJT TTMDFSUJpDBUF@EBUBSFEJT<\EPNBJO^DSU> TTMDFSUJpDBUF@LFZ@EBUBSFEJT<\EPNBJO^LFZ>

Slide 66

Slide 66 text

OHY@NSVCZ ಈతϓϩΩγ σʔλΞΫηεͷNSCHFNԽ

Slide 67

Slide 67 text

ಈతϓϩΩγ OHY@NSVCZ VTFST FYBNQMFDPN VTFST FYBNQMFDPN .Z42- MPDBUJPO\ NSVCZ@TFUCBDLFOEWBSMJCNSVCZIPPLSCDBDIF JG CBDLFOE \ SFUVSO ^ QSPYZ@QBTTIUUQTCBDLFOE ^

Slide 68

Slide 68 text

ಈతϓϩΩγ αʔόͷઃఆมߋ͕ෆཁ ҠઃΛ$IBU0QT ৼΓ෼͚ઌͷࣗ༝౓

Slide 69

Slide 69 text

σʔλΞΫηεΛNSCHFNԽ Inmemory KVS Redis MySQL fetch fetch cache cache IUUQTHJUIVCDPNQFQBCPNSVCZNTE සൟʹΞΫηε͢Δ৘ใ΄ͲΦϯϝϞϦͰॲཧ

Slide 70

Slide 70 text

αʔόෛՙࣗಈ੍ޚ

Slide 71

Slide 71 text

αʔόෛՙରԠ ͍͢͝τϥϑΟοΫ ߈ܸɾԌ্ ಉ࣌઀ଓ਺੍ݶ αʔό ಉډऀ ؂ࢹһ BQBIDF)551%

Slide 72

Slide 72 text

ෛՙ੍ޚͷࣗಈԽ (PMBOHͰϩάύʔαʔΛ࣮૷ NSVCZIUUQBDDFTTMJNJUFS NSVCZDHSPVQ

Slide 73

Slide 73 text

(PMBOHͰϩάύʔαʔΛ࣮૷ 1SPEVDUOBNFBMCB ໷໌͚ ᶃ աڈ/෼ͷϩάΛ5BJM ᶄ 8FCαʔόͷॲཧ࣌ؒΛΞΧ΢ϯτɺWIPTU͝ͱʹूܭ ᶅ ᮢ஋ɺαϯϓϦϯά਺ͳͲͷ৚݅෇

Slide 74

Slide 74 text

NSVCZBDDFTTMJNJUUFS NPE@NSVCZͱ૊Έ߹Θͤͯɺ NSVCZͰಉ࣌ΞΫηε਺Λ੍ޚ͢ΔNSCHFN BQBIDF)551% CMPDL

Slide 75

Slide 75 text

NSVCZBDDFTTMJNJUUFS ༨ஊ 7JSUVBM)PTU %PDVNFOU3PPUIPNFVTFSTFYBNQMFDPNXFC 4FSWFS/BNFFYBNQMFDPN 7IPTU.BY$MJFOUT "EE)BOEMFSBQQMJDBUJPOYIUUQEQIQQIQ "EE5ZQFBQQMJDBUJPOYIUUQEQIQQIQ 7JSUVBM)PTU Ҏલ͸NPE@WIPTU@NBYDMJFOUTΛ ར༻ͯ͠઀ଓ਺੍ޚ IUUQTHJUIVCDPNNBUTVNPUPSZNPE@WIPTU@NBYDMJFOUT WIPTU͝ͱʹಉ࣌઀ଓ਺Λهड़Մೳ

Slide 76

Slide 76 text

NSVCZBDDFTTMJNJUUFS ༨ஊ NPE@WIPTU@NBYDMJFOUTͰ͸(SBDFGVM3FTUBSU͕ඞཁ (SBDFGVM3FTUBSUʹ͓͚ΔҰ࣌తͳෛՙ૿୆ ੤໿ͱ੍໿͔Βɺͦͷଞͷιϑτ΢ΣΞ͔Βѻ͍ͮΒ͍ঢ়ଶ NPE@WIPTU@NBYDMJFOUTΛར༻ͨ͠ ઀ଓ੍ݶͷ՝୊

Slide 77

Slide 77 text

੤໿ͱ੍໿ "QBDIF)551%ͷϢʔβʔ͝ͱͷઃఆϑΝΠϧͷมߋͷ ࢓༷͕ݱࡏͷઃఆϑΝΠϧΛύʔεͯ͠ɺઃఆͷ௥Ճ࡟আΛ
 ߦ͍ͬͯΔ 7JSUVBM)PTU %PDVNFOU3PPUIPNFVTFSTFYBNQMFDPNXFC 4FSWFS/BNFFYBNQMFDPN "EE)BOEMFSBQQMJDBUJPOYIUUQEQIQQIQ "EE5ZQFBQQMJDBUJPOYIUUQEQIQQIQ 7JSUVBM)PTU %PDVNFOU3PPUIPNFVTFSTFYBNQMFDPNXFC 4FSWFS/BNFFYBNQMFDPN "EE)BOEMFSBQQMJDBUJPOYIUUQEQIQQIQ

Slide 78

Slide 78 text

ઃఆϑΝΠϧΛมߋ͢Δ͜ͱͳ͘ ಈతʹ੍ޚ

Slide 79

Slide 79 text

NPE@NSVCZ NSVCZBDDFTTMJNJUUFS BMCB BDDFTTMPH MJNJUZNM MPDBM NFNDBDIF BDDFTT MJNJUUFS ϩάղੳ ੍ݶઃఆ࡞੒ ੍ݶઃఆ͕ଘࡏ͢Δ৔߹ʹϝϞϦಡΈࠐΈ MPDBMNFNDBDIF ΠϯϝϞϦ,74 Λར༻͢Δ͜ͱͰઃఆͷ࠶ಡࠐΛෆཁʹ IUUQTHJUIVCDPNNBUTVNPUPSZNSVCZMPDBMNFNDBDIF

Slide 80

Slide 80 text

NSVCZDHSPVQ

Slide 81

Slide 81 text

DHSPVQ$POUSPM(SPVQ ϓϩηεΛάϧʔϓԽ͠ɺάϧʔϓʹରͯ͠ $16ར༻࣌ؒ΍ɺϝϞϦར༻ྔͷ੍ݶΛ ߦ͏͜ͱ͕ग़དྷΔ

Slide 82

Slide 82 text

NSVCZDHSPVQ IUUQE IUUQE $16 ར༻࣌ؒ ಉ࣌઀ଓ੍ݶͰ཈੍Ͱ͖ͳ͍ɺ ஶ͘͠ෛՙͷߴ͍εΫϦϓτ΍ ϓϥάΠϯΛ$16੍ݶ͢Δ MJNJUFE@DHSPVQ$HSPVQ$16OFX lIUUQEz MJNJUFE@DHSPVQDSFBUFVOMFTTMJNJUFE@DHSPVQFYJTU MJNJUFE@DHSPVQBUUBDI

Slide 83

Slide 83 text

ࣗಈ੍ޚͷ͋Δੈք ͍͢͝τϥϑΟοΫʜ ߈ܸɾԌ্ αʔό ಉډऀ ؂ࢹһ BQBIDF)551% ࣗಈ੍ޚ͡Όʂʂʂ

Slide 84

Slide 84 text

No content

Slide 85

Slide 85 text

ίϯςφܕΫϥ΢υϗεςΟϯά NSVCZ࣮૷ͷίϯςφϥϯλΠϜIBDPOJXB 'BTU$POUBJOFSΞʔΩςΫνϟ ΫϩʔζυЋॱ࣍Ҋ಺த ͱʹ͔͘৭ʑ΍͹͍αʔϏε IUUQTNDMPMJQPQKQ

Slide 86

Slide 86 text

No content

Slide 87

Slide 87 text

IBDPOJXB 3VCZ%4-Λ༻͍ͯɺDISPPU΍OBNFTQBDFͳͲίϯςφͷ
 ఆٛΛهड़ ෳ਺ͷϑοΫϙΠϯτ͕͋Γɺίϯςφͷىಈ࣌΍ɺऴྃ࣌ɺ λΠϚʔॲཧͳͲγεςϜ࿈ܞ͕ࣗ༝ࣗࡏ ୈճϑΫΦΧ3VCZେ৆ड৆ ৆ۚສԁ IUUQSVCZLBJHJPSHQSFTFOUBUJPOTVE[VSBIUNM

Slide 88

Slide 88 text

)BDPOJXBEFpOFEPcDPOpHc DPOpHOBNFlCVJMEFSTDPOz DPOpHDHSPVQ<DQVDGT@QFSJPE@VT> DPOpHDHSPVQ<DQVDGT@RVPUB@VT> DPOpHJOJU@DPNNBOE<CJOCBTI> DPOpHOBNFTQBDFVOTIBSFJQD DPOpHOBNFTQBDFVOTIBSFVUT DPOpHOBNFTQBDFVOTIBSFNPVOU DPOpHOBNFTQBDFVOTIBSFQJE DPOpHDBQBCJMJUJFTBMMPXBMM DPOpHDBQBCJMJUJFTESPQDBQ@TZT@BENJO FOE DHSPVQʹΑΔϦιʔε্ݶΛఆٛ OBNFTQBDFͷ෼཭ DBQBCJMJUZͷ෇༩

Slide 89

Slide 89 text

1SPYZ DPOUBJOFS MJTUFO DPOUBJOFS ىಈ ఀࢭ DPOUBJOFS Ԡ౴ 'BTU$POUBJOFSΞʔΩςΫνϟ 'BTU$(*͔Βண૝ ϦΫΤετܖػʹ௒ߴ଎ʹ
 ίϯςφΛىಈ ੜ·ΕมΘΓͷաఔͰ
 ΑΓڧ͘ɺ૿͑Δ

Slide 90

Slide 90 text

'BTU$POUBJOFSΞʔΩςΫνϟ γεςϜӡ༻্ͰͷϝϦοτ ෆཁͳίϯςφ͸ࣗಈͰఀࢭ͢Δ ੜ·ΕมΘΓΛܖػʹϑϨΩγϒϧͳϗετબ୒ ίϯςφͷੜ·ΕมΘΓϓϩηεͷੜ·ΕมΘΓ

Slide 91

Slide 91 text

ϚωʔδυΫϥ΢υͱNSVCZ IBDPOJXB NSVCZOFUXPSLBOBMZ[FS NSVCZJQWTBEN NBEBN

Slide 92

Slide 92 text

NSVCZOFUXPSLBOBMZ[FS /FUXPSL"OBMZ[FSDPMMFDU FUI < \ TSD@IPTU ETU@IPTU TSD@QPSU ETU@QPSU UPUBM@TFOU UPUBM@SFDW TFOU@IJTUPSZ<> SFDW@IJTUPSZ<> ^ > ࢦఆͨ͠ΠϯλʔϑΣʔεΛ ࢦఆͨ͠ඵ਺Ωϟϓνϟ͠ɺ ίϯςφͷར༻ঢ়گΛ೺Ѳ IUUQTHJUIVCDPNQZBNBNSVCZOFUXPSLBOBMZ[FS

Slide 93

Slide 93 text

NSVCZOFUXPSLBOBMZ[FS σόΠεΦʔϓϯ JG EBUBQEQDBQ@PQFO@MJWF JG@OBNF $"1563&@-&/(5) FCVG /6-- \ NSC@SBJTFG NSC &@36/5*.&@&3303 QDBQPQFOFSSPS4 NSC@TUS@OFX@DTUS NSC FCVG ^ EMUQDBQ@EBUBMJOL EBUBQE JG EMU%-5@&/.# \ ࢦఆඵ਺଴ͭ TMFFQ TFD QBDLFU@MPPQ@DPOGD\NSC EBUB^ ࢦఆඵ਺όοϑΝʹ஝ੵͨ͠ύέοτΛίʔϧόοΫϝιουͰूܭ͢Δ QDBQ@EJTQBUDI EBUBQE NBY IBOEMF@FUI@QBDLFU D QDBQ@DMPTF EBUBQE ^

Slide 94

Slide 94 text

NSVCZJQWTBEN 1SPYZ DPOUBJOFS TTI TTI DPOUBJOFS TTI 1SPYZ DPOUBJOFS TTI TTI DPOUBJOFS TTI TTI ίϯςφύέοτϧʔςΟϯά τϥϯεϙʔτ૚ͷ૊Έ߹Θͤ͸

Slide 95

Slide 95 text

NSVCZJQWTBEN IUUQTHJUIVCDPNQZBNBNBEBN NBEBNBQQMZ DBUTBNQMFTBNQMFKTPO JQWTBEN-O *17JSUVBM4FSWFSWFSTJPO TJ[F 1SPU-PDBM"EESFTT1PSU4DIFEVMFS'MBHT 3FNPUF"EESFTT1PSU'PSXBSE8FJHIU"DUJWF$POO*O"DU$POO 5$1SS 3PVUF 3PVUF +40/Ͱ*174Λߏ੒

Slide 96

Slide 96 text

NSVCZJQWTBEN 1SPYZ $POTVM8BUDI NBEBN $POTVM,7 "1* ίϯςφͷ௥Ճ ϙʔτͷ௥Ճ *1ͷ௥Ճ $POTVM,7͔Β+40/ΛऔΓग़͠ɺ ಈతʹϧʔςΟϯά௥Ճ

Slide 97

Slide 97 text

ཁૉٕज़։ൃʹNSVCZ

Slide 98

Slide 98 text

೥಺ϦϦʔε༧ఆ ༧ఆ

Slide 99

Slide 99 text

·ͱΊ

Slide 100

Slide 100 text

NSVCZΛར༻͢Δ͜ͱͰ ௿ϨΠϠʔʹڧ͘ͳΔ

Slide 101

Slide 101 text

։ൃ్্Ͱ͋Δ NSVCZʹͷ͍͖ͬͯ

Slide 102

Slide 102 text

NJEEMFXBSFNSVCZڧ͍

Slide 103

Slide 103 text

͝ਗ਼ௌ༗೉͏͍͟͝·ͨ͠