[minutes] June 11 teleconference

Hi,

The minutes of our teleconference today are available at:
  https://www.w3.org/2020/06/11-web-networks-minutes.html

and copied as text below.

Dom

              Web & Networks Interest Group teleconference
   Resource Efficient Distributed Web Browser by Offloading Processes

11 June 2020

   [2]IRC log.

      [2] https://www.w3.org/2020/06/11-web-networks-irc

Attendees

   Present
          Chandan, Dan_Druta, Dom_HazaelMassieux, Eric_Siow,
          Huaqi, Kodam_Nagaraju, Louay_Bassbouss, Michael_McCool,
          Peipei_Guo, Piers_O_Hanlon, Ravi_Nanjundappa;
          Chris_Needham, Seikwon_Kim, Song_Xu, Sudeep, Suyambu,
          Theo, uzair, venu.musham, Venugopal, Zoltan_Kis

   Regrets
          -

   Chair
          -

   Scribe
          dom

Contents

    1. [3]Intro
    2. [4]Resources Efficient Distributed Web Browser by
       Offloading Processes to Remote Edge Devices

Meeting minutes

  Intro

   Sudeep: welcome to the Web & Networks IG call, after a few
   months of hiatus - hope everyone is doing OK
   … Today we'll have an interesting talk - before going there,
   some useful information
   … we have an IRC channel we using during the meeting
   … please pass the message to companies that might be interested
   in joining the group
   … a few updates from the chairs on what's coming before going
   the guest speaker from Samsung on distributed Web engine
   … particularly relevant to the edge computing workstream
   … A few general updates:
   … the wiki has updates on our planned upcoming talks
   … one on Web worker in July
   … another one from Peer5, an eCDN company
   … We're looking into talks from CloudFlare, and for a talk on
   WebTransport
   … We're also building a Q&A wiki on edge computing and network
   quality to cover what we've had presented so far
   … we're encouraging the IG members to contribute
   … we've also started documenting our findings on P2P CDN and
   Video cloud services
   … some of these pages have been translated in Chinese
   … We'll be sharing more details on this in a dedicated meeting
   … A final update: the WebRTC WG is calling for wide review on
   Scalable Video Coding
   … this is relevant to our IG given its impact on video in
   varying network conditions
   … please take a look and feel free to bring your input to the
   spec

  Resources Efficient Distributed Web Browser by Offloading Processes to
  Remote Edge Devices

   [5]Slides of CASTANETS: Resource Efficient Distributed Web
   Browser by Offloading Processes to Remote Edge Devices

      [5] http://www.w3.org/2020/06/11-web-networks-castanets.pdf

   Sudeep: we're welcoming Seikwon Kim and his Samsung colleagues
   to hear their work on a distributed browser engine architecture

   Kim: good to meet you all - I'm from Samsung Electronics, and
   I'll be talking about Castanets, a resource efficient
   distributed Web browser
   … we're open to start collaboration on this work
   … Web standards are evolving - Web apps are composed of
   multiple layers combined dynamically
   … that means more and more resource consumption from Web
   browsers
   … yet, devices on which browsers are deployed can be very
   resource constrained - e.g. fridges, watches
   … these two trends are in conflict, which require a new
   solution to solve this
   … Slide 2 describes the architecture of a modern Chromium
   browser
   … the browser process is graphics bound, but it orchestrates
   various rendering process which are CPU and memory bound
   … our solution allows to support browsers on low-end devices
   using edge computing
   … it helps reduce up to 40% memory consumption and up to 60%
   CPU consumption
   … slide 4 shows the evolution of browser architecture from
   single device/single process, to single device/multiple process
   today
   … 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
   … We believe a next step in this evolution is for an engine to
   span multiple devices with multiple processes
   … this matters to cater for lower-resources devices, and taking
   advantages of improved network conditions with 5G
   … slide 5 shows the memory usage of displaying web pages from
   top Web sites, split between renderer process and browser
   process
   … e.g. YouTube consumes 100MB in browser process, 130MB in
   renderer
   … lots of variation across Web sites on renderer process,
   whereas the browser process is fairly predictable

   <McCool> GM is Gmail?

   <McCool> ... or average?

   Kim: when rendering multiple tabs, the browser process memory
   consumption doesn't increase much, whereas the renderer tabs
   increase with each new tab

   <McCool> (question on slide 5/29... will ask later)

   <McCool> (... ah, geomean)

   Kim: slide 6 shows the CPU breakdown across several web sites
   as a percentage split between renderer/browser
   … slide 7
   … we showed the value in offloading processes to the edge,
   slide 7 shows how we do it
   … the idea is to push the renderer process to the edge, and
   only runs the browser process on the client
   … castanet is composed of 3 major components: a browser
   process, a render process and an orchestration component
   … the browser component runs on low-end device and show the UI
   of the browser
   … the renderer device runs on high-end device or on the edge
   … orchestration runs on both low-end and high-end devices and
   the edge
   … slide 8: major changes in castanets
   … to enable this offload requires some major changes in the
   browser architecture
   … we'll focus only on a subset - we can discuss separate for
   more in depth discussions
   … slide 9
   … the remote process runs on the edge cloud, waiting to be
   requested via a network IPC
   … 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
   … we don't run the renderer process in the background all the
   time to avoid wasting resources
   … slide 10: Chromium resource loader
   … compating with how other browser (e.g. Chromium) load
   resources
   … with shared memory
   … slide 11 shows how castanet does it
   … to reduce network overhead and improve performance, the
   network process is migrated to the edge node
   … and uses shared memory on the edge node
   … slide 12 shows multimedia support in Chromium
   … a very important feature in Web browsers given the popularity
   of video web sites
   … the media pipeline happens in the renderer process
   … slide 13 - multimedia in Castanets
   … we can't decode the frames on the edge (otherwise we would
   have to send decoded frames over the network, which is not
   practical)
   … 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
   … slide 14: limitations and issues
   … Getting IPC messages among heterogeneous devices is a
   challenge
   … 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?
   … slide 15: service discovery agent
   … when we started, we used hardcoded IP addresses to establish
   the link between the browser and renderer process
   … this evolved over time as we worked on supporting more
   devices and OSes
   … there also needs to be load balancing across devices
   … which led us to the set up of a service discovery agent
   … slide 16
   … the service discovery agent is responsible for resource
   monitoring, network tunneling, version management
   … slide 17
   … the architecture of the discovery agent
   … the server (on the left side), the client (on the right side)
   … the process is that the browser process broadcasts messages
   to find a node
   … response is sent via MDNS
   … the resources monitoring module is responsible for tracking
   CPU/network characteristics, etc
   … as that data is obtained, the module "service provider
   chooser" picks the best node
   … which then launches the renderer process
   … we plan on using SDP/ICE in the future
   … slide 18 shows the coverage of the service discovery agent
   … we're considering several situations: multi-cast for single
   NAT discovery, STUN for NAT traversal
   … we could use TUN server for situations where STUN doesn't
   work, but that doesn't seem likely to give good or affordable
   results
   … slide 19
   … To choose the best performign device, we first need to define
   what best means
   … is it loading speed? service stability? network latency?
   could be many variations
   … in our case, we've focused on best loading speed
   … we compute a score based on network bandwith, network
   latency, CPU usage
   … slide 20
   … shows the impact of evaluating the performance based on
   network bandwidth
   … slide 21 shows with CPU Frequency, and core utilization
   … the resources monitoring module in the discovery agent - it
   uses network scope and CPU score as the main factors
   … This score is dynamic - the monitoring module periodically
   measures it
   … we use a moving average to evaluate the stability
   … the formula (on slide 22) is not fixed and can be made to
   evolve
   … slide 23 shows how we found the best-fit formula from our
   measurements
   … slide 25 shows an exact of device integration in home with
   their score
   … the watch picks to pair with the TV which has the highest
   score, which the actual loading time confirms is the best pick
   … slide 26 compares castanets results with Chrome, Firefox and
   Opera Mini, running on an Android with 4GB memory
   … slide 27 shows the impact of memory usage, an important
   consideration for consumer eletronics devices
   … the impact is shown across several popular Web sites
   … Castanets reduces 26% memory compared to Chrome
   … slightly higher than Opera Mini, but Opera Mini doesn't
   support full-browsing capabilities and requires a separate
   server component
   … slide 28 on CPU usage
   … Where both Firefox (+27%) and Opera Mini (+5%) uses more CPU,
   Castanets requires much less CPU
   … Slide 29: Conclusion
   … Castanets is an edge distributed browser composed of a
   browser process, a renderer process and an orchestration module
   … There are issues still to be solved on manage heteregenous
   web engines and different version of a given engine
   … The short-term approach to solve this is via the
   orchestration engine
   … the long-term would be to align IPC messages across browser
   engines and versions

   MichaelMcCoo: what in general should be W3C-standardized in
   this? I think discovery should be part of it

   Kim: to achieve the pairing between the browser and renderer
   process, @@@
   … the scoring methods don't need to be standardized, but there
   should be a way to open up scoring methods

   cpn: thank you for an excellent presentation
   … I wanted to ask about Web APIs that are device specific
   … e.g. geolocation, or bluetooth, NFC
   … how would these work in this split environment?

   kim: for now, we don't have any support for this (?)

   Chris: regarding Michael's question, the state protocol to
   manage different renderer / browser process would be another
   candidate

   Dom: how do you measure the network characteristics?

   Kim: it has been hard - we use ICMP for latency
   … for bandwidth, we're limited with iframe
   … the only approach, which is not practical, is sending bulk
   data

   Sudeep: thank you Mr Kim for this great presentation - there
   are many more questions we'll have to discuss
   … we will want to continue discussions on future
   standardization opportunities off-line

   <cpn> Some related previous work from the Web + TV IG:
   [6]https://www.w3.org/2011/webtv/wiki/Main_Page/
   Cloud_Browser_TF [7]https://w3c.github.io/me-cloud-browser/

      [6] https://www.w3.org/2011/webtv/wiki/Main_Page/Cloud_Browser_TF
      [7] https://w3c.github.io/me-cloud-browser/

   Sudeep: looking forward to engaging with you all


    Minutes manually created (not a transcript), formatted by
    [8]scribe.perl version 121 (Mon Jun 8 14:50:45 2020 UTC).

      [8] https://w3c.github.io/scribe2/scribedoc.html

Received on Thursday, 11 June 2020 14:19:21 UTC