An introduction to the Z2 resource model¶
In order to understand Z2 in some depth, it is essential to understand the Z2 component model, that is organized in modules and components and that underpins
Z2's approach to modularity.
The true reference on that is in the documentation.
The one minute overview is:
Z2 core, at its very heart, knows of these conceptual objects:
Resource: The service provider API for extending Z2. If you implement anything that can be looked up, it is implemented as a Resource.
Component: Components bridge between declarations and persistent files and Resources. Components are stored in component repositories. A component has a type. The type is used to resolve a component factory that - at runtime - constructs a Resource representing the component. Components are what Z2 assigns a life-cycle to. A Web application, Java code, data sources, make components.
Component Type: A Component Type is identified by a name and implemented as a component. The responsibility of a component type is to turn component declarations of a specified type into Resources at runtime. Component types implement IComponentFactory (implicitly or explicitly).
Component Repository: Component Repositories make components available to Z2. That is, on the one hand a component repository has some persistent storage that holds component declarations. On the other hand, a component repository is a component that implements IComponentRepository.
Synchronizer: A synchronizer checks component repositories for updates and performs invalidations of modified components at runtime.