2. See the World as 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 World as 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 World as a Database
: RDB(SQL) ⇔Web API 変換のエキスパート
Data Drivers
Web API を標準SQL
で利用可能に
JDBC/ODBC/ADO etc.
API Server
RDB/NoSQL/file から
超高速でREST API
を自動生成
6. See the World as a Database
BI、帳票、ETL ツールにデータ連携機能を補完
Visual Studio, Cognos BI,
Crystal Reports,
ActiveReports, FileMaker Pro,
Power BI, Access, Excel,
Word, MicroStrategy,
QlikView, QlikSense, SAP
Business Object, Forguncy,
StiLL, ColdFusion, Eclipse,
NetBeans, IntelliJ, JBoss, Jetty,
WebLogic, Yellofin BI,
ASTERIA WARP,
MagicSoftware, PolarisGate,
SVF, Dr.Sum … and more
7. See the World as a Database
OEM Partners—by Global #1 players, by Japan’s #1 players
8. See the World as a Database
今日は「使われるAPI を作る」話を
•「API を使うプロフェッショナル」だからお話できる
•まず、作りましょう
•ただし、正しくつくりましょう(「これさえ押さえよう」というポイント)
10. See the World as 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 World as a Database
ユーザー目線①ウェブサービスの限界
•ウェブサービスのユーザーは目でデータを取得して、次の処理を指示
•結局はコピペであって、オートメーションではない
情報取得
処理
コピペ
12. See the World as a Database
ユーザー目線②デバイス多様化
•ブラウザ+iOS+Android 向けに異なるバックエンドを開発?
•統一されたAPI を作って開発および管理コストを下げるべき
13. See the World as a Database
ユーザー目線③UI を決めるのは誰?
•サービスへの顧客アクセスにはUI が必要
•ブラウザを好むユーザーもいれば、モバイルアプリを好むユーザーも
いるし、チャットしか使わない人も⇒複数のUI に自社対応は苦しい
同じタスク
異なるUI
14. See the World as a Database
ユーザー目線④他のサービスへの統合
•機能ごとに他のサービスやアプリを使うことは負担
•LINEなどよく利用されている他サービスからでも自社サービスを使えれば便利
15. See the World as a Database
ユーザー目線⑤サービス間の比較
•たくさんあるものから最適なものを選ぶには比較が必要
•時間やコストをかけずに比較
16. See the World as a Database
パートナー目線①継続性・安定性
•APIとして提供を始めると可用性・継続性・互換性が向上
•アドホック対応でこれらを満たせない
「24/365?」 「バージョンは?」「デバイスは?」
17. See the World as a Database
パートナー目線②エコシステムへの参入が容易
•参入が簡単な例:
「やってみようかな」→すぐに公開されたAPI ドキュ
メントチェック→エンドポイント一つを動かしてみ
る
•参入が難しい例:
「やってみようかな」→書類を含むパートナー契約
が必要
18. See the World as a Database
パートナー目線③セキュリティの確保
•「ID とパスワードを下さい。スクレイピングします」
⇒セキュリティ上推奨されない
•モダンな認証(OAuth)、レートリミット、ログ管理は必須
19. See the World as a Database
ビジネスの拡大①モノ→コト
•ハードでの差別化ではなく、サービスや体験が差別化要因に
•サービス化が起これば、サービスを拡大させるためにAPI が必要に
20. See the World as a Database
ビジネスの拡大②データ資産の活用
•自社サービスの利用データを活用
‧検索
‧利用ログ
‧レコメンド
‧GPS
‧アクセス
‧グラフ
•AI (Deep Learning)活用
21. See the World as a Database
ビジネスの拡大③ オープンイノベーション
•非コア機能の他のサービスからの補完
•サービスインのスピード化
•逆に他者/他社に自社のサービスを使ってもらえればユーザーは
飛躍的に拡大
決済 メール送信 地図 検索 ファイル・
簡易DB
電話
23. See the World as a Database
API が生み出す新しい価値は「データ連携」以上
内部API
• 複数サイト、マルチクラウドを繋ぐ
• モバイルのバックエンド統一
• オートメーション
• マイクロサービスアーキテクチャ
• AI (機械学習)の活用
• ビッグデータの活用
外部API
• パートナー 間のAPI 通信
• API 公開による顧客の利便性向上
• API エコノミー構築
• オープンイノベーション
従来の
価値
新しい
価値
36. See the World as a Database
さあ、API エコノミーだ!
API できた!
「公開」ポチッ
。。。あれ?
API ユーザーが増えない?
37. See the World as a Database
API 利用者の悩み
•対応したいAPI が多すぎて、手に負えない
•ドキュメントが難解、API毎に記述されている内容が異なる
•オフショア開発なんだけどドキュメント英語版ないの?
•RDBMS/SQL ほどにAPI を扱えるエンジニアが少ない
•既存ツールがRDB/SQL 対応で、JSON 対応ではない
•API 仕様の変更が多すぎて管理できない
•API の記述方法などの規格化が進んでいない
38. See the World as a Database
後悔しないために①Lean スタート⇒目的を明確化
•目的や利用例がないとどんなAPI が最適かわからない。
•とはいえ、最初から明確にすることは不可能・コスト高い
•「API ないんですか?」とはじめに言ってくれたユーザーやパー
トナーと利用シナリオを明確化
•作り込む前に動くデモを
•まずはPartner API で一般公開ではなくても
デモAPI Partner API Public API
39. See the World as 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 World as a Database
後悔しないために③ツール/パートナー圏の形成
パートナーやツール連携なしにAPI エコノミーは作りづらい
•代表的なパートナーとの1 to 1 連携(連携サービス化)
•代表的なツールETL、BI、開発ツールとの連携
‧ETL
‧BI
‧Point-to-point ツール(Zapier、IFTTT、Micrsoft Flow etc)
•ODBC Driver、JDBC Driver の提供
•SDK の提供
45. See the World as a Database
手順
•SQL Server にすでに仙台弁-標準語のテーブル
•API Server をダウンロード
•API Server にSQL Server を接続
•sendaibenlist テーブルをリソース設定
•ユーザー認証設定
•レートリミット設定など
•デプロイ
46. See the World as 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 World as a Database
簡単な構成① WebDB (SharePoint やkintone 等)を利用
WEB DB入力ツール
データ入
力
API 利用先
REST
OpenAPI
を自動生
成
API SERVER
オンプレサーバーか
Azure やAWS
SaaS (クラウド)
使い慣れたツールから
データ入力が可能
複雑なDB 構築や
ホスティングが不
要
ポイント&クリックで接
続・API 開発が可能
48. See the World as a Database
簡単な構成② クラウドストレージを利用
CLOUD STORAGE入力ツール
ファイルを
アップロー
ド
API 利用先
REST
OpenAPI
を自動生
成
API SERVER
オンプレサーバーか
Azure やAWS
SaaS (クラウド)CSV ファイ
ル
使い慣れたツールから
データ作成
複雑なDB 構築や
ホスティングが不
要
ポイント&クリックで接
続・API 開発が可能
49. See the World as a Database
まとめ
1. API を作ることはビジネスの成長に非常に重要
2. API は簡単に作れると思ってほしい
3. 後悔しないためには、API 開発のエレメントが膨らむ
4. 「API 管理ツール」の利用は一つの解決策
50. See the World as a Database
告知: CData Day 2017
http://www.cdata.com/jp/events/cdataday17/
51. See the World as a Database
告知: Enterprise IT Seminar at XLsoft
~外資IT 担当者 & グローバル案件担当向け
https://www.xlsoft.com/jp/products/cdata/seminar.html