Background Image

BLOG

Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment

Written by Charis Chau on 06/08/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!

 

 

CUBRID Licenses

 

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 Licenses.jpg

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 vendors (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.

 
 
Benefits of CUBRIID License Model 
Why both GPL and BSD licenses? To answer this, let us take a walk into 5 scenarios:
 

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.

 

s1.png

 

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. 

 

s2.jpg

 

 

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.

 

 

 

s3.jpg

 

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.

 

s4.jpg

 

In the above scenarios, we can clearly see the benefits of CUBRID License Model; it can be summarised as follow: 

 

summary.jpg

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.

 

s5.jpg
 
 
Summary 

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.

 

References

https://www.cubrid.org/cubrid

https://opensource.org/licenses

 

 

  1. A Node.js speed dilemma: AJAX or Socket.IO?

    Written by CUBRID Community on 07/14/2017 One of the first things I stumbled upon when I started my first Node.js project was how to handle the communication between the browser (the client) and my middleware (the middleware being a Node.js application using the CUBRID Node.js driver (node-cubrid) to exchange information with a CUBRID 8.4.1 database). I am already familiar with AJAX (btw, thank God for jQuery!!) but, while studying Node.js, I found out about the Socket.IO module and even found some pretty nice code examples on the internet... Examples which were very-very easy to (re)use... So this quickly becomes a dilemma: what to choose, AJAX or sockets.io? Obviously, as my experience was quite limited, first I needed more information from out there... In other words, it was time to do s...
    Read More
  2. Become a Jave GC Expert Series 1 : Understanding Java Garbage Collection

    Written by Sangmin Lee on 05/31/2017 What are the benefits of knowing how garbage collection (GC) works in Java? Satisfying the intellectual curiosity as a software engineer would be a valid cause, but also, understanding how GC works can help you write much better Java applications. This is a very personal and subjective opinion of mine, but I believe that a person well versed in GC tends to be a better Java developer. If you are interested in the GC process, that means you have experience in developing applications of certain size. If you have thought carefully about choosing the right GC algorithm, that means you completely understand the features of the application you have developed. Of course, this may not be common standards for a good developer. However, few would object when I say ...
    Read More
  3. No Image

    Become a Jave GC Expert Series 2 : How to Monitor Java Garbage Collection

    Written by Sangmin Lee on 06/01/2017 This is the second article in the series of "Become a Java GC Expert". In the first issue Understanding Java Garbage Collection we have learned about the processes for different GC algorithms, about how GC works, what Young and Old Generation is, what you should know about the 5 types of GC in the new JDK 7, and what the performance implications are for each of these GC types. In this article, I will explain how JVM is actually running Garbage Collection in the real time. What is GC Monitoring?  Garbage Collection Monitoring refers to the process of figuring out how JVM is running GC. For example, we can find out: when an object in young has moved to old and by how much, or when stop-the-world has occurred and for how long. GC monitoring is carried out t...
    Read More
  4. Become a Jave GC Expert Series 3 : How to Tune Java Garbage Collection

    Written by Sangmin Lee on 06/02/2017 This is the third article in the series of "Become a Java GC Expert". In the first issue Understanding Java Garbage Collection we have learned about the processes for different GC algorithms, about how GC works, what Young and Old Generation is, what you should know about the 5 types of GC in the new JDK 7, and what the performance implications are for each of these GC types. In the second article How to Monitor Java Garbage Collection I have explained how JVM actually runs the Garbage Collection in the real time, how we can monitor GC, and which tools we can use to make this process faster and more effective. In this third article based on real cases as our examples I will show some of the best options you can use for GC tuning. I have written this arti...
    Read More
  5. Become a Jave GC Expert Series 4 : MaxClients in Apache and its effect on Tomcat during Full GC

    Written by Dongsoon Choi on 06/23/2017 This is the fourth article in the series of "Become a Java GC Expert". In the first issue Understanding Java Garbage Collection we have learned about the processes for different GC algorithms, about how GC works, what Young and Old Generation is, what you should know about the 5 types of GC in the new JDK 7, and what the performance implications are for each of these GC types. In the second article How to Monitor Java Garbage Collection we have explained how JVM actually runs the Garbage Collection in the real time, how we can monitor GC, and which tools we can use to make this process faster and more effective. In the third article How to Tune Java Garbage Collection we have shown some of the best options based on real cases as our examples that you c...
    Read More
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6

Join the CUBRID Project on