To be clear, this blog entry is not about applauding or criticizing the features, but more geared towards figuring out what features make up a successful backend platform for mobile apps.
- Cloud Data Storage/Synchronization: Storage is easy. Synchronization is not. I am glad Google decided to support this feature. It is probably one of the most important feature needed for a mobile app. Mobile architects sometimes opt for an "online-only" mode of operation for their App just because its cost prohibitive to build your own sync functionality. It is great to know that a company like Google has taken the sync route with offline app capability. To be honest, sync is not just about offline capability. It has a lot to do with latency as well. Local data is always much faster to access than remote data, especially with dealing with large data sets. So between offline capability and fast data access, sync becomes a very important feature of a mobile app. Google providing this feature in their MBaaS stack, validates this argument.
- Pub/Sub Messaging: Send messages from one device to any or all other devices. You can easily use 1:1 or 1:many devices or broadcasting. This is also another important feature. Sync is not just about moving data from one device to the backend. Depending on the relationship of the data with other users, it is very important to move data to other devices. OpenMobster's Sync platform provides this data replication feature out of the box without requiring any additional programming on the part of the App Developer. I have not used the Google MBaaS to know if there is any special programming needed to make this happen on the Google MBaaS platform. It would be great if someone with experience with the Google platform can elaborate on this feature a bit more.
- Enterprise Integration Framework: All MBaaS Frameworks catering to the Enterprise market provide some form of integration framework to connect their MBaaS platform services with data stored in arbitrary data sources. These sources are typically Enterprise systems like SalesForce.com, Microsoft CRM and SharePoint, Oracle Database, etc. It could also be an Enterprise's SOA infrastructure that they could have built out over the years. The Google platform does not provide any infrastructure to connect with the Enterprise systems just yet. It remains to be seen if they move into the Enterprise market by introducing such a framework or focus primarily on Consumer oriented Apps.
- Push Notifications: Data updated on one device is automatically available on all devices using GCM for Android. I personally like this data oriented use of Push notifications very much. It has been supported in OpenMobster since the very beginning. What pains me the most is when people like Apple don't get it. They think Push notifications is about sending "You've got mail" like updates to the device's Notification Framework. Far from it. Push Notifications in an Enterprise sense is about sending a tickle, initiating a background sync operation, downloading new data, and then either staying silent or notifying the user about new data. Data should always be first and ready on the device. Not dependent on whether the user launches the App by clicking on the notification. Its too late then. Apple does not get it and it would probably require some major changes to the iOS system to be able to handle Push notifications in the above mentioned workflow.
- Continuous Queries: Create queries that run continuously on the server, automatically feeding data updates to the client. This is another very important mobile app feature. The key is to make sure the queries are running on the server and not the client. You may think that is obvious, but due to some platform limitations, you may not have a choice but to run queries from the client to keep the data most up to date. Android is a very sexy platform that has great support for background components. Hence, the Push notifications framework using GCM is able to provide the workflow that it does. Same way, since data push is possible, data querying for updates can be done on the server instead of the client. Client querying is horrible for battery life. OpenMobster also provides this same feature via its Enterprise Integration Framework. The difference is that you can continuously query arbitrary Enterprise data stores.
- Google Authentication and Authorization: Looks like the Authorization piece helps with data isolation between the users and allowing data sharing where it applies. There is not much information provided on the authentication front. Does it allow authentication with Enterprise systems like Active Directory, and LDAP. Once again, it remains to be seen how inclined this framework is going to be to support the Enterprise use case.
CEO, OpenMobster, Open Source MBaaS platformShareThis