wso2 carbon kernel design and architecture
DESCRIPTION
TRANSCRIPT
WSO2 Carbon 4.0.0 Kernel Design and Architecture
Sameera JayasomaSenior Technical LeadWSO2 Inc.
The “Problem”● What we had in pre-Carbon era.
● Three products● Three code bases● Three separate teams● Same features across products, but NO shared code,
modules
● This model wasn't scalable.
Design Objectives
To build a solid base/core for a,● Lean,● Modular,● Enterprise-class● Middleware platform.
OSGi to the Rescue!!!● OSGi framework is a dynamic module systemdynamic module system and services platformservices platform
for the Java programming language.
● OSGi defines a way build modules, their lifecycle and runtime collaboration via services(Java Objects). In-VM SOAIn-VM SOA.
● Carbon Kernel has achieved modularity and dynamism through the concepts defined in OSGi framework.
● Everything in Carbon is a bundle bundle at compile time as well as at runtime.
Compile time Vs Runtime● Typical Java application
Compile time Runtime
Compile time Vs Runtime● OSGi based Java application
Compile time Runtime
WSO2 Carbon Kernel
“Firstly, Carbon isn't a "product". We already have a set of products, and we are launching new Carbon-based revisions of some of those:
● WSO2 Web Services Application Server v3.0● WSO2 Enterprise Service Bus 2.0● WSO2 Registry 2.0
Carbon is the framework, the foundation, the model behind all of theseCarbon is the framework, the foundation, the model behind all of these. ”
“Carbon is a composable server architecturecomposable server architecture. Efectively our products are now sets of components running on the core framework, and you get to choose which ones you want and need. For example, if you want to add BPEL support to the ESB, simply download the BPS component and
install into your existing ESB.”Paul Fremantle
Feb, 2009
Modular Architecture of Carbon Kernel
Composable Server Architecture
Ghost Deployment
Multi-tenancy● Multi-tenancy is provided from the Carbon kernel level.
● Tenant level isolationTenant level isolation is enforced by using separate classloaders, code signing and Java security policies.
● Lazy loadingLazy loading of tenants. Only active tenants will be loaded, once they become inactive, they will be unloaded.
● Lazy loading happens, when● First request Received,
● Tenant mgt console is loaded,
● A scheduled tenant task is load..
Feature Manager
Carbon Kernel: Down the memory lane...
Future of Carbon Kernel
Trainee Team LeadSeniorSoftwareEngineer
SoftwareEngineer
Project Lead
ProjectManager
CEO(WSO2)
Carbon 5● Complete redesignredesign of the existing Carbon platform.
● Carbon kernel as a general purpose OSGi containergeneral purpose OSGi container.
● Carbon kernel is lean, but it will get leaner than what we have now.
● Enhanced REST Services support through a generic message generic message representation modelrepresentation model.
● Await for more!!!
Thank you!!!