A portal extension is a webapp that basically registers service configuration and resources to the portal container to add new services/resources or overrides existing ones.
When you develop an add-on, you usually call services via the portal container. Your code will not take care of the creation of service instances because the portal container does it.
The services are configurable and plugable. The portal container allows you to register which services loaded and which parameter values used during a service initialization. This is done by portal extension.
Also the portal extension is used to include resources to portal. Portal unifies the resources in a way that allows the extensions to override built-in resources.
The portal extension will be used very often in later chapters so this section is a reference to: