Carbon 5 Kernel Architecture

This post will describe the current architecture of Carbon 5 Kernel.

C5-Kernel-Architecture

The kernel runs on top of an OSGi framework. Eclipse Equinox is the currently used OSGi run-time framework. But the kernel has support for using any OSGi framework underneath.

Carbon 5 Kernel has a set core modules which expose some well defined API’s as services. These set of modules are as follows.

Clustering Framework

The Clustering Framework provides the clustering feature for carbon kernel which adds support for High Availability, Scalabilty and Failover

Artifact Deployment Framework

The deployment framework is responsible for managing the deployment and undeployment of artifacts in a carbon server. This also manages the Deployers (WebappDeployer, ServiceDeployers, etc), which gets plugged in to the Deployment Engine with a runtime which is explained next.

Pluggable runtime framework.

This module is responsible for handling and managing integrated 3rd party Runtime’s, such as Tomcat, Axis2, Synapse on Carbon server.

User Management

This module provides the functionality for user management (Authentication and Authorization) aspect for a carbon server.

Logging

A centralized logging framework provide logging functionality to the kernel, with the support for all the commonly used logging API’s.

Multi Tenancy & Hierarchical Tenancy

Carbon Multi Tenancy (Hierarchical) module provides the multi-tenancy aspect to carbon platform both in execution level and at OSGi level. Each and every tenant deployed in a single JVM will get his own OSGi isolated region. This would ensure class space, bundles and OSGi service level isolation for tenants and also provide application-level isolation for tenants.

Configuration & Context

The Carbon Configuration & Context model allows CarbonRuntime implementations to retrieve the configuration instance. CarbonRuntime represents the complete server space and CarbonContext is the entity which provides the CarbonRuntime related contextual information of the current executing thread. This module will also provide a model for the CarbonConfiguration (carbon.xml) to runtime.

Advertisements

About kishanthan

I’m currently working as a Software Engineer at WSO2, an open source software company. I hold an Engineering degree, majoring in Computer Science & Engineering field, from University of Moratuwa, Sri Lanka.
This entry was posted in Carbon5, WSO2 and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s