A method of operating a web application stored on a server using circuitry , the method comprising: establishing , using a parent browser window corresponding to an application page , a channel for sending and receiving messages; loading , using the parent window, a layout from the application page specifying display information for at least one child window (30b-30f) and the parent window, the display information including location information and at least one component for each of the at least one child window and the parent window; positioning , using the circuitry, the parent window based on the location information for the parent window specified in the display information; loading , using the parent window, the at least one component for the parent window specified in the display information; and for each of the at least one child window having display information specified in the layout: opening , using the circuitry, a new browser window as a child window; receiving channel information with the child window; causing the child window to join the channel using the channel information; positioning the child window, using the circuitry, based on the location information for the child window specified in the display information; and loading , using the child window, the at least one component for the child window specified in the display information; wherein the channel for sending and receiving messages is for sending and receiving messages between the browser windows. establishing , using a parent browser window corresponding to an application page , a channel for sending and receiving messages; loading , using the parent window, a layout from the application page specifying display information for at least one child window (30b-30f) and the parent window, the display information including location information and at least one component for each of the at least one child window and the parent window; positioning , using the circuitry, the parent window based on the location information for the parent window specified in the display information; loading , using the parent window, the at least one component for the parent window specified in the display information; and for each of the at least one child window having display information specified in the layout: opening , using the circuitry, a new browser window as a child window; receiving channel information with the child window; causing the child window to join the channel using the channel information; positioning the child window, using the circuitry, based on the location information for the child window specified in the display information; and loading , using the child window, the at least one component for the child window specified in the display information; opening , using the circuitry, a new browser window as a child window; receiving channel information with the child window; causing the child window to join the channel using the channel information; positioning the child window, using the circuitry, based on the location information for the child window specified in the display information; and loading , using the child window, the at least one component for the child window specified in the display information; wherein the channel for sending and receiving messages is for sending and receiving messages between the browser windows. <EOS>