Project

General

Profile

Z2 resource model intro » History » Version 5

Henning Blohm, 21.09.2012 09:54

1 1 Henning Blohm
h1. An introduction to the Z2 component model
2
3 2 Henning Blohm
In order to understand Z2 in some depth, it is essential to understand the Z2 component model.
4
5 3 Henning Blohm
Z2 core at its very heart knows of these conceptual objects:
6
7 5 Henning Blohm
!pseudo_uml.png!
8 3 Henning Blohm
9
*Resource*: The service provider API for extending Z2. If you implement anything that can be looked up, it is implemented as a "Resource":http://www.z2-environment.net/javadoc/com.zfabrik.core.api!2Fjava/api/com/zfabrik/resources/provider/Resource.html.
10
11
*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.
12
13
*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":http://www.z2-environment.net/javadoc/com.zfabrik.core.api!2Fjava/api/index.html (implicitly or explicitly).
14
15
*Component Repository*: _Component Repositories_ make components available to Z2. That is, on the one hand a component repository has some persistent store that holds component declarations. On the other hand, a component repository is a component that implements "IComponentRepository":http://www.z2-environment.net/javadoc/com.zfabrik.core.api!2Fjava/api/com/zfabrik/components/provider/IComponentsRepository.html.
16
17
*Synchronizer*: A synchronizer checks component repositories for updates and performs invalidations of modified components at runtime.
18
19
20
Interested? Please read on "in the documentation":http://www.z2-environment.eu/v21doc#componentsAndComponentRepos.