Race to the Cloud

So Cloud is real and here to stay. It is great that there are solutions ready to go and available on-demand. In addition these solutions are really easy to setup. They don’t scale down necessarily but still I buy it, you can add and remove the resources based on your requirement. Let’s not talk about PAAS or IAAS for a second. Let’s focus on SAAS. What is the driving force that is pushing companies like MSFT to invest so much in SAAS? 80% of their resources are working on Cloud related applications so they have decided in which direction they are heading. As always consulting companies are following suit, and my company is no different. However a completely different phenomena is driving the consumer space. Everyone has a mobile device and Native apps are predominantly considered a lot more Cooler compared to web apps. Like everyone else I want an app that serves my needs and runs best on my device. I want something that solves my problem. Yes if that application solves other problems as well I understand that but it has to solve my problem in a cool way to be part of my application pool on my device. One tends to think that there is no difference between applications on cloud and application in mobile space as they are both built from the perspective that many users have the same requirement. So isn’t it the same thing? Does it not imply that Cloud would encourage us to build applications for a large audience with similar needs and same happened with the applications in App Stores? Unfortunately not in the corporate sector.

In industry the solutions that are being built on the cloud are generic. They solve problems. If they don’t solve a certain problem then features pertinent to that business area are added and the same product is sold with a different spin. SalesForce, Oracle and Microsoft add features to their CRM to make sure they don’t lose out on a business opportunity in a particular industry vertical. I am sure it holds true for other applications in the corporate sector. Huge investment on Cloud infrastructure by Corporate giants drives the marketing and sales initiative for Cloud version of the solution and as a result clients are racing to the cloud. CIOs want to win this race. They want to be the flag bearer for such an innovative initiative. However there is no innovation associated with Cloud. There is no “My Problem” being solved on the Cloud. Applications on the cloud solve a stated problem as they exist on the Cloud and Consultants map that existing cloud solutions to their business problem to the best of their abilities. That is the best that one can get out of Cloud. There is no “My Solution” anymore. There is a race between vendors. If SalesForce has 100 features then Microsoft wants 101 to convince their Clients that their version is better.  Isn’t it drastically different from what is happening in App Stores? App Stores are innovation centers. They are beyond feature set and focusing on usability and user experience. This is not happening in the Corporate sector and the way it is going we are moving away from it. The gap between consumer space and corporate space is widening. Talk to a business user or a marketer who deal with technical resources and they will tell you that their personal IT rocks but corporate IT sucks.

I was excited about Cloud because I thought of it as an App Store. I want to think of Cloud as a tool box that users as well as corporate users would leverage to solve their problems. However unfortunately corporate users are owned by corporations and they can never be independent. If this race to Cloud continues then all we would have is companies with data on Cloud accessed through browsers. What purpose does it serve? Does it make the life of my employees better? Does it make them more productive? No it certainly does not. Instead of focusing on solving business user problem we are focusing on IT. Yes IT, because Cloud is all about not having to support your applications, not having to sign M&S contracts, not having Change Requests as all of a sudden the World has converged and if I have a problem then someone else must have had the same problem. So Cloud is IT saving not IT innovation. Cloud investment must force the solution providers to innovate. C-Level executives cannot just invest in Cloud because MSFT, Oracle or SalesForce told them so. They have to ask questions that would help the market evolve.

As the gap between consumer space and corporate space widens it presents an opportunity to bridge this gap. Consulting companies should focus not only on solving the business problems but also on the user experience and usability. Innovative Business solutions with easy to use interfaces that solve a business problem should drive the business, not the shelved solution on Cloud. We want to build applications for corporations to solve their problems that would make the life of corporate users as easy as mine sitting at home and planning my vacations in Bahamas using amazing Apps on iPad. Till then please don’t try to win this race to Cloud as it would take you no where.

Advertisements

Email Management Solution CRM 2011 Online

I wrote an article on Email Preview Pane. We have done some enhancement to make that tool into an Email Management Solution for MS Dynamics CRM 2o11 online. This video shows the details of our Email Management Solution.

Data Migration from CRM 4.0 to MS Dynamics CRM 2011 online

This is my second post for data migration from CRM 4.0 to CRM 2011. I think i mentioned in the last webcast that was shared as part of my post that we use our integration framework at the backend of our migration utility which allows us to take data from disparate solutions and feed it to MS Dynamics CRM 2011 on-premises and online. Although this webcast and the last one focused on migration from CRM 4.0 to CRM 2011 but the migration utility can be used for Goldmine and SalesForce as well. We are targeting CRM 4.0 to CRM 2011 just based on the demand and I will be preparing the next webcast for Goldmine. Anyways in this webcast we take data from CRM 4.0 to CRM 2011 online.

