Last week I attended the Oracle Mobile Cloud Service (MCS) track as part of the Oracle Summer Camps in Lisbon. Besides the great location and networking opportunities, it’s was a great learning experience. It turned out it not only was the first MCS training for me, it even was the first MCS training ever given! I feel a lucky bastard to be one of the first people worldwide, besides Oracle employees, to work with the MCS.
Real lucky, because I’m not a mobile developer, I’m an integration specialist. The reason to do this course is because I got interested after a presentation of MCS at AMIS by Steven Davelaar from Oracle. The other reason is that the mobile developer who was supposed to go, was not able to go, so I replaced him. So that’s double luck!
It’s even tripled luck because it turned out that MCS is more about integrating (exposing) your business to mobile apps! Because I’m an integration specialist this really attracts me. And from a consultant perspective this also attracts me because creating a mobile backend in the cloud is an attractive business case for our customers.
Let’s first start with the advantages for the business. There are multiple reasons why MCS is attractive for a company with mobile ambitions. The first one is the separation of the mobile connections (network) from the existing network. In the first place this is a security advantage. With the Oracle Mobile Cloud in the middle, no mobile devices direct contact with your own infrastructure. It’s easier because only the MCS connects to your network instead of (lots of) mobile devices. Also MCS acts as a buffer protecting against all kind of attacks, including DDOS attacks.
The separation also means that, to be able to connect with lots of mobile devices, no extra investments have to be made in infrastructure and middleware products (e.g. application server with service bus to register mobile connections, serve requests, etc).
Last, but not least, it’s a fast way to expose business functionality to mobile devices resulting in a short time-to-market.
From an integration specialist perspective the separation is also useful and results into a fast way of realizing a mobile REST interface. The reason is that when the business requirements of the mobile app are known, the interface can very easily be created in the UI of the Oracle Mobile Cloud Service. This UI for development and design is a simple web application, so only a browser is needed. The mobile interface, known in MCS as the mobile back end, can be created by uploading a RAML document or by specifying it within the UI of MCS. A RAML is a technical description of the mobile interface defining methods including input and output data. (For those who are familiar with a WADL, it’s about the same, it’s just another ‘flavor’.) When specifying the interface in the MCS UI, a RAML document is generated in the background and you can even toggle between them. Finally hardcoded mock data can be entered for each method or might even be already there (read from the RAML document). Because the mobile developer knows what he needs to implement in order to meet the business requirements, the creation of the interface can be done by the mobile developer himself! Remember, he only needs a web browser (and access to the MCS) to do this. When he has defined the interface in MCS, the mobile backend already works! This means the mobile developer can start developing his mobile app using the mobile backend he just has created. Of course, the mobile backend will initially return mock data as long there is no real implementation. The mock data can easily be changed by himself in the MCS UI when he wants to develop or test with different data.
As an extra feature the Oracle Mobile Cloud delivers additional REST API’s the Mobile Developer can use, including storage (DB api), private and shared collections (server side), analytics (logging of business events), mobile push notifications (iOS and Android) and (data) synchronization (to support offline usage of the app). To make development easier Oracle provides several SDKs which the mobile developer can use. At this moment there is a SDK for iOS, Android, Xamarin and MAF. Windows will be there soon. The SDKs not only can used to invoke these addition REST APIs, but also to invoke the mobile back ends you created yourself. These mobile app SDKs only make is easier to invoke the REST APIs. This means the REST APIs can also be called from other sources which can invoke REST services (e.g HTML/JavaScript apps, ERP systems, SOA layer, database, etc).
While the mobile developer continues realizing the mobile app(s), the backend developer can create a real implementation for the mobile back end. He can glue this back end to multiple SOAP and/or REST web services or even custom (node.js) code. These services can be enterprise services, which can be secured by applying policies, but also other available web services on the internet (weather service, Google services, etc). To meet security requirements he can apply authorization by defining users, roles and use them to restrict access and usage of service methods.
To summarize, the Oracle Mobile Cloud Service really is useful for the business and simplifies development of mobile applications.
In a next blog I will deep dive into the development details of Oracle MCS including screen shots and how to connect your mobile back end to an implementation using node.js.
More info:
Oracle Mobile Cloud Service – https://cloud.oracle.com/mobile
RAML – http://raml.org/
Today, August 28, MCS has become available, see http://weblogiccommunity.com/2015/08/28/oracle-mobile-cloud-service-is-available/