Written by Charis Chau on 08/06/2020
Why Licenses Matter?
Open source licenses allow software to be freely used, modified, and shared. Choosing a DBMS with suitable licenses could save the development cost of your application or the Total Cost of Ownership (TCO) for your company. Choosing a DBMS without a proper license, you might find yourself situate in a legal grey area!
Unlike other open source DBMS vendors, CUBRID is solely under open source license instead of having a dual license in both commercial license and open source license. Which means that for you, it is not mandatory to purchase a license or annual subscription; company/organizational users can achieve the saving from Total Cost of Ownership (TCO).
Since CUBRID has been open source DBMS from 2008, CUBRID has had a sperate-license policy for its server engine and interface. The server engine adopts the GPL v2 or later license, which allows distribution, modification, and acquisition of source, while the interface and tools have the BSD license in which there is no obligation of opening derivative works.
CUBRID License Structure
GPL: General Public License (http://www.opensource.org/licenses/GPL-2.0)
The GPLv2 or later license gives users the freedom to use freely, but if they distribute it, they need to publish changes and their code under GPL license and shared with other developers and users, which mean that you are free to modify and distribute the source code of CUBRID if you have any improvements in mind. Still, you do need to re-release the second work. At the same time, this works the same for us, our company CUBRID is also obligated to release the work after modification!
BSD: Berkeley Software Distribution License (https://opensource.org/licenses/BSD-3-Clause)
BSD license gives users the freedom to full use, but we do need to keep copyright in the source code. However, there are no constraints on use and no obligation of re-releasing the secondary work, which means that even if DBMS-based application developers or independent software vendor (ISV) do not want to disclose the source code of their developed applications, that's totally fine! And you can even combine our DBMS with your proprietary software! The development of a CUBRID-based application and sell it in the form of a commercial license or distribution by GPL does not cause any license problems.
Scenario 1: Library Link
Developer, Alex: 'I want to develop and sell an electronic payment system for small and medium-sized businesses. If I choose to use CUBRID as DBMS, should I open my product source code or purchase the commercial license?'
Solution Provider, Ben: 'I want to create an installable bulletin board. As a DBMS interface, I am using JDBC. If I want to distribute to others the bulletin board I created, should I open my source code?'
In the above two examples, both Alex and Ben want to link various libraries and drivers provided by DBMS in their applications. For using DBMS features, a JAVA application should be linked to the JDBC driver; a PHP application should be linked to the PHP interface, and so on.
If Alex and Ben want to use DBMS with the GPL license model, they should open the entire source code of the linked application. If they decide to go with MySQL under their Commercial License-Based Enterprise Version, they do not have to open the source code. However, they do have to pay for the license!
Therefore, if they choose the GPL-based only DBMS, they should either open the application's source code or purchase the commercial license (in case of a dual license policy). However, since CUBRID applies the BSD license to all the interfaces linked to applications, Alex and Ben do not have to open the source code of their application when they choose CUBRID as their back-end database system.
Scenario 2: Simple Calling
Solution Provider, Chris: 'I want to develop a DBMS backup management system. If it is useful, I want to sell it as a package. Because it is a backup management system, it just processes DBMS backup files or calls utilities without linking to the DBMS interfaces or libraries. Is the license still an issue for this case?'
This is the case when the application simply calls DBMS interfaces or libraries without directly linking to them. However, if GPL-based DBMS is used, Chris should still open the source codes of the application just as when you link libraries. However, Chris will not have the obligation to open the source code under CUBRID.
Scenario 3: Distribution Between Corporations
Company, D: 'Our headquarter is located in the USA, and we have local branches in Japan, China, and Korea. Can those branches provide services by using the games created by our headquarter?'
When distributing an application created by DBMS with the GPL license to branch companies, Company D should open the source code of the application or purchase a commercial license. However, CUBRID provides the most competitive license model with companies or solution vendors that plan to enter global markets.
Scenario 4: Interface Modification
Developer, Emma: 'It is inconvenient because the PHP interface in DBMS does not provide dynamic SQL features. If I modify and use the PHP interface, should I open the modified interface or a linked application?'
In the case of the GPL license, if the source code is modified, the source should be opened, and the improved function should be shared among other users. However, in the case of the BSD license, it is not necessary to open the modified source when it is used for either individual or commercial purposes.
In the above scenarios, we can clearly see the benefits of CUBRID License Model; it can be summarised as follow:
Benefits of CUBRID License Model
Scenario 5: Server Modification
Company, F: 'In our company system, the "organization chart" should be included in all pages. Because of frequent organization changes, recursive queries are indispensable. If I add this feature to the DBMS engine, should I open the modified DBMS code and our company system?'
Even though the above scenarios provide shreds of evidence that both GPL and BSD license can bring higher degree of freedom to users, the DBMS engine is a core infrastructure for software development, so it is considered proper to share improved features with many other users. To share the improved features of the CUBRID server engine, the database server adopted the GPL license. Therefore, if company F modifies the database server engine, you should open the modification to other users.
In this article, we have introduced the CUBRID License Model and explained the reason why we think CUBRID is trying to give users the maximum freedom and benefits by giving examples and comparing them with GPL-based only DBMS.
Like many other open source software organizations, CUBRID is structured under the revenue model, which only receives the cost of services (developmental support, operational support). Besides, CUBRID is not with the vendor, but with the client, clients can get the service they want at the time they want. In other words, using CUBRID does not require a mandatory service contract! We realize that it is not easy to introduce open source software; therefore, clients of CUBRID can sign a service contract and receive technical support services according to their needs and needs.