Rich cloud-based web applications with CloudBrowser 2.0

Xiaozhong Pan, Godmar Back
2016 Proceedings of the 31st Annual ACM Symposium on Applied Computing - SAC '16  
When developing web applications using traditional methods, developers need to partition the application logic between client side and server side, then implement these two parts separately (often using two different programming languages) and write the communication code to synchronize the application's state between the two parts. CloudBrowser is a servercentric web framework that eliminates this need for partitioning applications entirely. In CloudBrowser, the application code is executed in
more » ... server side virtual browsers which preserve the application's presentation state. The client web browsers act like rendering devices, fetching and rendering the presentation state from the virtual browsers. The client-server communication and user interface rendering is implemented by the framework under the hood. CloudBrowser applications are developed in a way similar to regular web pages, using no more than HTML, CSS and JavaScript. Since the user interface state is preserved, the framework also provides a continuous experience for users who can disconnect from the application at any time and reconnect to pick up at where they left off. The original implementation of CloudBrowser was single-threaded and supported deployment on only one process. We implemented CloudBrowser 2.0, a multi-process implementation of CloudBrowser. CloudBrowser 2.0 can be deployed on a cluster of servers as well as a single multi-core server. It distributes the virtual browsers to multiple processes and dispatches client requests to the associated virtual browsers. CloudBrowser 2.0 also refines the CloudBrowser application deployment model to make the framework a PaaS platform. The developers can develop and deploy different types of applications and the platform will automatically scale them to multiple servers. This model entails additional potential benefits: since only framework code runs in the client engine, the application code running on the server does not need to handle any client/server communication and can be written in an event-based style similar to that used by desktop user interface frameworks. Since the virtual browser has the same JavaScript execution capabilities as a standard browser, emerging model-view-controller (MVC) frameworks such as AngularJS [21] can be directly used, further simplifying application development. More side benefits include: a lighter weight client engine that can load faster, a resulting application which they run. Most of the existing applications can automatically scale to multiple processors without modification. Some applications needed to be modified because of necessary changes to API methods' signatures. We have implemented a number of sample applications and profiled them to better understand the intrinsic and extrinsic limitations of this design. We also built a benchmark tool
doi:10.1145/2851613.2851859 dblp:conf/sac/PanB16 fatcat:ov7rhdqymrbtfn3fyfq44bnmim