Friday, December 14, 2012

Brave New Software Products for the future

After the success of SalesForce, Software product industry started to evolve to a new dimention.World is moving to cloud. "Multitenant", "Metadata Based","Platform As Service ", "cloud" and SaaS become common household word in software industry. Every product claims that they are multitenant and meta data based. But still there is a confusion that what exactly is multitenant/metadata based cloud product. what are the "different level" of multitenancy/metadata based apps. Keep in mind that there is no industry standard for this and all the discussion are arbitrary only!

Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). This definition is as per wikipedia. Multitenancy concept doesn't stops at software level. It spreads to Infrastructure(IaaS), Platform (PaaS) and also Software (SaaS).

SaaS mainly consist of User facing Application (business logic/UI Layer), Background Applications like Workflow and data storage/retrieval layer etc.

PaaS is a service model in which user creates software using tools and library by the provider. Tools and library can be standard like Google Appengine or it can be ability to provide certain level of customization for their existing SaaS.

IaaS includes Virtualized Hardware Infratructure, Security, Service Management like inrfrastructure related activities.

As multitenancy spans across the above three level, degree of multitenancy also varies from low to high.

Highest degree of multitenancy is the one in which IaaS, PaaS and SaaS are completely multitenant. Each customer's application is shared by all customers.Their Infrastructure is shared by multiple customers. Their platform is also shared. Of course, customers practically won't realize any of this. Here software and data storage has to be shared by many customers. It requires highly architected, well performance tuned application development. Best example of this type is Salesforce.

Lowest degree of multitenancy is the one in which IaaS is multitenant but not others. It is like software will run in one virtual environment which will have its own datastorage. Each customer will be having different virtual environment. It is possible to run different version of source code can run for different customers.

Medium degree of multitenancy is the one in which IaaS and PaaS are multitenant and all but few areas of SaaS are multitenant. Mostly data storage may not be perfect multitenant. For example, Individual database will be allocated for each tenant in a database server.

Highest degree of multitenancy requires advanced architecture but have more operational efficiency. Lowest degree of multitenancy can be achieved by quicker app development.

There are so many advantages for customers and vendors with multitenant SaaS cloud application.

1.All the customer are in latest version - All the customers will be in latest version and everyone can utilize latest features.

2.There is no upgrade nightmare for customers.Vendor will take care of upgrades free of cost.

3.Total cost is fixed. Since it is Pay as you use model, there will be no hidden or unpredictable maintenance cost for customers.

4.There is no hardware maintenance nightmare.

5.For Vendors, they don't need to maintain number of versions of software and there is no support is required for older version.

6.For customers, they can expect near 100%  availablity of application .

7.Customers can see their issues/bugs solved quickly and updated in production system.

8.Low cost - Since application can be scaled for thosands of customers with minimum hardware infrastructure, cost will be less.


 Metadata driven architecture helps to create highly  customizable application. Perfect metadata driven application should create all UI pieces,business logic, workflows, integration with other systems throgh metadata layer.Metadata includes  business, technical, operational and environmental
information.

Next generation software products should be

1.Powerful platform which can create UI presentation, processes, and business rules using multi-tenant security.

2.Simple browser based Admin tool to define rich metadata which can define UI and behaviour of complete application. 

3.User should able to generate/configure their application without knowing any complex software language.

4.Ability to integrate the application easily  from cloud to other on-premise/cloud based applications

5. Ability to upgrade to newer version without breaking existing tenants.

6.Ability to move the application from SaaS cloud to On premise. As company grows or due to merger/acquisition, decision to maintain application in cloud or on-premise will change frequently.

7.Better usability

8.Continuous innovative new  feature  release in short period.

Now lots of start up from silicon valley started devloping these kind of innovative products in present for the better future.

No comments:

Post a Comment