Public Day at TechFest 2008

Last week, I spend at Microsoft’s TechFest presenting the work done at Microsoft Research Cambridge over the lat 12 months. Rob Knies gives a overall insight into our research at the community sites of Microsoft Research. I just surfed onto another article written by Briony Smith for itWorldCanada telling about what we showed there, well as the official press statement about our research.

The Microsoft Robotics Studio Licensing Model


It looks like there is some confusion about the licensing model of the Microsoft Robotics Studio and the CCR. To make things a bit more visible you must be aware of the two different licenses available for the MSRS. on the one hand there is a Microsoft Robotics Studio Non-Commercial License providing you free usage of the runtime for non-commercial purposes as well as a Microsoft Robotics Studio Commercial License if you are going to make money out of it. If you going to ship your robots including the runtime, you must purchase the license to distribute the runtime with it. There is a fee of $2 for each unit you sell. So if you are going to buy three dev licenses they already include 600 units to be sold and distributed. Of course you can see this the other way around: For each 200 units you sell (and therefore purchase a commercial license) you’ll get one developer seat for free.

The first question is if it is possible to use the CCR for something else than robotics, and the answer is clearly given by the MSRS Architect George Chrysanthakopoulos in the MSRS Team blog. Furthermore, the CCR can be used independently of the MSRS as you can read in the forums.

But what is if the developer wants to make use of CCR within his/her product and the CCR runtime is NOT part of the distribution. Has the end-user to agree the non-commercial license of the MSRS. What’s about the developer then?

In the following let’s have a look at several scenarios which should clarify the new licensing model. These examples are a result of a discussion with George Chrysanthakopoulos, architect of the Microsoft Robotics Studio, Henrik Frystyk Nielsen as well as Tandy Trower who is leading the Microsoft Robotics Initiative. However, this is no legal text, not approved by anybody and might be simply wrong. This should only give you an overview of the licensing model and represents my very personal current view of the licensing model. Read the licenses carefully, in any case of doubt contact Microsoft directly. Anyway let’s have a look at several scenarios about using the Microsoft Robotics Studio licensing model. There is going to be a official FAQ soon covering the scenarios below.

  1. Company ‘A’ is building an application based on the MSRS/CCR/DSS. The company is going to sell is product but he does not include the MSRS/CCR/DSS runtimes in the package: They need one commercial license per developing seat. In the case of 3 developers in the team they need 3 licenses. This includes 600 runtime licenses they could use in their own company.
  2. Company ‘B’ is building an application based on the MSRS/CCR/DSS, They are going to sell and distribute this product including the MSRS/CCR/DSS runtimes. They need to purchase a commercial license per developing seat respectively one for each 200 units he is shipping. The commercial license covers 200 units of runtime distribution. The number of licenses depends on the number of developer seats or runtime units (which ever is greater). In other words, if they have 3 developer seats, they must purchase 3 commercial licenses regardless of how many runtimes they distribute. But if they do, they have 600 units of runtime to distribute (3 x 200). Similarly if they have one developer, but needs 500 units of runtime, he would have to purchase 3 licenses.
  3. Customer ‘C’ is using the product of company ‘A’ for some non-commercial purposes. He downloads the MSRS and agrees the non-commercial license. This customer is also limited on deployment of the runtime on up to 10 personal devices (PCs, robots, etc.) and is not permitted to use the software in a “live” operating environment.
  4. Customer ‘D’ is using the product of ‘B’ for non-commercial use. He is not downloading the MSRS since the MSRS/CCR/DSS runtime is shipped with the product. He agrees to the TOC/EULA of company ‘B’. Nothing else is necessary.
  5. Customer ‘E’ is using product of ‘A’ in his company on 5 computers for operative business. He does not make direct money out of it since the customers don’t have access to these computers, but the software is used within his business (e.g. back office). He purchased the product from ‘A’. He downloaded the MSRS. It does not matter that he does not sell. He is using it for commercial purpose and thus, since he downloaded MSRS and the runtime, he must pay for at least 1 commercial license (to cover the 5 runtimes). The distinction between #3 and #5 is that ‘E’ is using MSRS for commercial purposes. If he did not get the runtime from the vendor ‘A’ (as ‘D’ did) he will need it, so he must purchase a commercial license.
  6. Customer ‘F’ is using product of ‘A’ in his company by providing MSRS services to his customers. He purchased the product from ‘A’. He downloaded the MSRS. He has to purchase additional commercial MSRS licenses. If ‘F’ is developing MSRS services for his customers, regardless of whether he charges for them or not, he needs a license (see #2). However, if he is simply a distributor of ‘A’ (and adds no additional services), then he does not need a commercial license, provided that ‘A’ did have a commercial license. Downloading MSRS is not the key here. It is whether he creates his own services around MSRS that does. For example, if you are a consultant, and you simply reference sell ‘A’s’ products, but add no services or otherwise use MSRS , you would not need a commercial license.
  7. Customer ‘G’ is using product of ‘B’. He is using the product in his company, not making direct money out of it. But the product is used as business-relevant component in his back-office on 5 servers. That cost was paid already by Company ‘B’ and thus he has not to purchase any additional commercial licenses. Customer ‘G’ does not need to pay anything extra. However, ‘B’ better make certain he considers the 5 servers that ‘G’ runs as 5 copies of our runtime as far as his license goes. ‘B’ can’t license only 200 copies, but give his customers unlimited rights to copy. Every copy ‘B’ licenses to his customers are part of his copies. So if he give G rights to put it on 5 servers, ‘B’ has used up 5 of his copies.
  8. Customer ‘H’ is using product of ‘B’. He is using this product to sell consulting services to his customers. The CCR runtime was included in the package he got from ‘B’. As long as he does not distribute any more of Company’s ‘B’ products and he is not developing own MSRS/CCR/DSS products he does not have to purchase any additional licenses.

There are simple rules to follow: Whenever you are going to make money out of the MSRS you have to purchase a commercial license. It does not matter whether you are selling MSRS services our just developing or running them. Luckily the commercial license includes both: the right to distribute and run as well as to develop MSRS services.

Also, the above described scenarios cover all the runtime files mentioned in the runtime.txt in the MSRS folder, which are in detail:

  • ccr.core.dll
  • ccr.adapters.winforms.dll
  • dssbase.dll
  • dsscmdargs.dll
  • dssruntime.transform.dll
  • dssruntime.proxy.dll
  • dssruntime.dll
  • dsshost.exe
  • dsshost.exe.config
  • microsoft.cci.dll

Microsoft Goes OSI

It looks like Microsoft heads to submit its Shared Source Licence to the OSI. If the Shared Source License satisfies the of the Open Source definition Microsoft will become a effective member of the Open Source community. After CodePlex, this seems to be the right step to satisfy the needs of the the community. Therefore, Microsoft release a new Open Source related webpage including a feed.

Microsoft eScrum 1.0

In case you missed Microsoft eScrum:

“eScrum is a Web-based, end-to-end project management tool for Scrum built on the Microsoft Visual Studio Team Foundation Server platform. It provides multiple ways to interact with your Scrum project: eScrum Web-based UI, Team Explorer, and Excel or Project, via Team Foundation Office Integration. In addition, it provides a single place for all Scrum artifacts such as product backlog, sprint backlog, task management, retrospective, and reports with built-in context sensitive help.”