What is open source? Well, the first software built was proprietary, which means that access to the source code was restricted and only creators could make changes to it.
As time went by the term open source was born. Open source is a term that refers to software designed to be accessible to anyone to inspect, modify, and improve [1]. It is developed in a decentralised and collaborative manner to rely on peer review and community production. Additionally, it is released under an open-source license so that anyone can view or change the source code [2].
What are the values of open source?
When talking about open source, people take into account several reasons when choosing it. The most common ones can be translated into the following [2]:
Peer review: Since the source code is accessible and since the community is very active, the source code is actively checked and improved by peer programmers.
Transparency: Since open source is available and public, the community and especially the programmers know exactly what the source code contains; for example, what kind of data is being moved where or what kind of changes occur in the code.
Reliability: Unlike proprietary code, which relies solely and exclusively on the author or company to keep it up to date and functional, open-source code is constantly updated by its community outliving the original authors. This encourages peer review, thus generating source code that is properly and frequently tested.
Flexibility: Users have the freedom to use open-source code in any way they want for the purposes they envision.
Lower cost: Open source is usually free, but it should be noted that not all open-source software is completely free. Software developers may charge money for software they create or contribute to such as protection and security, help, and support. Costs, however, tend to be lower than for proprietary software.
No vendor lock-in: There is the freedom to use open-source code anywhere, to use it for anything and whenever.
Open collaboration: There are active open-source communities which means users can ask for help and find solutions to problems that arise.
Above we can see some advantages that open-source software offers both for programmers and for companies that bet on these solutions. Despite its advantages, open-source software also has its disadvantages such as the fact that it does not guarantee data protection, it may be less secure, it requires advanced programming knowledge in the language used, and it does not offer specific support. These disadvantages are addressed with non-open-source technologies or private and community-wide efforts to improve open source-based solutions and mitigate risks. In TeNDER, data is protected and secured using a full range of multidisciplinary approaches: from data-gathering methods that protect information to system safeguards, such as data anonymisation.
Examples of Open-Source Software present in TeNDER
Hapi Fhir: Hapi Fhir is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java, and its implementation is open source. FHIR stands for “Fast Healthcare Interoperability Resources” which is a specification for the exchange of healthcare data in a modern and developer-friendly way [3].
React: React.js is an open-source JavaScript library used to build user interfaces specifically for single-page applications. It is used to handle the view layer for web and mobile applications. React also allows us to create reusable user interface components [4].
CKAN: CKAN is an open-source data management system. CKAN makes it easy to publish, share and work with data. This data management system provides a powerful platform for cataloguing, storing, and accessing datasets with a rich and complete API (for both data and catalogue), visualisation tools, and more [5].
Keycloak: Keycloak is an open-source identity and access management software. Users authenticate with Keycloak instead of individual applications. This means that applications do not need to consider login forms, authenticating users, or storing data related to them [6].
Docker: Released in March 2013, it is open-source software that features containers – software units that provide an abstraction layer for developers between what they are developing and their operating environment. Through containers, Docker allows an application and all its dependencies to be packaged virtually and then run on a server. This helps applications to run on any machine without any problems concerning customised configurations of the same. This type of software is particularly important since the goal is to perform the deployment of the entire platform and all its dependencies in a closed and controlled environment [7].
RabbitMQ: RabbitMQ is a messaging broker – an intermediary for open-source messaging. It gives applications a common platform to send and receive messages, and messages a safe place to live until received. Messaging allows software applications to connect and scale. Applications can connect, as components of a larger application, or to user devices and data. Messaging is asynchronous, decoupling applications by separating sending and receiving data [8].
In short, TeNDER was developed with open-source technologies, and with these, we can develop solutions together with non-open-source technologies. The advantage relies on the possibility to develop good solutions on a low budget.
As we can see, with the use of these technologies it was possible to develop a platform like TeNDER that makes use of open-source software and the development of a product with everything that is needed.
Reference:
[1] https://opensource.com/resources/what-open-source
[2] https://www.redhat.com/en/topics/open-source/what-is-open-source