Geoforge platform plug-in model
Geoforge platform/plugins model will soon bring evolutivity and customization to the GeoTriple applications.
What is a software platform?
Definition
A platform leads in a working base for specific jobs. It provides a well-defined architecture that will support a range of jobs that are not included in the platform.
Example
Geoforge platforms allow to manage and display data.
They also include an architecture that allows to
querry and edit those data.

But the processing of these data is not included in the platform.
It will be performed outside of the platform.
The plaftorm should then include a mecanism that enable outside
applications to process data.
We call this mecanism : the plug-in mecanism.

What is a plugin?
Definition
A plugin is a small part of software that fullfill a platform bringing new features that are not initially included.
Example
A GeoTriple plug-in can provide data processing
and fulfill
the geosciences platforms that provides data management.
The plug-in only contains the processing part
whereas all the data management is provided by the platfrom.
How plugins interact with a platform?
Plug-ins are plugged on a platform. The combination of platform and plug-ins provides new possibilities to the users.

The platform has a plug-in mecanism, but don't know exactly what plug-ins will be installed.
The platform only knows what kind of plug-ins could be installed.
So, plug-ins must be compatible with the platform they are planned to be plugged.
What kind of plugins should be supported by Geoforge?
Geoforge platform will support two main kinds of plug-ins:

Processing plugins: They contain processing libraries that allow to process data.
Those plug-ins querry platform business objects, they process them and create new business-objects.

Viewer plugins: They provide display of the data contained in the platform and pertains to
Geoforge viewers.
Even if the platform already displays the data, those viewers could provide
enhanced and interactive data visualization.
What are the benefits of a platform/plug-in concept?
A platform/plugin model has several advantages, they benefit to end-users, and to developpers.
- The platform can be fulfill: The platform doesn't need to respond to all user needs, it could be done later, through plugins.
- The platform is customizable: Users don't need to have all the plugin's installed, they choose what they need.
- The platform is evolutive: In the same time that users needs vary, new plug-ins could be permently created to respond to new user needs.