(Model-View-Controller) provided by the Google Web Toolkit. The architecture of CustomUBL includes the following components:
a component for the creation of the interface and management of interaction with users (client side);
a component for manipulating and extracting data from the schema (on the server);
a component for the generation of the constraints expressed by the user and their integration into the schema that you are customizing (server side).
Following the model described above you establish a process of information. Once the user has loaded an UBL schema document (maindoc) the various steps of this procedure are:
the user, using GWT widgets that make up the interface, make an inquiry on an element of the schema;
the server queries the UBL schema document and fills an appropriate structure with the data obtained;
the application sends this data structure from the server to the client via RPC(Remote Procedure Call);
the client received the data structure, analyzes the data it contains and creates the interface to represent them in the most appropriate mode;
when the user using the interface, defines the constraints for the element and saving, control passes back to the server that takes care of generating the new UBL schema document (maindoc) and the new documents (common) imported from the maindoc containing the constraints defined by the user.
The process just described happens for every request of information made by the user and is shown in the following image: