Benefit from plug-in&extension
Benefit from Plug-in & Extension
--Eclipse and Firefox
Architecture is the key for software product of large-scale. To a certain extent, the future of software product depends on the design architecture. Nowadays, architecture for integrating third-party plug-in or extension has been a hot spot. Eclipse and Firefox are two typical examples of this architecture. Here, I call this architecture a pluggable architecture, “PA” for short. Then, combining with Eclipse and Firefox, I will give my opinion of these architecture below.
l Why PA is so popular?
Obviously, “pluggable” makes others customize the product as they like. Users can select plug-in or extension by themselves, such as skin, theme and so on. Developers of third-part can even add new features or replace old features by themselves. In this way, a product is not just a single one, in fact, each user can own a product belonging to himself. So, we can see it reflects an spirit of respect from product developer.
l How to make PA feasible?
As I said, architecture is important for software product. For pluggable architecture, it often contains a micro core. Then, other plug-in or extension can be plugged into the core. So a micro core is necessary for the product. In Eclipse, it’s eclipse runtime, actually, OSGI is responsible for the management of bundles; In Firefox, core code also recognizes each extension by its configuration file, just as manifest file.
Comparing Eclipse with Firefox, we can find other two points are necessary for PA. One is a unified mechanism for “plugging” and framework for developing “plug-in”; another one is manifest file for illustrating the interface, function or other configure information of plug-in or extension. XML is the most popular format for manifest file, since it’s a word wild influence.
l What’s the future of PA?
PA has been hot for a long time. Eclipse and Firefox are the most successful products. However, they are only the develop platform and application software. With RCP’s emergence, Eclipse is intended to be integrated within any application developed with eclipse. That means any application developed with eclipse can be packaged with eclipse in final release. If so, one day, maybe we can just need one eclipse with different plug-ins for eclipse, instead of installing other applications. Furthermore, we can consider eclipse as a platform to run different plug-ins just as different applications run in a operating system. Is that possible? I’m expecting……