Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CA API Academy なぜWeb APIが注目されるのか?

704 views

Published on

Web APIがどのように利用されているかを紹介しております。

Published in: Technology
  • Be the first to comment

CA API Academy なぜWeb APIが注目されるのか?

  1. 1. API Academy なぜWeb APIが注目をされているのか? CA technologies APIM pre-sales team Tomohiro Kada Revision 1.5
  2. 2. 2 アジェンダ Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. • Web APIとは? • どのようにWeb APIが活用されているのか?
  3. 3. Web APIとは?
  4. 4. 4 APIとは何でしょうか? 簡単なRESTful APIの例 GET http://service.layer7.com/staff/yamada 従業員のユーザーIDをURIに指定してGETリクエストするとその従業員の情報 が返されるサービス(API)へのリクエスト Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  5. 5. 5 APIとは何でしょうか? 簡単なRESTful APIの例 従業員のユーザーIDをURIに指定してGETリクエストするとその従業員の情報 が返されるサービス(API)のレスポンスの例(JSON形式でレスポンスを返す) { “firstName”:”Taro”, “lastName”:”Yamada”, “Title”:”PreSales”, “address”: { “streetAddress”:”2-7-9 Hirakawa-cho Chiyoda-ku”, “city”:”Tokyo”, “postCode”:”102-0093”, }, “phoneNumber”: { “type”:”Office”, “number”:”03-6272-8330”, }, } Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  6. 6. 6 APIとは何でしょうか? APIのイメージ Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. API = Application Programming Interface My CodeYour Code API接続 標準化されたインタフェース
  7. 7. 7 APIとは何でしょうか? 特徴 • 通信が標準的なHTTPを利用している。 ✓ 送信側(Web APIをリクエストする側、利用する側)も受信側(Web APIを提供する側)もWeb API利用の際 は、”HTTP”の受信・送信という一般的なコーディングで済むため独自のプロトコル通信などと比較して利 用しやすい。 ➢ デバイス(チャネル)に依存せず利用できるケースが多い(Application Server, スマートフォン、ブラ ウザ、ゲーム機など) ➢ チャネルに合わせた接続ライブラリを用意する必要がない。 ✓ HTTP(s)で利用されているポート(80, 443 TCP)がすでに許可されている場合が多く既存のフィルタリング ルールの変更等が少ない。 • 送受信される電文がXMLやJSONでやり取りされ特殊なプロトコルにはなっていない(RESTful API)。 ✓ 通信電文がXMLやJSONなどの特殊なプロトコルではないため、仕様変更もXMLやJSONの電文スキーマ (フォーマット)の変更だけで済み、APIをリクエストする側のメンテナンス性が高い。 • リクエストに対してレスポンスが返るシンプルな通信形態になっている。 ✓ Web APIの場合は基本的にリクエストを行うことで結果がレスポンスとして返るシンプルな通信形態のた め複雑なシーケンスにはならない。そのため実装が簡単になる。 シンプルかつ標準的なテクノロジーで利用できる Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  8. 8. どのようにWeb APIが活用されているのか?
  9. 9. 9 どのようにWeb APIが活用されているのか? Reach & Retention1 Next Generation Application Architecture2 Integration3 Innovation Revenue Instrumentation 6 5 4 $ Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  10. 10. 10 1.Reach & Retention 多様なチャネルへの対応
  11. 11. 11 多様なチャネルへの対応 • スマートフォン、ゲームデバイス、アフィリエイトなど顧客と接点となるチャネルを多様化することでビジネスの拡大と 既存顧客の囲い込みを狙う。 ✓ キーワード:オムニチャネル • これまでWebのみであったオンラインによるビジネスを多様なチャネルへ対応するためにWeb APIが利用されている。 ✓ アプリケーションを各ビジネスロジックとプレゼンテーションに分解(Decoupling business logic from the app) してWeb APIで情報を提供。 Web { “min”: “23C”, “max”: “11C”…} API Web API (XML/JSOM) HTML Presentation + Data Business Logic AWeb System (Applicatio n) Business Logic B Business Logic C API API Business Logic A Business Logic B Business Logic C Presentation DataMobile Affiliate Web Presentation API API Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  12. 12. 12 多様なチャネルへの対応 通信方式をWeb APIで一本化するために利用 • スマートフォンネイティブアプリ、ブラウザアプリケーション、Web、IoTデバイスなどサービスを利用する利用形態(いわ ゆるチャネル)が多くなってきているため、それぞれに専用アプリケーションを用意するにはコストがかかったり運用にも工 数がかかってしまう。 • 各利用形態に対して通信方式をWeb APIで一本化して各クライアント(UI)がAPIで取得したデータをユーザに提供する方式 に変更するためにCA Mobile API Gatewayを利用。 スマートフォン ネイティブアプリ HTML5アプリ バックエンド Web Application Webアプリケー ション 連携先アプリ 連携先企業 Web API Web API Web API CA API GW (Channel GW) Web APIで一本化する。 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. シングルページ アプリケーション
  13. 13. 13 2.Next Generation Application Architecture 柔軟に動けるアプリケーションアーキテクチャへの移行
  14. 14. 14 柔軟に動けるアプリケーションアーキテクチャへの移行 これまでのアプリケーションアーキテクチャの問題点 Browser Web Server Application Server DB UI 在庫管理 発注管理 在庫管理 出荷管理 商品コード 管理 アプリケーションに必要な機能がひとつになっ てデプロイメントされる(モノリシック)問題点 • 一つの機能を修正・エンハンスするだけでも全体の依存関係でアプリケーション全体を修正する必要が ある。 • システムの増強を行うためには個々の機能単位ではなくアプリケーション全体をコピーして別のサー バーで動作させシステム増強する必要がある。 • 提供先がPCブラウザのみなど提供先のチャネルが決まって構築されていて別のチャネルを増やそうとす ると同じようなアプリケーションのシステムを作成する必要がある。 新しい製品やサービスを提供するにも早く市場に出していく機動性が全くない。 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  15. 15. 15 顧客管理システム 新システム ビジネススピードに対 応しなければならない とりあえず既存システム に新たに追加作成する ”コスト・管理”が増大 現状が把握できない XXシステム XXシステム XXシステム XXシステム 顧客管理システム 顧客管理システム 同じような機能が乱立 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. システムが複雑化 システムがどんどん複雑化していく悪循環に陥っている このスパイラルをどこかで変える必要がある これまでのアプリケーションアーキテクチャの問題点 悪循環に陥ったシステム 人材不足 働き方改革による仕事の効率性が要求される
  16. 16. 16 Microserviceとは? • マイクロサービスとは限られた範囲の機能を持った独立 したコンポーネントとして展開できそれぞれのマイクロ サービスはメッセージベースの通信で相互に接続できる ことができる。 • マイクロサービスアーキテクチャとはマイクロサービス の特徴を有し高度に自動化された進化型のソフトウェ ア・システムの開発手法・スタイル。 Web API ✓ NetflixやAmazonなどに代表される先進的なIT企業が要求されるビジネススピード に対応するために考え出したシステム・アプリケーションの開発のやり方。 こういったやり方には一定の共通した設計思想がある=Microservice 何らかの決まったプロトコル、製品を採用すること≠Microservice 目的:大規模なシステムをスピーディーかつ安全に作っていく キーワード“ca microservices book”で検索サイトで検 索いただくとダウンロードページにたどり着けます。 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  17. 17. 17 Microserviceとは? Microserviceという考えの始まり • システムが大きくなりすぎたため境界がわからなくなってしまった。 なぜ大規模なシステムをスピーディーかつ安全に作っていくことができないのか? It had been clear that many of the problems people were facing in the wild were related to building systems that were too big. - James Lewis Problem became “how can we build systems that are replaceable over being maintainable?” We used the term micro apps, I seem to remember. • 維持可能な状態で(部分的に)リプレース可能となるシステムはどのように作ればよいか? - James Lewis 先進的なIT企業が実践で考え出したシステムの開発手法・スタイル = Microservice Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  18. 18. 18 Microserviceとは? • 大規模なシステムをスピーディーかつ安全に開発できるシステムアーキテクチャへ • Small in size (アプリケーションのサイズが小さい) • Messaging enabled (Web APIで通信が行える) • Bounded by contexts(コンテキスト境界:ドメインドリブンデザインの考え方) • Autonomously developed (自主的に開発される) • Independently deployable (独立してデプロイできる) • Decentralized (集中管理はしない) • Built and released with automated processes (ビルドとリリースは自動化されている) 維持可能な状態で(部分的に)リプレース可能となるシステムとはどんな特徴があるのか? Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  19. 19. 19 Microserviceとは? https://www.nginx.com/blog/introduction-to-microservices/ モノリシックアーキテクチャ マイクロサービスアーキテクチャ DevOps Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  20. 20. 20 • アプリケーションの間でデータの共有を行う例 • データ共有により依存関係(結合)が発生してしまい”部分的”にリプレースしづらい環境となってしまう。 Web APIによるシステムの疎結合化の意味 結合を密なものから疎結合に(事例) Exchange Rate Currency ID USD_RATE 1 110.10 App A App B 別々のアプリAとBがそれぞれExchange Rateの情報を使う処理を行う。 Example • Aはデータベースの種類をNOSQLなどに変えたいがBシステ ムは嫌だといってできない。 • データベースのバージョンアップに伴いアプリ側の接続ドラ イバも更新する必要があるが、Bアプリは管理者が不在で簡 単に修正できず、結局、データベースのバージョンアップが できない。 データ共有の問題 共有データベース Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  21. 21. 21 • 必要な“機能”をサービス(Web API)として提供することにするとデータの共有の問題を解決しコンポー ネントのリプレースが可能となりやすい。 Exchange Rate Currency ID USD_RATE 1 110.10 App A App B Exchange Rate サービス Example Web API Request • Exchange Rateサービスとして以前と変わらないサービス を提供できればバックエンドのストレージは例えばNOSQL に変えても問題ない。 JSON or XML Web API Request JSON or XML • Exchange Rateサービスとして以前と変わらないサービス を提供できればデータベースのバージョンアップや接続ドラ イバを変更しても問題ない。 リプレースできる リプレースできる Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. Web APIによるシステムの疎結合化の意味 結合を密なものから疎結合に(事例)
  22. 22. 22 Web API化のメリット:サービスの共通化 似たような機能がコスト・時間をかけて作られている現状 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. システムに特化した 処理 顧客関連処理 情報問い合わせ処理 ユーザ管理処理 ログイン処理 多少の形は違えど酷似している機能がそれぞれに作られて構成されている システムBシステムA システムC
  23. 23. 23 Web API化のメリット:サービスの共通化 Web API化されている場合 システムに特化した 処理 顧客関連処理 情報問い合わせ処理 ユーザ管理処理 ログイン処理 システムBシステムA システムC Service (Web API Interface) Service (Web API Interface) Service (Web API Interface) Service (Web API Interface) Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  24. 24. 24 Web API化のメリット:Web APIは加工・組み合わせがしやすい • XML, JSONでデータがやり取りされるWeb APIでは別々のWeb APIレスポンスを組み合わせて新しい機能を持ったWeb APIを作成したり、レスポンスを加工したりすることが容易にできます。 • 既存のサービスを加工して新しいサービスを作成しやすくなります。 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. 新しいAPI ユーザ管理API 注文管理API 個別ユーザ注文管理API アプリケーション いわゆるAPIマッシュアップ はAPI GWが得意な分野 これを独立して作ってしまうと • 別の組織で同じような機能を作ったのに同じような機能をスクラッチで作ってしまう場合もある • モジュールのコピーを行うと改修が大変。どこにコピーしたモジュールが使われているかわからない。
  25. 25. 25 Web API化のメリット:新しいテクノロジーが利用しやすい Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. • Web APIにより疎結合でシステムが連携する場合、連携先のシステムが新しいテクノロジーを利用したものに置き換 わってもこれまで通りWeb APIでレスポンスを返すことができればこれまで通りシステムを利用することができます。 連携元システム 既存のテクノロジー 新しいテクノロジー 連携先システム Web API Request レスポンスは Web APIのまま システム内のテクノロ ジーは新しいものを利 用するようにする
  26. 26. 26 Web API化のメリット:アプリケーション開発の効率化 例:UIとロジックを別々に並行開発 • アプリケーションのUIとそのロジックがWeb APIにより疎結合でつながっているため、それぞれを別々に並行して開発 やテストを行うことができるようになります。ロジックができるまでUIの開発が停止するなどがおこりません。 • API Gatewayで開発中のロジックに変わりスタブとしてレスポンスを返すことが可能であるため、開発中はスタブから 折り返してレスポンスを返し、ロジックが完成すれば結合して動作テストを継続して行えます。 API Gateway Web Application Java Script Client ブラウザ スマートフォン アプリ バックエンドAPI /api_logic UI ビジネスロジック ①バックエンド開発中はスタブとし てレスポンスを返す設定としておく。 ① ② レスポンスが返れば開発は継続できる。 ②バックエンドが接続できる状態になればAPI GWからバッ クエンドのAPIへ転送するように動作を変えてUI-API GW-ロ ジックのアプリケーション全体のテストを行う。 Web API Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. UIの開発 ビジネスロジックの開発 並行して開発
  27. 27. 27 【参考】Dockerコンテナによる展開:結合のないシステムとは? Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. • アプリケーションアーキテクチャの密な結合を疎結合にする方法としてWeb APIが採用される。 • アプリケーションを構成するOSやミドルウェアなどの密な結合を疎結合にする方法としてコンテナ技術が採用される。 ✓ マイクロサービスアーキテクチャではWeb APIとコンテナ技術は非常に重要な技術要素。 サービス サービス サービス v1 Docker Host サービス v2差し替える コンテナ コンテナ コンテナ コンテナ Web API Web APIWeb API
  28. 28. 28 3.Integration Cloud/Socialとの連携
  29. 29. 29 Cloud/Social連携 Cloud連携 • 多くのクラウドベンダーが自社サービスのWeb APIを公開しておりオンプレミスシステムとの 連携でWeb APIが利用されるケース。 クラウドサービス オンプレミス-クラウド データ連携 API API API オンプレミスシステム Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  30. 30. 30 Cloud/Social連携 Social連携 • 自社サービスのログインでユーザのソーシャルアカウントをそのままログインに利用すること でサービス利用の手間(アカウント作成という手間)を省きユーザー獲得を増やす。 • ユーザからユーザのソシャルアカウントの情報にアクセスできる権限を付与してもらうことで ソーシャルログインが可能となる。 OAuth 2.0/OpenID Connectを 利用したソーシャルメディアロ グインを可能とするサービス ソーシャルメディアを利 用しているユーザ 自社 サービス ソーシャルメディアの アカウントを利用して サービスへログイン API Request API Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  31. 31. 31 Cloud/Social連携 (ご参考)ソーシャルログインの仕組み Social連携 ユーザ アプリケーション ソーシャルサイト 1)ソーシャルログイン(例えば Google +でログイン)したいです。 2)ソーシャルサイトで登録されて いるあなたのユーザー情報にアク セスするので私がアクセスするた めの権限をソーシャルサイトから もらってください。 3)ソーシャルサイト へリダイレクト 4)認証してOKであればアプリ ケーションにあなたの登録情 報へアクセスする権限を渡し て良いですか? 5)一時的なトークン 6)一時的なトークン 7)一時的なトークン API Request API Request API Response API Response 8)アクセス権限を渡します Code Code Access Token Access Token 9)アクセス権限をもっているのでユーザの情報をください。 10)こちらがユーザの情報です。 • ソーシャルサイトのユーザ情報にはWeb APIでアクセスしています。 11)こちらがユーザの情報です。 Code ※アクセス権がユーザーから 漏洩しないようにするため。 API API API API Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  32. 32. 32 4.Instrumentation IoT
  33. 33. 33 IoT • センサーデバイスやウェアラブルデバイスに代表されるような”デバイス”がネットワークにつながる 際に利用されるのがWeb API. • 従来からのHTTPに加えて双方向でのリアルタイム同期通信プロトコルのXMPPやWebsocket,軽量な MQTTなどがデバイスとのやりとりで利用される。 想定されるIoTの構成要素 Device Registration • Device Registration Data Storage Data Analysis Event Publishing Adaptation • Message publishing/subscribing • Transformation • Orchestration • Virtualization • Message Routing IoT Device • Storing data from device • Analyzing data from device HTTP MQTT Websocket HTTPより軽量とされるプロ トコル”MQTT”も利用されて いる。 Event Processing • Processing action by triggered by event Message Gateway Security • Authentication/ Authorization API Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  34. 34. 34 MQTTを利用したパブリッシュ/サブスクリプション型メッセージのセキュアな送信 MQTTとは? Publisher A Publisher B Subscriber 1 Subscriber 2 メッセージ送信 トピック1 トピック1 トピック1 メッセージ送信 トピック2 トピック2 MQTT BrokerMQTT トピック1のサブスクライブ トピック1のサブスクライブ トピック2のサブスクライブ • 1対1, 1対多のメッセージ送信プロトコル • プロトコルが軽量でIoTデバイス向けのデータ送信プロトコル Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  35. 35. 35 MQTTのユースケース Source from https://docops.ca.com/ca-mobile-app-services/1-0/create-your-own-solutions/design-your-own-messaging-policy/mqtt-in-a-nutshell センサー(温度計) Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. MQTTを利用したパブリッシュ/サブスクリプション型メッセージのセキュアな送信
  36. 36. 36 5.Revenue マネタイズ・アフィリエイト
  37. 37. 37 マネタイズ • Web APIを外部へ公開して利用してもらうことで収益を上げるビジネスモデル • Web APIのマネタイズのユースケースとしては下記の4つが存在している 1. Web APIを無償で提供するモデル ✓ 無償で自社サービスをアプリに取り込んでもらいブランド力強化や新規ユーザの獲得 に結びつけるモデル。 2. Web APIのコール数に応じて課金するモデル ✓ APIをコールする度に課金して収益を上げるモデル。 3. Web APIを利用して得た売り上げに応じて報酬が得られるモデル ✓ Web APIの提供により収益を得たAPI提供者がAPI利用者(開発者)とレベニューシェア をする[アフィリエイトビジネス]。 $ Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  38. 38. 38 マネタイズ$ 事例 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  39. 39. 39 6.Innovation イノベーション
  40. 40. 40 イノベーション • 自社のリソースをWeb APIを利用して公開しアプリケーション開発者に利用してもらうことで、 外部から新しいサービスのアイデアを発見する。 • 自社の情報は利用・加工しやすいWeb APIで公開することでモバイルアプリで利用しやすくする。 • 自社以外から提供されるAPIも利用してマッシュアップすることで革新的なサービスを提供する。 • ハッカソンイベントなどを開催してアイデアを募る。 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  41. 41. 41 イノベーション 事例 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies.
  42. 42. 42 イノベーション 事例 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. https://developer.lufthansa.com/
  43. 43. 43 イノベーション 事例 Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. https://ckan-tokyochallenge.odpt.org/
  44. 44. 44 イノベーション:フィンテック Copyright © 2017 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. • 金融機関がもっている情報を積極的にWeb APIを利用して公開して新しいサービスや商品を開発する流れ。 ✓ 金融機関(銀行) • 今のところ口座残高情報、口座取引記録などの”照会系”Web APIの公開がほとんど。  家計簿アプリへの提供などサードベンダへの公開用途が多い。 • 送金などの“トランザクション系”のWeb API公開はまだ聞いていない(今後は検討するという 金融機関もあり) ✓ その他 • 証券会社、リース会社、クレジット会社(利用残高、未確定利用残高のサードベンダアプリへ の公開=Web Scraping対策)

×