Создание продукта IoT - каков наилучший способ избежать совместного использования собственного проприетарного кода?

10

Я думаю, мне было трудно сформулировать название. Тем не менее, я все еще могу объяснить мою проблему более подробно здесь.

Я разрабатываю встроенный продукт, который состоит из облачного сервиса и встроенного оборудования. Облачный сервис будет иметь REST-API (хотя его доступность не является точкой продажи) и будет взаимодействовать со встроенным оборудованием. В идеале, встраиваемое оборудование также должно иметь REST-подобный интерфейс для связи. Проблема в том, чтобы найти хороший программный стек для этого (или я думаю, что это проблема).

На мой взгляд, лучшим вариантом будет какой-то встроенный дистрибутив Linux с собственным веб-приложением, установленным внутри (Ubuntu Core + Django ...?). Можно ли как-то использовать эту комбинацию в коммерческом продукте, но в то же время держать внутреннее приложение закрытым?

Веб-сайт Ubuntu предоставляет несколько поддерживаемых платформ, и некоторые из них выглядят идеально для моего случая использования. Как я уже говорил, моей главной заботой на данный момент является лицензирование.

Nikolas
источник
2
Можете ли вы уточнить, что вы можете распространять или продавать? Внутренние / внешние и производные или результат имеют отношение к лицензированию.
Шон Хулихейн
Извините, не заметил комментарий. Программное обеспечение будет простым веб-сервером, выполненным в django или nodejs, который будет содержать все необходимое для проекта. Ubuntu Core будет просто платформой для развертывания.
Николас

Ответы:

7

Прежде всего, обратите внимание, что я не юрист. Получить его, если вы считаете, что вам нужна юридическая консультация. Лицензирование - одна из тех областей, где я бы порекомендовал.

Лицензии с открытым исходным кодом сильно различаются в том, что они позволяют. Давайте воспользуемся примером библиотеки, которую вы используете (немодифицированной) в вашем проекте. Вы можете найти две распространенные лицензии: GPL и LGPL, которые различаются в зависимости от решения этой проблемы. Из этой статьи , например:

Проект GNU имеет две основные лицензии для использования в библиотеках. Одним из них является GNU Lesser GPL; другой - обычный GNU GPL. Выбор лицензии имеет большое значение: использование Lesser GPL позволяет использовать библиотеку в проприетарных программах; использование обычного GPL для библиотеки делает ее доступной только для бесплатных программ.

Другие примеры лицензий, которые немного более открыты в этом отношении, включают MIT и BSD.

Большая часть программного обеспечения для Linux является GPL, и это, вероятно, будет включать компоненты любой выбранной вами ОС (например, Ubuntu Core). Тем не менее, если ваш проект не считается производной от этих проектов, это не должно повлиять на вас. Больше информации в этом ответе .

С этой точки зрения, использование Ubuntu Core для вашего продукта не должно влиять на то, открыто или закрыто приложение, на котором вы поставляете его. Действительно, упаковка приложения в виде оснастки - хороший способ распространения двоичных двоичных объектов.

Вы, вероятно, рассмотрели это, но с технической точки зрения, если вы отправляете снимок Python с использованием Django, снимок не будет двоичными каплями - по умолчанию ваш код будет находиться там для всех, кто хочет его увидеть (либо выгрузка содержимого диска или получение доступа к оболочке каким-либо образом). Вы можете вместо этого запутать или отправить байт-код и т. Д.

рукав моря
источник
1
Это может быть то, что я искал. Я предполагаю, что программное обеспечение может считаться непроизводной работой, поскольку все нетривиальные функциональные возможности происходят внутри Django. Кроме того, нельзя ли отправлять снимки из частного хранилища? В этом случае не будет иметь значения, что будет доступен код на Python.
Николас
2
О, конечно, вы можете сохранить привязку в тайне, когда дело касается магазина, но я говорю на устройстве, что это все еще код Python, если вы не сделаете что-то с этим. Учтите, что тот, кто имеет физический доступ к устройству, может, вероятно, посмотреть на то, что на нем работает, включая ваши снимки.
Кайл
1
Ах, это правильно. Я думал о запуске устройства в автономном режиме (например, Samsung ARTIK), так что, возможно, это не будет большой проблемой. Конечно, если вы действительно хотите войти в устройство, это может или не может предотвратить это. Но в большом масштабе я думаю, что этого решения будет достаточно ..
Николас