Slide 1

Slide 1 text

H31$ͱ4XJGU ಋೖฤ ྛɹᚸ࢘ $"4XJGU

Slide 2

Slide 2 text

ྛɹᚸ࢘ (JU)VCTIJO ೥৽ଔೖࣾɻגࣜձࣾͷJ04ΤϯδχΞΛܦͯɺ ݱࡏ͸461&3$)0*$&ͷJ04Λ୲౰ɻ ࣗݾ঺հ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

H31$

Slide 5

Slide 5 text

H31$ 31$Λ࣮ݱ͢ΔͨΊ(PPHMF͕։ൃͨ͠ϑϨʔϜϫʔΫ 1SPUPDPM#V⒎FSTʹΑΓ σʔλͷγϦΞϥΠζɾαʔϏεΠϯλʔϑΣΠεΛఆٛ ଟݴޠରԠ $ +BWB (P 0CKFDUJWF$FUDʣ

Slide 6

Slide 6 text

HSQDTXJGU

Slide 7

Slide 7 text

೥݄ʙɹެ։ 31$Λ(PPHMF͕4XJGUͰ࡞੒ IUUQTHJUIVCDPNHSQDHSQDTXJGU HSQDTXJGU

Slide 8

Slide 8 text

4XJGU4VNNJU4BO'SBODJTDP IUUQTXXXTMJEFTIBSFOFUUJNCVSLTGBTUBOESFMJBCMFTXJGUBQJTXJUIHSQD HSQDTXJGU

Slide 9

Slide 9 text

1SPUPDPM#V⒎FST

Slide 10

Slide 10 text

1SPUPDPM#V⒎FST (PPHMF͕։ൃ͍ͯ͠ΔγϦΞϥΠζϑΥʔϚοτ ɾQSPUPϑΝΠϧʹΑΔΫϥεఆٛ ɾςΩετͰ͸ͳ͘όΠφϦʹม׵ ɾܕ৘ใ͕͋ΔͨΊ҆શ

Slide 11

Slide 11 text

͍ܰ Մಡੑ Մಡੑ 1SPUPDPM#V⒎FST +40/ ϝϦοτ σϝϦοτ ಋೖखॱ͕ෳࡶ ίϯύΠϧ͕ඞཁ σʔλͷղੳॲཧ͕ෳࡶ ૣ͍ ௨৴ ҆શ Ұൠత σʔλྔ͕େྔ ؀ڥ σόοά 1SPUPDPM#V⒎FSTɾ+40/

Slide 12

Slide 12 text

ͦ΋ͦ΋31$

Slide 13

Slide 13 text

ϓϩάϥϜ͔ΒผͷΞυϨεۭؒʹ͋Δ αϒϧʔνϯ΍खଓ͖Λ࣮ߦ͢Δ͜ͱΛՄೳʹ͢Δٕज़ GVODUJPO ΫϥΠΞϯτ αʔόʔ ొ࿥ ొ࿥ GVODUJPO ࡞ۀՕॴ 31$ϥΠϒϥϦɾϑϨʔϜϫʔΫ 31$ 31$3FNPUF1SPDFEVSF$BMMԕִखଓ͖ݺͼग़͠

Slide 14

Slide 14 text

H31$

Slide 15

Slide 15 text

H31$ )551ͷ࢓༷ʹଇͬͨܗͰछྨͷ௨৴ํࣜΛఏڙ IUUQTHSQDJPEPDTHVJEFTDPODFQUTIUNM

Slide 16

Slide 16 text

6OBSZ31$T ͭͷϦΫΤετʹରͯͭ͠ͷϨεϙϯεΛฦ͢ํࣜ 3FRVFTU $MJFOU 3FTQPODF ҰൠతͳϚΠΫϩαʔϏεͳͲ ༻్ H31$ 4FSWFS

Slide 17

Slide 17 text

4FSWFS4USFBNJOH31$T ͭͷϦΫΤετʹରͯ͠ෳ਺ͷϨεϙϯεΛฦ͢ํࣜ 3FRVFTU $MJFOU 3FTQPODF αʔόαΠυϓογϡ λΠϜϥΠϯ ϑΟʔυ഑৴ͳͲ ༻్ H31$ 3FTQPODF 3FTQPODF 4FSWFS

Slide 18

Slide 18 text

$MJFOU4USFBNJOH31$T ෳ਺ͷϦΫΤετʹରͯͭ͠ͷϨεϙϯεΛฦ͢ํࣜ 3FRVFTU 3FTQPODF େྔͷσʔλΞοϓϩʔυͳͲ ༻్ H31$ 4FSWFS 3FRVFTU 3FRVFTU $MJFOU

Slide 19

Slide 19 text

#JEJSFDUJPOBM4USFBNJOH31$T ෳ਺ͷϦΫΤετʹରͯ͠ෳ਺ͷϨεϙϯεΛฦ͢ํࣜ νϟοτͳͲ૒ํ޲௨৴Λߦ͏ͳͲ ༻్ H31$ 4FSWFS 3FRVFTU 3FTQPODF 3FTQPODF 3FRVFTU $MJFOU

Slide 20

Slide 20 text

ɾ*%-͕ͦͷ··ΠϯλʔϑΣΠευΩϡϝϯτ ɾαʔόʔɾΫϥΠΞϯτʹඞཁͳίʔυͷࣗಈੜ੒ ɾ1SPUPDPM#V⒎FSTʹΑΓܕอূ͕͞ΕΔ H31$

Slide 21

Slide 21 text

HSQDHBUFXBZ

Slide 22

Slide 22 text

QSPUPCVGఆ͔ٛΒ3&45"1*Λఏڙ͢ΔϦόʔεϓϩΩγΛੜ੒ ௨ৗ௨ΓH31$Ͱߏஙͨ͠αʔόʹ3&45ܦ༝ͰͷΞΫηε΋Մೳ HSQDHBUFXBZ

Slide 23

Slide 23 text

1SPUPDPM#V⒎FST ಋೖ

Slide 24

Slide 24 text

ಋೖ TXJGUQSPUPCVG HJUDMPOFIUUQTHJUIVCDPNBQQMFTXJGUQSPUPCVGHJU DETXJGUQSPUPCVG TXJGUCVJME QSPUPDHFOTXJGU͕࡞ΒΕΔ

Slide 25

Slide 25 text

ಋೖ TBNQMFQSPUP syntax = "proto3" message Info { int64 id = 1 string title = 2 }

Slide 26

Slide 26 text

CSFXJOTUBMMQSPUPCVG QSPUPDTXJGU@PVUTBNQMFQSPUP MT TBNQMFQCTXJGUTBNQMFQSPUP IUUQTTQFBLFSEFDLDPNLZPIFJHQSPUPDPMCV⒎FST ิ଍ ϓϥάΠϯͷ1"5)Λ௨͓ͯ͘͠ͱศརͰ͢ɻ QSPUPDTXJGU@PVUʻग़ྗઌσΟϨΫτϦʼʻೖྗϑΝΠϧʼ ಋೖ TXJGUQSPUPCVG

Slide 27

Slide 27 text

H31$ ಋೖ

Slide 28

Slide 28 text

ಋೖ TBNQMFQSPUP CSFXJOTUBMMQSPUPCVG HJUDMPOFIUUQTHJUIVCDPNHSQDHSQDTXJGUHJU DEHSQDTXJGUQMVHJO NBLF QSPUPDHFOTXJGUQSPUPDHFOTXJGUHSQD͕࡞ΒΕΔ

Slide 29

Slide 29 text

ಋೖ FDIPQSPUP syntax = "proto3"; package echo; service Echo { rpc Get(EchoRequest) returns (EchoResponse) {} rpc Expand(EchoRequest) returns (stream EchoResponse) {} rpc Collect(stream EchoRequest) returns (EchoResponse) {} rpc Update(stream EchoRequest) returns (stream EchoResponse) {} } message EchoRequest { // The text of a message to be echoed. string text = 1; } message EchoResponse { // The text of an echo response. string text = 1; }

Slide 30

Slide 30 text

ಋೖ TBNQMFQSPUP QSPUPDQMVHJOQSPUPDHFOTXJGUCVJMEEFCVHQSPUPDHFOTXJGU TXJGU@PVUFDIPQSPUP QSPUPDQMVHJOQSPUPDHFOTXJGUHSQDCVJMEEFCVHQSPUPDHFOTXJGUHSQD TXJGUHSQD@PVUFDIPQSPUP ˈMT FDIPQCTXJGUFDIPHSQDTXJGUFDIPQSPUP ϓϥΠάΠϯΛࢦఆ࣮ͯ͠ߦ 1"5)Λ௨͍ͯ͠ͳ͍ํ๏

Slide 31

Slide 31 text

ಋೖ TBNQMFQSPUP FDIPQSPUP 1SPUPDPM#V⒎FSMBOHVBHFTPVSDFpMF FDIPQCTXJGU (FOFSBUFECZQSPUPDHFOTXJGU FDIPHSQDTXJGU (FOFSBUFECZQSPUPDHFOTXJGUHSQD IUUQTXXXTMJEFTIBSFOFUUJNCVSLTGBTUBOESFMJBCMFTXJGUBQJTXJUIHSQD

Slide 32

Slide 32 text

H31$TXJGU ಋೖ TBNQMFͷಈ͔͠ํ

Slide 33

Slide 33 text

ಋೖ HJUDMPOFIUUQTHJUIVCDPNHSQDHSQDTXJGUHJU DEHSQDTXJGUQMVHJO NBLF DEUIJSE@QBSUZ TI36/.&TI DETXJGUQSPUPCVG NBLF 4XJGU1SPUPCVGYDPEFQSPK4XJGU(31$YDPEFQSPK͕࡞ΒΕΔ

Slide 34

Slide 34 text

ಋೖ ࣗ෼ͷϓδΣΫτʹೖΕΔ৔߹ ࡞੒͞ΕͨYDPEFQSPKϑΝΠϧͷ྆ํΛϧʔτϓϩδΣΫτͷԼʹ͍ΕΔ

Slide 35

Slide 35 text

ಋೖ &YBNQMFͷ&DIP ࡞੒͞Εͨ4XJGU(31$YDPEFQSPKΛ&YBNQMF&DIPͷϧʔτϓϩδΣΫτ ͷԼʹ͍ΕΔ

Slide 36

Slide 36 text

ಋೖ ϓϩδΣΫτͷ(FOFSBMλϒʹҠಈ &NCFEEFE#JOBSJFT΁ #PSJOH44- $H31$ H31$ $[MJCϑϨʔϜϫʔΫΛ௥Ճ

Slide 37

Slide 37 text

ಋೖ ࣗ෼ͷϓδΣΫτʹೖΕΔ৔߹ #VJME4FUUJOHT಺ 4ZTUFN)FBEFS4FBSDI1BUITͱ4ZTUFN'SBNFXPSL4FBSDI1BUITʹ ʢ$H31$Ͱͷ໰୊ͷΑ͏ͳͷͰ͍ͣΕվળ͞ΕΔ͔΋ʣ Λ௥Ճ XIFSFZPVDMPOFUIFHSDQTXJGUHJUHSQDTXJGU4PVSDFT$H31$JODMVEF

Slide 38

Slide 38 text

ಋೖ ࣗ෼ͷϓδΣΫτʹೖΕΔ৔߹ 4XJGU(31$YDPEFQSPK಺ͷUBSHFUT͔Β[MJCFYBNQMFΛ࡟আ Ϗϧυ͕௨ΔΑ͏ʹͳΔ

Slide 39

Slide 39 text

த਎

Slide 40

Slide 40 text

FDIPQSPUP syntax = "proto3"; package echo; service Echo { rpc Get(EchoRequest) returns (EchoResponse) {} rpc Expand(EchoRequest) returns (stream EchoResponse) {} rpc Collect(stream EchoRequest) returns (EchoResponse) {} rpc Update(stream EchoRequest) returns (stream EchoResponse) {} } message EchoRequest { // The text of a message to be echoed. string text = 1; } message EchoResponse { // The text of an echo response. string text = 1; }

Slide 41

Slide 41 text

FDIPQSPUP syntax = "proto3"; package echo; service Echo { rpc Get(EchoRequest) returns (EchoResponse) {} rpc Expand(EchoRequest) returns (stream EchoResponse) {} ← serverStreaming rpc Collect(stream EchoRequest) returns (EchoResponse) {} ← clientStreaming rpc Update(stream EchoRequest) returns (stream EchoResponse) {} ← bidirectionalStreaming } message EchoRequest { // The text of a message to be echoed. string text = 1; } message EchoResponse { // The text of an echo response. string text = 1; } ← unaryStreaming

Slide 42

Slide 42 text

FDIPQSPUP syntax = "proto3"; package echo; service Echo { rpc Get(EchoRequest) returns (EchoResponse) {} rpc Expand(EchoRequest) returns (stream EchoResponse) {} rpc Collect(stream EchoRequest) returns (EchoResponse) {} rpc Update(stream EchoRequest) returns (stream EchoResponse) {} } message EchoRequest { // The text of a message to be echoed. string text = 1; } message EchoResponse { // The text of an echo response. string text = 1; } ϦΫΤετϝοηʔδ Ϩεϙϯεϝοηʔδ ϝιουఆٛ ϝοηʔδ ఆٛ αʔϏεఆٛ

Slide 43

Slide 43 text

FDIPQCTXJGU

Slide 44

Slide 44 text

FDIPHSQDTXJGU

Slide 45

Slide 45 text

FDIPHSQDTXJGU

Slide 46

Slide 46 text

&DIP7JFX$POUSPMMFSTXJGU . . . . . .

Slide 47

Slide 47 text

H31$ ࣮૷ෛ୲ͷܰݮ ؅ཧͷෛ୲ݮ αʔόʔɾΫϥΠΞϯτͷίʔυࣗಈੜ੒ )551̎ʹΑΔ௨৴ QSPUPϑΝΠϧʹΑͬͯΠϯλʔϑΣʔεఆٛɾ࢓༷ FUD

Slide 48

Slide 48 text

HSQDHBUFXBZ͕ඞཁʹͳΔ৔໘ H31$ ϑϨʔϜϫʔΫͷ੒ख़౓ υΩϡϝϯτྔ ಋೖɾֶशίετ νʔϜ಺ͰͷϫʔΫϑϩʔ ઈࢍ։ൃதɾมߋ఺ʹ஫ҙ ՝୊ ࣮૷ෛ୲ͷܰݮ ؅ཧͷෛ୲ݮ αʔόʔɾΫϥΠΞϯτͷίʔυࣗಈੜ੒ )551̎ʹΑΔ௨৴ QSPUPϑΝΠϧʹΑͬͯΠϯλʔϑΣʔεఆٛɾ࢓༷ FUD

Slide 49

Slide 49 text

5IBOL:PV