The JWAMIntegrationServer is an encapsulation for a conventional VersionControlSystem (like CVS). Its main purpose is to ensure consistency of the server side code base. Therefore the integration server avoids checking in code that would break the server side code base.
A developer who made modifications to his client side code uses the integration server to figure out which files he modified. At the same time the integration server checks which server file were modified. If no conflicts on this file base are detected the developer starts the integration process: The integration server copies the modified client files together with the existing server files to a temporary area. In this area the files are recompiled and UnitTests are run. If compilation and test runs were successful, the modified files are committed to the server. If compilation or testing failed, the integration is rejected. Then the developer has to remove the problem and integrate again.
One interesting effect of using the integration server is that it encourages to make SmallRefactorings?. If a developer integrates seldom, it is likely that his code will break the server side code base. In that case the developer has to remove the conflicts which is not a very funny task - as we all know. Therefore developers make small changes and small refactorings to the code and integrate more often.