java网站专利

让我们从Java开始。 使用Java,您有两种许可选择。 首先,您可以使用(可能需要您自己修改)OpenJDK中的代码。 其次,您可以基于Java规范来实现Java的新实现。

没有涉及OpenJDK的明确专利许可。 OpenJDK包含在GPLv2中 ,并且通常认为,当一个许可证在GPLv2下编码时,该许可证包括隐式专利许可证。 2004年, 自由软件基金会的高级顾问Dan Ravicher 警告说BSD和GPL的专利保障薄弱,并建议附加专利授权。

这意味着隐式专利许可的范围尚不清楚。 一方面,如果您所做的只是使用未经修改的OpenJDK,则应该完全覆盖。 另一方面,如果您进行了如此广泛的更改,以致于它不再被视为Java,并且现在侵犯了Oracle的一些非Java专利,则隐含许可证可能不会涵盖您。 从遮盖到未遮盖的界限到底是什么,非常模糊且不清楚。




如果可以选择自己实施,则有明确的专利许可。 如果您实施完整的规范,并且未进行某些禁止的更改(向标准类添加字段和方法,在标准名称空间中添加新内容,诸如此类),并且您的实现通过“技术兼容性套件”。

最大的问题是TCK要求。 Sun可以(并且确实)禁止执行Java不喜欢的事情的人访问TCK。 没有TCK,没有实施的专利许可。 2007年,Apache的Geir Magnusson发表公开信,抱怨Harmony项目无法“获得Java SE 5技术兼容性套件的可接受许可证”。

以上两种方法均不适用于Google。 由于某些原因,他们不能使用OpenJDK选项。 首先是GPL。 手机制造商和运营商希望增加专有功能,以使其与竞争对手区分开来。谷歌认为,如果获得许可,Android将会很难接受。 其次,Java SE(这是OpenJDK实现的)并不真正适合于电话之类的设备。 如果Google将代码修改为更类似于Java ME,那么它们将处在一个模糊的领域,在那里没人会确定隐式专利许可是否涵盖了它们。




遵循Java SE规范实现自己的Java,然后对其进行扩展(小心地避免对专利许可禁止更改的部分进行任何更改)可能是可行的,但是它们仍然会遇到TCK问题。 这条路也将是一条非常艰难的路,因为Sun希望Google仅仅许可Java ME。

因此,Google使用Java语法和语义,而不使用Java VM。 没有专利保护。

现在,让我们与.NET进行比较,看看使用Mono的Google是否会更安全。 Microsoft对独立.NET实现的专利许可是Microsoft Community Promise 。 与Sun的专利许可一样,它确实要求您实施规范的所有强制性部分。 与Sun的不同,没有要求您通过的特定测试,并且在增强功能方面存在限制。 实施规范中的必不可少的内容-您真是金。 (当然,如果您确实进行了改进,那么这些改进将不会包含在承诺中,因此仍然需要注意)。

因此,马上取得专利的情况会更好-您不必获得Microsoft的实施批准即可获得专利许可。 这更适合Google尝试做的事情。

Mono实现了规范的强制性部分以及增强功能。 其中一些增强功能是Microsoft .NET框架(不属于规范)的实现,例如WinForms。 Mono的那些部分可能存在专利问题 ,因此,如果Google使用Mono,则最好避免这些问题

Google可能仍需要修改Mono,使其更适合于手机等小型低功耗设备。 这可能会使它们超出ECMA / ISO规范,并陷入专利风险。 但是,Microsoft提供了一个名为.NET Micro Framework的东西,它对应于Java ME。 请注意.NET Micro Framework的许可证:Apache2 。 该许可证附带有明确的专利授权。 如果Google基于Mono和.NET Micro Framework的代码混合制作了Android,那么他们很可能做到了,因此所有部分都将获得Microsoft专利的保护-Community Promise涵盖了所有ECMA / ISO标准部分和专利授权Apache2许可涵盖了移动功能的增强。

实际上,微软遵循了开放技术的正常规则。 他们向独立的标准机构提交了C#语言和.NET基础结构。 他们提供的专利许可涵盖了这些标准的实施,除了您必须实施标准的必需部分的普通和普通限制外,没有其他限制。

Sun没有遵循正常的规则。 他们拒绝将Java提交给独立的标准机构。 他们在标准的专利许可中添加了字符串,该标准有效地要求您在获得许可之前获得实施的批准。 后来,他们确实在GPL下发布了OpenJDK,这是一个改进,但是他们没有附带明确的专利许可,因此没有人知道您可以使用OpenJDK(除了未经修改地使用它)在不冒专利风险的情况下可以做什么。 Sun / Oracle的产品。

java网站专利