前回はAPIと「Dropbox API」の概要を紹介しました。第2回目となる今回はDropboxがどのようにAPIを利用しているか、またDropboxユーザーによるDropbox APIの活用事例をいくつか紹介しながら、その背後にAPIがどのように関わっているかを紹介します。
APIの使われ方
API(Application Programming Interface)はアプリケーションを設計、実装する際の基本的な仕組みとして使われることがあり、説明する背景によってそれぞれ少し性格が異なります。APIの定義はかなり広いのですが、活用するという視点では大まかに次の2パターンに分類できます。
- APIを公開しておらず、サービス提供者の内部のみで利用しているもの (非公開API)
- APIの仕様を公開している、利用契約があるなど、一定の条件のもとで使えるもの (公開API)
まず、サービス提供者の内部のみで利用している例から順番に紹介します。
サービス提供者の内部で利用している非公開APIは、ユーザーである我々がアプリケーションやサービスを利用する裏側で利用しているものです。非公開であってもAPIとして定義しているのはアプリケーションの設計手法などで少しずつ異なりますが、大まかにはサービスを機能の単位に分割し、より開発や保守、運用の柔軟性、効率性、保守性、堅牢性を高めるためです。
DropboxはどのようにAPIを使っているか
下の図1は、Dropboxのサービスを構成しているシステムの構成図です。システムはいくつかの機能単位で分割し、それぞれの機能ごとをつなぐ矢印がAPIを実際に利用している部分です。ファイルのアップロード、ダウンロード、プレビュー表示、検索などの操作はすべてAPIとして定義しています。
※クリックすると拡大画像が見られます
たとえば、ファイルデータを格納する、取り出すといった処理(図のBlock Storage Servers)は、プレビュー処理(図1のPreviews Servers)やブロック処理(図1のBlock Servers)が利用しています。この際のデータ格納、取り出しといった操作がAPI仕様や手続きによって決められています。
これらのAPI仕様や手続きを満たしていれば、API利用者であるプレビュー処理やブロック処理からみて変化はありませんからBlock Storage Serversを別のソフトウェアに置き換えるといった開発、運用も可能です。
Dropboxではほとんどの場合、データを米国の自社データセンター(DC)で管理していますが、法人向けの「Dropbox Business」では日本の顧客向けに日本のDCを選択できる仕組みがあります。これは裏側でデータを管理している処理を米国から日本に切り替えることで実現しています。背景にBlock Storage ServersというAPIの仕様や手続きの定めがあり、利用者(この場合プレビュー処理やブロック処理)は影響なく活用できます。
Dropboxではこのような内部で利用するAPIは公開、個別提供していませんが、このようなサービスの部品をAPIとして提供しているサービス事業者もあります。これらの事業者はIaaS(Infrastructure as a Service)とよばれ「Amazon Web Services(AWS)」「Microsoft Azure」「Google Cloud Platform(GCP)」などが有名です。
APIという考え方は古くからあるのですが、近年よく言葉が使われるようになったのは技術的、性能的に利用しやすくなったこと、利用条件やライセンス体系などもより柔軟になったことが理由としてあげられます。
さらに、サービスの部品APIを提供する事業者、サービスの一部をAPIとして提供する事業者、またこれらのサービス同士をつなぎ合わせるためのサービスがそれぞれ無理のない投資範囲で小規模に始められるようになったことも大きな要因です。