Project

General

Profile

Z2 resource model intro » History » Revision 8

Revision 7 (Henning Blohm, 21.09.2012 10:04) → Revision 8/9 (Henning Blohm, 03.10.2012 13:42)

h1. An introduction to the Z2 component 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.  

 model. 

 The true reference on that is "in the documentation":http://www.z2-environment.eu/v21doc#componentsAndComponentRepos. 

 The one minute overview is: 

 Z2 core, at its very heart, knows of these conceptual objects: 

 !pseudo_uml.png! 

 *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. 

 *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":http://www.z2-environment.net/javadoc/com.zfabrik.core.api!2Fjava/api/index.html (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":http://www.z2-environment.net/javadoc/com.zfabrik.core.api!2Fjava/api/com/zfabrik/components/provider/IComponentsRepository.html. 

 *Synchronizer*: A synchronizer checks component repositories for updates and performs invalidations of modified components at runtime. 


 Interested?