I think this webcast addresses the core issue for many who were just stuck with CRM 4.0 because they wanted to migrate to CRM 2011 online and the migration was not obvious. I would like to mention here that no matter what you have on your CRM 4.0 on-premises version you should be able to transition to Cloud provided you are working with intelligent consultants. There is always a work-around for some restrictions with the online solutions and Solution Experts should be able to share the solution with all the pros and cons.

The migration utility works perfectly for basic sales entities. We are still looking into reports to some how find a way to automate report migration from CRM 4.0 to CRM 2011 online but as it is reports require lots of manual work as one needs to change each report.

Enjoy this video and contact me if you have any questions. Hang in there for more videos on data migration from different solutions to CRM 2011 online.

Understanding Cloud computing

I have read a few books and heard at-least a dozen talks comparing Cloud Computing with Electricity. The idea that businesses in IT industry would change drastically with Cloud computing has its merits. However comparing the evolution of electricity with cloud computing is stretching it too far. The fact that over the years manufacturing industry evolved from using small electricity units that would suffice to fulfill their requirements to centralized Grids seems appealing to a few. What we tend to forget is that in IT we already tried Grid computing and it failed. Moreover the analogy is fictitious because no one ever wrote a book with a title “Does Electricity Matter” and there was never been a debate on utility of electricity. Don’t get me wrong, I do believe that with Cloud computing IT companies need to redefine their business models so that they could gain competitive advantage. However by comparing Cloud computing with something as essential as electricity some pundits are arguing that cloud is the only way of survival in the IT industry going forward. I would certainly not buy that as other IT models will continue to flourish. If at all one wants to understand the Cloud computing and its impacts, one would be better of comparing Cloud computing with telecommunication industry.

Telecom industry evolved over time and its manifestation is that instead of making money on the handsets, companies are making profit on data plans today. The competition and advancement in Telco forced the stake holders to redefine the way they did business. Consumer expectation to pay less for a standardized service meant that there would be quick adaption but less profit provided customer expectation is met. It also meant that over a period of time there would be competition resulting in less profit margins. It also meant that client addition and retention would be challenging and would require streamlining of processes. Product offerings and packing that would be audience specific would govern the success of business. Business insight into processes and quickly changing market would be essential to change with the marketing trends. How did companies evolve with these changes to the industry? What happened to companies that didn’t change with the market? What was the impact on the early adoptors? What was the effect of competition on profit margins? I believe that answers to these questions would hold true for cloud computing.

In Pakistan, with a population of around 180 million, cell phones happen to be amongst the most sold commodity but service providers continue to complaint about the lack of profit. On the other hand small companies that sell problem specific solutions to these telecommunication giants tend to make good profits. Similarly the challenges of subscription models and KPIs for customer addition and retention in this model in Telco provide deep insight for the software industry. Think of a user who has a cell phone and uses services such as Hotmail, Google, Facebook, Car rentals, Hotel bookings and travel advisory. This user pays nothing and gets so much from the cloud. Now it’s just a matter of applying the same to industry so that businesses could run on the cloud. Businesses would eventually reach there so we are better off realigning to be part of the change. However bear in mind that profits are going to be marginal unless the processes are defined and services are replicated.

CRM Online Email Reading Pane add-on

I wrote a blog on claim based authentication for CRM. The idea was that once the users are authenticated the claims enabled CRM 2011 could be extended to add business specific functionality. As mentioned in my last post the claim based authentication for CRM 2011 online is still not out of the cloud, so I have not tested the solution, but considering what Microsoft claims I would feel that the claim based solution would work with CRM 2011 as well. As for CRM dynamics I already showed how to enable single sign-on for writing web extensions. Here is the link to the post.

https://raotayyabali.wordpress.com/2010/12/30/ms-crm-dynamics-online-and-claim-based-authentication/

Building on the documented authentication model I have extended the CRM Dynamics online solution to provide users with a reading pane similar to outlook. Most of our clients have had an awful experience responding to mails using CRM Dynamics online. Primary drivers for this add-on are:

1. Users are accustomed to using outlook where one can quickly go through the emails using preview pane and reply to emails of interest.

2. In CRM in order to review the content and attachments one needs to open the mail by double-click and only then realize that this is not the mail one was in search for.

3. Productivity of sales representatives suffer a great deal just because half of the day is spent finding the right document attached in one of the hundreds of mails in the history section. Imagine having to open up each mail to find relevant content in outlook. If you cant imaging then just close your preview pane in outlook and try finding mail with content of your interest.

Keeping in view that most of our customers are accustomed to outlook we have provided the look and feel of outlook. Setting up our solution for CRM online clients is really simple and all that is required is to import the customizations and register on our online service to get things going. You have guessed it right its a hosted service solution.

