{'fraction_non_alphanumeric': 0.01813110181311018, 'fraction_numerical': 0.001394700139470014, 'mean_word_length': 5.493212669683258, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Offloading of Web Application Computations: A Snapshot-Based Approach

As the web technology advances, web applications, executable on any devices where a web browser is installed, have become pervasive. However, running heavy web applications in the mobile devices is challenging, because of their resource constraints and poor network environments. One of the trials to overcome such restrictions is computation offloading. Computation offloading is the technique migrating computations from client to server to exploit the powerful resources of the server. We observed some former approaches to the computation offloading, and found out they placed a huge burden on programmers to write annotations and substantially limited the computations to be offloaded. In order to overcome these problems, we propose an offloading system transferring the states without annotations and giving programmers freedom to use JavaScript features and DOM (Document Object Model) API in the offloaded computations. Our approach is based on the technique called snapshot, which safely saves and restores the states of web applications. The snapshot-based approach allows the offloaded computations to use various features such as a closure, and DOM API. In the web applications using open source JavaScript libraries, our offloading system successfully offloaded the event handlers using closure variables and DOM APIs, achieving a speedup up to 7.2.