See the Worldas a Database
Speaker
疋田 圭介
• CData Software Japan 合同会社 代表社員
• Japan Web API Community の事務局 https://jwacom.connpass.com/
経歴
• 業務データ活用一筋10年+
• 金融機関10年(内、インドネシア5年)
• 開発コンポーネント企業の海外オペレーション統括3年
• CData Software の日本オペレーション立ち上げ
@cdatajapan (占拠中)
@keisuke.hikita.5
3.
See the Worldas a Database
• 20年以上にわたりデータ関連
コンポーネントを提供
• 80+ 対応データソース
• 「See the World as a Database」を
ミッションにクラウドデータ
への接続方法を標準化
About
• CData Software, Inc.
• Started: 1994 (/n software)
• Location: Chapel Hill, NC
• a spin-off of /n software
• CData Japan: 2016/6
(JV with Infoteria)
4.
See the Worldas a Database
: RDB(SQL) ⇔Web API 変換のエキスパート
Data Drivers
Web API を標準SQL
で利用可能に
JDBC/ODBC/ADO etc.
API Server
RDB/NoSQL/file から
超高速でREST API
を自動生成
See the Worldas a Database
増加するPublic API & さらに多いPrivate API
Private APIs が遥かに多い
• モバイルバックエンド
• クラウド⇔オンプレ間
• マイクロサービス
• パートナーAPI
• 特定顧客へのAPI など
Public APIs
• Saas API
• Web Service API
• Paas/Iaas API
• 既に2万を超えるAPI が
存在し、急速に増加中
引用元 : https://www.programmableweb.com/api-research
11.
See the Worldas a Database
ユーザー目線①ウェブサービスの限界
•ウェブサービスのユーザーは目でデータを取得して、次の処理を指示
•結局はコピペであって、オートメーションではない
情報取得
処理
コピペ
12.
See the Worldas a Database
ユーザー目線②デバイス多様化
•ブラウザ+iOS+Android 向けに異なるバックエンドを開発?
•統一されたAPI を作って開発および管理コストを下げるべき
13.
See the Worldas a Database
ユーザー目線③UI を決めるのは誰?
•サービスへの顧客アクセスにはUI が必要
•ブラウザを好むユーザーもいれば、モバイルアプリを好むユーザーも
いるし、チャットしか使わない人も⇒複数のUI に自社対応は苦しい
同じタスク
異なるUI
14.
See the Worldas a Database
ユーザー目線④他のサービスへの統合
•機能ごとに他のサービスやアプリを使うことは負担
•LINEなどよく利用されている他サービスからでも自社サービスを使えれば便利
15.
See the Worldas a Database
ユーザー目線⑤サービス間の比較
•たくさんあるものから最適なものを選ぶには比較が必要
•時間やコストをかけずに比較
16.
See the Worldas a Database
パートナー目線①継続性・安定性
•APIとして提供を始めると可用性・継続性・互換性が向上
•アドホック対応でこれらを満たせない
「24/365?」 「バージョンは?」「デバイスは?」
17.
See the Worldas a Database
パートナー目線②エコシステムへの参入が容易
•参入が簡単な例:
「やってみようかな」→すぐに公開されたAPI ドキュ
メントチェック→エンドポイント一つを動かしてみ
る
•参入が難しい例:
「やってみようかな」→書類を含むパートナー契約
が必要
18.
See the Worldas a Database
パートナー目線③セキュリティの確保
•「ID とパスワードを下さい。スクレイピングします」
⇒セキュリティ上推奨されない
•モダンな認証(OAuth)、レートリミット、ログ管理は必須
19.
See the Worldas a Database
ビジネスの拡大①モノ→コト
•ハードでの差別化ではなく、サービスや体験が差別化要因に
•サービス化が起これば、サービスを拡大させるためにAPI が必要に
20.
See the Worldas a Database
ビジネスの拡大②データ資産の活用
•自社サービスの利用データを活用
‧検索
‧利用ログ
‧レコメンド
‧GPS
‧アクセス
‧グラフ
•AI (Deep Learning)活用
21.
See the Worldas a Database
ビジネスの拡大③ オープンイノベーション
•非コア機能の他のサービスからの補完
•サービスインのスピード化
•逆に他者/他社に自社のサービスを使ってもらえればユーザーは
飛躍的に拡大
決済 メール送信 地図 検索 ファイル・
簡易DB
電話
See the Worldas a Database
さあ、API エコノミーだ!
API できた!
「公開」ポチッ
。。。あれ?
API ユーザーが増えない?
37.
See the Worldas a Database
API 利用者の悩み
•対応したいAPI が多すぎて、手に負えない
•ドキュメントが難解、API毎に記述されている内容が異なる
•オフショア開発なんだけどドキュメント英語版ないの?
•RDBMS/SQL ほどにAPI を扱えるエンジニアが少ない
•既存ツールがRDB/SQL 対応で、JSON 対応ではない
•API 仕様の変更が多すぎて管理できない
•API の記述方法などの規格化が進んでいない
38.
See the Worldas a Database
後悔しないために①Lean スタート⇒目的を明確化
•目的や利用例がないとどんなAPI が最適かわからない。
•とはいえ、最初から明確にすることは不可能・コスト高い
•「API ないんですか?」とはじめに言ってくれたユーザーやパー
トナーと利用シナリオを明確化
•作り込む前に動くデモを
•まずはPartner API で一般公開ではなくても
デモAPI Partner API Public API
39.
See the Worldas a Database
後悔しないために②業界標準への対応
•さまざまな業界標準
‧OData (まだまだ実質の標準)
‧OpenAPI (Swagger)
•なぜ業界標準が重要
‧エンジニアは業界標準に準拠してもらうと楽
‧ETL などのツール、機械学習側でも業界標準を意識
40.
OData
• Microsoftが主導となり推進しているプロトコル
• HTTPメソッド(GET/POST/PUT/DELETE)でデータの参照更新ができ
る仕様
•RESTfulな設計パターンを実装
• ODataデータソース
Power BI
Tableau
Salesforce(Lightning Connect)
:
• ODataエンドポイントを作成
Visual Studio (ASP.NET Web API)
Apache Olingo / Odata4j(JavaのOData Framework)
CData API Server / OData Connector
DynamicsCRMではWCFのData Servicesフレームワークに基づいて実装
( https://msdn.microsoft.com/ja-jp/library/gg334279(v=crm.7).aspx )
http://www.odata.org/
41.
Open API (Swagger)
http://swagger.io/
•REST APIの記述に関する仕様と、APIをコールするためのコードとド
キュメントを自動生成するツール群
• Apache 2.0 License
• 2015年に推進団体「Open API Initiative」が設立
The Linux Foundationの協力のもと、Microsoft, Google , IBM , Paypal, 3Scale(Redhat) , Apigee(Google) などに
より結成
https://www.openapis.org/
42.
See the Worldas a Database
後悔しないために③ツール/パートナー圏の形成
パートナーやツール連携なしにAPI エコノミーは作りづらい
•代表的なパートナーとの1 to 1 連携(連携サービス化)
•代表的なツールETL、BI、開発ツールとの連携
‧ETL
‧BI
‧Point-to-point ツール(Zapier、IFTTT、Micrsoft Flow etc)
•ODBC Driver、JDBC Driver の提供
•SDK の提供
See the Worldas a Database
手順
•SQL Server にすでに仙台弁-標準語のテーブル
•API Server をダウンロード
•API Server にSQL Server を接続
•sendaibenlist テーブルをリソース設定
•ユーザー認証設定
•レートリミット設定など
•デプロイ
46.
See the Worldas a Database
出来上がったAPI
•ドキュメント: https://cdatajapiserver.azurewebsites.net/api.rst#dbo_sendaibenlist
•ユーザー認証 User : apiseminar / Auth トークン 7m3B8b8g5J2z7o7T6w9n
API をたたいてみよう!
•GET で一覧取得: https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist/
•GET でID を指定して取得(末尾の()に番号を入れる):
https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist(<Id>)
•GET で標準語を指定して取得:
https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist?$filter=hyoujungo
47.
See the Worldas a Database
簡単な構成① WebDB (SharePoint やkintone 等)を利用
WEB DB入力ツール
データ入
力
API 利用先
REST
OpenAPI
を自動生
成
API SERVER
オンプレサーバーか
Azure やAWS
SaaS (クラウド)
使い慣れたツールから
データ入力が可能
複雑なDB 構築や
ホスティングが不
要
ポイント&クリックで接
続・API 開発が可能
48.
See the Worldas a Database
簡単な構成② クラウドストレージを利用
CLOUD STORAGE入力ツール
ファイルを
アップロー
ド
API 利用先
REST
OpenAPI
を自動生
成
API SERVER
オンプレサーバーか
Azure やAWS
SaaS (クラウド)CSV ファイ
ル
使い慣れたツールから
データ作成
複雑なDB 構築や
ホスティングが不
要
ポイント&クリックで接
続・API 開発が可能
49.
See the Worldas a Database
まとめ
1. API を作ることはビジネスの成長に非常に重要
2. API は簡単に作れると思ってほしい
3. 後悔しないためには、API 開発のエレメントが膨らむ
4. 「API 管理ツール」の利用は一つの解決策
50.
See the Worldas a Database
告知: CData Day 2017
http://www.cdata.com/jp/events/cdataday17/
51.
See the Worldas a Database
告知: Enterprise IT Seminar at XLsoft
~外資IT 担当者 & グローバル案件担当向け
https://www.xlsoft.com/jp/products/cdata/seminar.html