Slide 1

Slide 1 text

౦ٸϋϯζͷ P2PϨδؒ௨৴2018 9/1 iOSDC Japan 2018 taiki komaba(@r_plus)

Slide 2

Slide 2 text

UBJLJLPNBCB !S@QMVT )"/%4-"#*/$

Slide 3

Slide 3 text

HandsPOS

Slide 4

Slide 4 text

▸ ౦ٸϋϯζͷϨδͱͯࣗࣾ͠։ൃ͍ͯ͠ΔiPadΞϓϦ ▸ ैۀһૢ࡞༻ͱΧελϚʔ༻ͷ2Ϟʔυ ▸ 1୆ͷϨδʹ͖ͭ1ηοτ ▸ ͜ͷैۀһଆͱΧελϚʔଆͰP2P௨৴ HandsPOS

Slide 5

Slide 5 text

before after

Slide 6

Slide 6 text

2015/12 2016 2017 2018 2019 HandsPOS

Slide 7

Slide 7 text

2015/12 2016 2017 2018 2019 85% ಋೖ׬ྃ HandsPOS

Slide 8

Slide 8 text

2015/12 2016 2017 2018 2019 2020 ফඅ૿੫ HandsPOS

Slide 9

Slide 9 text

Multipeer connectivity P2P

Slide 10

Slide 10 text

Multipeer Connectivity ΧελϚʔଆ(C) ैۀһଆ(P) .VMUJQFFS $POOFDUJWJUZ 0001Ϩδ

Slide 11

Slide 11 text

ΧελϚʔଆ(C) ैۀһଆ(P) .VMUJQFFS $POOFDUJWJUZ 0001Ϩδ Multipeer Connectivity - औҾ৘ใ (঎඼৘ใɺׂҾ৘ใɺࢧ෷͍৘ใetc) ૹ৴৘ใ

Slide 12

Slide 12 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS

Slide 13

Slide 13 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS Ϋ Ϩ δ ο τ ಋ ೖ ΫϨδοταΠϯཁٻ(P2C) ΫϨδοταΠϯը૾(C2P)

Slide 14

Slide 14 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS Ϋ Ϩ δ ο τ ಋ ೖ ΫϨδοταΠϯཁٻ(P2C) ΫϨδοταΠϯը૾(C2P) όοςϦʔ৘ใ(C2P)

Slide 15

Slide 15 text

όοςϦʔ ▸ ϨδͳͷͰৗ࣌ॆిঢ়ଶ ▸ ͳͷͰॆిʹ͸࠷ॳؾΛ࢖͍ͬͯͳ͔ͬͨ ▸ ిѹͳͷ͔Կͳͷ͔ݪҼڀ໌͍ͯ͠ͳ͍͕ ॆి͞Εͳ͍έʔε͕ଟʑൃੜ ▸ ΞϓϦέʔγϣϯଆͰόοςϦʔ࢒͕গͳ ͘ͳ͖ͬͯͨΒ(30%)஫ҙΛଅ͢Ξϥʔτ Λදࣔ

Slide 16

Slide 16 text

ͱ͋Δ೔ͷόοςϦʔਪҠ 30%

Slide 17

Slide 17 text

༗ઢ

Slide 18

Slide 18 text

༗ઢ ͪΐͬͱͰ΋ॆిঢ়ଶ Ͱ͸ͳ͘ͳΔͱɾɾɾ

Slide 19

Slide 19 text

༗ઢ NICফ໓ lo0 ←ϧʔϓόοΫ en0 ← WiFi en3 ← Ethernet

Slide 20

Slide 20 text

MultipeerConnectivityͷ໰୊఺

Slide 21

Slide 21 text

઀ଓੑ͕ ͋·Γྑ͘ͳ͍

Slide 22

Slide 22 text

MultipeerConnectivity໰୊ ▸ ͭͳ͕Δ࣌͸εοͱͭͳ͕Δ ▸ ͭͳ͕ͬͯΔ࣌͸௕࣌ؒͷ઀ଓͰ΋໰୊ͳ͍ ▸ ͕ɺμϝʹͳΔͱେମͣͬͱμϝʹͳΔ ▸ μϝʹͳ͍ͬͯΔ࣌Ͱ΋Web઀ଓ͸ਖ਼ৗ ▸ ͓ޓ͍ͷΞϓϦΛ࠶ىಈ͢Δͱେମͳ͓ΔʢTipsʣ ▸ ·͊BonjourͰ͢͠

Slide 23

Slide 23 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS Ϋ Ϩ δ ο τ ಋ ೖ ΫϨδοταΠϯཁٻ(P2C) ΫϨδοταΠϯը૾(C2P) όοςϦʔ৘ใ(C2P)

Slide 24

Slide 24 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS Ϋ Ϩ δ ο τ ಋ ೖ ΫϨδοταΠϯཁٻ(P2C) ΫϨδοταΠϯը૾(C2P) όοςϦʔ৘ใ(C2P) ηϛηϧϑํࣜϨδ

Slide 25

Slide 25 text

ηϛηϧϑ Ϩδ

Slide 26

Slide 26 text

ηϛηϧϑϨδ ▸ εʔύʔʹΑ͋͘Δํࣜ ▸ ঎඼εΩϟϯͳͲ͸ैདྷͲ͓Γैۀһ͕࣮ࢪ ▸ ࢧ෷͍෦෼Λઐ༻୺຤ʹ͓ͯ٬༷ࣗ਎ʹߦ͍ͬͯͨͩ͘

