This is the third post of a series of guest blogs by application developers. We are featuring a use case by Romin Irani, an individual developer who built APIs for valuable data sets in the City of Mumbai as a public service and hosted them on Cloud Foundry.
Guest blog by Romin Irani, Mind Storm Software
Access to world-class infrastructure coupled with the pay-per-use model has been a dream come true for start-ups and individual developers. For an individual developer and entrepreneur like me, the way I develop and make my applications available for others to use or evaluate has been permanently transformed.
Mumbai Public Data APIs
It has always been difficult for me to get various data sets for the city that I live in, i.e., Mumbai, India. Mumbai has a population of about 20 million people living in 233 square miles (603 sq. km.). Like many urban centers in developing countries, the city is growing faster than its government is able to provide services and infrastructure for its citizens.
If provided some of the city’s public data sets with APIs for those data, developers can come up with a variety of applications to harness that information and build applications to benefit the city residents. So I took the small step of building out a few data sets, such as:
- Help lines – Essential services like hospital phone numbers with locations and police emergency numbers. Mumbai has no central emergency telephone number like 9-1-1, so essential service numbers are helpful to have in one place.
- Blood banks – Nearly 60 city blood banks with phone numbers which can be looked up by their location, although much of the stocking and inventory-keeping is still done manually.
- Taxi and auto rates – Taxi/auto rate card fares as published by the Mumbai Administration for residents and visitors to correctly determine their meter charges and fares.
This type of scenario works very well with MongoDB. The application is written in Node.js, interacts with the Cloud Foundry MongoDB service and provides JSON data for the various Mumbai data sets. Over time, I hope to keep introducing new data sets. To develop their own web, desktop or mobile clients, developers can simply invoke the REST Endpoints for each data set.
The data set is exposed via a REST API that is hosted on CloudFoundry.com: http://mumbaidata.cloudfoundry.com
Why is Cloud Foundry is my preferred PaaS?
The impetus to learn more about Cloud Foundry came via CloudSpokes, a community-driven marketplace where developers take up programming challenges and get paid for that work. I have submitted code for more than six challenges now including some winning entries–all on Cloud Foundry.
These include a Node.js stock ticker, a salesforce.com Login Component, a Web page PDF-to-Box bookmarklet, and a salesforce.com data exporter that generated Word files from salesforce.com data–all of which are hosted and running great on Cloud Foundry. Top reasons why Cloud Foundry is my preferred PaaS:
- Cloud Foundry provides a non-intrusive model for my Java applications. When I want to run a Java Web application that uses my home-grown MVC framework or use the Spring framework, it is all supported. I am no longer looking for workarounds.
- It is easy to use, especially with the STS plug-in for Eclipse which makes developing and deploying with Cloud Foundry a breeze. The fact that you can be in a single environment to develop and deploy to the cloud is very nice! That coupled with being able to start and stop the applications, inspect the logs and even deploy to the Micro Cloud Foundry definitely boosts productivity. This is in sharp contrast to moving in and out of multiple environments for each stage of developing, testing and deploying your applications.
- Also, I have access to services like MongoDB, RabbitMQ and many others that I can quickly integrate into my applications, as well as use the programming stack that is appropriate for the job.
One of my goals over the last year has been to develop a hands-on cloud computing course and I have struggled with the choice of a PaaS platform that would allow programmers with different language skills to all come under one roof and go through the course. With its polyglot nature, I hope to build that course out soon with Cloud Foundry as the engine running all the samples. The fact that I can even run locally via Micro Cloud Foundry is a huge plus.
I truly believe that the polyglot programmer has arrived and an open PaaS like Cloud Foundry is a great enabler to making that a reality.
Signup for Cloud Foundry today, and start building your own cool app!
Romin is a published author of several books and articles, and contributes regularly to ProgrammableWeb, where he focuses on API news. He currently runs a startup, Mind Storm Software, which is focused on quality hands-on training on cloud computing platforms and mobile development.