【第1回】いま流行のWeb APIによるシステム連携とは? ~弊社が取り扱う製品であるIBM API Connectの紹介!~
投稿者:小野 一真
目次
・はじめに
・Web APIによるシステム連携って…?
-Web APIを使ったシステム連携とはなにか?
-Web APIを使ったシステム連携のメリットデメリット
-APIのライフサイクルと管理基盤とは…?
・IBM API Connectとは
-IBM API Connectとは何か
-Web APIシステム連携における課題を解消するAPICのコンポーネント
・まとめ
はじめに
皆さん、こんにちは。
日本情報通信 バリューインテグレーション本部データテクノロジー部の小野です。
当Tech Blogでは、IBM API Connect(以下、APIC)を活用したシステム間統合 について解説していきます。
今回は「いま流行のWeb APIによるシステム連携とは?~弊社が取り扱う製品であるIBM API Connectの紹介!~」と題し、例題を用いて「Web APIを使ったシステム連携」の構図を解説し、最後にAPICについて紹介させていただきます。
Web APIによるシステム連携って…?
最近はWeb API(Application Programming Interface)を活用した、システム間連携が流行しています。Web APIを、オンプレミスシステムやクラウドサービスが標準的に備えたケースが増えたことにより、手軽に連携できるようになったことが理由であると考えています。
当Tech Blogでは、Web APIを利用したシステム連携を解説し、その概要と、メリットデメリットを紹介していきます。
Web APIを使ったシステム連携とはなにか?
早速Web APIを使ったシステム連携について解説したいところですが、そのまえに、APIとはどのような用途で利用されているのか確認しておきましょう。
『APIとは特定のシステムやソフトウェアに対して、リクエストを送信し、データを取得する仕組み』
以上のことから、Web APIを利用して相互にシステム間を接続することにより、特定のシステム間にてコミュニケーションを図ることができます。当ブログではこのような連携を「Web APIを使ったシステム連携」と呼んでいきます。
それではWeb APIを利用したシステム連携について具体例を用いて解説します。
交通費管理システム更改におけるWeb APIの活用
あなたは総合商社A社(以下A社)の交通費管理システム担当である田中さん(以下、田中氏)です。
田中氏が勤めるA社ではあらかじめ定めた電子フォーマットによる社員からの申請に基づき交通費を精算していました。
しかし、取引先の拡大等で社員の行動範囲が広がり申請の増加、申請の処理をする経理部門や実際に申請をする社員の負担が増加していることが問題となっております。
1.問題の解決をしてくれないか?(依頼)
とある日、上司から田中氏に対して、以下のようなことを依頼されました。
「最近、社員から交通費管理システムに対しての不満が多い…何とか解決できないかね?」
依頼を受けた田中氏は、まず現状の調査から実施しました。
調査を実施したところ、下記のような問題が要因であることが分かりました。
・出張旅行費の件数増加による経費計算の正当性確認に時間が掛かりすぎている
・精算する交通費区画に予めすでに支給されている経路の申請が存在することがある
・交通費申請に問題のある社員に対して経理部門より勧告が多発している
・精算する交通費件数が多くなると社員の申請が煩雑となる傾向がある
2.問題の解決方法を検討
田中氏はこれらの問題を解決するため、交通費申請フォームを実装することにしました。
交通費申請フォームを提供することにより、社員には乗車した区間情報のみを入力させ、その後の交通費計算や申請処理を自動化することができます。
また、システムで処理できない異常な申請については、経理部門へ連携し手動の対応とすることにしました。
これにより申請者は以前より申請の手間が省け、経理部門は必要な正当性の確認数が減少し、業務の削減が可能です。
3.上記の実現方法を検討
田中氏は交通費申請フォームにて必要となる交通費処理エンジンを開発するうえで、運賃のデータが必要であることが分かりました。
しかし、田中氏が勤めるA社にはそのようなデータがありません。
また、田中氏は一から運賃データのシステムを開発するのは時間やコストを考え、現実的ではないと考えました。
そこで、田中氏は社外のサービスを活用することで、交通費処理エンジンの開発することを決めました。
今回の交通費処理エンジン開発ではWeb API経由で利用できるB社提供の運賃データ検索サービスを利用することにしました。
4.システムを構築
田中氏は実際にシステムの構築を始めました。
システムの構成としては、社員向けの交通費申請フォームよりB社サービスへ接続するために、入力された申請情報は一度、交通費処理エンジンで受け取ります。
その後、交通費申請エンジンよりB社Web APIをコールして、申請された区間データをB社サービスへ渡し、運賃データ取得する構成としました。
田中氏が検討したシステムの流れは下図のような流れとなっています。
5.目的データの取得
田中氏はB社が提供するWeb APIを利用することで、目的であった、運賃データの取得をすることができました。
田中氏は上記のシステムを利用して、無事に交通費処理エンジンの開発を終え、交通費申請フォームを実装しました。
6.まとめ
A社のようにB社の提供するデータに価値を見出し、活用するシーンがビジネスの機会では多くなりつつあります。
また、B社ではA社のようなWeb APIの利用者が増えれば増えるほど、Web APIのセキュリティを強化したり、利用者からの意見を取り入れてWeb APIの改修を実施したりしなくてはなりません。
更なる、ビジネス拡大を目指し新規のWeb APIを開発することもあるでしょう。
それでは、Web APIを使ってシステム連携を作り上げたA社とB社の例から、Web APIにてシステムを連携したことによるメリット/デメリットを見てみましょう。
Web APIを使ったシステム連携のメリットデメリット
Web APIによるシステム連携のメリットやデメリットを下記表に整理しました。
「Web APIを使ったシステム連携とはなにか?」で記載した例でも、A社は公開されたB社のWeb APIにリクエストを送信するだけで目的の運賃データを取得することができました。
本来、異なる組織間でデータ連携を実現するには、VPNやデータベースのアクセス権など設計すべき要素が多くなりますが、予めアクセス範囲を定めたWeb APIであればシンプルな手順で連携を実現できるのです。
しかし、Web APIはVPNなどの手法に比べ攻撃リスクや、組織外の使い方に十分なガバナンスを効かせることができません。
API運用には安全かつ効率よく公開し続けるために、デメリットを解消する活動が求められます。
また、管理するAPIが増えれば、運用に掛かるコスト負担が増えていくことも意識する必要があるでしょう。
APIのライフサイクルと管理基盤とは…?
ビジネスとしてWeb APIを公開する場合、公開するデータや請け負う処理の数にある程度比例してWeb APIの公開数も伸びていくことになります。
サービスの運用者視点では、Web APIの公開は、計画、設計、開発、運用の工程を繰り返し、市場価値が無くなり、クロージングするまでWeb APIの管理をすることになります。
こうしたプロセスのフローをAPIのライフサイクルと呼称します。(下図参照)
先に述べたデメリットの解消についても、APIのライフサイクルを通して最適化していくことになります。
公開するWeb APIの数が少ないうちは、サービス運用者/チームの能力次第で処理していくことはできると思いますが、ビジネス規模が拡大するにつれ、APIライフサイクルの各工程をスムーズに回し続けることが難しくなっていきます。
例を挙げると、次のことが考えられます。
・Web API開発者が改修やコードレビュー等の忙殺され、ビジネス計画に基づき新しいWeb API開発計画が予定通り進められない
・Web API運用者が日々のWeb API利用実態の調査に時間的が掛かり、特定ユーザの高レート要求などが発生しても、対策を講じづらくなっている
・Web APIのバージョンアップ等による差し替え作業件数が増え、リリース判定や作業手順のレビューに忙殺され、それでも事故発生を抑止しきれていない
Web APIを管理・運用しつづけるためには、オペレーションの簡素化、自動分析、設計/開発の品質を維持する仕組みが重要になります。
こうした仕組みを持ったソリューションとして、API管理基盤が登場しました。
弊社でもこのようなWeb APIの管理機能を持つ製品として、IBM API Connectを取扱っており、次の章からはAPICについて紹介させていただきます。
IBM API Connectとは
IBM API Connectとは何か
IBM API Connect(以下、APIC)とはIBM社が販売しているAPIライフサイクル管理ソリューションです。
APICでは、APIのライフサイクルを管理するために、下図のようなコンポーネントを内包しています。
各コンポーネントには役割が決まっており、下記の表にて内容を説明しています。
Web APIシステム連携における課題を解消するAPICのコンポーネント
ここからは、「Web APIを使ったシステム連携のメリットデメリット」で見えた課題に対して、APICにてどのようなアプローチができるのか下記の表にて見ていきましょう。
このようにAPICでは、Web APIを使ったシステム連携にて発生する上記のデメリットを、各コンポーネントにて解消可能です。
上記に挙げた解消例は一部であり、他にも多くのデメリットを解消することができます。
まとめ
Web APIは、システム連携に利用すると、システム間統合を加速させることができます。
その反面、Web APIには安全性・接続性・運用性の面で課題があるのも事実です。
そこでAPICのようなAPIのライフサイクル管理をサポートするツールは、今後のWeb API管理の現場で必要となると考えています。
この記事を機にWeb APIやAPICに少しでも興味を持っていただければ幸いです。
この記事に関するご質問等があれば「こちら」からお問い合わせください。
担当者からご連絡させていただきます。