Slide 27

Slide 27 text

৽॓ళ8Fʹͯల։

Slide 28

Slide 28 text

ηϛηϧϑϨδ ▸ εʔύʔʹΑ͋͘Δํࣜ ▸ ঎඼εΩϟϯͳͲ͸ैདྷͲ͓Γैۀһ͕࣮ࢪ ▸ ࢧ෷͍෦෼Λઐ༻୺຤ʹ͓ͯ٬༷ࣗ਎ʹߦ͍ͬͯͨͩ͘ - ঎඼εΩϟϯetc औҾσʔλૹ৴ - ࢧ෷͍ - ݱۚ - ΫϨδοτ - ిࢠϚωʔ ਫ਼ࢉػ(ෳ਺)

Slide 29

Slide 29 text

ηϛηϧϑϨδʹ޲͚ͯ ߴ৴པͷ11௨৴ํ͕ࣜඞཁ

Slide 30

Slide 30 text

ηϛηϧϑ༻ɹ৽௨৴ํࣜ ▸ N:NͰͷ௨৴Λ૝ఆ ▸ MultipeerConnectivity(ҎԼMC)Ͱ઀ଓͰ͖ͳ͍࣌Ͱ΋Web઀ଓ͸ੜ͖͍ͯͨ ▸ ΦϯϥΠϯܦ༝ͳΒΠέϧ ▸ MC͸εςʔτϑϧͳͷ͕΍΍͍͜͠ݪҼɾɾ͔΋ʁ ▸ εςʔτϨε ▸ ͱ͸͍͑ɺϨδͳͷͰΦϑϥΠϯͰͷՔಇ΋ߟྀ ▸ ΦϯϥΠϯܦ༝ͷ΋ͷ͸ಈ࡞͠ͳ͍ ▸ ΦϑϥΠϯಈ࡞Ͱ͸MC͸ྑཱ͍ͪҐஔ ▸ Ͱ͋Ε͹ෳ਺ͷ௨৴ํࣜΛଋͶΔΑ͏ͳ΋ͷɾɾɾ

Slide 31

Slide 31 text

Swallow ௨৴ϥΠϒϥϦ

Slide 32

Slide 32 text

Swallow ▸ ֤௨৴͸pluginํࣜ ▸ εςʔτϨε/ϑϧ͸໰Θͳ͍ ▸ ಉҰ௨৴಺༰͸ૣ͍΋ͷউͪ ▸ εςʔτϨε΋ؚ·ΕΔͷͰड͚औΓΛද໌͢ΔAckΛฦ ٫͢Δ

Slide 33

Slide 33 text

Swallow ※͜ͷ৔߹ͷOffline͸ΦϑϥΠϯͰ௨৴Մೳ͔Ͳ͏͔ MQTT͸LANʹαʔό͕͋Δ૝ఆ http͸ΞϓϦ಺ʹwebαʔόػೳͷ౥ࡌ ํࣜ State Offline Multipeer Full Yes http Less Yes AWS SQS Less No Firestore Auto No RealmCloud Auto No MQTT Full Yes AWS IoT - No ࠾༻ ✓ ✓

Slide 34

Slide 34 text

Swallow Core Multipeer Client http AWS SQS Core Multipeer Client http AWS SQS FCFS औҾ σʔλ

Slide 35

Slide 35 text

Swallow Core Multipeer Client http AWS SQS Core Multipeer Client http AWS SQS Ack

Slide 36

Slide 36 text

Multipeer, AWS SQS rate ઌணͨ͠Clientͷൺ཰ ●Multipeer ●AWS SQS ▸ Αͯ͘൒ʑ ▸ ଟ͍΋ͷ͸9ׂ͕SQS ▸ MultipeerϨΠςϯγ͸ߴ ଎ɻ઀ଓͰ͖͍ͯΕ͹͜ ͪΒ͕ؒҧ͍ͳ͘ઌணɻ

Slide 37

Slide 37 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS Ϋ Ϩ δ ο τ ಋ ೖ ΫϨδοταΠϯཁٻ(P2C) ΫϨδοταΠϯը૾(C2P) όοςϦʔ৘ใ(C2P) ηϛηϧϑํࣜϨδ

Slide 38

Slide 38 text

2015/12 2016 2017 2018 2019 औҾ৘ใ(P2C) HandsPOS Ϋ Ϩ δ ο τ ಋ ೖ ΫϨδοταΠϯཁٻ(P2C) ΫϨδοταΠϯը૾(C2P) όοςϦʔ৘ใ(C2P) SwallowʹΑΔ N:N௨৴

Slide 39

Slide 39 text

·ͱΊ ▸ MultipeerConnectivity͸ॴḨBonjour ▸ ͚ΕͲAPͳ͠ͰͷWiFi઀ଓ(peer-to-peer Wi-Fi)͕Մೳ ▸ ΦϯϥΠϯͰͷ௨৴Ͱิॿ ▸ ͭͳ͕Δ࣌͸MutipeerConnectivityͷϨΠςϯγʔ͕଎͍ ▸ શମͰΈΔͱѹ౗తʹΦϯϥΠϯ௨৴ͰٹΘΕ͍ͯΔ ▸ 8݄಄ͷ౦ژϦʔδϣϯSQSͷো֐࣌͸؊Λྫྷ΍ͨ͠ ▸ FIFOΩϡʔʹ͍ͨ͠

Slide 40

Slide 40 text

͓ΘΓ