I have conducted a webinar on the topic mentioned above by few weeks ago, dated Wednesday 24th July 2013. The presenters were my self and Ananda Manoj and the webinar was mainly focused on discussing how to combine and use the various features of the WSO2 Carbon platform to suit an organization's middleware needs.
WSO2 Carbon middleware stack consists of more than a 175 OSGi-based components. Even though WSO2 Carbon ships some of the well defined component configurations as a set of products, it is also possible for organizations to come up with their own product configurations through a mix and match of available components with WSO2 Carbon. Our webinar, which was the final one of the '
Carbon Webinar Series' was conducted in explaining how to create a customized stack with WSO2 Carbon with including a step by step guide and a live demonstration on how to create a custom component.
First let's know the key points that were highlighted in webinar.
• The feature/component concept in the WSO2 Carbon platform.
• Installing features using the Feature Manager.
• How to create your custom products for cluster wide deployment.
• Configuring logs/adding configs etc.
In the next paragraphs i am going to brief on what exactly is discussed from each point here.
•
The feature/component concept in the WSO2 Carbon platform
Component is simple a OSGi bundle. This is what we develop. Carbon component should follow the rules define in carbon framework. Component has a core runtime which will provide a clean SOA management interface. There are two type of components Back-end component and Front-end component. All bussiness logic goes to back end component while front-end component have all client side code. A component can use core Carbon services like Registry Service, UserManager Service etc... via OSGi services registry.
In Carbon world feature is an installable unit. This is what we install on Carbon. A feature has one or more logically related Carbon components. We can write an aggregate feature which has two or more features with it. This features can be installed into Carbon base products using feature Manager service, provided by Carbon Framework.
•
Installing features using the Feature Manager
As mentioned in above there is a feature manager service which provides nice and easy way to install features on Carbon based products. This feature manager supports all feature provisioning works in runtime like install/uninstall features etc. Once you installed the new features to your Carbon based product you must restart the system to active them. Using Feature Manager you can install features only in runtime but if you need to install your custom features in build time you can do that using Carbon p2 maven plugin. It is just needed to add that plugin to your pom.xml file with few configurations.
•
How to create your custom products for cluster wide deployment
In productions you may need to scale up and down your system or avoid single point of failure using two or more instance in runtime. One way to do this is cluster your runtime instances and expose it as a single service. For that your product should have clustering capabilites with it, Carbon kernel provides clustering support for all products which are build on top of that. It means if you build your custom products on top of Carbon you will get the culstering capability for your product. Another barrier is volume, reality is even you start your product with low number of requests per sec, with the growth of the business you may need handle large number or request per sec. One way to handle this is use caching. With caching you can store state less data used in requests other than using back end database. Where do we need to store and retrive the same data per reqeust? As you know a database call is very expensive. Therefore caching is the best solution for that kind of situation. Carbon kernel it self comes up with Caching implentation, not only local caching it provide distribute caching too. Like wise you will get advanced features like depsync, GostDeployment capabilities too.
•
Configuring logs/adding configs etc.
Carbon Framework is a customizable framework as it provides number of configuration files to customize the runtime behavior. All configuration file are placed under <CARBON_HOME>/repository/conf directory. Following are the set of important configuration files.
- axis2.xml - Use for configure MessageBuilders, MessageFormatters , Clustering etc ...
- carbon.xml - Use for configure Ports, KeyStores , DeploymentSynchronizer , JNDI etc ...
- catalina-server.xml - Use for configure TransportListners and TransportSenders, Tomcat valves
- registry.xml - All registry related configurations.
- log4j.properties - All log related properties
- master-datasources.xml - All datasource related configurations.
This webinar was mainly targetted the audience who are interested in,
• Customizing existing WSO2 Carbon servers with additional components.
• Scripting feature installations for automated deployment in a clustered environment.
• Configuring Carbon servers for optimal performance.
If you belong to any of these categories, it will be worth your time watching it from the link below.
To watch the recording or read the slides used in webinar, goto the official link from
here.....
To read the presentation in SlideShare, visit
here ...
To download Student Manager sample click
here ...