東急ハンズを支える技術

38
Copyright © HANDS LAB INC. All rights reserved. 201563AWS Summit Tokyo 2015 デベロッパーカンファレンス Dev-07: Mobile 東急ハンズを支える技術 - iOSAWSPOSを作ってみた ハンズラボ株式会社

Upload: tomoaki-imai

Post on 08-Aug-2015

4.945 views

Category:

Retail


0 download

TRANSCRIPT

Page 1: 東急ハンズを支える技術

Copyright © HANDS LAB INC. All rights reserved.

2015年6月3日

AWS Summit Tokyo 2015 デベロッパーカンファレンス Dev-07: Mobile 東急ハンズを支える技術 - iOSとAWSでPOSを作ってみた –

ハンズラボ株式会社

Page 2: 東急ハンズを支える技術

1

自己紹介

名前 今井 智明 所属 ハンズラボ株式会社     2013年4月より東急ハンズのIT部門を子会社化 担当 AWSでのインフラ構築、運用、     iOSアプリケーション開発、運用     

Page 3: 東急ハンズを支える技術

2

本日お話すること

1. POSを自社開発化する背景

2. iOSとAWSを使う理由

3. AWSのマネージドサービス活用例

Page 4: 東急ハンズを支える技術

3

現在のAWS利用範囲

店舗システム (自社予定)

POS (自社)

外商(自社予定)

本部MDシステム (自社予定)

新勘定系システム (自社)

会計 (Super Stream)

人事 (OBIC7)

統合顧客情報 +ポイント管理 (自社)

メール/ スケジュール管理

(Google-Apps)

経費清算 (自社予定)

売上管理

買掛管理

在庫

受払

棚卸

…etc

勤怠 管理 (アマノ)

(自社)

自動発注

WEB-EDI発注

FAX発注

マスタ管理

仕入

返品

店間移動

棚卸

値札発行

手入力発注

売上検索

店舗/顧客接点系 本部基幹業務系 本部バックオフィス系 OA系、その他

グーグル AWS オンプレ

一般会計

債権・債務管理

資産管理

支払・納金管理

ファイルサーバ

人事管理

給与管理

給与 計算

PDA (自社)

PC (自社)

Tablet (自社)

ハンズネット (EC) (自社)

社内ポータル (自社)

ADサーバ

今後の自社開発化検討機能

POSサーバ

クラウド化と完全自社開発化

Page 5: 東急ハンズを支える技術

4

一般的なPOSレジスタ

画面

カスタマーディスプレイ

バーコードリーダ ドロアー・自動釣銭機

レシートプリンタ

キーボード

Page 6: 東急ハンズを支える技術

5

POSレジスタの主要機能

l お客様が購入するものから売上金額を計算する ► 基本的に四則演算 ► 税金や割引の計算で切り上げ、切り捨て、四捨五入

売上登録

決済 l 売上金額とお預かり金額から決済してお釣りを返す ► 現金、クレジットカード、電子マネー、金券、etc

情報提供 l 売上高計算や在庫更新のための販売情報を提供する ► 売上金額を集約して売上高計算 ► 販売商品の在庫消込

Page 7: 東急ハンズを支える技術

l レジをお客様とのコミュニケーションの場にする l シンプルで使いやすいPOSにする

l 新規出店や繁忙期に簡単に対応する

6

POSを自社開発化する理由

Page 8: 東急ハンズを支える技術

7

本日お話すること

1. POSを自社開発化する背景

2. iOSとAWSを使う理由

3. AWSのマネージドサービス活用例

Page 9: 東急ハンズを支える技術

8

iOSを使う理由

見栄え

保守性

操作性

l 単純にかっこいい l Apple製品が好き(特に長谷川が)

l 一般的なPOSと比較すると安価で購入できる l 価格比ほど故障しない l 壊れたら新しいものを買って交換できる

l 考えられたユーザインタフェース l 日本人の70%の人が使ったことがある

Page 10: 東急ハンズを支える技術

9

AWSを使う理由

