The RevaSoft ULC for Java architecture consists of a thin Java based "Universal User Interface Engine" (UI Engine) and a ULC Server. The UI Engine allows all applications built using ULC technology to share the same client side code. The UI Engine communicates with server side ULC applications using a highly optimized ULC protocol that has been designed to operate on networks with speeds as low as a 28.8KB modem line. The ULC protocol is implemented over a ULC Transport abstraction that allows ULC applications to run using a variety of low level industry standard transports/protocols like TCP, HTTP, HTTPS, IIOP, SSL etc. In addition customers can implement their own ULC Transports to cater to any proprietary encryption or authentication requirements.
The UI Engine uses the Java-Swing widget library to allow function rich user interfaces to be built. The UI Engine is relatively small (~450KB), presents the views to the user, and performs local validation, formatting and editing of data without requiring round trips to the server. The ULC widget set which is loosely based on the Swing API allows developers familiar to Java Swing programming to easily switch to building applications using ULC.
A ULC Server application communicates with the UI Engine using ULC Proxy widgets that abstract all aspects of communication and distribution, allowing the developer to concentrate on building the application. All ULC applications transparently support lazy loading of data and widgets allowing ULC applications to use minimal amounts of bandwidth since features/data not explicitly viewed by a user will not be loaded into the client machine.