Saturday, January 30, 2010

Cloud User Access

Dreams contd. from my SquareSpace posts ...

Dream 17

Do all the users need to have separate licenses to gain access to the cloud based solutions -- be it CRM or ERP or blog spot (when they make it pay-per-use :))??? What if I wanted to access only certain features on the application? Why should I pay the subscription license fee for my user Id then??

These are some of the questions that my peer non-cloud architects post to me quite often. In this post, I wanted to share my views on solving this problem. I cannot talk for all the cloud based solutions but I can talk on how the problem can be done solved for Salesforce.com users. Let’s build an interesting use case here so that I can explain my solution clearly.

Use Case: Organization X uses Sales force as their primary CRM tool but the requirement is to allow all the employees in company to continue their tweets during their office hours using OfficeTweeter, a custom build functionality inside the Salesforce Org. Again, not through twitter.com but through force.com/TwitterForce APIs so that certain restrictions can be applied on what is being tweeted from office. Of course the company does not want to subscribe salesforce logins for all the 30K+ employees in the Org just to use the OfficeTweeter feature. Solve this.

Solution: When I hear such interesting use cases, first words that cross my mind are: Force.com sites, Crypto class, encryption: MD5 or SHA1, flashy interfaces using Visualforce, TwitterForce, etc, etc.
1.Create a common profile called 'OfficeTweeter Users' in your salesforce Org. Public access settings control which database objects and fields are accessible to users.
2.Create a salesforce user login and map it to the OfficeTweeter Users profile.
3.Create a unique user id for each & every employee in the company. The associated passwords can be encrypted using Apex Crypto APIs and stored in the custom object against.
4.Use TwitterForce apex class libraries for accessing the Twitter APIs & posting/reading twitter updates.
5.The presentation layer for the entire site can be designed using Visualforce.

And know what the solution does not need a separate web/app server or a Oracle DB server or a hosting environment. Just a salesforce.com account. Did I ever say which is my most favorite force.com sites driven website.Here it is. Jai force.com sites !!!