Before you build your plug-in solution, you need to do some planning and modeling work. The following questions indicate some common areas to consider:
What is the expected environment in which you want this solution to be used? For example, operating system requirements, application version requirements, and so on.
Do you need to account for any variable values, such as path names, when provisioning this platform or application?
What files need to be deployed to the provisionable hosts to enable this platform or application to function? For example, configuration files.
Do you need to define any new component types for this solution, or can you use the existing component types? Many simple solutions can use existing component types, such as system#file and system#directory. If necessary, however, you can define your own component types that extend the existing component types.
Will a user need to browse for and create instances of a component from a remote system?
What is the flow of tasks you need your users to be able to perform?
The following illustrates one possible modelling flow, based on the flow for deploying JavaTM 2 Platform, Enterprise Edition (J2EE) :
Deploy infrastructure.
Execute installer binaries to install infrastructure
Installs targetable components
Capture all application objects as components, such as the following objects:
Java Archive (JAR) files, Enterprise Archive (EAR) files, Web Archive (WAR) files, Enterprise Java Beans (EJB) files
JDBC connection and data sources
Create an “environment” component that contains environment settings, such as the following:
Java Virtual Machine (JVM) settings
Session management settings
Configure application/environment components
Deploy components into targetable components