前回のエントリーで、クラウド・コンピューティングの1つのモデルとして、蓄積したデータベースそのものをAPIを用いて開放し、再利用・相互連携のしやすいアーキテクチャを作るという手法を紹介したが、このAPIという言葉は私のようなコードを書かない人間には実は結構わかりにくい。
OS(Operating System)とは、一口で言えばコンピューター上にあるファイル・システム、グラフィック・ユーザーインターフェイス・システム、タスク管理システム、などの各種システム・サービスの集合体のことである。ユーザーはユーザー・インターフェイスを介して、プログラマーはAPIを介して、それらのサービスとやり取りをする。
と紹介されている通り、元々はOS上で動くアプリケーションを開発する際の、OSの各種サービスを使用するためのOS側の受け口、という意味合いで使われていたようだが、時代と共にその意味がより拡張され、今となっては特定のプラットフォームを活用するためのプラットフォーム側の受け口と理解するのが正しいだろう。
アプリケーションを開発する際にOSのAPIを使ったことがある人は、アナロジーで考えて最近の拡張した定義もすっと腹に落ちるのだろうが、文系スーツでも直感的にわかる説明というのは中々難しい。
何か理解を促進するための良い例はないかと考えていたが、クレジットカードというのは正に、自社が蓄積したデータをAPIによって開放してプラットフォームとして機能している典型的な例なのではないかと思った。
クレジットカード会社が蓄積しているデータは主に2つ。1つ目はクレジットカードを保持する人の情報。名前、住所、年収、勤務先などの各種個人情報、過去の取引履歴などのデータが各クレジット会社のデータベースに蓄積されている。そして、2つ目は店舗名、住所、過去の取引履歴やトラブル情報などのクレジットカードの取り扱い店舗情報。クレジットカード会社によってはワールドワイドに展開され、これらの膨大な情報を蓄積し続けている。
そして、その蓄積されたデータを開放するためのAPIが、個人が保持するクレジットカードと店舗に設置されているクレジットカードリーダ。個人や店舗は上記の2つのAPIを介し、クレジットカード会社が開発した決済というアプリケーションとデータにアクセスする。クレジットカードもそのリーダーも物理的なモノであるため、Amazonが開放しているAPIとは少しイメージが異なるが、機能は正にAPIそのものと言ってよいだろう。
生活の中にとけこんでいるので、普段はあまり深く考えないが、クレジットカード、及びカードリーダーがあれば世界中の人と取引ができるというのは、よくよく考えてみるとすごいことだ。
「蓄積したデータベースをAPIを用いて開放し、再利用・相互連携のしやすいアーキテクチャ」をテクノロジーが今ほど発展していない時代に既に構築し、多くの人にクレジットカード会社は便益を提供してきた。テクノロジーの進歩に伴ってその適用領域が爆発的に拡大する可能性をやはり私はクラウドコンピューティングに感じる。