Application Modularization

Application modularization supports reuse, and scalability, and makes it easier for different people to work on a project at the same time.

The composite is the fundamental unit of application modularization. Decomposing applications into multiple composites supports:

  • Reuse - A composite can be reused as the implementation of a component in multiple composites or as a peer composite.
  • Application scalability - The complexity of a given composite can be reduced by partitioning components among composites.
  • Work management - Composites can be worked on independently.

There are various ways to decompose application functionality among composites. An application can consist of a root composite with internal components, a root composite with some components implemented as composites, or multiple peer composites. The following figure illustrates these three options. In the figure Hello World is a root composite. The DateManager functionality is provided in three ways:

  • As an inline component
  • As an inline component implemented as a nested composite
  • As a peer root composite
Modularization Options


The following table summarizes the implications of the three options. The inline and nested composite approach offers reuse opportunities at design time but restrict life cycle management options. The peer composite approach offers reuse opportunities at runtime and flexible life cycle management.

Modularization Implications
Inline (1) Nested (2) Peer (3)
Design Reuse Implementation reusable Implementation reusable N/A
Component configuration not reusable Component configuration reusable N/A
Runtime Reuse N/A N/A Composite reusable via application and environment wiring
Life Cycle Management Dependent Dependent Independent