Creazione di un prodotto IoT: qual è il modo migliore per evitare la condivisione di codice proprietario interno?


10

Penso che sia stato difficile per me formulare il titolo. Tuttavia, posso ancora spiegare il mio problema in modo più dettagliato qui.

Sto progettando un prodotto incorporato che consiste in un servizio cloud e hardware incorporato. Il servizio cloud avrà un REST-api (anche se non è il punto vendita) e comunicherà con l'hardware incorporato. Idealmente, l'hardware incorporato avrebbe anche un'interfaccia simile a REST per la comunicazione. Il problema è trovare un buon stack software (o questo è quello che penso sia il problema).

L'opzione migliore secondo me sarebbe una sorta di distribuzione Linux integrata con la sua app Web installata all'interno (Ubuntu Core + Django ...?). È in qualche modo possibile utilizzare questa combinazione in un prodotto commerciale ma allo stesso tempo tenere chiusa la webapp?

Il sito Web Ubuntu offre più piattaforme supportate e alcune sembrano ideali per il mio caso d'uso. Come ho detto prima, la mia principale preoccupazione al momento è la licenza.


2
Potete chiarire cosa è probabile che distribuiate o vendiate? Interno / esterno e derivato o risultato sono tutti rilevanti quando si tratta di licenze.
Sean Houlihane,

Spiacente, non ho notato il commento. Il software sarà un semplice web server realizzato in django o nodejs, che conterrà tutto l'essenziale per il progetto. Ubuntu Core sarebbe solo la piattaforma su cui implementare.
Nikolas,

Risposte:


7

Prima di tutto, nota che non sono un avvocato. Prendi uno se pensi di aver bisogno di consulenza legale. La licenza è una di queste aree in cui la consiglierei.

Le licenze open source variano notevolmente in ciò che consentono. Usiamo l'esempio di una libreria che stai utilizzando (non modificata) nel tuo progetto. Due licenze comuni che potresti trovare sono GPL e LGPL, che variano a seconda di come trattano questo problema. Da questo articolo , ad esempio:

Il progetto GNU ha due licenze principali da usare per le biblioteche. Uno è la GNU Lesser GPL; l'altro è il normale GNU GPL. La scelta della licenza fa una grande differenza: l'uso della Lesser GPL consente l'uso della libreria in programmi proprietari; l'uso della normale GPL per una libreria lo rende disponibile solo per programmi gratuiti.

Altri esempi di licenza che sono un po 'più aperti a questo proposito includono MIT e BSD.

Un sacco di software Linux è GPL, e questo probabilmente includerà componenti di qualsiasi sistema operativo selezionato (ad es. Ubuntu Core). Tuttavia, fintanto che il tuo progetto non è considerato un lavoro derivato da questi progetti, non dovresti esserne interessato. Maggiori informazioni in questa risposta .

Da questo punto di vista, l'utilizzo di Ubuntu Core per il tuo prodotto non dovrebbe influire sul fatto che l'applicazione fornita o meno sia aperta o chiusa. In effetti, impacchettare la tua applicazione in un attimo è un buon modo per distribuire BLOB binari.

Probabilmente lo hai considerato, ma dal punto di vista tecnico, se spedisci uno snap Python usando Django, lo snap non sarà BLOB binari: per impostazione predefinita il tuo codice sarà disponibile per chiunque voglia vederlo (sia scaricando il contenuto del disco o ottenendo in qualche modo l'accesso alla shell). Potresti invece voler offuscare o spedire il bytecode, ecc.


1
Questo potrebbe essere qualcosa che stavo cercando. Immagino che il software possa essere considerato un lavoro non derivato poiché tutte le funzionalità non banali avvengono all'interno di Django. Inoltre, non è possibile spedire gli snap da un repository privato? In tal caso, non importa che ci sarebbe codice Python disponibile.
Nikolas,

2
Oh certo, puoi mantenere lo snap privato per quanto riguarda il negozio, ma sto dicendo sul dispositivo che è ancora codice Python a meno che tu non faccia qualcosa al riguardo. Considera che chiunque abbia accesso fisico al dispositivo può probabilmente guardare ciò che è in esecuzione su di esso, incluso lo snap.
Kyle,

1
Ah, è corretto. Stavo pensando di far funzionare il dispositivo in modalità senza testa (pensa Samsung ARTIK) quindi forse questo non sarà un grosso problema. Naturalmente, se si desidera DAVVERO entrare nel dispositivo, ciò può o meno impedirlo. Ma su larga scala penso che questa soluzione basterà ...
Nikolas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.