What really happens internally when the UI Engine initiates a connection to a ULC application?
When users connect to a ULC application, they start the UI Engine with the URL of the application as an argument. The UI Engine is started from the main method of a launcher class, which creates a connector object (responsible for the communication with the server) and a new UISession object, passing the connector to it. The connector encapsulates the transport protocol used (HTTP(S), EJB). UISession now sends, via the configured connector, an init request to the server (the ‘server’ in this case might be a servlet or an EJB). The init request also transmits client-specific information, such as display size, available fonts, widget specific LAF properties, etc. In response to the init request, the server creates a ULCSession which then creates an instance of the application class (the one implementing IApplication). The user’s application class is wrapped by the ULCSession class, which is the server half-object. Next, the start method of the IApplication class is called, where the deve