柔軟性

可用性 堅牢性

低コスト

l 多様なサービスがある l フルマネージドサービスを使えば自動でスケールする

l 落ちない・無くならない仕組みが組み込まれている

l 使った分だけ支払う l 勝手に値下げしてくれる l 工夫次第で大規模なシステムを安価に運用できる

SDK l  iOS用SDKがある l 継続して機能追加と改善がされている

Page 11: 東急ハンズを支える技術

10

シンガポール店のPOSシステム(基本数値)

売上高

店舗数

レジ台数

商品件数

l 年間8億円(見込み)

l  2015年6月現在2店舗 l  2014年9月ジュロンイースト店開業 l  2014年11月オーチャード店開業

l  2店舗で合計6台

l  30,000件

Page 12: 東急ハンズを支える技術

11

シンガポール店のPOSシステム(お客様側)

Page 13: 東急ハンズを支える技術

12

シンガポール店のPOSシステム(店員側)

Page 14: 東急ハンズを支える技術

13

シンガポール店のPOSシステム(iOS)

ハードウェア

OS 開発言語

機能

l レジ = iPad Air l カスタマーディスプレイ = iPad mini 2

l  iOS8.3 l Objective-C

l マスタダウンロード&保持 l 売上&返品登録、データ連携 l 取引内容のカスタマーディスプレイ表示 l バーコードスキャナ、レシートプリンタ、ドロアー連携

Page 15: 東急ハンズを支える技術

14

シンガポール店のPOSシステム(iOS)

ローカルDB

データ連携

iOS間通信

l CoreData l マスタデータや取引データのCRUDで利用

l AWS Mobile SDK v1 l マスタや取引データの連携でS3を利用

l Multipeer Connectivity Framework l レジからカスタマーディスプレイに表示内容を連携

Page 16: 東急ハンズを支える技術

15

シンガポール店のPOSシステム(AWS)

店舗

S3 EC2

PC POS

Page 17: 東急ハンズを支える技術

16

シンガポール店POSシステムのAWS利用例1

マスタダウンロード

l EC2でマスタを生成してS3にアップロード l POSからS3をポーリングして検知 l S3からマスタデータをダウンロード l ローカルDBに保存

店舗

S3 EC2

Page 18: 東急ハンズを支える技術

17

シンガポール店POSシステムのAWS利用例2

取引データ連携

l POSで取引が発生したらローカルDBに保存 l 未送信の取引データをS3にアップロード l EC2からS3をポーリングして取引データを取得 l EC2で取引データから売上集計や在庫引当を実施

店舗

S3 EC2

Page 19: 東急ハンズを支える技術

18

東急ハンズの新POSシステム(基本数値)

売上高

店舗数

レジ台数

l 年間800億円

l 全店で800台(ハンズメッセ時900台) l ハンズメッセピーク時取引発生数 450件/分

商品件数 l  100万件

l  2015年6月現在60店舗 l 今後も継続出店

Page 20: 東急ハンズを支える技術

19

東急ハンズの新POSシステム(開発中)

Page 21: 東急ハンズを支える技術

20

東急ハンズの新POSシステム(iOS)

ハードウェア

OS 開発言語

l レジ = iPad Air 2 l カスタマーディスプレイ = iPad Air 2

l  iOS8.3(常に最新に対応の指令) l Swift

機能

l マスタダウンロード&保持 l 売上&返品登録、データ連携 l 取引内容のカスタマーディスプレイ表示 l ハンズクラブカード連携 l バーコードスキャナ、レシートプリンタ、自動釣銭機連携 l 決済処理連携(クレジットカード、電子マネー、etc)

Page 22: 東急ハンズを支える技術

21

東急ハンズの新POSシステム(iOS)

ローカルDB

データ連携

iOS間通信

l Realm l マスタデータや取引データのCRUDで利用

l AWS Mobile SDK v2 l データによって各種サービスを使い分け l S3、SNS、DynamoDB、Lambdaなど

