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 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.”

UK DPE WPF WMF

Beyond this truly epic acronym is a video done by the Microsoft UK DPE team about WPF and corporation between designers and developers in practice. Since I am dealing with WPF for a while I also looked at Microsoft Expression Blend which is coming soon.

“The UK MCS User Experience team and a number of UK partners have been working on WPF for over 12 months and this Real World WPF series is intended to show some of their work and capture/share some of their learnings. Nick Page talks to Martin Grayson and Paul Tallett from the UK MCS User Experience team about their experiences working on real world WPF applications and specifically how Designers and Developers have worked together on these projects.”

Robotics Studio: Additional Shader Files for NVidia GeForce Go 5200

Due to some issues with the NVidia GeForce Fx Go 5200 graphics card of the Toshiba m200 Tablet PC, I got some modified shader files for this card, with permission to put them on the Channel9 sandbox.

“Together with the Redmond group we did some experiments using several different shader files with the Robotics Studio Simulation Environment and a NVidia GeForce Fx Go 5200 graphics chips with 32MB memory as it is found on the Toshiba m200 Tablet PC”

The archive contains two shader files. Unpack and copy the files into the folder store\media within your MSRS directory.

I have tested these files with the chipset mentioned above and the November CTP of the Robotics Studio.

As it works with the mobile version of the chipset, the shaders may also work with the NVidia GeForce Fx 5200 as well as with other chipsets. Please contribute in testing your graphics card (as it does not work with the November CTP) and let the team know if your graphics card does run the simulation with these shader files.”

The files can be downloaded directly from Channel9.