构建物联网产品-避免共享内部专有代码的最佳方法是什么?


10

我认为我很难制定标题。但是,我仍然可以在这里更详细地说明我的问题。

我正在设计一个包含云服务和嵌入式硬件的嵌入式产品。云服务将具有REST-api(尽管它不是卖点),并且它将与嵌入式硬件通信。理想情况下,嵌入式硬件还应具有类似REST的接口进行通信。问题是为此找到了好的软件堆栈(或者我认为是问题所在)。

我认为最好的选择是某种嵌入式Linux发行版,并在其中安装自己的Web应用程序(Ubuntu Core + Django ...?)。是否有可能在商业产品中使用此组合,但同时保持webapp内部关闭?

Ubuntu网站提供了多个受支持的平台,其中一些平台适合我的用例。就像我之前说的,目前我主要关心的是许可。


2
您能否阐明您可能分配或出售的商品?内部/外部以及派生或结果与许可有关。
肖恩·霍利哈内'18

抱歉,没有注意到此评论。该软件将是使用django或nodejs制造的简单Web服务器,其中将包含项目必需的所有内容。Ubuntu Core只是要部署的平台。
尼古拉斯

Answers:


7

首先,请注意我不是律师。如果您认为自己需要法律建议,请找一个。许可就是其中之一,在此我将向您推荐。

开源许可证在允许的范围内差异很大。让我们以您在项目中使用(未修改)的库为例。您可能会发现两种常见的许可证,即GPL和LGPL,它们在如何处理此问题方面有所不同。例如,从本文开始

GNU项目有两个主要许可证可用于库。其中之一是GNU Lesser GPL;另一个是普通的GNU GPL。许可证的选择有很大的不同:使用Lesser GPL允许在专有程序中使用该库;对库使用普通GPL使其只能用于免费程序。

在这方面更开放的其他许可示例包括MIT和BSD。

GPL是很多Linux软件,它可能包含您选择的任何操作系统的组件(例如Ubuntu Core)。但是,只要您的项目不被视为这些项目的衍生作品,就不会受到影响。此答案中的更多信息。

从这个角度来看,为您的产品使用Ubuntu Core不会影响您附带的应用程序是打开还是关闭。确实,将应用程序打包为快照是分发二进制Blob的好方法。

您可能已经考虑了这一点,但是从技术角度来看,如果使用Django交付Python snap,则该snap不会是二进制blob-默认情况下,您的代码将坐在那里,供任何希望看到它的人使用(无论是通过转储磁盘内容或通过某种方式获得外壳访问权限)。您可能想混淆或发送字节码,等等。


1
这可能是我一直在寻找的东西。我猜该软件可能被认为是非衍生产品,因为所有非平凡的功能都发生在Django内部。另外,是否有可能从私有存储库中发送快照?在那种情况下,可以使用python代码并不重要。
Nikolas

2
哦,可以肯定,您可以就商店而言将快照保持私有状态,但是我要说的是在设备上它仍然是Python代码,除非您对此进行处理。考虑一下,只要对设备具有物理访问权限的人都可以查看设备上正在运行的内容,包括快照。
凯尔(Kyle)

1
嗯,没错。我当时正在考虑以无头模式运行设备(想想三星ARTIK),所以也许这不会成为大问题。当然,如果您确实要进入设备,则可能会或可能不会阻止这种情况。但我认为,从规模
上讲,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.