l Multipeer Connectivity Framework l レジからカスタマーディスプレイに表示内容を連携

Page 23: 東急ハンズを支える技術

22

東急ハンズの新POSシステム(AWS)

l 東急ハンズの規模に対応するために、フルマネージドサービスを積極的に活用

l さらに、東急ハンズの規模ではなく、数兆円規模に対応できるようにする

Page 24: 東急ハンズを支える技術

23

本日お話すること

1. POSを自社開発化する背景

2. iOSとAWSを使う理由

3. AWSのマネージドサービス活用例

Page 25: 東急ハンズを支える技術

24

登場人物

Cognito: 認証サービス

S3: オンラインストレージサービス

SNS: メッセージ配信サービス

DynamoDB: NoSQLデータベースサービス

Lambda: イベントドリブンコンピュートサービス

Page 26: 東急ハンズを支える技術

25

マネージドサービス活用例1・マスタダウンロード

AWS cloud

店舗

①マスタ生成

ASG

Page 27: 東急ハンズを支える技術

26

マネージドサービス活用例1・マスタダウンロード

AWS cloud

店舗

ASG

②マスタ配信リスト作成

Page 28: 東急ハンズを支える技術

27

マネージドサービス活用例1・マスタダウンロード

AWS cloud

店舗

③マスタ配信通知

ASG

Page 29: 東急ハンズを支える技術

28

マネージドサービス活用例1・マスタダウンロード

AWS cloud

店舗

ASG

④マスタ取得と更新

Page 30: 東急ハンズを支える技術

29

マネージドサービス活用例1・マスタダウンロード

AWS cloud

店舗

ASG

⑤マスタ更新完了通知

Page 31: 東急ハンズを支える技術

30

マネージドサービス活用例1・マスタダウンロード

AWS cloud

店舗

ASG

⑥マスタ配信リスト消込

Page 32: 東急ハンズを支える技術

31

マネージドサービス活用例1の課題と対応

l Push通知からのバックグラウンドダウンロード処理が動かない ► S3TransferManagerではなく、Pre-Signed URLとNSURLSessionを使って取得する

► https://github.com/aws/aws-sdk-ios/issues/25 ► ドキュメントにも書いてあった ► http://amzn.to/1LZnwmQ

Page 33: 東急ハンズを支える技術

32

マネージドサービス活用例2・取引データ連携(現状)

AWS cloud 店舗

FTPd 売上テーブル

在庫テーブル

S3 SQS Worker

SNS SQS

SQS Worker

Worker

店舗 アプリサーバ

POS

PC

PDA

SNS

Page 34: 東急ハンズを支える技術

33

マネージドサービス活用例2・取引データ連携(新POS対応)

AWS cloud 店舗

FTPd 売上テーブル

在庫テーブル

S3 SQS Worker

SQS

SQS Worker

Worker

店舗 アプリサーバ

POS

PC

PDA

新POS SNS Lambda

Lambda S3

売上・在庫更新

リクエスト 保存 Glacier

SNS

SNS

Page 35: 東急ハンズを支える技術

34

マネージドサービス活用例2・取引データ連携(最終形)

AWS cloud 店舗

売上テーブル

在庫テーブル

店舗 アプリサーバ

PC

PDA

新POS SNS

Lambda

Lambda S3

在庫更新

リクエスト 保存 Glacier

売上更新 Lambda

Page 36: 東急ハンズを支える技術

35

まとめ

l ハンズラボはiOSとAWSをとことん使い倒します! l iOSからAWSのリソースを直接制御することで、サーバレスでクラウドネイティブを実現できる!

l フルマネージドサービスを活用しようして、スケールするシステムを速く、安く作れる!

Page 37: 東急ハンズを支える技術

求む! ・AWSエンジニア ・iOSエンジニア ・Webエンジニア ハンズラボは積極的に技術者採用中です。

Let's  work  together!  

Page 38: 東急ハンズを支える技術

Copyright © HANDS LAB INC. All rights reserved.

御清聴ありがとうございました。