Backend as a Service
# Backend as a Service

Backend as a Service (BaaS) ist ein Dienst, der Entwicklern Zugriff auf eine Entwicklungsumgebung im Browser gibt, die gleichzeitig mit einer Cloud verbunden ist. Der Zweck dieser Dienste ist die Erstellung von Backends für Apps und Mobile Webseiten im Browser und mit Hilfe von Modellierung zu vereinfachen. Meist bieten diese Services mit Benutzerverwaltungen, Social Network-Integration und Push Notification verschiedene vorinstallierte Features an. Die Schnittstellen zu den Diensten werden mit Hilfe von SDKs zur Verfügung gestellt, die teilweise generisch aber teilweise auch generiert sind.

BaaS ist als Dienst noch nicht sehr verbreitet. Die ersten Startups, die BaaS anbieten, haben sich 2011 gegründet. Der globale BaaS-Markt hat einen aktuell geschätzten Wert von $216.5 Millionen (Stand 2012)

Backend as a Service ist eine neue Abstraktionsebene bei der Anwendungsentwicklung. Infrastruktur und Software werden nach dem „as a Service“-Geschäftsmodell gegen eine monatliche Gebühr bereitgestellt. „Backend as a Service“ (BaaS) umfasst das automatisierte Erstellen und Hosting eines Backends sowie dessen Konfiguration durch den Nutzer mittels eines Webbrowsers. Je nach Anbieter und gewähltem Paket unterscheiden sich Funktionen, Skalierung, Service-Level-Agreements, Standort der Server und Preis.

Ein Backend mit verschiedenen Modulen zu erstellen, erfordert sehr viel Zeit und Geld. Da aber viele Sachen, wie Datenbank und Nutzerverwaltung, bei jeden Backend ähnlich sind, kann dieser Bereich auch ausgelagert werden. Dieser Umstand wird bei BaaS genutzt. Der Dienst bietet ein Backend an, welches mit verschiedenen Modulen erweitert werden kann. Ein generiertes SDK stellt die Verbindung zu diesen Backend her. Diese sind für die größten Plattformen, wie Android, IOS, Blackberry, Windows Phone verfügbar. Für andere Plattformen steht eine API-Schnittstelle zur Verfügung, die aus verschiedenen Programmiersprachen angesprochen werden kann.

## Service Provider

Jeder BaaS-Anbieter stellt verschiedene Features zur Verfügung. Zu den Werkzeugen gehören im Allgemeinen:

* Push-Benachrichtigungen
* Integration von Social Networks
* Cloud Speicher
* Chat und Nachrichten
* Benutzerverwaltung
* Geschäftslogik, objektorientierte Programmstrukturen
* Nutzungsanalyse

### Vergleich

