Project

General

Profile

FAQ » History » Revision 6

Revision 5 (Redmine Admin, 20.08.2012 13:22) → Revision 6/8 (Redmine Admin, 20.08.2012 13:23)

h1. Frequently Asked Questions 

 {{toc}} 

 h2. General questions 

 h3. What is z2 not? 

 The z2-environment is not a make tool like ant or maven. It's not a replacement for JEE servlets or other JEE techniques. It's not a Spring competitor. And it's not a new way to write software like aspect orientated programming. 

 h3. So what is z2? 

 The z2-environment can be seen as an extension to a common JEE server (like Jetty in our case) that enables the server to retrieve sources directly from the [[Glossary#SCM|SCM]], compiles them on demand and restarts modules that have been changed (plus the depending modules). A key point of traditional developing and running web applications is _pushing_ deployables to the server. Z2 turns this around and _pulls_ the sources by itself, bypassing all kinds of make/build infrastructure and deplyoment processings. 

 h3. What's the difference between _push_ and _pull_? 

 In a traditional _pushing-environemnt_ the source code is compiled, assembled and packaged into deployable units. These units are activly deployed (i.e. pushed) to the server. Often the deployment of one artefact A requires the deployment of some artefacts B and C containing features required by A. Unfortunately B also might need some changes provided by D and so one.  
 In opposite to this the _pulling-environment_ doesn't need the package assembly steps. It just needs the trigger to "synchronize itself with the source repository". Now all changed sources can be easily determined (using the history feature of the [[Glossary#SCM|SCM]]), downloaded and compiled. Then all modules that are affected of the changes are dropped and restarted (this works simalar to the hot-deploy mechanisms provided by modern web containers). 

 h3. Can this work at all? 

 A good example that compilation on the server works pretty well are JSPs. You could write your web application using plain JSPs and you can already enjoy the luxary of compile on demand. 


 h2. Installation 

 h3. How do I install the z2-environment 

 One of the basic z2 paradigms is: "Don't install, just copy and run". The big benefit of a system-centric approach like z2 is, that the configuration is part of the system; it's like the source code (and there are good reasons to put configuration into code sometimes). The [[Glossary#SCM|SCM]] should contain everything to get your system up a running. You got a new team member? "Copy" the system and start it. You have to scale out your productive site? Just copy the system to the new nodes and start them. "Copy" here means either "do a SVN checkout" or a "Git clone". The advantage over a plain copy is, that you can easily update or system with a simple "svn update" or "git pull". 

 h3. How do I run the z2-environment for development purposes? 

 h3. How do I run the z2-environment for productive purposes?