After the initial setup a tab is added to the entity for which emails are to be previewed. This tab contains all the emails and a preview pane. One can quickly go through each mail in grid and on selection the description along with attachments open up in the preview panel at the bottom. As simple as it sounds and as elegant as outlook’s reading pane, this email reading pane is a great tool for sales representatives struggling with hundreds of emails each day.

CRM Add-on

MS CRM Dynamics Online and claim based authentication

MS CRM 4.0 implementation often involves customization. This customization might be custom web application that open up inside CRM or some content from CRM that opens up in the web applications. If the customizations reside on the same machine as CRM then authentication is not an issue. However at times its is imperative that these custom applications reside on separate servers. This requirement would increase with custom applications pulling data from CRM moving to the cloud. There would be an increased requirement for  single sign on or claim based authentication using windows identity foundation. Moreover incase of custom application the security considerations of end users can only be satisfied with a robust security provider in place.

The purpose of this article and ones to follow in this series is to configure STS between the IP and RP. In this post I will configure a web application on windows azure and then will use Microsoft Federation Gateway as the IP by establishing STS between the application and STS service. This would enable the authentication of our azure application to be handled by third party identity provider and would also enable using windows live Id to log into our application. As the token received would be based on the live Id it can be used for claim based authentication. Unfortunately CRM Dynamics does not support claim based authentication so we will be using the SDK class ‘Wlidticket’ for the generation of ticket to be used for accessing CRM service. The only problem is that for the generation of this ticket we will have to use the LiveId and password. Ideally we should have used the claims for subsequent calls to CRM service and this is what we would do with CRM 2011 in the next article. This is huge because it would mean that external application would have a windows Live login and they will be able to pull up CRM data without having to store user credentials. Many of the applications I have seen today are rejected by consumers because they either require multiple logins or they store user credentials. However that is for the next article. In this blog we will have to live with what is available in CRM Dynamics online. Before we start with the actual scenario I just want to highlight that we are using the federation gateway so that we could use windows live authentication service and this requires WIF. If you are not hosting application on windows Azure then you can also use RPS (Relying Party Suite). Anyways so lets get to setting up our windows azure application and configuring STS. Usually service account is used for accessing the CRM service so setup the live id for the service account in CRM online. In-order to enable impersonation on CRM online assign the proxy role to the service account.

Here is the summary of steps we need to do:

1. Register the azure service DNS on Microsoft federation service, msm.live.com.

2. Configure azure application to accept the windows live security token. This is done using WIF.

3. Configure CRM online for the service account and enable proxy account.

4. Configure azure to use ‘Wlidticket’ class from CRM 4.0 SDK and generate ticket to be used for accessing CRM online service.

 

1. Register the azure service DNS on Microsoft federation service:

a. Use the service account linked with live id to access http://msm.live.com

b. Keep in mind that here you would start with test platform(INT) however in-order to work with CRM online you will have to use production platform.

c. Register a new site on msm.live.com.

 

image

d. DNS would be the unique identifier for your website. I am using tayyab.cloudapp.net as DNS in this example. DNS name has to be a unique URI. Use the address for your cloud application if it is already available. This can be modified later..

e. On submission you will se the confirmation page. Confirm and go to ‘Modify editable site properties’.

f. Modify the site properties. I have changed the DNS to a URN. Later we will use this in our cloud application to establish STS. Note the return Url is using https.This is because we will be using the MBI_FED_SSL authentication policy.

image

g. Domain name is ‘Cloudapp.net’ as we plan to deploy our application on Azure Cloud.

h. Set Override Authentication Policy field to MBI_FED_SSL.

image

i. Click Submit and confirm. You have successfully established STS between MSM live and your cloud application. Now we will setup the cloud application and configure it to receive token from STS service.

 

2. Configure azure application to accept the windows live security token:

a. Make sure you have WIF, VS 2010 and azure account.

b. Start with your cloud application. This blog is not going to cover the details of creating Azure applications. Once the cloud application is in place we need to first of all configure it to use HTTPS. Generate a certificate and add it to your cloud application on windows.azure.com. (you can use selfssl for this)

c. Configuring your cloud application to use this certificate requires modifying the role properties in cloud application using VS 2010.

d. Go to Web Role properties under the cloud service project and perform following:

         i ) Under certifications add the certificate that you just added to the windows.azure.com.

         ii) Under Endpoints check https and uncheck http. Choose the certificate we just added.

        iii) Under configuration setup trust level to Full Trust. Check HTTPS endpoint.

e. Add WIF classes to enable the cloud applicationto receive and process the claims.

Add following classes:

  • CustomIssuerTokenResolver.cs
  • WIFSampleRequestValidator.cs
  • Wlidticketforazure.cs

Use the link for the labs on WIF.

