Each WSO2 product is a collection of reusable software units called features where a single feature is a list of components and/or other feature. A component in WSO2 products is a single or a collection of OSGi bundles. Similar to a standard JAR file in Java, a bundle is the modularization unit in OSGi. This component-based architecture of WSO2 gives developers flexibility to build efficient and lean products that best suit their unique business needs, simply by adding and removing components.
Components add functionality to the products. For example, the statistics component enables users to monitor system and service-level statistics. This component contains two bundles. One is the back-end bundle that collects, summarizes and stores statistics. The other is the front-end bundle that presents data to the user through a user-friendly interface.
What is software provisioning
Provisioning software is the act of placing an individual software application or a complete software stack onto a target system. What we mean by provisioning WSO2 products is installing/updating/uninstalling features to/from WSO2 Carbon, which is the base platform on top of which the entire WSO2 product stack is developed. It is also possible to revert to a previous feature configuration using provisioning support.
You can easily install features to any WSO2 product using the WSO2 Component Manager, which comes with the products. Component manager is powered by Equinox P2 and allows you to connect to a remote or local P2 repository and get any feature installed into the product's runtime. P2 can be used as a provisioning platform for any OSGi-based application. It enables easy provisioning capabilities and increases the user-friendliness in building customized SOA products using the Carbon platform. Users can download the WSO2 Carbon platform or any other WSO2 product and extend their functionality by simply installing features. WSO2 Feature Manager provides a convenient user interface to perform common provisioning operations and related repository management functions.
You can also manually provision Carbon by dropping bundles and configuration files that belong to a feature. This method is not recommended because if you do not find the exact set of components and dependencies, it can lead to issues. Features/components can have many dependencies with other features/components and some even depend on specific versions of other components. Therefore, we recommend you to use WSO2 component manager as explain in the next section.