Sign In
MSDN Blogs
Microsoft Blog Images
More ...
Supporting Billions of entities/rows for Mobile – Android Series - Part 2 - What are some high level cloud offerings?
US Cloud Connection
Connecting Developers with Azure
Advanced search options...
Search In:
Everything
Blogs
Forums
People
Groups
Places
Pages
Date range:
All Time
Last Year
Last 6 Months
Last 3 Months
Last Month
Last Week
Last Two Days
RECENT POSTS
Essential Windows Azure (Microsoft Cloud) Knowledge : Part 1: Web roles, Worker Roles
Posted
15 days ago
by
BrunoTerkaly
4
Comments
Networking in the Cloud–Understanding Windows Azure Traffic Manager
Posted
1 month ago
by
BrunoTerkaly
0
Comments
Windows Azure Access Control Service-Understanding the Security Buzzwords
Posted
1 month ago
by
BrunoTerkaly
0
Comments
Easiest Way to Get Started in Windows Azure Cloud Development
Posted
1 month ago
by
BrunoTerkaly
0
Comments
Developing Windows Azure, Cloud-Based Applications With Windows 8-What you need and how to get there
Posted
1 month ago
by
BrunoTerkaly
2
Comments
WINDOWS AZURE BLOG
RSS
http://blogs.msdn.com/b/windowsazure/archive/tags/windows+azure//
WORLD MAPS
MSDN Blogs
>
Bruno Terkaly - Developer Evangelist - bterkaly@microsoft.com
>
Supporting Billions of entities/rows for Mobile – Android Series - Part 2 - What are some high level cloud offerings?
Supporting Billions of entities/rows for Mobile – Android Series - Part 2 - What are some high level cloud offerings?
BrunoTerkaly
27 Sep 2011 1:14 PM
Comments
0
Previous Posts to this post
Previous Blog Posts
Link
Supporting Billions of entities/rows for Mobile – Android Series - Part 1 - Why Scale Matters
http://blogs.msdn.com/b/brunoterkaly/archive/2011/09/27/supporting-billions-of-entities-rows-for-mobile-android-series-part-1-why-scale-matters.aspx
Free download link for Azure
http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200060656
Here are a few examples of cloud – based data offerings
Although I work for Microsoft, I want to present as balanced a picture as I can. That means I will address other options that are available to Android developers today, which can be considered to be outside of the Microsoft ecosystem. Some of the cloud offerings are Android specific while others are more general purpose.
My colleague, Aaron Stannard (
http://www.aaronstannard.com/
) came up with this diagram. As you can see, there is a tradeoff amount the cloud vendors in terms of customizability and of automation. Amazon, for example, is very customizable but is not as automated, since you are still dealing with configuring VMs and other infrastructure-oriented activities.
Google’s AppEngine is on the other end of the spectrum, not very customizable but very automated.
Where Azure Fits In
The point being that Azure does a good job spanning a wider range of needs and options than most vendors.
Azure is not as “pure” Platform as a Service like Heroku or AppEngine. Azure is not as customizable as AWS.
Azure’s model aims to automate as much as it can while still leaving the door open for customization where it’s needed.
Figure 1 – Customization and Automation Spectrum
There is somewhere around 200,000 Android applications out in the wild. The types of back-end data stores are many and varied.
I presented several vendors here and I’m sure I missed a few. Feel free to let me know what is critically overlooked (
bterkaly@microsoft.com
).
Push or Pull
There are two ways mobile applications to get their data. First, a mobile application can simply request data. This is called "Pull," because the app is pulling data in. The second type is "Push," which means that data is sent to the mobile application from the cloud without the mobile application requesting it.
For example, it may be necessary for the cloud to notify mobile applications when new data is ready. A "Pull" scenario often means your are providing access to the cloud data with a RESTful architecture.
RESTful Services
While little can be done in making the client software re-usable, much can be done in creating a re-usable back end to service the various mobile platforms. An open, standards-based approach to a web service makes perfect sense when you consider supporting iPhone, iPad, Android, Windows Phone 7 or any other device that may burst onto the scene. The primary goal is to avoid anything custom on the back end that caters to a specific mobile platform. That’s where RESTful services come into play. The best example of an implementation of RESTful services is the
world wide web
itself. The important thing to remember is that a RESTful services is an architectural style. How you implement RESTful services is up to you. The inventor of a RESTful services Roy Fielding and he defines what RESTful services are in his seminal dissertation in the year 2000 called,
Architectural Styles and the Design of Network-based Software Architectures
.
RESTful services are a style of software architecture based on the underpinnings of the World Wide Web.
Faster
There is less overhead.
Clean
Less duplication, since arrested leverages http’s too late, put in, get, post.
Full adherence to the http spec
Very standardize because it uses traditional http.
No complex SOAP envelope
It is human readable and testable.
Below is a rough landscape of cloud-based data providers
The list below is not meant to be fully comprehensive. It is meant as a rough guide about the different types of cloud vendors out there. There are clearly dozens of other data providers that I did not bother to add the list below. As I said earlier, just let me know through e-mail what you think is critical and why.
SimpleGeo
You can think of this offering as an interesting collection of business listings and points of interest. This is an offering that allows you to harness the power of the location-aware aspect of your Android device. In other words it leverages your GPS System on the device. SimpleGeo offers a geographically aware database that you can query and where you can store location data. The SDK is available for many environments, such as Objective C, Java/Android, JavaScript, Python, Ruby,and .Net. For many applications it doesn’t make sense to build all this from scratch yourself.
UrbanAirship
This is a company that offers Push Notification Services (discussed previously). As stated earlier, this allows developers to send out notifications to its users, such as sending them important messages and updates, breaking news, current weather, and so on. UrbanAirship supports almost all versions of the Android device, which can simplify support for developers.
MongoLabs
MongoDB is an open source database that MongoLabs will host for you. MongoLabs makes it easy for you to expose your data through a RESTful API. The underlying MongDB is a schema free, document-oriented database, that manages your data as collections of JSON like documents. The data can be constructed and nested into complex hierarchies, that can be indexed and are query-able.
Google
The name of Google’s data store and cloud products are bundled in App Engine. You can program in a variety of languages including Java and Python. It is a Java 6.0 runtime that is available, so you could support JRuby, Groovy, Scala. In order for these languages to operate in App Engine, there are a set of incompatible libraries and frameworks that you must pay attention to. They also have an experimental language now called Go. There is also a query language called GQL. GQL allows you to execute queries from the Python runtime or from the Admin Console.
Amazon Web Services
If you look at the developer offerings from Amazon, you will note Amazon Web Services as one of the first options at Developer.Amazon.Com. Amazon offers infrastructure as a service capabilities, based on their own back in technology platform. I perceive a Amazon on as an Infrastructure As A Service company, which means typically you are booting your own customized virtual machines. Typically, developers will set up their own custom security and network access configuration. I consider Infrastructure as a Service leaving you wanting more, because you’ll end up writing and configuring a lot of plumbing code. Users of the service can access a web service API, which allows you to programmatically add scale or reduce it. Amazon offers both hierarchical data stores as well as relational data stores. Amazon offers multiple data center locations as well as service level agreements.
Microsoft Windows Azure
I think that when you look at the spectrum of the offerings mentioned above, Microsoft products do offer a unique approach. Clearly, we offer a full line of comprehensive products, both in terms of
Compute
and
Storage
, which include service level agreements and multiple data center support. When I think about how I would separate Microsoft's offerings from the ones above, here is what comes to mind:
Focus only on Data and Code
The current sweet spot for a Microsoft developers is the notion of the Platform as a Service model.
This allows the developer to focus only on data and code, nothing else. The Microsoft cloud data centers are self running, the developer never thinks about configuring and starting individual virtual machines.
The developer simply publishes their application and specifies how many instances are needed.
The fabric controller software running in the Microsoft data centers takes care of all the needed plumbing to provide load balanced servers within minutes.
Elegant Implementation of Platform as a Service
In the next blog post I hope to show that the Microsoft tooling and coding practices are logical and easy to follow.
I will create a RESTful service, hosted in the Microsoft data center, that can provide almost limitless capacity for data storage to an Android device.
When data gets really big Azure will automatically distribute the data across multiple storage nodes to ensure speedy data delivery.
Easy service customization
An extensive framework combined with powerful tooling gives developers the ability to write complex and custom applications very efficiently.
Understanding Pricing
Here is a link that will help you understand exactly what your costs are:
Blog to understand pricing
Next post is about Architecture and data.
After that it is about building a RESTful service hosted in the cloud.
And after that post it will be about consuming the RESTful data from Android.
0 Comments
Leave a Comment
Name
Comment
Please add 4 and 2 and type the answer here:
Post