http://channel9.msdn.com/Learn/Courses/IdentityTrainingCourse/WebSitesAndIdentity/WebSitesAndIdentityLab

f. Add required assemblies for accessing CRM online webservice and using Identity Model. Keep in mind you will be deploying on cloud platform so you have to make sure Copy Local is “True” for all Dlls that you will need on Azure platform.

g. Add web reference for the crm web service.

h. Add STS reference to the windows Live STS. Right click on the Web Role and add STS. The federation utility will start.

image

In the application URI use the DNS name configured for the URN or azure application on msm.live.

i. In the ‘Security Token Service’ screen specify “Use an Existing STS’ and copy paste this link.

https://nexus.passport.com/FederationMetaData/2007-06/FederationMetaData.xml

j. Use no encryption and no chaining and click finish. A dialog would open up that federation utility finished successfully.

k. Update the default page to get the ticket that will be used for authentication.

 

string ticket = LiveIdTicketManager.RetrieveTicket("devicePassword(add anything here>", "crm.dynamics.com", "serviceAccount@live.com (this is received in the claim)", "<passWord>", "MBI_SSL", LiveIdTicketManager.LiveIdEnvironment.PROD (use INT for INT environment, true, "hostedServiceName" (url for azure application));

 

3. Configure CRM online for the service account and enable proxy account:

a. Make sure you have the account setup on CRM online and it has the proxy role.

4. Deploy application on Azure

a. Deploy the cloud app on Azure.

5. Test Application

a. Access the azure application. If all is configured properly you will be redirected to the windows live login page. Once you have given the login credentials you will receive the claim in your default application.

 

I have tried to skip the details and the post is long as is so please let me know if you have any questions. Make sure that you look into WIF in some detail so that you have clear understanding as to what is going on with the ticket and claim.

Ideally speaking once we have the claim we should use it for authentication in other applications. However CRM Dynamics online does not support claims so we used the ticket thanks to the Microsoft for providing with this work around. The actual purpose of this blog is to set ground for using claims with CRM 2011 online as it supports claim based authentication. I will be writing about that soon. Happy coding !!!

Cloud and the offshore model

In my last post regarding Cloud computing https://raotayyabali.wordpress.com/2010/11/11/cloud-what-the-hype-is-all-about/ I promised that i will be writing more on the Cloud. I work for a company with an offshore office so I would like to look at cloud computing from the this perspective. What effect would cloud computing have on companies that have offshore model and how do such companies need to change to adapt to Cloud environment.

Cloud computing is nothing new for resources who have worked in the offshore model. In one of my recent engagement as CRM project manager we worked by setting up VMs for my developers. One night one of my developers called me to check why they were not able to connect to one of the machines. I explained that the machines they connected to were not physically present in the office because they were in remote data center. It is something that we have been doing for years to enable our offshore teams to work from remote locations. Offshore resources work by connecting to remote machines.  These remote machines for them are somewhere in the “CLOUD”. When the offshore model was in its infancy and the VMs were not available we would setup separate machines but subsequently with VMs it became easier as hardware cost also reduced for this model. So the business model was simple “services at reduced cost”. Of course this only covers one aspect of Cloud computing and the more compelling selling pitch of increased computational power was never addressed by the early pioneers of the offshore model. I think it was mostly because most of the businesses would not buy the idea of having their mission critical data in offshore locations. Time has changed and who knows maybe a Cloud offering at reduced cost with data centers in Ireland, China or Pakistan would be a good business plan. Anyways so although companies with offshore model need to reorient themselves to take advantage of cloud computational power yet they have loads of experience working on remote machines and are familiar with the problems Cloud environment has to offer.

Offshore developers have a lot to offer as they have worked with remote machines, VPN setups, integration between offshore and on campus applications, Firewalls, security issues and workarounds, authentication on remote servers and Data migrations. I was recently in a conference where one of the presenters described the authentication and impersonation requirements for an application to talk to another application on windows azure platform. Although the methodology described was new but the problem was an old one. So as far as technical know how is concerned Cloud is something that offshore model would embrace.

As far as the business side is concerned I already mentioned in my last blog that the cost on services need to be reduced. One way of doing that could be by developing IP and the other is of course to reduce cost on resources and increase IRR. Offshore model inherently offers great IRR per resource but offshore teams don’t necessarily do a great job building products and reusable services. So when i look at cloud i feel it’s a new opportunity for companies that outsource work load as with Cloud the outsourcing model would be more acceptable. However it’s also a matter of companies, with offshore business models, stepping up and making a case of partnering with other businesses so that they could sell their expertise. In order to do this they need to train their resources to take advantage of Cloud infrastructure and build applications that leverage the computational power available. 

Overall i feel its exciting times to be in the IT business and more so for companies with offshore model. In fact I feel that with Cloud every business model is an offshore model.