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

ヒトとクルマと業務をつなげるコネクテッドカーサービス「Cariot」のAPI/Cariot API

ヒトとクルマと業務をつなげるコネクテッドカーサービス「Cariot」のAPI/Cariot API

Takumi Endo

March 16, 2017
Tweet

More Decks by Takumi Endo

Other Decks in Programming

Transcript

  1. (C)Flect Co., Ltd. 今⽇日お話すること 1.  会社紹介・⾃自⼰己紹介 2.  Cariotについて 3.  Cariot

     ×  API 4.  API  Case  Study(到着予測・Webhook) 5.  今後の展望
  2. (C)Flect Co., Ltd. 会社紹介 クラウドテクノロジーでお客様の課題解決を⾏行行う会社 事業内容:   設⽴立立  : 従業員数:   代表  :  

     所在地  : 認定登録: IoT関連/クラウドインテグレーションサービス コネクテッドカーサービス「Cariot」の運営 2005年年8⽉月 75名 ⿊黒川  幸治 東京都中央区京橋 ▪ Mobile Accelerator Program Salesforce Platform ▪ IoT Jumpstart program
  3. (C)Flect Co., Ltd. ⾃自⼰己紹介 n   職歴 •  2007/04〜~  某SIer • 

    2015/02〜~  フレクト •  Cariotの名付け親  兼  メイン開発エンジニア n   Webアプリ開発(Java,  Ruby,  JavaScript,  CI/CD,  AWS) 遠藤  匠 フレクト  Cariot事業部  製品開発部
  4. (C)Flect Co., Ltd. 構成 クルマ Cariot  Platform  ⾞車車載デバイス API Cariot

     App UDP/HTTPS OBD  II シガー SIM 利利⽤用者 GPSアンテナ
  5. (C)Flect Co., Ltd. 1. Salesforceネイティブ Salesforce Cariot Package Cariot Platform

    • 今⽇日から使える⾞車車両管理理・動態管理理のコア機能を パッケージとして提供 • ノンプログラミングによるカスタマイズ
  6. (C)Flect Co., Ltd. 2. Salesforceカスタム Salesforce Cariot Package Cariot Platform

    Custom App JavaScript API • 業務に最適化したビジネスロジックとUIを開発 • JavaScript  APIの活⽤用 •  CariotのREST  APIのラッパー •  地図画⾯面のカスタマイズを⾏行行うためユーティリティ
  7. (C)Flect Co., Ltd. 事例例 n   A社様:営業⾞車車両管理理 •  毎⽉月226枚、552時間の報告書作成の時間をゼロに •  毎⽉月3⼈人⽇日の運⾏行行情報集計・催促の⼿手間をゼロに

    •  ⾞車車両利利⽤用を効率率率化し、10台以上の無駄な⾞車車両を削減 n   B社様:ダンプカーの運⾏行行管理理 •  積み込み・積み下ろし・⾛走⾏行行距離離の⾃自動収集 •  現場の⼼心的負担の低減 2016年年4⽉月の事業化以降降、⼤大⼿手企業を中⼼心に20社over 導⼊入がゴールではなく、業務が改善してからスタート
  8. (C)Flect Co., Ltd. Enterprise APIの両翼 レフトウイング (ビジネスプロセス) ライトウイング (技術プラクティス) • 

    認証⽅方式 •  バージョニング •  ドキュメンテーション •  スロットリング •  同期/⾮非同期 •  モニタリング •  パフォーマンス •  何を作るか決める •  使いやすさを追求する •  整合性・⼀一貫性を保つ
  9. (C)Flect Co., Ltd. プログラミングの原則をAPI設計にも YAGNI (You ain’t gonna need it)

    •  今必要なものにフォーカス DRY (Don’t Repeat Yourself) •  同じ⽤用途を複数のURIで実現しない KISS (Keep it Simple, Stupid) •  シンプルであること •  階層は2階層程度度 •  そのバージョニング、本当に必要? SLAP (Single Level of Abstraction Principle) •  抽象度度を統⼀一
  10. (C)Flect Co., Ltd. 失敗しないAPI設計 • 後⽅方互換性を維持することに注意を払う •  崩れるパターンを知っておく •  型を変えたい • 

    名前を変えたい •  削除したい • ポステルの法則  「送信は厳密に、受信は寛容に」 • 裏裏側の構造(テーブルスキーマ)とAPIを分ける • REST原理理主義にならない
  11. (C)Flect Co., Ltd. アーキテクチャ RDBMS  (MySQL) KVS  (DynamoDB) ⾞車車両ログや イベント

    マスタ データ 外部サービス シングル エンドポイント Amazon API  Gateway AWS  Lambda EC2 スロットリング キャッシュ モニタリング
  12. (C)Flect Co., Ltd. ユースケース 積込 出発 資材配送 出発 連絡 経過

    連絡 遅延 連絡 渋滞などの トラブル 出発 確認 経過 確認 遅延 確認 遅延 対応 仕⼊入れ担当 配送担当 顧客向け配送 (or後続作業) 配送業者が、12時までに仕⼊入れた素材を13時に顧客向けに発送
  13. (C)Flect Co., Ltd. イベント処理理の裏裏側 Kinesis  Stream AWS  Lambda EC2 RDB

    EC2 ルールエンジン クルマ Salesforce 外部App イベント 検知 3秒に1回
  14. (C)Flect Co., Ltd. あるべき未来をクラウドで形にする • 組み合わせによる新しい体験の実現 • ⾃自前の⾞車車載デバイスからのデータに限定しない •  ⽣生体データ •  重量量、積載量量

    •  温度度 •  天気 •  オープンデータ •  ⾳音声API、など • 競合製品との星取り表だけでは⾒見見えてこない 世界の実現