バックエンド・アズ・ア・サービス(BaaS)、またはモバイル・バックエンド・アズ・ア・サービス(MBaaS)とも呼ばれるサービス[ 1 ] [ 2 ] [ 3 ]は、 Webアプリやモバイルアプリの開発者がフロントエンド・アプリケーションのバックエンドを簡単に構築できるようにするサービスです。利用可能な機能には、ユーザー管理、プッシュ通知、ソーシャルネットワーキングサービスとの統合などがあります。[ 4 ]これらのサービスは、カスタムソフトウェア開発キット(SDK)とアプリケーションプログラミングインターフェース(API)を使用して提供されます。BaaSはクラウドコンピューティングでは比較的新しい開発であり[ 5 ] 、ほとんどのBaaSスタートアップは2011年以降に設立されています。[ 6 ] [ 7 ] [ 8 ]最も人気のあるサービスプロバイダーには、AWS AmplifyとFirebaseなどがあります。
Web アプリとモバイル アプリは、通知サービス、ソーシャル ネットワークとの統合、クラウド ストレージなど、バックエンドで同様の機能セットを必要とします。[ 9 ] [ 10 ]これらのサービスはそれぞれ独自のAPIを持ち、アプリに個別に組み込む必要がありますが、これはアプリ開発者にとって時間のかかる複雑なプロセスになる可能性があります。[ 11 ] BaaS プロバイダーは、統一されたAPIとSDKを介して、アプリケーションのフロントエンドとさまざまなクラウド ベースのバックエンドとの間の橋渡しをします。[ 3 ]
バックエンドデータを管理するための一貫した方法を提供することで、開発者はアプリがアクセスする必要のある各サービスごとに独自のバックエンドを再開発する必要がなくなり、[ 10 ]時間とコストの両方を節約できる可能性があります。[ 11 ] [ 12 ]
サーバーレスコンピューティング、サービスとしてのソフトウェア(SaaS)、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)などの他のクラウドコンピューティングビジネスモデルと似ていますが、BaaSは、アプリをクラウドサービスに接続するための統一された手段を提供することで、Webおよびモバイルアプリ開発者のクラウドコンピューティングのニーズに特化して対応している点で、これらの他のサービスとは異なります。[ 13 ]
BaaSプロバイダーは、さまざまな機能とバックエンドツールを提供しています。[ 14 ]最も一般的な機能には、次のようなものがあります。
BaaSプロバイダーは幅広い分野を対象としており、JavaScript ( Webアプリ用)、Flutter、Java / Kotlin(Androidアプリ用)、SWIFT / Objective-C ( iOS / macOS / watchOS / TvOSアプリ用)、. NET(Windows用)など、さまざまな技術スタックを用いた複数のプラットフォームでのアプリ開発に対応するSDKとAPIを提供しています。BaaSプロバイダーにはさまざまな種類があり、開発者の多様なニーズに対応しています。
ほとんどの BaaS プロバイダーは、クラウド サーバー上にバックエンド プラットフォームをホストしています。[ 26 ]また、プラットフォームのインフラストラクチャ、セキュリティ、スケーラビリティも管理しています。開発者は、Web インターフェイスまたは提供されているAPI を介してバックエンド サービスにアクセスできます。[ 15 ]クラウド ベースの BaaS の例としては、Firebase ( Google Cloud Platformでホスト)、AWS Amplify ( Amazon Web Servicesでホスト)、Microsoft Azure Mobile Apps ( Microsoft Azureでホスト) などがあります。
セルフホスト型 BaaS では、開発者はバックエンドを独自のサーバーでホストできるため、クラウドベースの BaaS に比べて柔軟性とカスタマイズの可能性が高まります。クラウドベースの BaaS は移行がより困難な場合が多いです。ただし、開発者はサーバーのインフラストラクチャ、セキュリティ、スケーラビリティの管理も担当します。[ 15 ] [ 26 ]
モバイルバックエンド・アズ・ア・サービス(MBaaS)は、モバイルシステムに展開されるアプリケーション専用のBaaSの一種です。一部の文献ではMBaaSとBaaSを同義語として使用していますが、BaaSはWebアプリやデスクトップアプリなど、より幅広いサポートを提供できます。[ 27 ] [ 28 ]
BaaS プロバイダーは、さまざまな方法でサービスから収益を得ており、多くの場合、フリーミアムモデルを使用しています。このモデルでは、クライアントは毎月一定数のアクティブ ユーザーまたは APIコールを無料で利用でき、この制限を超えたユーザーまたはコールごとに料金を支払います。あるいは、クライアントは、毎月より多くのコールまたはアクティブ ユーザーを利用できるパッケージに対して一定の料金を支払うこともできます。[ 10 ]また、価格設定をより予測しやすくする定額料金プランもあります。一部のプロバイダーは、無料プランの提供内で無制限の API コールを提供しています。[ 29 ]多くの BaaS プロバイダーが使用しているもう 1 つのビジネス モデルは、PAYG (従量課金) [ 30 ]で、開発者のデータベース、ストレージ、帯域幅、関数呼び出し、ユーザー数などの使用量に基づいて柔軟なコストが設定されています。