Overview of the components and architecture of censhare.


Components

censhare is based on the following components.

Application Server

The censhare Server provides about 40 built-in services for the censhare core functionality and about 350 modules for specific functions. The Application Server provides the domain logic for asset management. It is a stand-alone application running on Java Runtime Environment. The Application Server can scale horizontally for load balancing and high availability. 

Static Resource Server

The Static Resource server is used to deliver Webpack bundles to the web browser after successful authentication. Webpack bundles contain static resources such as JavaScript files, for example for different UI languages or with customization information. The SRS downloads JavaScript files just once at the beginning of a user session and stores the files so they can be served from the cache right away, without further network activity. Static resources are packed (compressed) so take less time to download.

Webpack bundles

Webpack is a web application package format. The censhare web interface builds on TypeScript, a JavaScript-based scripting language, and the open-source Angular framework. Thousands of JavaScript files are transferred on request and executed in the web browser. The HTTP protocol however only allows a few simultaneous requests. This creates a huge overhead that requires additional time and bandwidth. It slows down the communication between censhare Server and the web browser. To improve performance, censhare downloads the JavaScript files once at the beginning of the communication and stores them. Whenever a JavaScript file is needed, it is already there and can be executed immediately. 

censhare uses Webpack as the format for the download. All JavaScript files and all dependencies are combined into several Webpack bundles. These bundle files are then compressed by various techniques such as removing white space, comments, etc. 

The webpack files contain the user-language-specific static files of the user interface or any customizations. For each language, separate webpack files are necessary. Also, for any other customizations, such as brandings, (custom folder), separate webpack files are needed.

Cloud Gateway

The Cloud Gateway is the entry point to censhare. The Cloud Gateway hides and protects all other components to the outside. The Cloud Gateway routes requests from the web browser to the following components:

  • censhare Server

  • Static Resource Server

  • Keycloak

The Cloud Gateway is based on Spring Cloud, a Java framework used to develop service-oriented applications.

Keycloak authentication server

Keycloak authenticates users at login. Keycloak is an Identity and Access Management (IAM) solution that is developed and distributed under the free Apache 2.0 license. Keycloak can be set up as a gatekeeper for the censhare internal user management, or with external protocols and identity providers, for example, LDAP or SAML.

Embedded censhare database (cdb)

The censhare database (cdb) is designed to manage structured information and unstructured information in a combined mode. Structured information, for example, metadata (attributes), can be handled by relational databases. However, a lot of the typical content that is stored in censhare, is unstructured information. For example, text, images, or videos.

It is important that all kinds of different information types as well as a combination of it is searchable. The cdb allows for search queries to combine multiple attributes with full-text and thus delivers comprehensive search results with great performance. 

The cdb is censhare's in-memory graph database and holds a real-time copy of the central metadata plus locally managed indexes for extremely fast searching and read access without requests to the external relational database.

For more information, see censhare database.

External relational database

The platform’s underlying semantic database structure saves all structured information and metadata in objects, along with their relationships with each other. It also stores the master data for system configuration. 

To store the data physically, a relational database is used. This can be PostgreSQL or Oracle.  The relational database schema consists of about 110 tables and 50 lines of stored procedures.

For more information, see database.

File system 

User content is managed as versioned assets in a domain structure backed by logical filesystems. An asset is considered metadata inside the relational database. Some assets have physical files (video, text, xml, etc.) which are stored in the corresponding logical filesystems.

In censhare, physical files and their metadata are stored separately. Files such as layouts, images and texts, are stored in the file system. Metadata is stored in the external database. This allows censhare to distribute the storage locations of files to multiple sites and to provide means of emergency file access in case of database failure.

censhare supports distributed file systems, file replication, and archiving.

The physical location of these filesystems can be a local disk, SAN, NAS or Amazon S3 buckets. As a "write-once" model, each change creates a new asset file version. Existing files are never overwritten. 

For more information, see File management.

Clients

censhare provides different client applications that allow users to connect to the server, find and manipulate data and execute tasks within censhare. There are specific clients for end users, administrators, and for simulating third-party tools.

All censhare clients are language-neutral. The user interface language is not built into the application, but loaded from the server upon user login.

  • censhare Web. The web-based client is a rich Internet application using the latest web technologies to support modern web browsers. censhare Web utilizes HTML5 and AngularJS XLTS/Angular. Static resources for the web browser are delivered as a separate component, the Static Resource Server. Requests from the web browser are forwarded to the censhare Server when users authenticate via Keycloak.  censhare Web runs on common browsers with responsive design to support various devices. 

  • censhare Client. Java-based end-user application for deep integration with the user operating system (via virtual filesystem driver/kernel extension) and third-party applications, such as Adobe InDesign/InCopy (via Plugins). Communication with the Application Server is handled by RMI/TLS.

  • censhare Admin Client. Java-based desktop application for configuration of almost all parameters of the censhare system and most of the administrative tasks.

  • censhare Render Client and Service Client. These Java applications handle some of the third-party tools. They remotely control external processes by simulating user behavior.

    • The censhare Render Client is used for the communication with an Adobe InDesign Server.

    • The censhare Service Client is used to offload image processing from the censhare Server. 

For more information see, censhare client setup.

Third-party integrations and tools

censhare supports and integrates various external tools, for example:

  • Adobe InDesign Server
  • Image/Video conversion tools: ImageMagic, ffmpeg, Ghostscript, etc.
  • OpenOffice/LibreOffice
  • Metadata extraction: ExifTool
  • Acrolinx
  • CI HUB

Online Channel and Headless CMS

Online Channel Server is a highly scalable and efficient standalone Java application for Internet-facing content delivery. HCMS is the headless API-only version. News and Media portals are pre-configured templates for the Online Channel Framework layer.

For information, visit Online Solutions and Headless CMS.

Optional services

Mail service

The censhare Mail service offers support for the modern authentication OAuth 2.0 using Microsoft Graph service.

Google Cloud AI

The Google Cloud AI is an optional service that you can use together with censhare. It is required if you use Google services Google Natural Language, Google Cloud Vision, or Google Video AI. If you use one of the Google analysis tools and censhare, you can install Google Cloud AI together with the censhare RPM package.

Social media service

The Social Media service is an optional service that you can use together with censhare. With the social media management integration, users can plan, create, publish, and evaluate their social media activities entirely in censhare Web. If you use the Social Media Service, you can install it together with the censhare RPM package.