One-time Passwords (OTP): A Beginner’s Guide 20229th January 2019
The Art of Digital Identity13th February 2019
Managing Concurrency – How the Big Guns Do It
Managing concurrency effectively is essential for many independent software vendors. Suppliers need to be able to protect their IP and revenue streams by preventing software overuse, whilst at the same time ensuring that customers get a great user experience and can always access the applications that they’re entitled to use. However managing concurrency is not just an essential requirement for large-scale enterprise license agreements, many of us unknowingly encounter concurrency in the everyday consumer applications that we use.
One of the great things about Netflix is that you can easily share it with your nearest and dearest, and provided that you take it in turns, you and your friends and family can watch all 259 episodes of ‘Big Bang Theory’ for the price of a toffee nut latte. ‘Taking it in turns’ is what managing concurrency means from a consumer perspective, and Netflix provides a pretty awesome (and arguably pretty fair) customer experience on this front. If you pay to watch one screen at a time you can stream to one device at a time, and if you pay to watch 4 screens at a time, 4 people can all watch different content on different devices (in different locations) at the same time.
But how does Netflix manage concurrency and ensure that you are in fact ‘taking it in turns’ to watch Deadpool and that your concurrent user limit hasn't been exceeded?
In a commercial enterprise, concurrency is often managed using a concurrent use or floating license model, whereby a limited number of licenses for a software application are shared amongst a larger number of users. A concurrent user limit determines the number of simultaneous users that are allowed to access an application at the same time. With Netflix, managing concurrency occurs in the same way and the Netflix plan that you subscribe to dictates the number of screens you can watch at the same time. Therefore ‘screens you can watch on at the same time’ is synonymous with 'concurrent user limit'.
Take for example the standard plan, which allows you to watch on 2 screens at a time. When you start streaming content on one device, one of your licenses is checked out of your license pool and assigned to your device so that you can start watching. If another user accesses your account and starts streaming content to another device at the same time, a second license is checked out of the license pool, (this is completely transparent to the end-users). If a third person tries to stream content to a third device, they will receive an error message informing them that the account is being used on too many devices - in other words, the concurrent user limit has been exceeded and there are no licenses available.
To resolve this issue end-users have three options;
- Wait for a license to be checked back into the license pool - i.e. wait for another user to stop watching
- use the account management portal to ‘log out of all devices’, therefore terminating the current session for any active device, and forcing all licenses back into the licence pool.
- Increase the size of the license pool - i.e. upgrade to a higher subscription plan
licenses are not locked to a single machine and, as such, can ‘float’ on a network allowing users to gain access to an application or content from any device in a network on which the software or application is installed. In this case, your ‘network’ is you and the people that share your Netflix account. The number of concurrent licenses available determines the number of devices that can run the application concurrently.
Adobe Creative Cloud manages concurrency by strictly limiting the number of installations per license agreement. If you pay for an Adobe product you can install the apps available in Creative Cloud on up to two computers, as long as they’re not running at the same time. If you install on a third computer, you will be required to deactivate on the other two devices (and will need to reactivate the installation if you want to use Creative cloud apps on either of these two devices in the future).
Adobe is marketing their products as ‘creative cloud’, which should mean that they’re licensing the individual, not the device. ‘Two installs’ is probably a legacy feature; it’s the way that Adobe has always done it, but if others can figure out how to allow users to have their software follow them around the internet, then Adobe can figure it out too. Currently, they seem a bit behind the times and they run the risk of genuine users having to pay twice as much for their software in order to install their licenses on multiple machines. Either that or having to constantly activate/deactivate as they traverse machines and projects.
Despite using a more traditional licensing method and managing concurrency through the number of active installations, Adobe requires devices to regularly phone home anyway. After the initial activation with Adobe, you do have a time period with which you can be offline, but Creative Cloud requires you to regularly connect to the internet in order to check your subscription. Adobe defends their position by highlighting that ‘Creative cloud’ is not actually a ‘Software as a Service’ offering as it is not accessed through a web browser; which is fine - however use of the term ‘creative cloud’ would seem to be a misnomer. Team Fortress, Battlefield 3, MSOffice licenses via Office365, and anything sold via the Apple Appstore are some of the many examples of software installed onto our desktops, but who's licenses travel with the user, not the machine.
Personally, I do actively use Adobe on at least 3 machines and sometimes more where a client insists I use their hardware, and the usability of the Adobe service has been negatively impacted by me having to manage my licenses through constant activation and deactivation. Also if your subscription bounces around a lot you will get locked out, and reinstalling and reactivating on too many machines in a short space of time will eventually result in a call to the Adobe helpdesk.
Take a wander through the halls of the Adobe forums and you’ll find that I’m not alone in bemoaning the restrictive way that Adobe serves its customers - in fact it’s standing room only. The most frustrating thing is that an identity-based licensing solution could quickly and easily solve these access issues. Users are accustomed to having to regularly authenticate (passwords/mfa etc), in exchange for more flexible licenses that travel with them wherever they want. So in the modern cloud-based world, a ‘two-machine license’ seems strange. One of the key advantages of the cloud concept is that licenses can travel with the user and not be locked to a host machine.
At this moment in time, Spotify users are able to login to multiple devices and listen online without needing to change any settings or deactivate and activate installations. You can play Spotify through your car, smart speakers, games consoles (like playstation and XBOX), and TV. If you’re a premium customer, you can also download the app and listen to music offline on up to 3 different devices. Spotify is both downloadable software (like Adobe) and can be accessed through a web browser, (like Netflix).
With Spotify, managing concurrency for offline listening is node locked. Node-locked licensing is a software licensing term that means that a software application is assigned to one computer or dongle, in other words - one specific node. Spotify Premium users can sync music on up to 3 devices for offline listening and you can manage your devices manually through your online portal, by deactivating one device and adding another. During this process, you remove one (or all) of the nodes the application is ‘locked’ to, and lock it to a different node (or set of nodes). This locking process involves a digital signature, which includes the hardware ID of the device (such as a MAC address) combined with an access code, creating a unique electronic fingerprint, 'locked' to a specific device.
However, as well as using node-locking to limit offline listening, Spotify also manages concurrency uses a floating license mechanism whenever you’re connected to the internet. You can log in to multiple devices at the same time and even control the player from several devices at once, but when you’re connected to the internet you can only listen on one device at a time. If you try to playback on more than one device, one of them will be cut-off.
For example, try listening through the web browser on your computer and place your smartphone in flight mode. You will be able to listen to music that you've downloaded on your smartphone at the same time as playing back or streaming live through your web browser - provided, that your smartphone remains offline. As soon as your smartphone connects to the internet and Spotify notices that more than one device is trying to playback simultaneously, your smartphone will be cut-off.
Whenever you’re logged into Spotify and connected to the internet, your devices will continuously ‘call home’ to check for concurrent usage, even if you’re listening to music you’ve downloaded for offline listening. This seems to be a compromise from Spotify in order to provide the best balance between user experience and licence compliance.
Spotify music is licensed for "personal and non-commercial use” and Spotify is obliged to ensure adherence to the strict licensing terms and conditions of the music industry, by implementing strict listening limits on its users. This means ensuring as much as possible that your spotify accounts is ‘yours’ and yours only. The most reliable way to do this, (whilst at the same time ensuring a great user experience) is with an identity-based licensing solution, with playback for each authenticated user strictly limited to one device at a time.
Even with ‘Spotify family’, which allows concurrent listening for you and up to five people to who reside at the same address, each sub-account has its own set of identity-based access credentials. Whenever it can Spotify will check for concurrent usage and ensure playback on only one device at a time, however when this is not possible node-locking restricts offline listening to ‘reasonable usage’.
Managing Concurrency: Conclusion
With Netflix a pool of licenses is shared amongst a group of end-users, all of whom authenticate using the same access credentials. With the ‘Spotify family’ plan, each user gets their own sub-account, accessed via a set of unique login credentials. Each sub-account can be used to log-in to multiple devices, plus listen offline on up to three devices, but can only ever stream to one device at a time. In effect, each ‘sub-account’ gets its own individual license pool containing 1 license, which can be used across a network of devices. With Adobe users are strictly limited to two concurrent activations.
Managing concurrency, therefore, comes down to how an organisation defines its users and their networks and whether a floating licence mechanism is used. Sometimes applications can be installed on a seemingly endless number of devices including everything from computers to cars and even speakers, and other times every installation will be carefully restricted. When concurrency is handled badly either enterprises lose revenue or end-users are forced to endure poor user-experiences, either way, someone loses out.
Managing concurrency is everywhere and with the IoT, sharing economy and the ever-increasing scope of smart technology, product licensing will become more and more widespread in both B2B and B2C environments. Even with Spotify, who seem to have their licensing ducks in a row, attribute-based access controls haven’t been implemented, such as identity combined with attributes such as device location or an IP address. Speak to a licensing expert like 10Duke to gain granular control over your digital content and applications, based on what the device being used, location, content type, time and much much more.
Contact us now to schedule a free product demo.
Are you a software developer looking to sell more? Learn more from our guides:
You might also be interested in:
Managing concurrency effectively is essential for many independent software vendors. Suppliers need to be able to protect their IP and revenue streams by preventing software overuse.