Budowanie produktu IoT - jaki jest najlepszy sposób na uniknięcie udostępniania własnego kodu własności?

10

Myślę, że trudno było mi sformułować tytuł. Nadal jednak mogę wyjaśnić mój problem bardziej szczegółowo tutaj.

Projektuję produkt wbudowany, który składa się z usługi w chmurze i wbudowanego sprzętu. Usługa w chmurze będzie miała interfejs API REST (chociaż jej dostępność nie jest zaletą) i będzie komunikować się z wbudowanym sprzętem. Idealnie, wbudowany sprzęt miałby również interfejs podobny do REST do komunikacji. Problemem jest znalezienie odpowiedniego stosu oprogramowania (lub tak myślę, że to jest problem).

Moim zdaniem najlepszą opcją byłaby wbudowana dystrybucja Linuksa z zainstalowaną własną aplikacją internetową (Ubuntu Core + Django ...?). Czy w jakiś sposób można użyć tej kombinacji w produkcie komercyjnym, ale jednocześnie zachować zamkniętą aplikację internetową?

Witryna Ubuntu zapewnia wiele obsługiwanych platform, a niektóre z nich wyglądają idealnie w moim przypadku użycia. Jak powiedziałem wcześniej, moim głównym zmartwieniem w tej chwili jest licencjonowanie.

Nikolas
źródło
2
Czy możesz wyjaśnić, co prawdopodobnie rozpowszechnisz lub sprzedasz? Wewnętrzne / zewnętrzne i pochodne lub wynik są istotne, jeśli chodzi o licencjonowanie.
Sean Houlihane
Przepraszamy, nie zauważyłem komentarza. Oprogramowanie będzie prostym serwerem WWW wykonanym w django lub nodejs, który będzie zawierał wszystko, co niezbędne do projektu. Ubuntu Core byłby po prostu platformą do wdrażania.
Nikolas

Odpowiedzi:

7

Przede wszystkim zauważ, że nie jestem prawnikiem. Zdobądź je, jeśli uważasz, że potrzebujesz porady prawnej. Licencjonowanie to jeden z takich obszarów, w którym polecam jeden.

Licencje Open Source różnią się znacznie pod względem dozwolonych. Wykorzystajmy przykład biblioteki, której używasz (niezmodyfikowanej) w swoim projekcie. Dwie typowe licencje, które możesz znaleźć, to GPL i LGPL, które różnią się w zależności od tego, jak traktują ten problem. Z tego artykułu , na przykład:

Projekt GNU ma dwie podstawowe licencje do wykorzystania w bibliotekach. Jednym z nich jest GNU Lesser GPL; drugi to zwykła GNU GPL. Wybór licencji robi dużą różnicę: użycie Lesser GPL pozwala na korzystanie z biblioteki w zastrzeżonych programach; użycie zwykłej licencji GPL dla biblioteki sprawia, że ​​jest ona dostępna tylko dla bezpłatnych programów.

Inne przykłady licencji, które są nieco bardziej otwarte w tym zakresie, to MIT i BSD.

Wiele programów dla systemu Linux jest na licencji GPL, i prawdopodobnie będą zawierać elementy dowolnego wybranego systemu operacyjnego (np. Ubuntu Core). Jednak dopóki twój projekt nie jest uważany za pracę pochodną z tych projektów, nie powinieneś mieć na niego wpływu. Więcej informacji w tej odpowiedzi .

Z tego punktu widzenia używanie Ubuntu Core do swojego produktu nie powinno wpływać na to, czy aplikacja, którą wysyłasz na niego, jest otwarta czy zamknięta. Rzeczywiście, pakowanie aplikacji w mgnieniu oka jest dobrym sposobem na dystrybucję binarnych obiektów blob.

Prawdopodobnie zastanowiłeś się nad tym, ale z technicznego punktu widzenia, jeśli wysyłasz snap Pythona za pomocą Django, snap nie będzie binarnymi obiektami blob - domyślnie twój kod będzie tam dla każdego, kto chce go zobaczyć (albo przez zrzucenie zawartości dysku lub jakoś uzyskać dostęp do powłoki). Zamiast tego możesz zaciemnić lub wysłać kod bajtowy itp.

Kyle
źródło
1
To może być coś, czego szukałem. Wydaje mi się, że oprogramowanie można uznać za pracę niebędącą pochodną, ​​ponieważ wszystkie nietrywialne funkcje mają miejsce w Django. Czy nie jest również możliwe wysyłanie snapów z prywatnego repozytorium? W takim przypadku nie ma znaczenia, że ​​dostępny będzie kod python.
Nikolas
2
Oczywiście, możesz zachować prywatność przystawki, jeśli chodzi o sklep, ale mówię na urządzeniu, że nadal jest to kod Python, chyba że coś z tym zrobisz. Weź pod uwagę, że każdy, kto ma fizyczny dostęp do urządzenia, może prawdopodobnie sprawdzić, co na nim działa, w tym twoje ujęcie.
Kyle
1
Ach, to prawda. Myślałem o uruchomieniu urządzenia w trybie bezgłowym (pomyśl Samsung ARTIK), więc może to nie będzie duży problem. Oczywiście, jeśli NAPRAWDĘ chcesz dostać się do urządzenia, może to uniemożliwić lub nie. Ale na dużą skalę myślę, że to rozwiązanie wystarczy.
Nikolas