Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モジュラモノリスで表現する複雑なドメイン領域と境界 / Expressing complex domain regions and boundaries with 'modular monoliths

showmant
October 17, 2020

モジュラモノリスで表現する複雑なドメイン領域と境界 / Expressing complex domain regions and boundaries with 'modular monoliths

showmant

October 17, 2020
Tweet

More Decks by showmant

Other Decks in Programming

Transcript

  1. 4DBMB.BUTVSJ4IPNB5BLFP TIPXNBOU
    "MQ *OD
    &YQSFTTJOHDPNQMFYEPNBJO
    SFHJPOTBOECPVOEBSJFTXJUI
    NPEVMBSNPOPMJUIT

    View Slide

  2. "CPVUNF
    4IPNB5BLFP"MQ *OD
    w(SBEVBUFEGSPN%FQBSUNFOUPG*OGPSNBUJPO4DJFODFBOE&OHJOFFSJOH
    w'PSNFSTPGUXBSFFOHJOFFSBU$ZCFSBHFOU"EUFDI4UVEJP
    w$PGPVOEFSBOE%FWFMPQNFOUEJSFDUPSBU"MQ *OD
    w-PWF3BNFO 3BNFO 3BNFO 3BNFO+JSP /1# .-# /#"BOE4DBMB
    [email protected]
    ϥʔϝϯ͕ڰ͏΄Ͳ޷͖ͳΞϧϓגࣜձࣾɺڞಉ૑ۀऀͷ஛ඌਖ਼അ TIPXNBOU

    View Slide

  3. "CPVU"MQ *OD
    'PVOEFEJO
    w FNQMPZFFTJODMVEJOHFOHJOFFST
    w %FMJWFSJOH4VCTDSJQUJPONBOBHFNFOUTPGUXBSF 4DBMFCBTF 4BB4

    w 6TF%%% 4DBMB $MFBO"SDIJUFDUVSF 5ZQF4DSJQU 3FBDU
    Ξϧϓגࣜձࣾ͸໊ͷΤϯδχΞ͕ࡏ੶͠ɺαϒεΫϦϓγϣϯ؅ཧͷ4BB4Λఏڙ
    %%%ɺ4DBMBΛ࠾༻͠ϑϩϯτΤϯυ͸3FBDUɺ5ZQF4DSJQUͰ࣮૷

    View Slide

  4. 5PEBZT5PQJD
    w 8IJDIEPNBJOBSFBTEPFT4DBMFCBTFIBOEMF
    w 8IBUXFSFTPNFQSPCMFNTXF`WFFODPVOUFSFEXIJMFEFWFMPQJOH
    4DBMFCBTF
    w 8IZEJEXFBEPQUNPEVMBSNPOPMJUIT
    w )PXEJEXFEFTJHOUIFNPEVMBSNPOPMJUIT
    w )PXBSFUIFNPEVMBSNPOPMJUITXPSLJOHTPGBS
    w 8IBUJTUIFOFYUTUFQ
    ຊ೔ͷΞδΣϯμ͸ΞʔΩςΫνϟͷ࿩ͳͷͰɺ૊৫΍υϝΠϯྖҬʹ͍ͭͯઆ໌͠ͳ͕Β
    ϞδϡϥϞϊϦεʹ͍͓ͭͯ࿩͍ͤͯͨͩ͘͞ɻ

    View Slide

  5. 4DBMFCBTF
    8IBUJT4DBMFCBTF
    w 4VCTDSJQUJPO#VTJOFTT&⒏DJFODZ3FWFOVF0QUJNJ[BUJPO1MBUGPSN
    w $FOUSBMJ[FENBOBHFNFOUPGDPNQMFYQSPEVDUEFTJHO DPOUSBDUT
    CJMMJOH JOWPJDF FUDJOUIFTVCTDSJQUJPOCVTJOFTT
    w .BYJNJ[FQSPpUTCZSFEVDJOHPQFSBUJPOBMDPTUTBOEJODSFBTJOH
    CVTJOFTTqFYJCJMJUZ
    4DBMFCBTF͸αϒεΫϦϓγϣϯϏδωεͷޮ཰Խɺ࠷దԽϓϥοτϑΥʔϜɻ
    αϒεΫϦϓγϣϯʹ͓͚Δෳࡶͳ঎඼ɾܖ໿ͷ؅ཧٴͼൃੜ͢Δ੥ٻΛ؅ཧ͠·͢ɻ

    View Slide

  6. 8IBUXFTPMWF
    w .BOBHFDPNQMFYQSPEVDUDBUBMPHT
    w .BOBHFNFOUPGDPOUSBDUEJWFSTJUZBOETUBUVT
    w $BMDVMBUJPOBOENBOBHFNFOUPGCJMMJOHBNPVOUBDDPSEJOHUPUIF
    WBSJFUZPGDPOUSBDUT
    ঎඼ͷෳࡶੑͷ؅ཧɾܖ໿ͷଟ༷ੑ΍ঢ়ଶͷ؅ཧɾ͔ͦ͜Βੜ·ΕΔ੥ٻ΍ձܭͷ؅ཧΛ୲͏
    4DBMFCBTF

    View Slide

  7. %PNBJO"SFBXFDPWFS
    ѻ͏ྖҬ͸όοΫΦϑΟεͷେ͖ͳ෦෼ͱͳΔ
    $POUSBDU
    $VTUPNFS
    1SPEVDU
    $BUBMPH
    #JMMJOH *OWPJDF4BB4
    "VUIPSJUZ "VUIPSJ[BUJPO
    "DDPVOUJOH
    "OBMZUJDT
    4DBMFCBTF

    View Slide

  8. #FGPSF.PEVMBS.POPMJUI
    w 4QFFEJTUIFNPTUJNQPSUBOUUIJOHGPSBTUBSUVQ
    w "MUIPVHIJUXBTQSFEJDUBCMFUIBUUIFSFXFSFNVMUJQMFDPOUFYUTJOUFSNT
    PGCVTJOFTTTDPQFBOEUIBUUIFDPOUFYUTDPVMECFEJWJEFEVQJOUIF
    GVUVSF JUXBTEFDJEFEUIBUUIF.POPSFQP.POPMJUIXBTUIFCFTU
    PQUJPOCBTFEPOUIFCVTJOFTTBOEPSHBOJ[BUJPOBMQIBTFT
    w 6TF$MFBO"SDIJUFDUVSFBOETCUUPCVJMEBOEPQFSBUFQSPKFDU
    EFQFOEFODJFT
    ૑ۀظ͸౰વϞϊϨϙϞϊϦεͰ͸͡·ΓɺTCUΛ͔ͭͬͨ$MFBO"SDIJUFDUVSFΛߏங
    4UBSUXJUI.POPSFQP.POPMJUI

    View Slide

  9. 8IZEJEUIFBSDIJUFDUVSFOFFEUPFWPMWF
    5PJNQSPWFEPNBJOEFTJHO
    w &BDIEPNBJOJTDPNQMFY4DBMFCBTFEFBMTXJUIEPNBJOTUIBUJOUFSBDUXJUIFBDI
    PUIFS
    w 5IFSFXBTBOJODSFBTFJOUIFOVNCFSPGNPEFMTXJUIDMFBSMZEJ⒎FSFOUDPOUFYUT
    TVDIBTVTBHFNFBTVSFNFOUGPSCJMMJOHDBMDVMBUJPOT BVUIPSJ[BUJPOBOE
    BVUIFOUJDBUJPOBTBDPNNPOCBTJT5IFZBSFUJHIUMZDPVQMFEPWFSUJNFXJUIPVU
    DPOTUSBJOUT
    w *UTEJ⒏DVMUUPWFSJGZJGJUTBHPPENPEFMUPUJHIUMZDPVQMF"NPOPMJUIJDXPVMECFBO
    VOFOGPSDFBCMFDPOTUSBJOUBOEDBOPOMZCFDFOTPSFECZSFWJFX
    w $POUJOVPVTTFBSDIGPSUIFSJHIUEPNBJOEFTJHOBOEDPOUFYUCPVOEBSJFTBSF
    UIFNPTUJNQPSUJOPSEFSUPEFMJWFSDPOUJOVPVTJNQSPWFNFOU
    ͳͥɺΞʔΩςΫνϟͷਐԽ͕ٻΊΒΕ͔ͨɻҟͳΔίϯςΩετΛѻ͏υϝΠϯ͕૿͑ͨɻίϯςΩετڥքΛ
    ҙࣝͨ͠υϝΠϯઃܭ͕ܧଓతͳվળͷσϦόϦʔʹ͓͍ͯඇৗʹॏཁͰ͋Δͱߟ͑Δɻ

    View Slide

  10. 8IZOPU.JDSPTFSWJDFT
    5PPNBOZUIJOHTUPDPOTJEFS UPPEJ⒏DVMUGPSTUBSUVQT
    w "EWBOUBHF
    w %FQMPZNFOU*OEFQFOEFODF
    w 1SFWFOUUIFDPOUFYUPGEPNBJOTGSPNHFUUJOHNJYFEVQXJUIFBDIPUIFS
    w *NQSPWFE1SPEVDUJWJUZBOE4QFFE
    w 5IJOHTUPDPOTJEFSXJUI.JDSPTFSWJDFTGPSFYBNQMF
    w JOUFSTFSWJDFDPNNVOJDBUJPO EJTUSJCVUFEPSDPNQFOTBUJOHUSBOTBDUJPO
    NPOJUPSJOHɺ$*$%
    σϓϩΠͷಠཱੑ΍ίϯςΩετڥքͷڧ੍తͳҙࣝ෇͚͸Ͱ͖Δ͕ɺߟྀ͠ͳ͚Ε͹ͳΒͳ͍఺͕ଟ͍

    View Slide

  11. 8IZOPU.JDSPTFSWJDFT
    5PPNBOZUIJOHTUPDPOTJEFS UPPEJ⒏DVMUGPSTUBSUVQT
    w 'PS6T
    w %PFTO`UNBUDIUIFTJ[FBOECVTJOFTTQIBTFPGUIFPSHBOJ[BUJPO
    w /PCFOFpUTPGBSUPIBWJOHUIFEFQMPZNFOUCFJOEFQFOEFOU
    w 5IFCFOFpUXFXBOUUPSFBQJTUPTQMJUUIFDPOUFYUBOE
    DPOTUSBJODPOUFYUEFQFOEBODZ
    զʑͷ૊৫ɾࣄۀϑΣʔζͰ͸ίϯςΩετͷڥքΛ෼ׂ͠ɺґଘʹ੍໿Λ΋ͨͤΔ͜ͱͷΈ͕ඞཁͳਐԽͩͬͨ

    View Slide

  12. 4JOHMF3FQPTJUPSZ 4JOHMF"QQMJDBUJPO
    8IZ$IPPTF.PEVMBS.POPMJUI
    8IBUJTJU
    w "NPEVMBSNPOPMJUIJTBO
    BSDIJUFDUVSFUIBUBJNTUP
    JNQSPWFUIFNPEVMBSJUZPGUIF
    TZTUFN MJLFBNJDSPTFSWJDF

    XIJMFIBWJOHPOMZPOFUFTUBOE
    EFQMPZNFOUQJQFMJOF MJLFB
    NPOPMJUI
    *UEPFTUIJTCZ
    EJWJEJOHUIFNPOPMJUIBQQMJDBUJPO
    JOUPNPEVMFT TVDIBTBEPNBJO
    NPEFM FUD
    ϞδϡϥϞϊϦε͸୯ҰσϓϩΠΛҡ࣋ͭͭ͠υϝΠϯϞσϧͳͲΛ୯Ґͱͯ͠Ϟδϡʔϧ෼ׂ͢Δ͜ͱͰ
    Ϟδϡʔϧੑͷ޲্Λૂ͏ΞʔΩςΫνϟ
    $POUFYU" $POUFYU#

    View Slide

  13. 8IZ$IPPTF.PEVMBS.POPMJUI
    w #VJMEBQQMJDBUJPOTUIBUDBODPOTDJPVTMZBOEDPNQVMTJWFMZQFSGPSN
    DPOUFYUTQMJUUJOH
    w 4UBSUJOHTNBMMBOEqFYJCMFJTBQQSPQSJBUFGPSUIFTJ[FPGBUFBNT
    USZ
    w FBTZUPEFWFMPQBNJDSPTFSWJDFBTBOFYUFOTJPOPGUIJTQSPKFDU
    ίϯςΩετ෼ׂΛҙࣝతʹߦ͑Δɺখ͞ͳτϥΠΛߦ͑ΔɺϚΠΫϩαʔϏεԽΛݟਾ͑ͨ։ൃ͕ߦ͑Δ

    View Slide

  14. )PX%JE8F%FTJHO*U
    4DBMFCBTFTBQQMJDBUJPOMBZFST
    ґଘੑٯసͷݪଇΛద༻্ͯ͠ҐϨΠϠʔ͔ΒԼҐϨΠϠʔ΁ͷࢀরͷΈՄೳ
    Secondary Adapter
    UseCase
    Domain
    Primary Adapter
    Shared Primary Adapter
    Shared SecondaryAdapter
    Shared Library
    Shared Domain
    Only the code from the top to
    the bottom layer can be referenced

    View Slide

  15. 1SJNBSZBOE4FDPOEBSZ"EBQUFS
    w 1SJNBSZ"EBQUFS
    w UIFBDUPSUIBUESJWFTUIFBQQMJDBUJPO
    w &BTJMZDIBOHFBDUPSTBOESVOCVTJOFTTMPHJD
    w 4FDPOEBSZ"EBQUFS
    w ESJWFOCZUIFBQQMJDBUJPO
    w FJUIFSHFUUIFTPMVUJPOPSTJNQMZJOGPSNJU
    ϓϥΠϚϦΞμϓλ͸)UUQ΍$POTVNFSͳͲͷΠϯλʔϑΣʔεΛ࣮૷
    ηΧϯμϦ͸%#ΞΫηε΍֎෦αʔϏεͱͷ࿈ܞΛ୲͍ͬͯΔ
    )PX%JE8F%FTJHO*U

    View Slide

  16. 1SFQBSFBOTCUQSPKFDUGPSFBDIDPOUFYU
    TCUϓϩδΣΫτΛίϯςΩετ͝ͱʹ༻ҙ
    Secondary Adapter
    UseCase
    Domain
    Primary Adapter
    Shared Primary Adapter
    Shared Secondary Adapter
    Shared Library
    Shared Domain
    AuthN
    Ctx
    AuthZ
    Ctx
    Subscription
    Ctx
    Invoice
    Ctx
    )PX%JE8F%FTJHO*U

    View Slide

  17. 1SFQBSF.POPMJUI"EBQUFSMBZFSTGPSTZTUFNFOUSZQPJOUT
    ༻ҙͨ͠ϓϩδΣΫτΛϞϊϦεΞμϓλʹґଘͤ͞Δ
    MonolithAdapter
    Secondary Adapter
    UseCase
    Domain
    Primary Adapter
    Shared Primary Adapter
    Shared Secondary Adapter
    Shared Library
    Shared Domain
    AuthN
    Ctx
    AuthZ
    Ctx
    Subscription
    Ctx
    Invoice
    Ctx
    )PX%JE8F%FTJHO*U

    View Slide

  18. 8IZEPFTUIF.POPMJUI"EBQUFSSFGFSFODFBMMUIFPUIFSBEBQUFST
    ϞϊϦεΞμϓλ͸σϓϩΠ୯Ґͷू໿ͱɺίϯςΩετؒ௨৴Λ࣮ݱ͢ΔͨΊʹ͋Δ
    MonolithAdapter
    AuthN
    Ctx
    AuthZ
    Ctx
    Subscription
    Ctx
    Invoice
    Ctx
    Secondary Adapter
    UseCase
    Domain
    Primary Adapter
    Shared Primary Adapter
    Shared Secondary Adapter
    Shared Library
    Shared Domain
    w 5PHSPVQUIFNUPHFUIFSBTBVOJUPG
    EFQMPZNFOU
    w 5PJNQMFNFOUJOUFSDPOUFYU
    DPNNVOJDBUJPO
    )PX%JE8F%FTJHO*U

    View Slide

  19. CVJMETCU
    .POPMJUI"QJΞμϓλʔʹ֤ίϯςΩετͷ)UUQ"EBQUFSΛґଘ͍ͤͯ͞Δ
    )PX%JE8F%FTJHO*U

    View Slide

  20. TCUNBLFTJUFBTZUPNPEVMBSJ[FDPOUFYUT
    w *UXBTWFSZFBTZUPDPOTPMJEBUFUIFEFQMPZNFOUVOJUTXIJMFNBJOUBJOJOH
    DPOUFYUCPVOEBSJFT
    w TCUTSFQSFTFOUBUJPOPGQSPKFDUEJWJTJPOJTBNB[JOH
    TCUͷදݱྗ͕ͱʹ͔͘ૉ੖Β͘͠୯ҰσϓϩΠΛอͪͳ͕ΒɺϓϩδΣΫτ෼ׂΛඇৗʹ؆୯ʹ࣮ࢪͰ͖ͨ
    )PX%JE8F%FTJHO*U

    View Slide

  21. )PXUPEFBMXJUIJOUFSDPOUFYUDPNNVOJDBUJPO
    w 6TFBVUPHFOFSBUFEH31$CZ4DBMB1#BTBOJOUFSDPOUFYU
    DPNNVOJDBUJPO
    w )PXFWFS UIF.PEVMBS.POPMJUIEPFTOPUBDUVBMMZDPNNVOJDBUF
    XJUIH31$CVUSFQMBDFTJUXJUIKVTUBGVODUJPODBMMJO%*
    H31$Λ࢖ͬͨίϯςΩετؒ௨৴ͷ४උΛ͢Δ͕ɺϞδϡϥϞϊϦεͰ͸௨ৗͷؔ਺ݺͼग़͠ʹࠩ͠ସ͑Δ
    )PX%JE8F%FTJHO*U

    View Slide

  22. %FpOFUIFJOUFSGBDFPGJOUFSTFSWJDFDPNNVOJDBUJPOCZQSPUPCVG *%-

    ίϯςΩετؒ௨৴ʹ੍໿Λ΋͍ͨͤͯͳ͍ͷͰɺڞ௨4FDPOEBSZ"EBQUFSʹQSPUPͷఆٛΛ഑ஔ͢Δ͜ͱͰ
    શίϯςΩετ͔ΒࢀরՄೳͳঢ়ଶʹ͢Δ
    There are currently no restrictions on
    inter-service communication. The
    protocol buffer's definition is placed in
    a shared SecondaryAdapter so that it
    can be referenced from all contexts.
    Secondary Adapter
    UseCase
    Domain
    Primary Adapter
    Shared Primary Adapter
    Shared SecondaryAdapter
    Shared Library
    Shared Domain
    )PX%JE8F%FTJHO*U

    View Slide

  23. %FpOFUIFJOUFSGBDFPGJOUFSTFSWJDFDPNNVOJDBUJPOCZQSPUPCVG *%-

    ϓϩτίϧόοϑΝʔͷఆٛྫ
    )PX%JE8F%FTJHO*U

    View Slide

  24. w 6TF4DBMB1#UPBVUPNBUJDBMMZHFOFSBUF4DBMBDBTFDMBTTFTBOE
    GVODUJPOJOUFSGBDFTGSPNQSPUPCVG
    w 8FEFpOF31$JOUFSGBDFTBT3FNPUF'VODUJPO
    4DBMB1#Λ࢖͏͜ͱͰQSPUPCVG͔ΒࣗಈͰΠϯλʔϑΣʔε͕ग़ྗ͞ΕΔɻ
    31$ΠϯλʔϑΣʔεΛ3FNPUF'VODUJPOͱݺশ͢Δ
    )PX%JE8F%FTJHO*U

    View Slide

  25. ࣮૷͸H31$ͷϓϥΠϚϦΞμϓλʹߦ͏ɻଞͷϨΠϠʔ΍ಉҰϨΠϠʔͷଞͷΤϯτϦʔϙΠϯτ͔Β
    ࢀর͢Δ͜ͱ͸Ͱ͖ͳ͍
    RemoteFunction is implemented
    here.
    Because an implementation called
    via gRPC implementation is here,
    reference from other layers is not
    allowed.
    MonolithAdapter
    AuthNCtx AuthZCtx SubscriptionCtx InvoiceCtx
    Secondary Adapter
    UseCase
    Domain
    Http Adapter
    Shared Primary Adapter
    Shared Secondary Adapter
    Shared Library
    Shared Domain
    Batch Adapter Kinesis Adapter gRPC Adapter
    8IFSFEJEXFJNQMFNFOUUIF3FNPUFGVODUJPO
    )PX%JE8F%FTJHO*U

    View Slide

  26. *NQMFNFOUGVODUJPOTPOUIFH31$BEBQUFSPGFBDIDPOUFYUT
    ࣗಈੜ੒͞Εͨ3FNPUF'VODUJPOͷ࣮૷Λ֤ίϯςΩετͷH31$ΞμϓλʔͰߦ͏
    )PX%JE8F%FTJHO*U

    View Slide

  27. 4UVC DMJFOU
    ͸ࣗಈͰੜ੒͞ΕΔ͕ɺϞδϡϥϞϊϦεͰ͸H31$Λ࣮ࡍʹ࢖͏͜ͱ͸ͳ͍ͷͰ
    3FNPUF'VODUJPOʹPWFSSJEFͯࠩ͠͠ସ͑Δ
    w 5IF4UVC BVUPNBUJDBMMZ
    HFOFSBUFE DPOUBJOTBO
    JNQMFNFOUBUJPOPGH31$
    DPNNVOJDBUJPO
    w 3FQMBDJOHUIFJNQMFNFOUBUJPO
    PGBH31$DBMMXJUIBTJNQMF
    GVODUJPODBMMCZPWFSSJEJOHJU
    "MUIPVHINFUIPETBSFPWFSSJEEFOUPTJNQMJGZUIFFYQMBOBUJPO
    UIFSFJTBXBZXFEPOUIBWFUPPWFSSJEFFWFSZUJNF
    SFNPUF'VODUJPOJTBEEFE
    *OKFDUSFNPUFGVODUJPOUPTUVC
    )PX%JE8F%FTJHO*U

    View Slide

  28. 3FQMBDFUIF4UVCJNQMFNFOUBUJPOJONPOPMJUI$UY
    ϞϊϦείϯςΩετͷΈ͕͢΂ͯͷڥքΛ·͙ͨ͜ͱ͕Ͱ͖ΔͷͰɺ
    ڞ௨ηΧϯμϦΞμϓλʹ͋ΔΠϯλʔϑΣʔεʹରͯ͠ɺ֤ίϯςΩετͷH31$Ξμϓλʹઃஔ͞Ε࣮ͨ૷Λ%*͢Δ
    Monolith context is able to cross
    the boundaries of each context. the
    Implementation is injected in the
    gRPC adapter for each context into
    an auto-generated RemoteFunction
    in the Shared SecondaryAdapter.
    Secondary Adapter
    UseCase
    Domain
    Http
    Shared Http
    Shared Secondary Adapter
    Shared Library
    Shared Domain
    Batch
    SharedBatch
    Kinesis
    Shared Kinesis
    gRPC
    Shared gRPC
    Monolith Adapter
    )PX%JE8F%FTJHO*U

    View Slide

  29. ϞϊϦείϯςΩετͰηΧϯμϦΞμϓλʔʹࣗಈੜ੒͞Εͨ3FNPUF'VODUJPOʹର࣮ͯ͠૷ͷ%*Λߦ͏
    8IFSFEJEXFJNQMFNFOUUIF3FNPUFGVODUJPO
    )PX%JE8F%FTJHO*U

    View Slide

  30. $BMMJOHTFSWJDFTBDIJFWFJOUFSDPOUFYUCZSVOOJOH4UVC
    ݺͼग़͠ݩ͸4UVCΛ࣮ߦ͢Δ͜ͱͰαʔϏεؒ௨৴Λ࣮ݱͰ͖Δ
    )PX%JE8F%FTJHO*U

    View Slide

  31. $MBTTMPDBUJPOPGUIFJOUSPEVDFEJNQMFNFOUBUJPO
    ঺հ࣮ͨ͠૷Λ൓өͨ͠ϑΝΠϧ഑ஔ͸্هͷΑ͏ͳΠϝʔδ
    )PX%JE8F%FTJHO*U

    View Slide

  32. %BUBCBTFBSDIJUFDUVSF
    w $VSSFOUMZ UIFNJHSBUJPOpMFTBSFQMBDFEJOFBDIDPOUFYU CVUUIFZBSF
    DPMMFDUFEJOPOFQMBDFCZTZNCPMJDMJOLBOEPQFSBUFEJOPOF%#
    w 8FBMMPXEBUBNJHSBUJPOBUUIFUJNFPGNJDSPTFSWJDFTDVUPVU
    ݱঢ়͸ϚΠάϨʔγϣϯϑΝΠϧ͸֤ίϯςΩετʹ഑ஔ͍ͯ͠Δ͕ɺTZNCPMJDMJOLͰ͔ॴʹूΊɺͭͷ%#Ͱӡ༻ɻ
    ˞ϚΠΫϩαʔϏε੾Γग़࣌͠ͷσʔλҠߦ͸ڐ༰͍ͯ͠Δ
    4JOHMF
    %#
    .JHSBUJPOpMFJODPOUFYU#
    .JHSBUJPOpMFJODPOUFYU$
    .POPMJUIDPOUFYU
    4ZNCPMJDMJOL .JHSBUF
    )PX%JE8F%FTJHO*U

    View Slide

  33. )PXJUXPSLTGPSVT
    1PTJUJWFT
    w 4UBSUXJUIBTNBMMTDBMF MPXJNQBDUBSFB
    w 5SJBMBOEFSSPSJOEFpOJOHCPVOEBSJFTCBTFEPOUIFEJTDVTTJPO
    w %PNBJONPEFMJOHXJUISFTQFDUUPDPOUFYUCPVOEBSJFT
    w "0QQPSUVOJUZGPS$PSSFDU%PNBJO%FTJHOBOE$POUFYU#PVOEBSJFT
    Өڹൣғͷগͳ͍ͱ͜Ζ͔Βখ͘͞τϥΠͰ͖Δɻ΍Γͳ͕ΒɺυϝΠϯڥքͷ࠶ఆٛ΋ߦΘΕ͍ͯΔɻ
    ίϯςΩετڥքΛҙࣝͨ͠υϝΠϯઃܭ΋Ͱ͖ΔΑ͏ʹͳͬͨɻ

    View Slide

  34. )PXJUXPSLTGPSVT
    5IJOHTXFOFFEUPDPOTJEFS
    w "MPUPGCPJMFSQMBUFTJODPNNVOJDBUJPOTBOE%*BDSPTTDPOUFYUT
    w 5IFSFJTDVSSFOUMZPOMZBTJOHMF%# CVUUIJTXJMMOFFEUPCFTQMJUVQJO
    UIFGVUVSF
    ϞϊϨϙϞϊϦεͱൺ΂Ε͹ɺίϯςΩετ௨৴΍%*ͷϘΠϥʔϓϨʔτ͕૿Ճͨ͠ͷ͸ࣄ࣮Ͱ͋Γɺվળ͕ඞཁ
    ݱࡏ͸%#ӡ༻ʹͳ͍ͬͯΔͷͰ͍ۙকདྷɺ෼ׂ͢Δɻ

    View Slide

  35. $PODMVTJPOBOEPVSOFYUTUFQ
    w .PEVMBS.POPMJUIJTPOFPGUIFHPPETPMVUJPOTUIBUDBOCFEFWFMPQFEXIJMF
    DPOTJEFSJOHUIFDPOUFYUCPVOEBSJFT
    w $PNQBSFEUP.JDSPTFSWJDF ZPVDBOTUBSUXJUIBTNBMMUSZ
    w TCUBOE4DBMB1#BSFXPOEFSGVM BOEXJUIUIFNJUTFBTZUPBDIJFWF
    w 4DBMFCBTFJTTUJMMHPJOHUPCFBUSJBMBOEFSSPSQSPDFTTPGEPNBJOEFTJHO
    w *OTPNFDBTFT XFNBZSFWFSUCBDLUP.POPMJUIBHBJO
    w 8FXBOUUPDBSWFPVUUIFTFSWJDFTUIBUIBWFBTJHOJpDBOUCFOFpUPG
    NJDSPTFSWJDJOH
    υϝΠϯઃܭͷࢼߦࡨޡΛ܁Γฦ͢͜ͱʹ͓͍ͯඇৗʹ༗ޮͳखஈͰ͋Δ͕ɺ৔߹ʹΑͬͯ͸ϞϊϦεʹ໭͢͜ͱ΋
    ߟ͑ΒΕΔɻ͏·͘ਐΊΒΕɺ૊৫΋੒௕͍͚ͯ͠͹ɺϚΠΫϩαʔϏεԽʹ΋ൺֱత༰қʹਐΊΒΕΔͷͰ͸ͳ͍͔ɻ

    View Slide

  36. "UUIFFOE
    4DBMFCBTFΛҰॹʹ։ൃ͍ͨ͠ΤϯδχΞͷํେืू
    8&"3&)*3*/(

    View Slide

  37. 3FGFSFODF
    w )PX4IPQJGZ.JHSBUFEUPB.PEVMBS.POPMJUI
    w IUUQTXXXJOGPRDPNOFXTTIPQJGZNPEVMBSNPOPMJUI
    w .PEVMBS.POPMJUI ϞδϡϥʔϞϊϦε
    ͷهࣄͱ͔৭ʑಡΜͰΈͨ
    w IUUQTSLBHBDPNCMPHSFBEQPTUNPEVMBSNPOPMJUI

    View Slide