Project

General

Profile

Z2 resource model intro » History » Revision 3

Revision 2 (Henning Blohm, 21.09.2012 09:35) → Revision 3/9 (Henning Blohm, 21.09.2012 09:51)

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. 

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

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


 Interested? Please read on "in the documentation":http://www.z2-environment.eu/v21doc#componentsAndComponentRepos.