8

我正在评估使用 Hibernate 作为 ORM 框架开发商业 Java Web 应用程序的前景。该应用程序将安装在客户的服务器上,并由少数用户使用。此外,我不想发布我的源代码,因为该应用程序是关键任务,它可能会危及应用程序的安全性。

我会设计应用程序,因此如果客户已经拥有企业数据库许可证,我会配置 Hibernate 以使用该数据库。否则,理想情况下,我想为他们提供/推荐一个数据库。根据我目前的专业知识,我更喜欢使用在 GPL 下获得商业双重许可的 MySQL。

除了 Hibernate 方言设置之外,我不打算在我的应用程序中使用任何 MySQL 特定代码或 SQL。根据 MySQL 网站上的信息以及我在网上阅读的许多相互矛盾的帖子,看来如果我想以这种方式分发应用程序,我需要从 MySQL 购买商业许可证。商业许可证的成本(据我了解,每年 600 美元以上)会使软件过于昂贵。我觉得必须有其他商业网络应用程序允许类似的功能并且不与数据库捆绑在一起。

这让我想到了这两个问题:

1.) 在任何已知情况下,您可以在不支付许可费的情况下将 MySQL Community Edition 与商业闭源应用程序一起使用?如果是这样,您是否知道任何合法这样做的商业应用程序或公司?

2.) 理想情况下,我想使用 MySQL 连接器 J 驱动程序,我相信它也是双重许可的。如果我没有在我的代码中捆绑这个 jar,而是指示用户下载连接器并直接从 MySQL 的网站下载并安装 MySQL 服务器,这在 GPL 下是允许的吗?

Stack Overflow 上已经有一些有用的帖子(例如MySQL 许可和 GPL),但我正在为我的案例寻找更具体的答案。我意识到我们大多数人都不是律师,但任何指导都会有所帮助,这样我就可以克服法律问题并开始实际编码!谢谢。

4

2 回答 2

6

不要根据您在互联网上获得的法律建议做出商业决策——包括我的。

我的理解是,如果您告诉您的客户他们负责下载和安装 MySQL 和 JDBC 连接器,您可以绕过 GPL 许可条款。

如果您将 GPL 软件与您的应用程序一起分发,那么您的软件也会隐含地使用该许可证。您有义务允许您的客户访问您的源代码。包括修改和自行分发的权利。

您可以选择另一个具有更宽松许可证的流行开源 RDBMS 作为默认 RDBMS,例如:

  • PostgreSQL(BSD 许可证)
  • SQLite(公共领域)
  • Firebird(InterBase 公共许可证,基于 Mozilla 公共许可证)

在评论中回复您的问题:Confluence 实际上不是开源的,它是一个商业产品。他们确实向商业许可证持有者提供源代码,但这并不符合 OSI 定义的开源条件。

Confluence 使用 JDBC,一种由 Sun Microsystems 定义的非 RDBMS 特定的 API。Confluence 使用名为 HSQL 或 HypersonicHSQL 的轻量级 Java 数据库进行分发,该数据库使用新 BSD 许可证之类的许可证。如果客户想将 Confluence 与 MySQL 一起使用,他必须自己安装它。

请参阅http://confluence.atlassian.com/display/DOC/Database+Setup+For+MySQL,其中安装文档告诉您下载并安装 MySQL 和 MySQL Connector/J。

为什么这对像 Confluence 这样的非开源产品有效的关键是他们的产品不一定需要使用 MySQL,它可以使用不同的 JDBC 驱动程序(事实上默认情况下这样做)。由于不依赖于专门使用 MySQL,Confluence 不需要遵守 GPL 的条款。

如果您对 GPL 有其他疑问,GPL 常见问题解答可能是您最好的起点,而不是 StackOverflow。见http://www.gnu.org/licenses/gpl-faq.html

于 2009-09-15T01:07:04.360 回答
0

除了上面提到的 DBMS 选项之外,我还建议使用 GPL 许可但不需要利用数据库服务器的客户端应用程序是 GPL 的 CUBRID 数据库,因此可以安全使用。您可以在其官方网站上找到更多关于CUBRID 许可政策的信息。虽然这并不能直接回答你的问题,但我希望我能给你一些指导性的提示。

于 2011-04-25T07:29:11.263 回答