Networks/Edge computing

From W3C Wiki

 Edge computing work stream

Objective: Understand the impact of edge computing for Web applications and build a roadmap to enable its adoption

The following themes have been identified to guide our initial exploration:

  • understanding in what context and for what use cases edge computing might be used in Web applications
  • sketching what approach to offloading computing tasks from the browser to an edge node might require architecturally
  • understanding if the "split-browser" model built for cloud-based rendering of Web pages needs more attention in an edge-enabled world

Work mode

Proposal: A 1 hour call every other week that starts with a 20-30 minutes presentation, followed by 20 minutes discussion, and 10 minutes dedicated to identify follow up discussions required and next steps.

Stakeholders

  • telecommunication operators (in the context of Multi-Access Edge Computing)
  • cloud-computing providers
  • CDN providers
  • browser vendors
  • (OS vendors?)
  • Edge computing specialists (e.g. MobileEdgeX)
  • Edge-reliant application developers

Themes

Edge computing applied to Web applications

Not to rehash the existing use cases but to put them in the perspective of the Web platform execution environment. How would a Web application use an edge computing infrastructure to improve its operations in the following fields:

  • AI/ML
  • Games
  • AR/VR

Challenges to explore in sketching these use cases:

  • how does client-part of the Web app interact with edge nodes? are there challenges linked with domain names and the same-origin policy?
  • how does the Web application determine that using edge computing will provide the optimal trade off? What contextual information needs to be available to whom (browser? web app? edge?) to make that determination? What are the privacy impacts?
  • how can edge be made a progressive enhancement to default client-server deployment model?

Potential topics of presentations:

Architecture for computing offload in Web applications

Questions to address:

  • How to make this offload transparent
  • Is there a need for the client side application to know where the offload is taking place?

Potential topics of presentations:

Split-browser architecture in the context of edge computing

  • Explore previous split browser designs
  • Packaged web apps/widgets
  • Progressive Web Apps

Challenges to address:

  • Are Stateful transitions from client user agent to edge user agent required?
  • Is discovery a prerequisite?
  • Can multiple client side user agents share an edge instance

Potential topics of presentations:

Edge computing landscape

Edge Computing is a broad subject – it means different things to different players. Standardization is slowly being addressed mostly on the infrastructure and Edge Cloud layers

Edge Computing Questions

  • Why would a developer want to incorporate Edge Computing in their apps?
    • lower latency access to assets (CDN++)
    • access to greater computing capabilities e.g. for Machine Learning, machine vision
    • access to greater or more persistent storage capabilities
    • use lots of computing without depleting end-user device battery
    • locally-persistent apps (à la IoT orchestrators)
  • Challenges for Web developers to use Edge Computing in their apps?
    • they need a uniform way to access Edge Computing resources (e.g. likely can't have an agreement with hundreds of CSPs to use their edge facilities)
    • they need to build their apps so they can work when edge computing isn't available
    • they need to have some guarantees that edge will only be used when the trade-offs (in latency, cost, battery, ...) are right
  • How can Edge Computing resources be made available in a uniform way to developers?
    • What role can WASM play in deploying code seamlessly in client/edge/cloud?
    • Can re-using similar paradigms in client/cloud help?
      • e.g. EdgeWorkers from Michael McCool, CloudFlare's ServiceWorker
  • How can developers ensure edge Computing is used when optimal?
    • can be either imperative (give all data to developers and let them figure it out) or declarative (let developers describe the constraints of their edge usage)
      • See Michael McCool discussion around IoT discovery and vocabulary
    • unless the trade-off assessment is delegated to the edge itself, the edge will need to communicate a number of characteristics to make the assessment (which could then be done by the OS, the browser, or the app)
      • latency, storage resources (type, quantity), computing resources (type, quantity), cost?
      • are there existing protocols to communicate these characteristics?
  • Edge computing can be "paid for" either by the app provider (B2B) or by the end-user (B2C); how can either approach impact Web usage of edge?
    • B2B model more widespread at the moment; in that model, from the client perspective, edge is "just" another type of cloud deployment. How does it impact WebApps
      • are they e.g. issues around same-origin policies?
      • can this model extend to off-load computing usage? (how does the app know when and what to offload)
    • B2C model seems further on the horizon, although some examples of similar consumer oriented services (VPN)
      • how does the client authenticate to the edge in that model?
      • what additional mediating from the OS/browser would be needed (e.g. permission for "computing" plan utilization?)
      • how would the OS / browser / app determine that Edge is available, and with what characteristics? (this needs to work in a network-independent way)
        • cf IoT discovery discussion with Michael McCool