Qu’est-ce qu’une licence SDK ?
Une licence SDK (kit de développement de logiciel, Software Development Kit en anglais) est ce qui permet à un développeur de logiciels d’acheter et/ou d’utiliser légalement un SDK.
Les fournisseurs de logiciels qui souhaitent que leur produit soit facilement intégré à d’autres produits logiciels ont besoin d’un bon moyen de garantir que le code qu’ils fournissent aux développeurs est protégé. L’octroi de licences pour les SDK est un peu plus complexe que pour un autre type de produit logiciel. Les SDK nécessitent donc un modèle de licence intelligent et complet qui offre le bon type de protection et de système de monétisation.
Mais avant de nous plonger dans les différents types de licences SDK, revenons un peu en arrière :
Que signifie SDK ?
SDK signifie kit de développement de logiciel, soit Software Development Kit en anglais. Un SDK est essentiellement un code pré-écrit qui contient tous les outils dont un développeur a besoin pour utiliser un logiciel existant afin de l’aider à créer une nouvelle application.
Un SDK comprend généralement un compilateur, un débogueur et des API (interfaces de programmation d’applications). Il peut aussi contenir :
- Des bibliothèques
- Des outils de test et d’analyse
- Des pilotes
- Des documents
- Des éditeurs
- Des protocoles réseau
- Des environnements de développement
Qu’est-ce qu’un exemple de SDK ?
Disons que vous êtes un développeur de logiciels qui crée une application sociale pour les aires de jeux qui permet aux parents et aux responsables des enfants d’évaluer les aires de jeux du voisinage. Les utilisateurs pourront ajouter des aires de jeux à l’application et les noter en fonction de la sécurité, de la propreté, de l’accessibilité et de l’amusement. Ils pourront également indiquer les caractéristiques de chaque aire de jeux : les âges auxquels elle convient, les équipements qu’elle comprend, etc. Vous souhaitez que l’application inclue une carte indiquant l’emplacement de chaque aire de jeux, mais le développement de votre propre fonctionnalité de cartographie serait incroyablement difficile, long et coûteux. De plus, vous devrez constamment la mettre à jour pour refléter les changements tels que la construction de nouvelles routes, les nouvelles dispositions de circulation, etc.
Alors, que fait le développeur ?
Une solution simple et esthétique consiste à utiliser le SDK de Google Maps. Google a déjà fait tout le travail nécessaire pour créer un programme de cartes robuste et régulièrement mis à jour. En outre, de nombreuses personnes utilisent la fonctionnalité de navigation de Google Maps pour se rendre à des endroits qu’elles ne connaissent pas ou pour éviter la circulation. En utilisant le SDK Maps pour créer la fonctionnalité de cartographie dans votre application, vous gagnerez beaucoup de temps et pourrez intégrer toutes les excellentes fonctionnalités de Google Maps dans votre application. Les utilisateurs pourront passer de manière transparente de votre application à Google Maps s’ils décident de visiter une nouvelle aire de jeu en se basant sur les critiques et qu’ils ont besoin d’aide pour s’y rendre.
Pourquoi devriez-vous créer des SDK ?
Vous connaissez le vieil adage : « Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson ». Imaginez que vous appreniez à cet homme à pêcher, puis lui vendiez les appâts, les lignes, les filets et tout le reste de l’équipement dont il a besoin pour créer sa propre entreprise de pêche, et qu’il devienne un client fidèle à vie. L’homme se nourrit lui-même, et son entreprise contribue à vous nourrir aussi.
Le nouveau pêcheur est votre client développeur de logiciels, et l’équipement de pêche est votre SDK. Selon Glenn Solomon, associé directeur de GGV Capital, les logiciels pilotés par les développeurs représentent la prochaine vague logicielle de plusieurs milliards de dollars. Même les entreprises les moins avancées sur le plan technologique savent que la création d’une très bonne application est un excellent moyen de développer leur activité, mais elles ne souhaitent pas reproduire ce qui a déjà été fait. Les SDK permettent aux développeurs de créer de bonnes applications avec un investissement minimal en temps, en efforts et en argent.
Donc, si vous possédez un excellent produit qui peut faciliter la vie de ces développeurs, le développement et la distribution de SDK est le bon moyen de participer à ce secteur en pleine expansion.
Protection SDK
Supposons maintenant que vous ayez une entreprise ayant développé un logiciel de navigation encore meilleur que celui de Google. Vous voulez que les développeurs puissent ajouter vos cartes dans leurs applications : vous devez donc leur proposer un SDK.
Mais vous ne voulez pas donner gratuitement le travail de votre entreprise. Pour rentabiliser le logiciel que vous avez développé, vous devez vendre le droit d’utiliser votre SDK aux développeurs. En d’autres termes, il vous faut un moyen de délivrer des licences SDK et de les faire payer aux utilisateurs.
Types de licences SDK
Comment fonctionnerait un système de gestion des licences SDK ?
Il s’agit essentiellement d’utiliser une technologie similaire à celle utilisée pour l’octroi de licences et la protection d’autres types de logiciels. La licence SDK consisterait en un certain code qui donnerait au développeur l’accès à votre SDK et lui permettrait de l’utiliser de manière légale et autorisée. C’est ainsi que fonctionnent toutes les licences de logiciels.
La principale différence entre les licences SDK et la plupart des autres types de licences de logiciels est que les SDK ont en fait deux utilisateurs : le développeur qui crée l’application et l’utilisateur final qui télécharge et utilise l’application. Cette différence peut influencer la façon dont vous pouvez choisir de monétiser votre SDK.
Le code de licence peut être remis à l’utilisateur de différentes manières, en fonction de vos besoins et de ceux de vos clients.
Licences basées sur le matériel : clés USB et dongles
Certains fournisseurs de logiciels choisissent de protéger leurs SDK à l’aide de matériel physique tel que des clés USB et des dongles. Le matériel contient le code qui active le SDK pour le développeur, qui doit donc avoir le matériel branché sur son appareil lorsqu’il veut utiliser le SDK. Les avantages de cette méthode sont la sécurité et l’absence de dépendance à une connexion Internet. Ses inconvénients sont qu’elle est assez rigide, puisque seule une personne en possession du dispositif physique peut l’utiliser, et qu’un seul dispositif avec la clé branchée peut être utilisé pour accéder au SDK.
En outre, cette méthode ne peut pas être utilisée pour suivre l’utilisation des utilisateurs finaux. Vous pourriez utiliser ce modèle si vous vouliez faire payer les développeurs pour l’utilisation de votre SDK sans le lier au nombre d’utilisateurs finaux qui téléchargent et utilisent le produit développé avec celui-ci.
Licences basées sur le cloud
D’autres fournisseurs de logiciels trouvent plus pratique de protéger leurs SDK en utilisant des licences en ligne qui peuvent être téléchargées sur l’appareil du client. Le principal avantage de ce modèle est qu’il est beaucoup plus flexible et qu’il présente une variété d’options qui ne sont pas disponibles avec des licences basées sur le matériel :
Licences SDK à usage unique
Ces licences ne peuvent être utilisées que par un seul utilisateur. Vous pouvez choisir de lier la licence à un appareil spécifique, à un utilisateur spécifique qui s’est connecté avec des informations d’identification spécifiques ou simplement en fonction de l’utilisation, en facturant le client à chaque fois que le SDK est installé.
Licences simultanées ou flottantes
Ce modèle est particulièrement flexible : le client peut acheter un certain nombre de licences qui peuvent être utilisées en même temps. Ainsi, par exemple, si un développeur a 5 membres d’équipe travaillant sur la partie de l’application qui implique votre SDK mais que seuls 2 d’entre eux doivent travailler dessus en même temps, il peut acheter 2 licences simultanées. Lorsqu’un membre de l’équipe a besoin d’utiliser votre SDK, il télécharge une licence à partir d’un serveur de licences distant et la « renvoie » lorsqu’il a fini de l’utiliser. Si un troisième membre de l’équipe demande une licence alors que les deux licences achetées sont en cours d’utilisation, il doit attendre qu’une des licences ait été rendue au serveur.
Tarification par utilisation finale
Au lieu de facturer le développeur pour sa propre utilisation de votre SDK, vous pouvez choisir de le facturer en fonction du nombre d’utilisateurs finaux qui utilisent le code qu’il a développé avec votre SDK. Cela signifie que le montant que le développeur paie pour utiliser votre SDK dépend du succès de son propre produit. Ce modèle peut être plus intéressant pour les développeurs ayant un budget plus faible ou une aversion au risque plus élevée.
Le bon modèle varie grandement d’un développeur à l’autre et d’un SDK à l’autre. Vous pouvez même proposer plusieurs options pour répondre au mieux aux besoins des différents clients.
Exemple de licence SDK
Pour en revenir à notre exemple de logiciel de navigation, le développeur de logiciel a plusieurs options pour l’octroi de licences pour son SDK.
Le SDK Maps de Google, par exemple, est facturé à l’utilisation finale. Maps SDK pour Android est gratuit pour toutes les utilisations, mais si un développeur utilise Dynamic Street View, il est facturé selon un barème dégressif : 14 dollars par 1 000 instanciations d’un objet panorama jusqu’à 100 000 instanciations, puis 11,20 dollars par 1 000 pour les 400 000 suivantes. Pour une utilisation plus importante, les développeurs sont invités à contacter le service commercial de Google.
Comment allez-vous monétiser votre SDK ? Cela dépend du profil de votre clientèle, de votre marché, de vos concurrents et de toute une série d’autres facteurs. Si le SDK Maps de Google est gratuit, mais que Dynamic Street View est facturé par instanciation, vous devrez adopter un modèle de licence SDK compétitif. Par exemple :
- Utilisez le même modèle à un moindre prix
- Utilisez un modèle différent qui répond mieux aux besoins d’une certaine niche
- Offrez une valeur ajoutée que Google n’offre pas, et faites-le savoir à vos clients
Thales Sentinel peut vous aider à développer le modèle de licence SDK idéal
Déterminer le mode d’octroi de la licence et de vente de votre SDK peut être un défi de taille, et la mise en œuvre du modèle d’octroi de la licence peut l’être encore plus. Sentinel LDK (kit de développement de licence, License Development Kit en anglais) est une solution de monétisation de logiciel complète et prête à l’emploi qui vous permet de protéger votre SDK, de maximiser vos revenus, de simplifier les processus opérationnels et d’améliorer l’expérience utilisateur. Thales Sentinel peut vous aider à déterminer le modèle de licence qui répondra le mieux à vos besoins et à ceux de vos clients, puis à mettre en œuvre ce modèle de manière transparente afin que vous puissiez commencer à augmenter vos revenus et à récolter les fruits du travail de votre entreprise.
Simplify Internal Licensing Processes - Herta Case Study
Simplify Internal Licensing Processes While Embracing Flexible Licensing - HERTA Case Study HERTA Security Imagine a software technology that could automatically identify individuals that pose a threat to safety and security – by scanning crowds of people on the...