検索
特集/連載

APIによる構成可能性の実現と注意点構成可能性の可能性【後編】

APIは構成可能性を実現し、そのメリットをより高める。アプリケーションそのものだけでなく各種インフラでもAPIを利用すべきだ。しかしAPI化を推し進めた先には課題が待っている。

Share
Tweet
LINE
Hatena

 前編(コンポーザブルなビジネスとソフトウェア開発の実現)では、コンポーザブル(構成可能)なビジネスとソフトウェア開発のメリットを紹介した。後編では、構成可能性を高めるAPIの利用と注意点、さらなる将来の展望について解説する。

構成可能性のためのAPI

 構成可能なビジネスという世界では、目の前に現れる新しい市場機会に対応するため、製品チームはカスタムビルドのソフトウェアを素早く提供できなければならない。そう話すのはHashiCorpのガイ・サヤール氏(ヨーロッパ、中東、アフリカ担当CTO)だ。「アプリケーションやインフラはいつも予測できない方法で進化する。この流動性を手に入れるには、システムをAPIで定義するしかない」(サヤール氏)

 サヤール氏は、デジタルイノベーションを促すソフトウェアインフラを提供する場合だけでなく、このインフラのビルドプロセスやメンテナンスプロセスでもAPIを利用することを推奨する。つまり、API中心のモデルだ。


iStock.com/Melpomenem

 APIは社内チームと社外パートナーがバックエンドアプリケーションに接続するのに役立つ。だがエンドユーザー視点では、必要なデータ、処理能力、インターネット接続はそれぞれのニーズが大きく異なる可能性があるとCommercetoolsのケリー・ゴーチュ氏(最高製品責任者)は言う。

 ゴーチュ氏は、ユーザーのFacebookタイムラインを構築するために必要なAPIの数を例に挙げる。「旧型の『Apple Watch』で貧弱なインターネット接続を使ってタイムラインのクエリを全て実行することを想像してみよう」

 Facebookはデータをクエリする仕様として「GraphQL」を構築した。GraphQL Foundationは、GraphQLを「API向けのクエリ言語」と定義する。

 FacebookはGraphQLを2012年に社内で使い始め、2015年にその仕様を公開した。それ以来急速に普及し、Twitter、Microsoft、Amazon、Google、New York Timesなどの企業が使っている。

 「GraphQLは、取得したいデータを正確に指定して1つのクエリを作成する。そうすれば、GraphQL層が(サーバの)個別のAPI用に各リクエストを作成する。その結果、必要な全ての情報を含む単一のレスポンスを受け取る。GraphQLは1つのクエリで複数のデータベーステーブルからデータを取得できるSQLのようなものだ」(ゴーチュ氏)

 ゴーチュ氏によると、GraphQLはデータの過剰取り込み、データの取り込み不足、データの検出可能性、承認/認証などを解決するという。GraphQLはクライアント開発者が複数のAPIからデータを容易に取得できるように明示的に作成されており、構成可能性の標準および「接着剤」として浮上していると同氏は話す。

APIの無秩序な広がり

 HashiCorpのサヤール氏は、構成可能なインフラには独立したAPI文化が必要だと話す。だが同氏は次のように警告する。「独立と混沌(こんとん)の差は紙一重だ。大規模なDevOpsプラクティスでは、何千ものAPIを実行する。何も手を打たなければ『APIが無秩序に広がる』ことになる。技術的負債が長期的な成功を妨げることになるだろう」

 同氏の経験では「Java」「Node.js」「Python」「.NET」などの言語や開発フレームワークの多様性がもう一つの課題になるという。

 共通のアーキテクチャパターン、アドオン機能のサービスカタログ、開発チームと運用チーム間の技術コントラクトを提供するプラットフォームを使うことでAPIの無秩序な広がりを抑え、複数のフレームワークを管理できると同氏は補足する。

全体像

 ソフトウェア開発者にとって、少ない労力で新機能を作成できる事前構築済みのコンポーネントのライブラリは明らかなメリットがある。だが、構成可能性はビジネス全体に影響を及ぼす。

 Deloitte Consultingのラム・シャンデル氏(デジタルコマースマーケティングサービスのリードプリンシパル)とポール・ド・フォルノ氏(マネージングディレクター)がデジタルコマースのトレンドについて対談。モジュール形式の構成可能なEコマースプラットフォームによって、提供したいエクスペリエンスに必要な機能だけを購入または交換して投資を拡大できる理由を話し合った。

 「そうすれば、単一のベンダーに全てを求めるのではなくさまざまなベンダーの『最高』の機能が手に入る。工業機器メーカーなら、技術の詳細や仕様を強調するために高度な検索ツールやレコメンデーションツールが必要になるだろう。家庭用品企業なら、ソファやテーブルをクールに見せるため、3Dのような手法が必要になる」

 重要なのは、こうした「カスタマイズされた」機能をプラグ&プレイでき、事業目標を実現するのに役立つことだ。

 ビジネスの状況をもっと広げて展望すると、市場のニッチな部分をうまく活用する新しいサービスが歴史のあるビジネスプロセスにいとも簡単に取って代わる可能性がある。

 あらゆるビジネスがソフトウェアビジネスになる可能性は低い。だが、企業の競争力を高めるには俊敏性を高め、市場の新たなチャンスに素早く対応できるようにソフトウェアを戦略的に使う必要がある。そして、ソフトウェアが支えるビジネス開発戦略をうまく提供するには、構成可能性を基盤として構築されたアーキテクチャが不可欠になるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る