使用Hibernate的商业Web应用程序中的MySQL许可

时间:2009-09-15 00:52:39

标签: mysql hibernate licensing gpl

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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