Tuesday, June 15, 2010

Building an Enterprise App Store with WSO2 Gadget Server

In my previous post, Portals and Mashups in the Cloud, I described an ecosystem that can be deployed either in your data centre or in the cloud.

An ecosystem such as above will allow enterprises to do two important things;
  1. Expose APIs for third party mashup/gadget developers to utilise in their apps
  2. Maintain a repository where business users can visit, browse and select apps from. These apps run in their personal portal pages.
Within that post lies the fundamentals of an Enterprise App Store. What is an enterprise app store? Well, in the mobile device world of iPhones, Androids and Symbians, we all use an app store at one point or the other. Whether it's iTunes, The Android Market Place or Nokia's OVI Store, we all visit them and they provide one significant benefit in general. We get to personalise our device with the applications we need. We get to build, at a software level, a phone that is optimised for our day-to-day use, without being programmers. We also get to influence the programmers who write these apps, by requesting new features for existing apps or, at times, encouraging them to develop new ones. The role of the device vendor here is to provide the best API possible for the app programmers. The vendor benefits by increased user base and the programmers get intrinsic and more often financial rewards for their creations.

An Enterprise App Store brings this to your organisation's IT department.

"The premise of an app store model for enterprises is simple: By removing the middleman, the famous bottleneck between the business and IT demand can be reduced in many cases. Application backlogs can shrink, consumption of internal and external IT resources will increase, and fierce competition to provide the best solutions to niches can greatly improve overall quality (the long tail of IT argument), all while reducing costs. At least, that’s what is possible if we look at what’s happening to the non-enterprise software market today." - Source, Dion Hinchcliffe.
This is why we had an Enterprise Gadget Repository in the WSO2 Gadget Server from day one. If you already run it within your enterprise (either in your data centre or in the cloud), you already have the infrastructure for an Enterprise App Store.

Adding gadgets to the repository.
An administrator can add gadgets to the repository in a few easy steps (we have documented how).

How users interact with the App Store.
Users sign in to the portal and see a default set of gadgets configured by the administrator. Of course they can change the layout of these gadgets and save their personal preferences for each. They can add new tabs, clone existing tabs to build new tabs.. but I digress. Let's see how they interact with the App Store. When they decide to add gadgets, they are re-directed to the gadget repository.

Apart from browsing the directory and adding gadgets to their portal pages, the users get to rate and comment on them.

This builds a community where users see what others think about the app, feature requests and even bug reports. They also see how many are already running this app.
"That is, the app store supports an ecosystem of developers and creators, but acts as a governance mechanism to make sure the crappy and malicious stuff doesn't degrade and contaminate the ecosystem." - Source, Joe McKendrick.
A nice software delivery mechanism for an SOA isn't it? :)

Additional Resources: