12:56:34 RRSAgent has joined #web-networks 12:56:34 logging to https://www.w3.org/2020/06/11-web-networks-irc 13:00:05 cpn has joined #web-networks 13:01:00 Present: Seikwon_Kim, Sudeep, Suyambu, uzair, venu.musham, Peipei_Guo, Michael_McCool, Eric_Siow, Dan_Druta, Dom_HazaelMassieux, Ravi_Nanjundappa; Chris_Needham 13:03:33 Present+ Chandan, Kodam_Nagaraju, Theo, Venugopal 13:04:42 Present+ Piers_O_Hanlon 13:04:53 Topic: Intro 13:05:12 Sudeep: welcome to the Web & Networks IG call, after a few months of hiatus - hope everyone is doing OK 13:05:42 ... Today we'll have an interesting talk - before going there, some useful information 13:05:57 ... we have an IRC channel we using during the meeting 13:06:05 McCool has joined #web-networks 13:06:33 ... please pass the message to companies that might be interested in joining the group 13:06:37 piers has joined #web-networks 13:06:41 Present+ Louay_Bassbouss 13:07:08 ... a few updates from the chairs on what's coming before going the guest speaker from Samsung on distributed Web engine 13:07:18 ... particularly relevant to the edge computing workstream 13:07:22 ... A few general updates: 13:07:36 ... the wiki has updates on our planned upcoming talks 13:07:48 ... one on Web worker in July 13:08:04 ... another one from Peer5, an eCDN company 13:08:26 ... We're looking into talks from CloudFlare, and for a talk on WebTransport 13:09:11 ... We're also building a Q&A wiki on edge computing and network quality to cover what we've had presented so far 13:09:29 ... we're encouraging the IG members to contribute 13:09:47 ... we've also started documenting our findings on P2P CDN and Video cloud services 13:09:55 ... some of these pages have been translated in Chinese 13:10:10 ... We'll be sharing more details on this in a dedicated meeting 13:10:25 ... A final update: the WebRTC WG is calling for wide review on Scalable Video Coding 13:10:48 ... this is relevant to our IG given its impact on video in varying network conditions 13:11:03 ... please take a look and feel free to bring your input to the spec 13:11:06 Present+ Huaqi 13:11:29 Topic: Resources Efficient Distributed Web Browser by Offloading Processes to Remote Edge Devices 13:12:03 Sudeep: we're welcoming Seikwon Kim and his Samsung colleagues to hear their work on a distributed browser engine architecture 13:14:01 Kim: good to meet you all - I'm from Samsung Electronics, and I'll be talking about Castanets, a resource efficient distributed Web browser 13:14:12 ... we're open to start collaboration on this work 13:14:32 ... Web standards are evolving - Web apps are composed of multiple layers combined dynamically 13:15:11 ... that means more and more resource consumption from Web browsers 13:15:42 Peipei_Guo has joined #web-networks 13:16:06 ... yet, devices on which browsers are deployed can be very resource constrained - e.g. fridges, watches 13:16:32 ... these two trends are in conflict, which require a new solution to solve this 13:16:48 ... Slide 2 describes the architecture of a modern Chromium browser 13:17:40 ... the browser process is graphics bound, but it orchestrates various rendering process which are CPU and memory bound 13:17:58 ... our solution allows to support browsers on low-end devices using edge computing 13:18:15 ... it helps reduce up to 40% memory consumption and up to 60% CPU consumption 13:18:41 ... slide 4 shows the evolution of browser architecture from single device/single process, to single device/multiple process today 13:19:35 ... the multiple processes approach helps deal with the risks associated with running rich web applications, both in terms of crash and in terms of security with separate sandboxes 13:19:54 ... We believe a next step in this evolution is for an engine to span multiple devices with multiple processes 13:20:36 ... this matters to cater for lower-resources devices, and taking advantages of improved network conditions with 5G 13:21:25 ... slide 5 shows the memory usage of displaying web pages from top Web sites, split between renderer process and browser process 13:21:45 Present+ Song_Xu 13:22:03 ... e.g. YouTube consumes 100MB in browser process, 130MB in renderer 13:22:27 ... lots of variation across Web sites on renderer process, whereas the browser process is fairly predictable 13:22:28 GM is Gmail? 13:22:44 ... or average? 13:23:25 ... when rendering multiple tabs, the browser process memory consumption doesn't increase much, whereas the renderer tabs increase with each new tab 13:23:27 (question on slide 5/29... will ask later) 13:23:54 (... ah, geomean) 13:24:01 ... slide 6 shows the CPU breakdown across several web sites as a percentage split between renderer/browser 13:24:37 ... slide 7 13:24:57 ... we showed the value in offloading processes to the edge, slide 7 shows how we do it 13:25:22 ... the idea is to push the renderer process to the edge, and only runs the browser process on the client 13:25:50 ... castanet is composed of 3 major components: a browser process, a render process and an orchestration component 13:26:07 ... the browser component runs on low-end device and show the UI of the browser 13:26:19 ... the renderer device runs on high-end device or on the edge 13:26:41 ... orchestration runs on both low-end and high-end devices and the edge 13:26:49 ... slide 8: major changes in castanets 13:27:08 ... to enable this offload requires some major changes in the browser architecture 13:27:22 ... we'll focus only on a subset - we can discuss separate for more in depth discussions 13:27:29 ... slide 9 13:27:49 ... the remote process runs on the edge cloud, waiting to be requested via a network IPC 13:28:24 ... the browser process searches a edge node via a discovery protocol and contacts a service agent which creates a socket that gets connected to the browser process 13:28:51 ... we don't run the renderer process in the background all the time to avoid wasting resources 13:29:05 ... slide 10: Chromium resource loader 13:29:29 ... compating with how other browser (e.g. Chromium) load resources 13:29:47 ... with shared memory 13:29:56 ... slide 11 shows how castanet does it 13:30:42 ... to reduce network overhead and improve performance, the network process is migrated to the edge cloud 13:31:04 ... and uses shared memory on the edge node 13:31:06 s/cloud/node 13:31:22 ... slide 12 shows multimedia support in Chromium 13:31:42 ... a very important feature in Web browsers given the popularity of video web sites 13:31:59 ... the media pipeline happens in the renderer process 13:32:08 ... slide 13 - multimedia in Castanets 13:32:48 ... we can't decode the frames on the edge (otherwise we would have to send decoded frames over the network, which is not practical) 13:33:27 ... so the browser process (on the client) deals with the decoding, and that's where the media pipeline happens, and is overlayed to the rendered layout from the renderer process 13:33:34 ... slide 14: limitations and issues 13:34:07 ... Getting IPC messages among heterogeneous devices is a challenge 13:34:40 ... we also have policy issues in case of network problems: what to do in case of a disconnection? how to manage if the renderer is turned off? 13:34:54 ... slide 15: service discovery agent 13:35:15 ... when we started, we used hardcoded IP addresses to establish the link between the browser and renderer process 13:35:35 ... this evolved over time as we worked on supporting more devices and OSes 13:36:13 ... there also needs to be load balancing across devices 13:36:22 ... which led us to the set up of a service discovery agent 13:36:26 ... slide 16 13:36:49 ... the service discovery agent is responsible for resource monitoring, network tunneling, version management 13:36:54 ... slide 17 13:37:02 ... the architecture of the discovery agent 13:37:29 ... the server (on the left side), the client (on the right side) 13:38:22 ... the process is that the browser process broadcasts messages to find a node 13:38:34 ... response is sent via MDNS 13:39:08 ... the resources monitoring module is responsible for tracking CPU/network characteristics, etc 13:39:28 ... as that data is obtained, the module "service provider chooser" picks the best node 13:39:38 ... which then launches the renderer process 13:39:44 ... we plan on using SDP/ICE in the future 13:39:59 ... slide 18 shows the coverage of the service discovery agent 13:40:36 ... we're considering several situations: multi-cast for single NAT discovery, STUN for NAT traversal 13:41:06 ... we could use TUN server for situations where STUN doesn't work, but that doesn't seem likely to give good or affordable results 13:41:11 ... slide 19 13:41:27 ... To choose the best performign device, we first need to define what best means 13:41:44 ... is it loading speed? service stability? network latency? could be many variations 13:42:01 ... in our case, we've focused on best loading speed 13:42:26 ... we compute a score based on network bandwith, network latency, CPU usage 13:42:43 ... slide 20 13:44:00 ... shows the impact of evaluating the performance based on network bandwidth 13:44:12 ... slide 21 shows with CPU Frequency, and core utilization 13:44:55 ... the resources monitoring module in the discovery agent - it uses network scope and CPU score as the main factors 13:45:17 ... This score is dynamic - the monitoring module periodically measures it 13:45:39 ... we use a moving average to evaluate the stability 13:46:01 ... the formula (on slide 22) is not fixed and can be made to evolve 13:46:24 ... slide 23 shows how we found the best-fit formula from our measurements 13:46:42 Present+ Zoltan_Kis 13:47:49 ... slide 25 shows an exact of device integration in home with their score 13:48:29 ... the watch picks to pair with the TV which has the highest score, which the actual loading time confirms is the best pick 13:49:15 ... slide 26 compares castanets results with Chrome, Firefox and Opera Mini, running on an Android with 4GB memory 13:49:44 ... slide 27 shows the impact of memory usage, an important consideration for consumer eletronics devices 13:50:03 ... the impact is shown across several popular Web sites 13:50:36 ... Castanets reduces 26% memory compared to Chrome 13:51:14 ... slightly higher than Opera Mini, but Opera Mini doesn't support full-browsing capabilities and requires a separate server component 13:51:18 ... slide 28 on CPU usage 13:51:56 zkis has joined #web-networks 13:52:09 ... Where both Firefox (+27%) and Opera Mini (+5%) uses more CPU, Castanets requires much less CPU 13:52:14 ... Slide 29: Conclusion 13:52:37 ... Castanets is an edge distributed browser composed of a browser process, a renderer process and an orchestration module 13:52:58 ... There are issues still to be solved on manage heteregenous web engines and different version of a given engine 13:53:25 ... The short-term approach to solve this is via the orchestration engine 13:53:39 ... the long-term would be to align IPC messages across browser engines and versions 13:54:57 MichaelMcCoo: what in general should be W3C-standardized in this? I think discovery should be part of it 13:56:01 Kim: to achieve the pairing between the browser and renderer process, @@@ 13:56:36 ... the scoring methods don't need to be standardized, but there should be a way to open up scoring methods 13:56:47 q+ 13:57:04 cpn: thank you for an excellent presentation 13:57:25 ... I wanted to ask about Web APIs that are device specific 13:57:35 ... e.g. geolocation, or bluetooth, NFC 13:57:42 ... how would these work in this split environment? 13:58:16 kim: for now, we don't have any support for this (?) 13:58:52 Chris: regarding Michael's question, the state protocol to manage different renderer / browser process would be another candidate 13:59:02 q? 13:59:38 Dom: how do you measure the network characteristics? 13:59:50 Kim: it has been hard - we use ICMP for latency 14:00:00 ... for bandwidth, we're limited with @@@ 14:00:31 ... the only approach, which is not practical, is sending bulk data 14:00:34 s/@@@/iframe/ 14:01:08 Sudeep: thank you Mr Kim for this great presentation - there are many more questions we'll have to discuss 14:01:25 ... we will want to continue discussions on future standardization opportunities off-line 14:01:33 anssik has joined #web-networks 14:01:55 Some related previous work from the Web + TV IG: https://www.w3.org/2011/webtv/wiki/Main_Page/Cloud_Browser_TF https://w3c.github.io/me-cloud-browser/ 14:02:00 ... looking forward to engaging with you all 14:02:22 RRSAgent, draft minutes 14:02:22 I have made the request to generate https://www.w3.org/2020/06/11-web-networks-minutes.html dom 14:04:05 RRSAgent, draft minutes v2 14:04:05 I have made the request to generate https://www.w3.org/2020/06/11-web-networks-minutes.html dom