In an effort to strongly limit its adherence to non-standard technology, eXo Platform is built on and maintains a long-held commitment to open source and open standards. Under the hood, not only is it based on an open source code base in itself and complies with the Java EE specifications (Java Portlets, JCR, etc.), it also leverages several known and proven open source components.
This contributes to helping organizations avoid lock-in to one proprietary vendor ecosystem and better ensuring the tailoring and continuity of their IT operations.
We already had the chance to share our views on open source in general and why we think it’s good for everybody. In this little article however, we will instead give you a look into what third-party open source components are either built into eXo Platform or whose integration with eXo is supported.
Application Server: Apache Tomcat & JBoss EAP
The eXo Platform software is packaged as a deployable enterprise archive as defined by the Java EE specification. It is delivered as a ready-made package on top of either a Tomcat application server or a JBoss Enterprise Application Platform, the former being the more straightforward option.
Tomcat is an open source Java Servlet Container made by the Apache Software Foundation. It is the most widely adopted application and web server in production today.
JBoss EAP is an open source Java EE-based application server runtime platform used for deploying highly-transactional Java applications and services. JBoss is a division of Red Hat that provides support for the JBoss open source application server program and related middleware services.
JBoss is subscription-based software while Tomcat is free of charge. Both support server clustering, enabling an eXo Platform deployment to scale horizontally in order to serve large numbers of users (in the five or even six figures).
Databases: MySQL, PostgreSQL & MongoDB
As can be seen here, eXo Platform supports several database solutions including both proprietary and open source ones. The latter are MySQL and PostgreSQL, both representing the most popular open source relational database management systems available today. They actually are the ones most used by our customers and most preferred by our service delivery teams.
Our chat feature on the other hand uses and requires MongoDB, a free and open source cross-platform document-oriented NoSQL database solution.
There is another article here in which the rationale for this choice is detailed. In a nutshell, this choice was about flexibility, performance and scalability in the context of a web chat application.
LDAP: OpenLDAP, OpenDJ
eXo Platform supports integration with Lightweight Directory Access Protocol (LDAP) compliant directories including the popular proprietary Microsoft Active Directory and the free OpenLDAP and OpenDJ alternatives. The complete list can be seen here under the LDAP section.
OpenLDAP is the most popular free and open source LDAP implementation.
OpenDJ is an open source directory solution supported by ForgeRock, previously known as OpenDS.
Single Sign-On: CAS, SAML 2.0 & OpenAM
The list of supported Single Sign-On providers on the other hand includes three open source providers:
- CAS: or Central Authentication Service, a popular choice made available by Aspero’s friendly open source community that actively supports and contributes to the project.
- SAML 2.0: or Security Assertion Markup Language, another open standard for user authentication and authorization exchanged in particular between an identity provider and a service provider. As indicated by its name, SAML is an XML-based markup language.
- OpenAM: an open source access management and federation system. It started as OpenSSO which was created by Sun Microsystems. The latter was acquired by Oracle Corporation which discontinued the project. OpenAM is a fork of OpenSSO created following this acquisition. It is developed and supported in a commercially-backed open source spirit by ForgeRock.
Today, eXo Platform allows setting up SSO integration via ready-made eXo add-ons. This means that a lot less manual work dealing with configuration files is required.
Enterprise Portal Framework: GateIn
GateIn was the result of a merge of two open source Java projects: JBoss Portal and eXo Portal. This collaboration took the best of both offerings and incorporated them into a single J2EE deployment with the aim of providing a portal framework addressing enterprise needs.
GateIn Portal provides support for Web Services for Remote Portlets (WSRP), Java Content Repository (JCR), Single Sign-On (SSO), WYSIWYG layout editing, OpenSocial gadgets, and more.
Today, GateIn continues to play the non-trivial role of the enterprise portal foundation in eXo Platform.
Search Engine: ElasticSearch & Lucene
In eXo Platform, there are two kinds of search indexes: Elasticsearch and JCR (which leverages Apache Lucene).
ElasticSearch is the most popular open source search engine solution out there. It is cooked in Java based on Apache Lucene and released under the Apache open source license.
eXo Platform uses this powerful and highly scalable full-text search engine under the hood as its main search engine, powering searches such as for wiki pages, user profiles and spaces. It also facilitates search extensibility.
Apache Lucene on the other hand is relied on for indexing and searching of content (e.g. documents) stored inside eXo Platform’s JCR-based enterprise content management system. Lucene provides useful search functionality such as fuzzy searches for search keyword matching beyond exact matches and proximity searches.
Web Text Editor: CKEditor
CKEditor is an open source WYSIWYG text editor providing common rich text editing features directly inside your web browser. Some of its neat features (beside its being open source) include its full customizability and templatization (e.g. to properly fit the different use cases within a platform like ours), direct pasting from Microsoft Word, an extensive list of add-ons, etc.
This text editor is implemented in several areas in eXo Platform, including:
- The microblog,
- Forum messages,
- Task description field,
- Web content editor
Wiki Application: X-Wiki
eXo Platform allows organizations to create and maintain sustainable, web-based knowledge bases through its built-in wiki feature. Wiki pages are commonly used for easily writing and sharing team procedures, guidelines, tutorials, reports, project plans, meeting notes, and more.
Here’s a neat example: we use it ourselves for openly sharing our product roadmap in our online community site.
This wiki module leverages the open source wiki solution called X-Wiki. It is well-established in its field and provides features such as a no-nonsense rich text editor, wiki syntax, page templates and macros which extend its page editing capabilities beyond what a simple text editing can do.
These features help enable the use cases that a well-structured collaborative wiki can be ideal for, and that is why we at eXo choose it as the engine running our wiki app.