Basic architecture diagram for the Reference Implementation

Shows the parts of the Reference Implementation and how they interact with each other.

Basic architecture fro the Reference Implementation, a Java web app

NameDescription
web app

Spring-based web application. Contains overwrites for default

SDL Digital Experience Accelerator (DXA) routing to allow the application to run as a Single Page Application.
GUI

This is the default UI implementation using a graphene skin and SDL branding. Executes inside a browser. The GUI communicates with the back end using the REST JSON API from the DXA ISH module. Could be used on any back end (.NET / Node.js / PHP...) as long as the REST endpoints produce the same data.

The GUI itself can be customized using extensions. We will provide examples of how to do this in the GitHub project .

It is also possible to not use this GUI at all and replace this component with a 100% custom GUI.

ISH module

This a custom DXA module that extends DXA with internal (JSON REST) end points to support specific use cases for Knowledge Center.

This module is the backbone of the Reference Implementation. It expose the REST API for core business logic to take care of:
  • Page rendering
  • Publication list retrieval
  • ToC and topic fetching
  • Content personalization
  • Sitemap generation

It uses the Content Interaction Library (CIL) and the DXA framework to work interact with the Content Delivery stack.

Technical details about this module are available in GitHub: https://github.com/sdl/dd-webapp-custom-examples/blob/master/docs/architecture/ISH-module.md

ISH Search module

This a custom DXA module that extends DXA with internal (JSON REST) end points to support search in Knowledge Center.

This module enables search and is responsible for
  • search within a specific publication
  • search across all publications

Talks directly to the Content Delivery CIL for the IQ search services to retrieve search queries and parses the result.

Technical details about this module are available in GitHub: https://github.com/sdl/dd-webapp-custom-examples/blob/master/docs/architecture/ISH-Search-module.md

ISH UGC module

This a custom DXA module that extends DXA with internal (JSON REST) end points to support Commenting/Community in Knowledge Center as implemented in the Reference Implementation

This module exposes the internal API for the commenting feature to take care of
  • Comment fetching
  • Comment submission and replies to comments

Talks directly to the CIL, specifically to the UGC client API of the User Generated Content (UGC) service, for such things as posting comments and fetching comments.

The internal API should not be used except for communication between UI and back end part of application. It is not design to be used as public REST API.

Technical details about this module are available in GitHub: https://github.com/sdl/dd-webapp-custom-examples/blob/master/docs/architecture/ISH-UGC-module.md

DXA

SDL Digital Experience Accelerator (DXA) is a framework used to help web developers create, design and publish a website quickly.

DXA is used in order to have a better integration with Content Delivery. In the future this could enable us to support for content mashups in which you can use both web and DITA content from SDL Web and SDL Knowledge Center to produce a single website.

DXA in a nutshell:

  • offers an easy way of getting page content and ToC structure.
  • has knowledge to convert a JSON page into a strongly typed model.
  • allows you to easily consume data without having to know details of the CIL / APIs.

Is recommended when you want to build a GUI using server-side MVC rendering.

CIL ( Content Interaction Library)

SDL Content Interaction Library (CIL), the Java variant. A SDK on top of the Content Delivery API that makes it easy to communicate with Content Delivery's OData REST API. Has built-in caching capabilities to reduce the number of http requests.

Content Delivery

The Content Delivery application consists of a number of microservices, which are also known as CISs (Content Interaction Services) and number of databases. The Reference Implementation web app uses the Content Service of Content Delivery to retrieve content using Content Delivery's OData API.

Index & Query (Services)Content available on the Reference Implementation web app is indexed and searchable using the Query feature. Two Content Delivery services are used for this feature, and they are called the IQ Query service and IQ Index service.
Content (Service)DITA content that is published to Content Delivery is stored in the Content databases and the Content Service is used to deliver content from the Content Delivery environment for presentation in the Reference Implementation web app. The Content Service is a partial implementation of the OData protocol.
Community (UGC Service)In this release, the Community feature is by default disabled. The Content Delivery service used for this feature is called User Generated Content or UGC. In a future service pack release, when the Community feature is completed, this feature will be enabled by default. The feature when completed will allow users to provide feedback, and the system will include a commenting dashboard to allow you to manage feedback/comments.