WSO2 Carbon makes use of OSGi technology to the full to implement its component architecture.
At the heart of it is the bundle manager. You can implement a Carbon component as an OSGi bundle and drop it into the framework. The bundle manager is capable of picking up the bundles available at start up time and initialize them to be used by the framework. The bundle manager makes use of the start level manifest header to determine when to start a given bundle. The start level helps to control the dependencies. For example, if bundle Y requires bundle X, then it is a must to start X before Y. So X would have a start level lower than that is of Y.
WSO2 Carbon is also equipped with a powerful UI framework. The bundle could have an associated UI. If the bundle is available, the UI framework would automatically pick it up and hook it on to the user interface of the management console.
Carbon also makes use of OSGi services. For example, the internal registry and the Axis2 configuration are exposed as OSGi services. Each component has the freedom to expose their own services to the framework. Components can listen for services exposed by other components and act based on the events associated with those services.
Given that the bundle manager and the UI framework can dynamically pick up the available components, and given that the bundles cater for separate independent concerns within the system, you can mix and match the set of components you want, the way you wish, with the Carbon core, to suite your needs. All the leading products form WSO2, the ESB, WSAS, Registry and the new BPS would built using this component assembly model based on WSO2 Carbon platform.
Comments
I'm having trouble getting started with it. I am new to the SOA world, and I'm struggling to figure out how to get a development environment set up that uses the WSO2 Application Server.
Its not clear how to get Eclipse to compile to the WSO2 WSAS. The alleged WSAS IDE doesn't work at all (Runtime "WSO2 WSAS" is invalid. Missing classpath entry \serverRootDirectory\lib) and there's not much online about this error, so I'd venture to guess its not what people are actually using. Do you have any advice or pointers to concrete tutorials for developing Web Services in Eclipse for the WSO2 framework?
Thanks very much!