An Application Marketplace Architecture for Commercializing Software and Services
Recently I've been thinking about the increasing attention being paid to application marketplaces. My current conclusion is that there is a strong linkage between application marketplaces and the 4 forces of long tail software I described in my previous post. I think with the right business strategy in place, the economic potentials of the long tail software market can definitely be unleashed through application marketplaces.
Here in this post, I'll share my thoughts about the architecture of such an application marketplace.
The high level application marketplace architecture consists of four loosely coupled modules: marketplace services, application designer and workspace, business operation services, and social networks. These four modules work together to provide an end-to-end solution implementation that would put the long tail forces into play.
Architecture Components of Application Marketplaces
Marketplace services are offered through a public facing website. Like any other commercial Websites, the user interface of the marketplace website influences and helps mold the first impressions of the marketplace customers.
The business model affects the types of marketplace services being offered to one or more groups of partners and customers: the independent software vendor (ISV) who sells applications (and optionally creates or hosts applications at the marketplace), end users who buy applications, and partners and value-added resellers who repackage and resell applications with their own set of value-added services. If the marketplace also provides application hosting services to its ISV partners, it may choose not have any hosting partners and therefore does not offer its marketplace services to other hosters (potential competitors).
The application catalog functions as a directory customers can use for discovering, viewing and buying published applications. In order to provide a better search and an improved buying experience, the application catalog may implement various types of filters that use additional criteria, such as application category and popularity, to help the users narrow down their choice of candidate applications.
In addition to the application catalog, the marketplace also exposes a set of administration applications that customers can use to edit their account profiles and manage business transactions at the marketplace. For example, an ISV can use the administration application to edit and post the company description, revise the pricing of their published applications, and view revenue reports of applications sold through the marketplace. Similarly, a small business can use the administration application to subscribe or unsubscribe to applications and check the outstanding payments for its marketplace account.
Business Operation Services
While the marketplace services provide the public interfaces for the marketplace customers to publish applications and perform commercial transactions, the business operation services are a collection of infrastructure and management services that operate behind-the-scenes to support the marketplace services.
The identity management module provides a core set of authentication, access control and entitlement services that other business operation services use to secure business data and marketplace transactions.
The monetization module makes it possible for application providers to sell applications using various pricing models, such as charging for user license subscription, application transactions or revenue from online ad-displays. To effectively support a monetization scheme, the marketplace should offer solutions to help ISV define and enforce their application pricing policy (e.g. $20 per user license per month), as well as implement revenue reporting engines that will provide visibility into the income stream for published applications.
The metering and billing module uses the defined policy and usage data logged through the monetization module to generate invoices and bill the customers. The billing engine can offer billing-on-behalf services to the ISV by collecting fees from the business users and crediting the revenue-split payment into the ISV bank accounts.
Application marketplaces frequently provide self-service registration to ISVs or business users for signing up as a new tenant. When the tenant management and subscription module receives a new registration request, a tenant provisioning workflow is started and interacts with the identity management module to create a new organization and administrator user for the new tenant account. The provisioning workflow also creates new entitlement records for the new organization so that subsequent application subscriptions can be properly tracked and metered. Finally, the workflow triggers off a sub-workflow within the hosted application runtime infrastructure to provision a new set of metadata that is used to configure and instantiate the application environment for the new tenant.
A social network at the marketplace not only enables the applications users and providers to interact with each other, it also relies heavily on user-generated content to help users find quality applications and to provide ISVs with market intelligence.
Through a ranking and reputation system, users can get a sense of what other users think about the usability and quality of the applications. These opinions also serve as information that the application providers can use to improve on future versions of the applications.
Many business professionals are now connected with their ex-classmates, colleagues and business partners through social networks. In this world where business success hinges on “who you know”, social network connections can be leveraged to mine valuable information stored in the subscribed applications. For example, a business partner from an external social network may recommend potential sales leads to a business tenant at the marketplace place. The recommendation becomes customer data that is stored in a CRM application purchased through the marketplace.
Application Designer and Workspace
The application workspace is the container that hosts the user interface for business users to interact with the applications. Besides providing the dashboard for using the subscribed applications, the workspace can also include features that enable the users to interact more directly with marketplace services, for instance, including links to purchase additional applications at the marketplace.
The kind of user experience that a marketplace can build into the workspace is virtually limitless. However, simplicity, ease of collaboration and the ability for third parties to monetize should be the key tenets for creating the application workspace fabric.
To mitigate performance and security concerns, there are usually constraints on the types of computations that the third party applications can execute in a hosted runtime environment. As such, the developer should only be allowed to create application features that are contained within the defined computation boundaries of the hosted runtime environment.
For example, the development environment could impose constraints over custom business workflows loops and implement branching logic to ensure that workflows will always terminate. In addition, the development tool can also set customization boundaries on application object models, optimizing system performance by ensuring that database schemas are not overly complex.
It is important to note that the hosted version of the application designer and workspace module is just one mode of user experience. This experience is most beneficial when the target user base has heterogeneous operating system platforms and the browser is the lowest common denominator that can be relied upon to interact with the applications.
There are other hybrid modes of design and runtime experiences where these workspace modules are not hosted by the marketplace. For example, the application may be designed with Microsoft Access running on the application developer’s computer. When the application is completed, its metadata is published to the marketplace. Subsequently, business users who have purchased the application have the option of running the application on their own desktop or within an application runtime environment hosted by the marketplace.
Creating a brand new application platform can be a huge undertaking. Instead of building one from scratch, third parties can create and customize their own application designer and workspace sandboxes by using existing products such as the Windows Sharepoint Services and Microsoft CRM 4.0. These platforms already offer tools for creating applications that can be imported and exported out of the runtime environment as metadata, which can facilitate the process of publishing and subscription applications to and from marketplaces.
For those of you who have been following my SaaS architecture guidance content, you know that I'm a big fan of making the content hands-on and implementable with current shipping products and tools. As you may have expected, I've been working on an sample application marketplace solution using ASP.NET and CRM 4.0. This sample solution will be publicly available within the next few months.
Stay tune as I should have more to share in the near future.