Provisioning WSO2 Carbon based SOA Products with Equinox P2
WSO2 Carbon : Products, Features, Components and OSGi Bundles
WSO2 Carbon is the heart of all WSO2 products based on Java technology. Based on OSGi technology, WSO2 Carbon provides a fully componentized, enterprise grade middleware platform. This middleware platform meets all enterprise expectations with comprehensive support for service oriented architecture(SOA) and event driven architecture (EDA). The middleware platform consists of number of products, each focusing on a particular area of interest in the platform.
Each enterprise middleware product is a collection of reusable software units called features. A feature in WSO2 Carbon platform is a list of components and/or other feature.
A component in WSO2 Carbon platform is a single OSGi bundle or a collection of bundles. A bundle is the modularization unit in OSGi, which is the same as a standard Jar file in Java.
Each component in WSO2 Carbon platform adds value to WSO2 Carbon based products. For an example, the statistics component help users monitor the system level as well as individual Web service level statistics. This component contains two bundles. One is the back-end bundle that collect, summarize and store statistics. The other is the front-end bundle, that presents the data to the users with an easy to use user interface.
This componentized architecture gives developers an unprecedented flexibility to select any combination of components to build their own product, to suite their needs. For an example, you can add the service mediation capability to WSO2 Web Services Application Server, or add Web service hosting capability to WSO2 ESB, thus extending the default features that come with those products. Developers also have the option of removing features that they deem unwanted for their environment, from the pre-packaged set of features that come in a product.
Provisioning WSO2 Carbon
Provisioning software is considered as the act of placing an individual software application or complete software stack onto a target system. WSO2 Carbon platform is fully equipped with provisioning capabilities. Here what we mean by provisioning WSO2 Carbon is installing/updating/uninstalling features to/from a WSO2 Carbon based products. It is also possible to revert to any previous feature configuration using the provisioning support.
The manual way of provisioning Carbon is adding and removing OSGi bundles and configuration files belongs to a feature. This method is not recommended, since it is error pron, because finding the exact set of components and configuration files manually is a difficult task. Components have inter dependencies with other components, and some components even depend on specific versions of other components.
The solution to managing complexity in WSO2 Carbon is implemented with Equinox P2.
Equinox P2 a framework for provisioning Eclipse-based applications. Since, Eclipse is based on OSGi technology, Equinox P2 can be used as a provisioning platform for any OSGi based application. Hence, Equinox P2 has been integrated with WSO2 Carbon platform to enable provisioning capabilities. This enables users to download WSO2 Carbon framework or any other WSO2 products based on WSO2 Carbon and extend them by installing various features.
Every product comes with a feature named Feature Manager, that can be used to manage the features/components of a product. This comes with a GUI, to help developers customize the products with ease.