Cos’è una licenza SDK?
Una licenza SDK (Software Development Kit) è ciò che consente a uno sviluppatore di software di acquistare e/o utilizzare legalmente un SDK.
I fornitori di software che desiderano che il loro prodotto sia facilmente integrato su altri programmi hanno bisogno di un buon modo per garantire la protezione del codice che forniscono agli sviluppatori. Le licenze SDK sono un po’ più complesse rispetto alle licenze di altri tipi di prodotti software, dunque gli SDK richiedono un modello di licenza intelligente e completo che fornisca il giusto tipo di sistema di protezione e monetizzazione.
Ma prima di addentrarci nei vari tipi di licenze SDK, torniamo un po’ indietro:
cosa vuol dire SDK?
SDK sta in inglese per Software Development Kit. Un SDK è fondamentalmente un codice già scritto che contiene tutti gli strumenti di cui uno sviluppatore ha bisogno per utilizzare software esistente che lo aiuti a creare una nuova applicazione.
Un SDK include generalmente un compilatore, un debugger e degli API (Application Programming Interface). Può anche contenere:
- Librerie
- Strumenti di test e analisi
- Driver
- Documentazione
- Editor
- Protocolli di rete
- Ambienti di sviluppo
Esempio di un SDK
Immaginiamo che tu sia uno sviluppatore di software e stia creando un’app che consenta a genitori e babysitter di valutare i parchi giochi del quartiere. Gli utenti saranno in grado di aggiungere all’applicazione parchi giochi da votare in base a sicurezza, pulizia e divertimento, e potranno indicare le caratteristiche di ogni parco: l’età consigliata per i giochi, le strutture incluse e così via. Vuoi che l’app includa una mappa che mostri dove si trova ogni parco giochi, ma svilupparne una tua sarebbe incredibilmente difficile, laborioso e costoso. Non solo, dovresti aggiornarla costantemente in modo che rifletta cambiamenti come nuove strade e regimi di traffico.
Quindi cosa si può fare?
Una soluzione semplice ed elegante è l’utilizzo dell'SDK di Google Maps. Google ha già creato un ottimo programma di mappe aggiornato di frequente. Inoltre, molte persone utilizzano la funzionalità di navigazione di Google Maps per trovare luoghi dove non sono mai stati o evitare il traffico. Utilizzando l’SDK di Maps per creare le mappe nella tua app, risparmieresti molto tempo e saresti in grado di integrare tutte le ottime funzionalità di Google Maps. Se gli utenti decidessero di visitare un nuovo parco giochi in base all’app, e avessero bisogno di aiuto per arrivarci, sarebbero in grado di muoversi facilmente tra l’applicazione e Google Maps.
Perché dovresti creare degli SDK?
Avrai sentito il vecchio detto: “Dai un pesce a un uomo e lo nutrirai per un giorno; insegnagli a pescare e lo nutrirai per tutta la vita”. Perché non insegnare all’uomo a pescare e poi vendergli l’esca, le lenze, le reti e tutte le altre attrezzature di cui ha bisogno per avviare la propria attività di pesca, così da farne un cliente fidelizzato per tutta la vita? Quest’uomo si nutrirà da solo e la sua attività nutrirà anche te.
Questo nuovo pescatore è il tuo client di sviluppo software e l’attrezzatura di pesca è l’SDK. Secondo Glenn Solomon, Managing Partner presso GGV Capital, il software alimentato da sviluppatori è la prossima ondata da mille miliardi di dollari. Persino le aziende meno tecnologiche stanno imparando che la creazione di un’app eccellente è un ottimo modo per far crescere il proprio business, ma non vogliono reinventare la ruota. Gli SDK consentono agli sviluppatori di creare ottime applicazioni minimizzando il tempo, gli sforzi e i fondi.
Quindi, se disponi di un ottimo prodotto che può facilitare la vita di quegli sviluppatori, puoi entrare in questo settore in rapida crescita sviluppando e distribuendo SDK.
Protezione degli SDK
Ora supponiamo che la tua società abbia sviluppato un software di navigazione persino migliore di quello di Google. Se vuoi che gli sviluppatori siano in grado di aggiungere le tue mappe nelle loro applicazioni, devi offrire loro un SDK.
Ma non vuoi offrire gratuitamente il duro lavoro della tua azienda. Per rendere redditizio il software che hai sviluppato, devi vendere agli sviluppatori il diritto di usare il tuo SDK. In altre parole, devi trovare un modo per concedere licenze SDK e addebitare agli utenti l’utilizzo.
Tipi di licenze SDK
Come funzionerebbe un sistema di gestione delle licenze SDK?
Praticamente, utilizzeresti una tecnologia simile a quella usata per autorizzare e proteggere altri tipi di software. La licenza SDK sarebbe un codice in grado di dare allo sviluppatore l'accesso al tuo SDK permettendogli di utilizzarlo in maniera legale e autorizzata. È così che funzionano tutte le licenze software.
La differenza fondamentale tra le licenze SDK e la maggior parte degli altri tipi di licenze software sta nel fatto che gli SDK hanno in realtà due utenti: lo sviluppatore che crea l’app e l’utente finale che la scarica e utilizza. Questa differenza può influenzare il tuo modo di monetizzare l’SDK.
Il codice di licenza può essere consegnato all’utente in modi diversi a seconda delle esigenze tue e dei tuoi clienti.
Licenze basate sull’hardware: dongle e chiavette USB
Alcuni produttori di software proteggono i propri SDK utilizzando hardware fisico come dongle e chiavette USB. L’hardware contiene il codice che attiva l’SDK per lo sviluppatore, il quale deve collegare l’hardware al dispositivo ogni volta che desidera utilizzarlo. I vantaggi di questo metodo risiedono nella sua sicurezza e nel fatto che non richiede una connessione a Internet. Purtroppo è un sistema piuttosto rigido, in quanto solo una persona in possesso del dispositivo fisico può utilizzarlo ed è possibile utilizzare solo un dispositivo con la chiave inserita per accedere all’SDK.
Inoltre, non è possibile utilizzare questo metodo per monitorare l’utilizzo degli utenti finali. Useresti questo metodo se volessi addebitare agli sviluppatori l’utilizzo del tuo SDK senza legarlo al numero di utenti finali che scaricano e utilizzano il prodotto sviluppato con esso.
Licenze basate sul cloud
Altri fornitori di software trovano più pratico proteggere i propri SDK utilizzando licenze online scaricabili sul dispositivo del cliente. Il vantaggio principale di questo modello è la sua maggiore flessibilità e il fatto che include una serie di opzioni non disponibili quando si utilizzano licenze basate sull’hardware:
Licenze SDK a utilizzo singolo
Queste licenze possono essere utilizzate da un solo utente. Potresti scegliere di legare la licenza al dispositivo o a un utente specifico che acceda con certe credenziali, o anche al numero di utilizzi facendo pagare il cliente ogni volta che viene installato l’SDK.
Licenze floating o simultanee
Questo modello è particolarmente flessibile: il cliente può acquistare un certo numero di licenze da utilizzare in contemporanea. Ad esempio, se uno sviluppatore ha 5 membri del team che lavorano alla parte dell’app che comprende il tuo SDK ma solo 2 devono accedervi allo stesso tempo, può acquistare 2 licenze simultanee. Quando un membro del team deve utilizzare il tuo SDK, scarica una licenza da un server remoto e la “restituisce” quando ha finito. Se un terzo membro del team richiede una licenza mentre entrambe sono già in uso, deve aspettare fino a quando una è stata restituita al server.
Addebitamento per utilizzo finale
Invece di addebitare allo sviluppatore il suo uso dell’SDK, puoi decidere di farlo in base al numero degli utenti finali che utilizza il codice sviluppato con il tuo SDK. Questo significa che l’ammontare pagato dallo sviluppatore dipende dal successo del suo prodotto. Questo modello potrebbe essere più interessante per gli sviluppatori con un budget ridotto o una maggiore avversione al rischio.
Il modello adatto varia da sviluppatore a sviluppatore e da SDK a SDK. Potresti anche offrire più opzioni per soddisfare al meglio le esigenze di diversi clienti.
Esempio di licenza SDK
Tornando al nostro esempio di software di navigazione, lo sviluppatore ha alcune opzioni per la licenza dell’SDK.
L’SDK di Google Maps, ad esempio, addebita per utilizzo finale. L’SDK di Maps per Android è gratuito per qualunque utilizzo ma se uno sviluppatore usa Dynamic Street View, l'addebito avviene secondo un tariffario progressivo: 14 dollari ogni 1.000 istanziazioni di un oggetto panorama fino a 100.000 instanziazioni, poi 11,20 dollari ogni 1.000 per le prossime 400.000. Per volumi superiori, agli sviluppatori viene richiesto di contattare il dipartimento di vendite di Google.
Come monetizzare l’SDK? Dipende dai clienti, dal mercato, dalla concorrenza e da svariati altri fattori. Se l’SDK di Google Maps è gratuito ma Dynamic Street View viene fatto pagare in base al numero di istanziazioni, devi adottare un modello di licenze di SDK competitivo. Ad esempio:
- Utilizza lo stesso modello, ma chiedi di meno
- Utilizza un modello diverso che risponda meglio alle esigenze di una certa nicchia
- Offri un valore qualità/prezzo migliore rispetto a Google, e fai in modo che i tuoi clienti lo sappiano
Sentinel di Thales può aiutarti a sviluppare il modello perfetto di licenze SDK
Determinare come concedere in licenza e vendere il tuo SDK può essere difficile, e implementare il modello di licenza può esserlo ancora di più. Sentinel LDK (Licensing Development Kit) offre una soluzione per la monetizzazione del software completa e pronta all’uso che ti permette di proteggere il tuo SDK, massimizzare i ricavi, semplificare i processi operativi e migliorare l’esperienza d’uso. Sentinel di Thales può aiutarti a capire quale modello di licenza è più adatto alle esigenze tue e dei tuoi clienti, implementandolo quindi perfettamente e permettendoti di iniziare ad aumentare i ricavi e raccogliere i frutti del tuo duro lavoro.
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...