WebAssembly

  • Filière :

    Développement logiciel

  • Sous-filière :

    Applications mobiles & PWA

    Technos Web (PHP, JS...)

  • Référence

    WEBA

  • Durée

    2 jours (14 h)

  • Prix par personne HT

    1 800 € HT

Description

WebAssembly est un langage pour la programmation du Web : côté navigateur, côté serveur (Node.js par exemple) et pour le cloud de manière générale. Ouvert, interopérable (avec C, C++, Go, JavaScript, Python, Rust, TypeScript…), performant, sécurisé, standardisé et soutenu par la Bytecode Alliance (Amazon, Microsoft, Google, Intel…) et la Cloud Native Computing Foundation – NCF-, c’est un langage associé à une machine virtuelle universelle qu’est le Web.

WebAssembly est incarné par un format textuel proche du langage de programmation LisP et d’un format machine (assembleur) semblable au langage d’assemblage propre à chaque type d’architecture d’ordinateur. WebAssembly System Interface -WASI- (norme d’interfaçage avec les environnements d’exécution WebAssembly) ainsi que Wasm Interface Type -WIT- (WebAssembly Component Model) sont d’autres pierres angulaires de cette révolution de la programmation du Web.

Objectifs pédagogiques

Le participant apprend à construire, configurer, déployer et exécuter des modules WebAssembly avec ou sans WASI offrant des fonctions de calcul codées de façon native (format .wat) ou à l’aide des langages AssemblyScript (qui dérive de TypeScript), JavaScript ou encore Go (liste non exhaustive).

Les environnements d’exécution Wasmtime, WasmEdge ou encore wasmCloud (liste non exhaustive) sont utilisés à titre de découverte et d’illustration.

L’utilisation de WebAssembly est étudiée et mise en œuvre côté client (JavaScript API-navigateur) et côté serveur (JavaScript API-Node.js).

Finalement, la conception, la composition et la distribution de composants logiciels conformes à WebAssembly Component Model sont aussi étudiées et mises en pratique durant la formation.

Public cible

Cette formation s’adresse à des consultants IT, développeurs, architectes logiciels et « product owners » acteurs de la conception d’applications Web complexes, distribuées où la problématique cloud est centrale.

Pré-requis

Une connaissance de base et un certain recul sur la conception d’applications Web distribuées (SOA et cloud) sont nécessaires. De bonnes notions en programmation sont recommandées.

Modalités d'évaluation

L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation.

Programme de la formation

Serverless function

  • De Service-Oriented Architecture -SOA-/Web-Oriented Architecture -WOA- à architecture micro- service et serverless function (Function as a Service -FaaS-)

Tenants et aboutissants de WebAssembly

  • Ecrire des modules WebAssembly
    • Formats .wat et .wasm
    • Développer directement via .wat
    • Développer avec AssemblyScript
      • WebAssembly côté client (JavaScript API-navigateur)
      • WebAssembly côté serveur (JavaScript API-Node.js)
      • WebAssembly cloud (Wasmtime)
    • Développer avec Go
  • WebAssembly System Interface -WASI- pour l’accès aux ressources côtés client, serveur et cloud : étude et mise en pratique
  • Etude et mise en œuvre d’autres environnements d’exécution WebAssembly et WASI : WasmEdge, wasmCloud…

« WebAssembly »

  • Exemple et mise en œuvre de WASI et de WebAssembly Component Model
  • Conception d’interfaces de composants WebAssembly avec Wasm Interface Type -WIT-
  • Composition avec WebAssembly Compositions -WAC-
  • Distribution avec wasmCloud

Programme mis à jour le