Bien que le programme ATIR n’accepte plus les demandes pour les ressources en nuage, vous avez toujours accès aux Propulseurs et à leur documentation, qui seront préservés et bénéficieront d’un soutien jusqu’au 17 janvier 2025. 

Après le 17 janvier 2025: 

  • Les saisies d’écran devraient rester fidèles, mais au lieu de vous connecter à votre compte ATIR dans AWS quand on vous le demande, vous devrez vous connecter à un compte AWS personnel. 
  • Les liens vers les scripts CloudFormation d’AWS permettant le déploiement automatique de l’application type devraient rester les mêmes et être fonctionnels.
  • Les liens vers les dépôts GitHub permettant de télécharger le code source du Propulseur resteront valables puisque c’est le créateur du Propulseur (celui qui a élaboré les applications de source ouverte servant d’exemple) qui en est le propriétaire et en assure le maintien. 

Plan de vol : Outil d’évaluation des données Apption

Ce Propulseur a été créé et la documentation rédigée par Apption

Ce Propulseur a été créé et la documentation rédigée par Apption

Les Propulseurs de l’ATIR sont des jeux structurés de ressources en nuage, documentation incluse, illustrant une technologie émergente. Offerts gratuitement, ils ont été conçus par des entreprises canadiennes d’expérience qui ont élaboré des produits ou des services au moyen de la technologie en question et ont accepté de partager leur savoir.

Aperçu de la Solution type

Ce Propulseur propose une solution conviviale à ce qui suit.

  1. Analyser des données non structurées, identifier le type de données et formuler des recommandations pour leur stockage
  2. Identifier les données sensibles (nom et prénom, par exemple)
  3. Convertir les donnes de sources non structurées en base de données en nuage (ou ailleurs) sur SQL Server en quelques étapes guidées

Apption a été créé sur la plateforme .NET Core et peut être lancé dans le nuage ATIR de CANARIE ou être exécuté dans Electron.NET (navigateur intégré).

Veuillez lire la page Solution type pour en savoir plus sur la Solution type et la façon de déployer l’application.

La Solution type recourt aux technologies suivantes : Docker, ASP.NET Core, Blazor, Electron.NET.

Objectifs

Principales caractéristiques

L’apprentissage machine et l’analyse des données avec un système complexe nécessitent souvent l’ajout de jeux de données externes desquels on tirera des conclusions neuves. Or ces jeux de données sont rarement organisés. Ils viennent avec une foule de colonnes et pourraient contenir des données sensibles dissimulées derrière des tabulations mal définies.

Pour intégrer des fichiers si mal structurés, le développeur a besoin d’une multitude d’outils et doit déployer des efforts appréciables pour comprendre les données, en évaluer la qualité et les charger dans un dépôt central. Malheureusement, de tels outils coûtent cher et abondent en fonctionnalités. En outre, s’ils autorisent la conversion et l’analyse des données, c’est souvent dans une fenêtre très étroite.

D’autre part, quand les fichiers renferment des informations délicates, il arrive qu’on doive prendre en compte des aspects précis sur le plan de la sécurité. Ainsi, au Canada, la Loi sur la protection des renseignements personnels et les documents électroniques oblige les sociétés à prendre des mesures pour protéger les données personnelles en leur possession.

Créer des jeux de données avec les outils ETL (extraire, convertir, charger) existants n’est pas une mince affaire, même avec des fichiers rudimentaires, et un engorgement paralysera tôt ou tard le projet d’analyse ou de recherche. La Solution type propose une méthode simple, en quatre étapes, couvrant les tâches les plus courantes de ce genre.

Avantages techniques

Outre ses fonctionnalités, l’application peut servir de modèle pour intégrer les technologies que voici.

Évolutif et portatif

Le code a été conçu pour être utilisé sur de nombreuses plateformes d’exploitation (Linux, Windows, MacOS) et beaucoup d’hôtes (Docker, Electron). Son architecture facilite une manutention efficace des jeux volumineux de données.
L’API est évolutive et on peut y ajouter d’autres analyseurs pour identifier de nouveaux types de données.

Fonctionnement

Le diagramme qui suit illustre comment fonctionne la Solution type.

Architecture du système

Ressources

On trouvera les informations de base sur les technologies employées pour créer la solution ici : .NET CoreBlazorElectron, and Docker.

Tutoriels

Le tableau qui suit dresse la liste (non exhaustive) des hyperliens menant aux didacticiels que l’auteur juge le plus utile.

Tutoriel Résumé
ASP.NET Core ASP.NET Core est une infrastructure de source ouverte multi-plateformes à haute performance permettant de construire des applications d’infonuagique modernes connectées à Internet
Blazor Blazor est un projet qui recourt à WebAssembly (https://webassembly.org) pour développer des applications clientes en C# plutôt qu’avec les infrastructures JavaScript habituelles (React, Angular, etc.)
Electron.NET Electron.NET (bâti avec Electron https://electronjs.org) est un outil permettant à l’utilisateur d’héberger des applications .NET sur diverses plateformes
Docker La technologie Docker permet l’exécution d’applications (images Docker) sur des Docker Engines, machines virtuelles distinctes, installées sur des systèmes d’exploitation avec serveurs

 

Trucs et hics

  • Travailler avec Blazor. Cette nouvelle technologie a nettement simplifié le développement des applications Web en permettant la rédaction de la logique frontale en C#. Elle nécessite toutefois qu’on saisisse bien le cycle de vie/le rendu des composants avant d’élaborer des interactions complexes avec l’utilisateur.
    • On trouvera un exemple de Blazor C# dans le projet WebAppMaterialize (composants du répertoire et pages du sous-répertoire). Tous les fichiers se terminant par .razor renferment le côté client en C#.
  • NET Core. L’inversion de contrôle et l’injection de dépendances doivent être bien maîtrisées si on veut structurer l’application correctement et élaborer des services.
    • Uploadcontroller.cs dans le projet WebAppMaterialize illustre une injection constructive, sorte d’injection de dépendances.
  • Chargement d’un fichier volumineux. Le code côté client et le code côté serveur étaient nécessaires pour autoriser le chargement de fichiers avec XHR (technologie qui scinde un fichier en blocs au lieu de le charger en entier). La Solution type recourt à JQuery pour l’interface Web cliente et à un contrôleur sur mesure pour le côté serveur.
    • La fonctionnalité de téléversement se trouve dans UploadController.cs, dans le répertoire Controllers du projet WebAppMaterialize.
  • Enfilage multiple. On a recouru à la conception réactive avec Rx.NET pour harmoniser le pipeline du traitement en présence de nombreux fils. La configuration de l’ordonnanceur d’enfilage a permis un traitement distinct des événements découlant de la mise à jour des interfaces utilisateur.
    • On trouvera des exemples d’enfilage multiple dans la fonction StreamReadFileAsync écrite en FileAnalyzer.cs dans le projet DataTools.