Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
急速に利用拡大を続ける飲食店向けサービスで 店内端末同士のローカル通信を追加設定なしで実...
Search
whatasoda
October 08, 2024
Programming
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
急速に利用拡大を続ける飲食店向けサービスで 店内端末同士のローカル通信を追加設定なしで実現した話
https://asoview.connpass.com/event/331535/
whatasoda
October 08, 2024
More Decks by whatasoda
See All by whatasoda
バランスを見極めよう!実装の意味を明示するための型定義 TSKaigi 2025 Day2 (5/24)
whatasoda
3
1.2k
NestJS で 重たい処理と軽い処理が 干渉しないようにデプロイするには
whatasoda
2
1.2k
ReactNative アプリ同士の通信のために型情報をサクッと共有した話 #TSKaigi サブイベント
whatasoda
1
1.3k
GraphQL でネストしたクエリを書いたら Apollo Client が無限に計算し続けるようになった話
whatasoda
0
760
Other Decks in Programming
See All in Programming
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.5k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
480
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
140
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
340
Agents on Rails - Rails at Scale 2026
irinanazarova
0
340
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
540
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
570
How to train your dragon (web standard)
notwaldorf
96
6.9k
Navigating Weather and Climate Data
rabernat
0
550
Raft: Consensus for Rubyists
vanstee
142
7.7k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
570
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
700
Why Our Code Smells
bkeepers
PRO
340
58k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Transcript
© 2024 Dinii Inc. Shota Hatada 2024/10/08 急速に利用拡大を続ける飲食店向けサービスで 店内端末同士のローカル通信を追加設定なしで実現した話 「現場」を支えるシステム開発の難所と実践
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 自己紹介 2020 -
2022 SWE (Frontend) at mercari 2022 - SWE (Platform Team) at Dinii Inc. Shota Hatada (@whatasoda) やっていること • Google Cloud を使ったインフラ整備 • NestJS / React Native アプリの基盤実装 • サービス安定性・拡張性向上に向けた活動 すきなもの/こと • TypeScript • スパラクーア • アニメ・ゲーム
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ダイニーについて(1/2)
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ダイニーについて(2/2)
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ダイニーPOS について
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ダイニーPOS はオンラインPOS(1/3) すべての端末がインターネットを通じてサーバーと通信し、連携している。
ダイニーPOS はオンラインPOS
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ダイニーPOS はオンラインPOS(2/3) サーバー・ネットワーク機器に問題が発生したときにはオフライン環境で機器同士が通信・連携する。
オンラインリソースへの依存が強い
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ダイニーPOS はオンラインPOS(3/3) •
互いを検出できたとしても識別ができない • 設置済みの機器に追加設定を行うのはコスト が高すぎる • 新規セットアップ時のコストは上げたくない • これらのコストはビジネスのスピードに 影響を与える可能性がある オフラインでの接続をする前提で 機器をセットアップしていない
追加設定無しでオフライン連携する
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 通信内容・方法について • レジは単体で注文管理と会計処理が可能
• レジはキッチンプリンターに直接印刷する • ハンディからレジに直接注文情報を送信する • 通信はすべて TCP 通信 → IPアドレスが必要 (図の簡略化のためルーターとの通信は省略) レジを中心に通信網を構築 キッチンプリンター ハンディ レジ ルーター
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 解決にむけたアプローチ プリンター →
ゴリ押し総当たり作戦 ハンディ→ mDNS でスマート解決
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 プリンターを追加設定無しで識別する(1/2) • 焼鳥の伝票は焼き場に、
ビールの伝票はドリ場に印刷する必要がある • SDK で IP アドレスと MAC アドレスは手に 入るが、プリンターの場所はわからない • オンラインのときはサーバーがそれぞれの プリンターを識別できるように設定している 狙ったプリンターに印刷する 焼き場 ドリ場 焼鳥 ビール
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 プリンターを追加設定無しで識別する(2/2) • 設定を取得するための情報はオンライン時に
集めておく • 同ネットワークにあるプリンターに総当りで 設定取得を試みる • MAC アドレスをキーとして設定情報を キャッシュしておく(IP アドレスは変わるが MAC アドレスは変わらない!) 総当りで内部の設定を取得する
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ハンディを追加設定無しで識別する(1/2) • ホスト名に対して
IP アドレスを解決し、追加で付与されたペイロードも取得できる • AirPlay などでデバイスを認識するために用いられている技術 • ローカルネットワーク内で自身が提供できるサービスを宣言することができる mDNS(マルチキャストDNS) 出典: フリー百科事典『ウィキペディア(Wikipedia)』
株式会社 ダイニー © 2024 Dinii Inc. • レジは店舗IDを含むレコードを mDNS で
登録しつつ TCP サーバーを立ち上げる • ハンディは mDNS レコードをクエリして レジの IP を特定 • ハンディがレジにコネクションを貼る 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 ハンディを追加設定無しで識別する(2/2) mDNS で TCP サーバーへの経路を スマートに提示
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 未解決の課題 • 機器設置における要件が増えてしまった
• トラブル発生時に Wi-Fi を切り替えたままにしてしまい疎通できなくなることも… • テザリングなどでインターネットに繋がっていればなんとかなるようにしたい • もし達成できたらモバイルオーダーもオフライン対応できるかも? ローカルネットワークを越えた連携ができない • そもそも複数台レジ運用は非推奨だが要望としては存在している • どちらかをメインに据えないと注文情報が分散してしまい正確な請求が困難になる • 現状はどちらに注文が入っているか不透明なため適切なサポートが出来ない可能性も 複数台レジでの課題
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 まとめ • 最初からオフライン接続を想定した仕込みを
するのが難しい場合もある • ビジネスの減速を防ぐためにも追加設定なし を目指したい • 解決方法はいろいろある。 まずは試してみることが大事 オンライン前提のサービスに 後付けでオフライン機能を 追加設定なしで実現できた キッチンプリンター ハンディ レジ ルーター
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 お知らせ https://dinii.connpass.com/event/332124/
株式会社 ダイニー © 2024 Dinii Inc. 急速に利用拡大を続ける飲食店向けサービスで店内端末同士のローカル通信を追加設定なしで実現した話 お知らせ https://dinii.connpass.com/event/332130/