Je pense qu'il m'a été difficile de formuler le titre. Cependant, je peux toujours expliquer mon problème plus en détail ici.
Je conçois un produit embarqué qui se compose d'un service cloud et d'un matériel embarqué. Le service cloud aura une API REST (bien qu'il ne soit pas disponible) et il communiquera avec le matériel embarqué. Idéalement, le matériel embarqué aurait également une interface de type REST pour la communication. Le problème est de trouver une bonne pile logicielle pour cela (ou c'est ce que je pense être le problème).
La meilleure option à mon avis serait une sorte de distribution Linux embarquée avec sa propre application web installée à l'intérieur (Ubuntu Core + Django ...?). Est-il possible d'utiliser cette combinaison dans un produit commercial tout en gardant la webapp à l'intérieur fermée?
Le site Web Ubuntu fournit plusieurs plates-formes prises en charge et certaines d'entre elles semblent idéales pour mon cas d'utilisation. Comme je l'ai déjà dit, ma principale préoccupation pour le moment est l'octroi de licences.
la source
Réponses:
Tout d'abord, notez que je ne suis pas avocat. Obtenez-en un si vous pensez avoir besoin de conseils juridiques. La licence est un de ces domaines où je recommanderais un.
Les licences open source varient considérablement dans ce qu'elles autorisent. Prenons l'exemple d'une bibliothèque que vous utilisez (non modifiée) dans votre projet. Deux licences courantes que vous pourriez trouver sont GPL et LGPL, qui varient selon la façon dont elles traitent ce problème. De cet article , par exemple:
D'autres exemples de licence qui sont un peu plus ouverts à cet égard incluent le MIT et BSD.
De nombreux logiciels Linux sont de la GPL, et cela inclura probablement des composants de tout système d'exploitation que vous sélectionnez (par exemple Ubuntu Core). Cependant, tant que votre projet n'est pas considéré comme un travail dérivé de ces projets, vous ne devriez pas être affecté. Plus d'informations dans cette réponse .
De ce point de vue, l'utilisation d'Ubuntu Core pour votre produit ne devrait pas affecter l'ouverture ou la fermeture de l'application que vous y expédiez. En effet, empaqueter votre application en un clin d'œil est un bon moyen de distribuer des blobs binaires.
Vous avez probablement envisagé cela, mais d'un point de vue technique, si vous expédiez un snap Python à l'aide de Django, le snap ne sera pas un blob binaire - par défaut, votre code sera là pour quiconque veut le voir (soit par en vidant le contenu du disque ou en obtenant un accès shell d'une manière ou d'une autre). Vous voudrez peut-être masquer ou expédier du bytecode à la place, etc.
la source