because I needed to find out how the web services are counted in connection with sessions in license, I needed to do some tests on this. And because the result is different than we were used to from older NAV versions, I want to share the results with you.
1) Multiple clients for one user
May be you have already noticed, that one user could run multiple copies of the client without having impact to number of used sessions. It means, even when you have bought 10 sessions, you can have 100 sessions in session list easily and it will be legal, but only if there is 10 users (10 NAV logins used, 10 physical users sitting on their chairs using the clients) running these 100 NAV clients.
How it works: When user run his first client, system will look into his counters (one counter for full licenses, one for limited licenses) and if there is free license for the given type of user (full/limited), it will assign one license to this user (and it is really connected to the user login name). If same user runs another client, it will not assign another license, because one was already assigned. After the user close all his clients (connections to the service tier), the license is released and could be used by another user.
2) Web services
And what about web services (WS)? If you look at WS as just short call to NAV, which can take e.g. 1 second, how the “concurrency” is counted? With web services, there is special handling used. When there is first incoming WS call for some specific user (each WS call must authenticate as some user in NAV), the license check is performed like in case 1. But because the WS call is short, the license is not assigned only for the WS call duration, but for Full license, it is assigned for next 2 hours and for limited it is assigned for 15 minutes. It means, if there is another WS call for same user during this time, it will use same license. If there is WS call for another user, another check and license assigning process is done again. If same user run NAV client during this time, it will consume same assigned license. If the user close the NAV client, the license is released immediately. It means, one short WS call for user with full license will consume one license for 2 hours and you can release it only by starting and closing NAV client for this user (or, of course, by restart of the server).
3) Web services and limited user license
I needed to know how the “3 table modifications” are counted in WS calls with limited users. Thus I made short test app for this. Result is, that each WS call has own “3 modified tables” counter. It means that you can modify different 3 tables in each WS call, even when the calls are consuming only one license. It means, 3 tables are counted per “session”.
Ok, previous points can lead you to conclusion, that you are able to cover many users with only few licenses if they will use same user login. E.g. when you have Webshop using webservices to work with NAV, connecting through one user account in NAV. In this case, one thing is physical limitation done by the NAV, but another is licensing agreement. And there is one paragraph regarding multiplexing (which is covering these situations) telling you that it is forbidden:
Multiplexing is the use of hardware or software (including manual procedures) to reduce the number of users that directly access the Microsoft Dynamics ERP solution by pooling connections. Multiplexing does not reduce the number of Access Licenses required. Any user that directly or indirectly reads from or writes to the ERP solution’s database in real-time mode or via batch whether connecting individually or through a data consolidation process must be licensed with the appropriate access license type in compliance with the Software License Terms.
Note: Licensed users may manually rekey information (coming from non-licensed users) into the Microsoft Dynamics ERP solution. This scenario is not considered to be multiplexing.
5) Web services possible problems with licenses
All these things could make problems. Because there is no separation between licenses for NAV clients and Web services, you could be in situation, when your whole B2B solution or another external app will not work until some user will close all his NAV clients. Because if you restart your NAV server and your users will consume all licenses before first WS call, the web will not have assigned license and will need to wait for one… and it could kill your solution.
We need to make distinction between “License” (CAL) and NAV “Session”. In classic client CAL and Sessions was 1:1. Now, for one CAL you can have multiple sessions in NAV. CAL is assigned to users based on their NAV user account. If WS is used, it will take CAL like as any other NAV client, but will not release it after “closing” the WS call, but after timeout (2 hours for full CAL, 15 minutes for limited CAL), or after closing all running NAV clients of the user. In cases, where more users are connected through one session, you still need to use correct CAL count (event when this is not systematically enforced) because multiplexing is not allowed.
I hope that it will help you to understand correctly how all this is working and how you need to handle licensing regarding web services. The world is changing and nothing is same like before…