SixthStar's Carbonio Architectural Style
Fig. 1 shows the internal architecture of Carbonio with all its components.
While all packages are installed on the same node in a Single-Server, in a typical Multi-Server, each of the services depicted by the red boxes (i.e., the Core Components) should be installed on a dedicated node, while the rest (i.e., the Optional Components in the blue boxes) can be combined and installed on any node, including a dedicated one. For example, if Carbonio VideoServer is highly utilised, installing it on a dedicated node may be a good idea, whereas User Management may be deployed on the AppServer node rather than a dedicated node. As an example, in the Installation scenario,We demonstrate how to configure a cluster of six nodes and integrate the various Carbonio roles. A Role is an atomic capability that may be introduced to the Carbonio by adding one or more software packages.
Dependencies are represented in by the boxes stacked on top of the bottom one. In other words, all *-UI packages containing the files required to display the Module to users must be installed on the Proxy Node.
The Core Components
It should also be noted that the Proxy and MTA nodes must meet the following characteristics in order to function properly:
- Both internal and external clients must be able to resolve their hostname.
- They have a legitimate FQDN as well as PTR, MX, and A records set on the DNS server.
- They are accessible over the Internet.
- Chat. Chat and video call capabilities are available. It includes Chat-UI as well as the AppServer Advanced, which is part of the carbonio-advanced package.
- Files enable users to save and exchange documents. This role also comprises Files-ui and Files-db, which offer user interface files for Files and scripts to initialise and connect to the Carbonio Files database, respectively.
- Preview. A job responsible for creating thumbnail pictures of documents in order to preview them.
- Docs. It is made up of docs-connection, docs-editor, and docs-core, and it enables collaborative editing capabilities.
- DB-connection. This role, which is provided by the packages carbonio-files-db and carbonio-mailbox-db, is responsible for allowing communication between Carbonio and the database. The adoption of Pgpool-II would increase the flexibility and scalability of the DB instance(s) administration.
- User Administration. It stores the user state (logged in or logged out) as well as user characteristics (for example, which AppServer a user is logged into).
- VideoServer. It enables video communication and is a required component for the correct usage of video conferencing services.
- VideoServer Capture. This module enhances the VideoServer’s recording capabilities.
- The Admin Panel. Carbonio’s basic administrative centre, where you may manage the configuration parameters.
Mail Protocols Supported
- POP3 and POP3S files
- SMTP and its encrypted protocols SPTMS (SMTP over TLS/SSL) and SSMTP (SMTP over TLS/SSL)
- IMAP, as well as its safe protocol IMAP over SSL (IMAPS)