| Anbieter | Preismodelle | Module | SDK Plattformen | Hosting Standort |
| - | - | - | - | - |
| ApiOmat | Small (ab 99 €) Medium (ab 299 €) Professional (ab 599 €) Enterprise (auf Anfrage) | AccessControl Chat CSV DocumentGenerator Evalanche Facebook Module (static) Google Analytics JDBC Module (Native) LDAP Localisation Mandrill Messaging NetworkDrive NewsAggregator OData Connector Module PDF-Generator Piwik Module Push Restore Module (Static) Salesforce SAP Module (Native) SharePoint SMTP Twilio Twitter WebAppUpload Webhosting Wordpress XML | Android iOS JavaScript / PhoneGap / Titanium / ReactNative PHP Java C# / Xamarin C# / Xamarin SQLite Objective-C Swift Backbone TypeScript | Deutschland |
| Baasbox | Open Source | keine Angaben | keine Angaben | keine Angaben |
| Baqend | Basic (Kostenlos) Medium (50 €) Business (500 €) Enterprise (auf Anfrage) | Benutzerverwaltung Push OAuth (Google, Facebook, LinkedIn, Twitter) REST JSON Im- und Export NodeJS Backend Code Custom NodeJS-Module | JavaScript | Deutschland |
| Built.io | Free Trial Enterprise Partner / Reseller Custom | Benutzerverwaltung Push (mit User Segmentierung) Geolocation Analytics Realtime Custom Code Container via Extensions Content-Management-System Social (Facebook, Twitter, LinkedIn, sowie enterprise social networks wie Chatter, tibbr, Jive, Yammer, Cisco Spark und Slack) Enterprise Integration Security und Authentication | Android iOS JavaScript Xamarin | USA EMEA Weltweit durch private cloud |
| cloudbase | Free Basic (11,99 $) Professional (47,99 $) Enterprise (119,99 $) | Push Analytics Cloud Database Logger Mail Paypal MoSync Benutzerverwaltung | Android IOS Windows Phone PHP JavaScript | keine Angaben |
| Firebase | Free Pay-As-You-Go | Push Benutzerverwaltung Analytics Dateienverwaltung Remote-Konfiguration Crashreports Echtzeit-Datenbank Verwaltung von Werbung | Android iOS JavaScript | Weltweit (nicht wählbar) |
| Kii | Free Pro (199 $) Custom | Benutzerverwaltung Push Dateienverwaltung Verwaltung von Werbungen | Android IOS JavaScript | keine Angaben |
| Kinvey | Free Pro (200 $) für 5000+ Nutzer 1500 $ | Benutzerverwaltung Push Location Facebook Graph Api | Android IOS HTML5 PhoneGap Titanium AppCloud | keine Angaben |
| Kumulos | Free Pro Custom | Benutzerverwaltung Messaging Push XML Im- und Export CSV Im- und Export Cloud Database | iOS & OSX Android Windows Phone Blackberry HTML 5 Unity .net Angular JS LUA Corona C# | keine Angabe |
| mobeelizer | Free Small (99 $) Medium (199 $) Max (499 $) Enterprise | Datenspeicher Sync Benutzerverwaltung mit Rechtesystem Dateienverwaltung Push | Android IOS Windows Phone Titanium | keine Angaben |
| Parse | | Benutzerverwaltung Chat Facebook Twitter Messaging Push XML Im- und Export CSV Im- und Export Cloud Database Staging | Android IOS Python PHP Java .NET JavaScript | keine Angabe |
| QuickBlox | Free Reseller Enterprise Preis bei Rücksprache | Location Chat Benutzerverwaltung Contentverwaltung (Movies, große Dateien) Ratings Messages | Android IOS Windows Phone Blackberry HTML5 | keine Angaben |
| Stackmob | Free SLA Enterprise Preis bei Rücksprache | Benutzerverwaltung Amazon S3 Facebook Twitter Geoqueries Staging Analytics | Android IOS JavaScript | keine Angaben |
| ConnectyCube | Free Enterprise S Enterprise M Enterprise L | Benutzerverwaltung Möglichkeit eine externe Benutzerdatenbank zu nutzen Benutzerauthentifizierung durch Facebook Benutzerauthentifizierung durch Twitter Benutzerauthentifizierung durch Firebase AddressBook Chat Contentverwaltung Messaging Push-Benachrichtigungen CSV-Export von Daten REST Chatbots Ende-zu-Ende-Verschlüsselung | Android (Java und Kotlin) iOS (Objective-C und Swift) JavaScript NativeScript ReactNative Cordova | Weltweit. Folgende Optionen sind verfügbar: AWS vor Ort |

## Business Model

Die meisten BaaS-Anbieter stellen ein Freemium-Modell zur Verfügung. Bei diesem Modell sind die Benutzer und API-Aufrufe eingeschränkt. Wenn dieses Limit überschritten wird, muss entweder in ein nächsthöheres Modell gewechselt werden oder jeder Nutzer, der über dem Limit liegt, muss einzeln bezahlt werden.

