Deciding how many components to create can sometimes be difficult.
There two types of components in Openwings: executable components
and non-executable components. Executables can be run as processes
in a container, while non-executable components are run out of
the context of an executable component. This technique can be
used to provide shared libraries. For instance, it is a good practice
to publish your interfaces, so to do this effectively you may
want to create one or more components.
Each user interface you create for a service should be put in
its own component. This allows different user interfaces to be
added later, as well as possible future use of your user interfaces
with other service implementations.
An executable component can use and provide as many services
as desired. It is often helpful to draw a dependency diagram of
your components prior to developing them or trying to create an
installable component descriptor. This should help you avoid
cyclic dependencies, which are un-resolvable.