I am not sure how much further Microsoft can go with the Client Access License (CAL) concept as the way of charging per user for services.
Of course they are very clever people, and I am sure they have a cunning plan. But for the moment it is very complex to work out the cost of providing services like SharePoint with Microsoft technologies.
Microsoft would like every user of a service to have a CAL. So you have a base Windows CAL because all MS services run on Windows. Then you have extra CALs for using SQL Server, SharePoint Server, Exchange Server, Terminal Server etc.
Within the enterprise this all makes sense, and the cost is softened by volume licensing agreements that bundle client licenses into one.
A key point is that the CAL entitles the user to use the service on any number of servers, as long as the server is licensed on a per-user rather than a per-server basis. So in the enterprise the user has one CAL for Windows Server allowing them to access any Windows Server in the enterprise.
However the basic idea of the CAL does not work so well outside the enterprise. Firstly, on economic grounds. It is one thing to have a few thousand CALs for employees. But if you have a few hundred thousand users of an Internet service you can’t pay for a CAL for each of them. You might say, why shouldn’t they cost the same? But an internet user may use the service very infrequently, and may not be using the full range of services available to the enterprise user. For example, an internet user is not benefitting from Print services, DFS, Replication, and all the other built-in Windows features. Because users are not using the full features, the alternative services from Open Source or third-parties do much the same, at much lower per-user costs. Similarly an Exchange CAL makes sense if you are using the full range of Exchange services in the enterprise, but not for an internet mail service using open standards like IMAP.
Secondly, on practical grounds. Microsoft are defining the CAL boundary in terms of the user’s contract of employment. They are saying that employees need a CAL, and non-employees are covered by something called a Connector license or an Internet license. In the case of SharePoint for example, you require SharePoint Internet Edition to provide services to non-employees, at a very large cost. The Internet edition must run on a separate server, and must not be accessible to employees. Similarly you would need an internet-valid licence for SQL. But employment is getting to be a very old-fashioned concept in defining people’s working relationships. What would this mean if you had a joint venture with staff from five different companies working on the same project? I am sure it is all defined somewhere in Microsoft’s license agreements, but it is not easy to work out what the license costs should be if you set up an extranet. Of course you can ask Microsoft, but that’s a bit like saying "how much do I owe you?".
To use SharePoint Server 2007 for an extranet you might need:
- Windows Server CALs per employee
- SharePoint Server CALs per employee
- Windows Server External Connector per server
- SharePoint Server Internet edition per server
- SQL Server processor licenses for both internal and external users, or CALs per user (employee or not)
- Forms Server 2007 for Internet sites is licensed per server and does not require CALs.
Then you need to think about what you may need for development and testing. And the licensing for passive standby servers.
Where is this all going? Microsoft are talking a lot about providing their software as services. I think that is all about CALs. When the internet is as fast as the LAN, and when it makes sense for someone else to be running the infrastructure (since it is all the same) then CALs don’t really work any more.