Avec une application web, répondez au besoin même complexe de vos cibles

La croissance exponentielle des services Web ou services en ligne crée des opportunités de chiffre d’affaires pour les entreprises, mais aussi des défis qu’elles doivent relever. En effet, les services web requièrent :

  • un besoin exponentiel de données métier,
  • la nécessité de connecter au SI de l'entreprise de nouveaux services et applications,
  • un haut niveau de sécurisation du SI lors de son ouverture  aux salariés, partenaires et clients.

C'est pourquoi, la mise en œuvre de ces services web accélère la transformation numérique des entreprises en bouleversant constamment leurs systèmes d’information, SI, leurs processus et leurs organisations.

Qu’est-ce qu'une application web, service web ?

Les différents types d'applications et/ou services web

  • Blog/Magazine, landing page
  • Banques en ligne
  • Boutique en ligne ou les e-boutiques de produits et/ou services
  • Applications métiers à forte valeur ajoutée plus ou moins complexes utilisant l‘internet, l’extranet ou/et l’intranet:
    • Espace de stockage en ligne
    • Gestionnaire de contenu :
      • Gestion des commandes
      • Gestion des stocks
      • Commande de matériels
  • Espace client/Support client.

Le fonctionnement d’un service web : des échanges entre Hommes et Machines

Face à son écran, l’internaute, appelé le client, envoie des courriels, consulte des magasins en ligne, achète des biens et services, lit son journal, visionne des séries.

Le service Web : une partie d’un logiciel conçu pour répondre à des demandes via l’interaction entre machines
Le service Web : une partie d’un logiciel conçu pour répondre à des demandes via l’interaction entre machines

Ces opérations réalisées par le client, sont appelées des requêtes. Elles déclenchent des interventions auprès du serveur pour obtenir une réponse. C’est ainsi que les requêtes du client et les réponses du serveur font appel à de nombreuses et différentes machines.

Ces échanges sont possibles grâce à une application web qui :

  1. fournit des services métier,
  2. est utilisé par de nombreux clients, notamment, en même temps pour faire leurs requêtes,
  3. permet ainsi à de multiples applications, machines, écrites dans des langages de programmation différents, de communiquer entre elles,
  4. se connecte donc à de multiples plateformes aux technologies, matériels et logiciels, hétérogènes pour apporter une réponse aux différents clients.

L’habillage fonctionnel des services web : une approche Utilisateur UX, UI

La nécessaire approche Utilisateurs UX et UI d’une Solution Web
La nécessaire approche Utilisateurs UX et UI d’une application Web

Pour être consultés par des internautes, les services web ont besoin d’être attractifs et clairs. Ainsi, la navigation des clients/internautes doit être parfaitement fluide surtout quand l’information est riche et complexe. Par conséquent, leurs recherches doivent être facilitées que ce soit pour un site web complexe, un site d’E-Commerce, des applications métiers, des espaces clients, etc.

Vous devez donc faire appel à des spécialistes en web design (conception UX, Design UI ) pour comprendre avec vos utilisateurs, leur cheminement,  vous centrer sur les usages et leurs efficacités et en vous appuyant sur l’écoute et la recherche de simplicité.

La technologie des services Web

Les différentes couches des échanges Hommes Machine

Fourniture des pages aux internautes par des machines
Fourniture des pages aux internautes par des machines

Ces allers et retours hommes/machines nécessitent une succession d’échanges entre les différentes plateformes client et serveur via

  • des formats/protocoles standardisés compris par tous les systèmes à 4 couches (Service Transport, XML Messaging, Service Description et Service Discovery),
  • un code générique pouvant être compris par toutes les applications concernées.

Étapes

Précisions

1ère phase

Lorsqu’un internaute, le client :

  • lance une requête sur son ordinateur à la recherche d’une application web qui réponde à son besoin.
  • décrit la structure des messages échangés par le client vers le serveur s’exécute avec les standards.

2ème phase

Recherche et de localisation des données recherchées par le client, le plus souvent via le protocole UDDI.

3ème phase

Description des paramètres des fonctions et les types de données des services web utilisés. Son protocole est le SOAP avec une signature WSDL qui repose sur du XML. Le SOAP est souvent comparé au REST à tort. Le REST n’est pas un protocole.

4ème phase

Réponse donnée à l’internaute sous le même format que sa requête : XML, JSON ou HTTPS.

Précisions  sur les échanges homme/machine liés au protocole SOAP

Les échanges liés à la fourniture de pages aux internautes par des machines via SOAP
Les échanges liés à la fourniture de pages aux internautes par des machines via SOAP

Le service web permet d’échanger sur différentes plateformes hétérogènes, matériels et systèmes d’exploitation grâce à l’utilisation :

  1. Soit d’interfaces de médiation fondées sur le Protocole d'accès aux objets simples appelée SOAP. Le couplage entre le serveur et le client est fort.
  2. Soit du REST qui peut utiliser un protocole et des méthodes standardisées. Il y a beaucoup moins de couplage entre le client et le serveur.
  3. Soit d’autres, moins connus tels que E-Business-XML, JSON-RPC, WPS.

Le développement d’un service web utilise différentes architectures.

ITEMS

SOAP

REST

Interface

Protocoles :  https, avec FTP, SMTP ou d’autres protocoles Architecture http et URI

Langage, Formats

XML en WSDL XML  ou JSON

Protocole de Sécurité

Sécurité intégrée avec  WS-Security (spécifications sur la sécurité des services Web dans le protocole) Sécurité s’appuyant sur le protocole HTTPS

Souplesse

Liberté de choix du protocole : http, le plus fréquent, en théorie mais aussi avec FTP, SMTP Meilleure car utilise JSON plus léger  et donc plus rapide que XML

Gestion des erreurs

Fonctionnalité permettant la répétition des requêtes

Le  développement d’une application web

Chaque site web comprend :

  • Une base de langage HTML (HyperText Markup Language) qui en définit la structure.
  • Les CSS (Cascading Style Sheets) qui mettent en forme et animent la page.
  • Le PHP, ou autres langages qui assurent le fonctionnement du site. C’est la partie émergée du site.
  • Le Javascript, (angular, nodes, etc.) qui permet de dynamiser une page par le biais d’animations, par exemple.
  • Le XML ou JSON quant à lui, permettra les échanges de données.

 

 Les différents langages de programmation d’une application web

Une application web peut être programmée dans différents langages et à chaque langage, ses outils.

Les différents langages de programmation d’une application web
Les différents langages de programmation d’une application web

Avantages et inconvénients d’une solution web

Les avantages d’un service web :

  1. Les internautes peuvent rechercher et trouver les produits ou services qu’ils veulent via internet sans avoir à stocker les données concernées sur leurs ordinateurs ; ce qui serait gourmand en ressources et en taille de stockage.
  2. Les entreprises peuvent mettre à disposition :
    1. De leurs clients, les produits et services qu’ils commercialisent
    2. de leurs salariés, les applications métiers dont ils ont besoin pour bien faire leur travail
  3. Les serveurs distants quant à eux peuvent être consultés de façon simultanée par un grand nombre d’internautes.

L’inconvénient de toute solution web présente sur internet provient des tentatives d’attaque de hackers qui vont profiter de toutes les failles de sécurité.

Application web et sécurité des données

Application web et sécurité des données
La sécurité des données d’une application web

Les points d’entrée des données vers un SI via un formulaire web ou un Service web sont toujours les points critiques à sécuriser . La sécurisation doit être mise en œuvre autour des points suivants :

Points à sécuriser

Modalités de sécurisation

Côté échanges,  chiffrer les messages

Pour assurer :

  • confidentialité,
  • intégrité,
  • disponibilité.

Côté client, bien gérer identité et accès et mots de passe

  • Authentifier les utilisateurs , par l’implémentation de mécanismes d’authentification (mots de passe, certificats, biométrie, MSA Multifacteur d’authenfication) ; ex carte bleue avec SMS
  • Gérer les sessions de façon sécurisée pour empêcher les fuites de données vers des utilisateurs malveillants, exposant les applications à des attaques classiques.
  • Gérer les comptes dans le respect du moindre privilège, c’est-à-dire qu’ une tâche n’est autorisée que si son utilité fonctionnelle est avérée.
  • Mettre en place d’une politique de mots de passe sécurisés et bien construits est donc nécessaires

Côté applications, contrôler les données reçues, WSDL

  • S'assurer que les données reçues correspondent,
    • au type de données attendues, taille, format, ..
    • et à leur syntaxe, longueur et profondeur des messages XML,...
  • Implanter des mécanismes applicatifs d’audit des entrées
  • intégrer des protections applicative et système anti-rejeu sur les fonctions sensibles du Service Web,
  • Intercepter les exception/erreurs du Service Web afin de ne pas donner d’éventuelles informations à un agresseur en  :
    • Gérant les exceptions (Try/Catch),
    • Contrôlant la sensibilité des informations remontées

Pour plus d’information, consultez les 10  principaux risques d’une application Web selon l’OWASP.

Application web, notre accompagnement chez HLi

Nous vous proposons une méthodologie agile, scrum à chaque étape de votre projet : de l’étude de vos besoins, à la conception UX, au Design UI, aux spécifications fonctionnelles, au cahier des charges et rapport de conception, au développement, à l’hébergement, etc.

Et ce, afin de vous proposer une architecture de services Web performante, évolutive, facile à maintenir dans un environnement sécurisé.

Les différentes étapes de la réalisation d’un projet d' application web

Chacune de ces étapes est nécessaire pour la réussite de votre solution web. Nous travaillons en étroite collaboration avec nos clients pour cadrer leurs priorités et enjeux afin de concevoir la meilleure solution digitale.

Nous pouvons intervenir à chacune des étapes ou encore vous laisser faire la première partie fonctionnelle et intervenir pour établir les spécifications fonctionnelles.

Les étapes fonctionnelles

Souvent réalisées par nos clients, ces étapes sont essentielles et nécessitent l’intervention de consultants spécialistes de l’expérience utilisateur.

Les étapes fonctionnelles UX et UI de création d’une solution web
Les étapes fonctionnelles UX et UI de création d’une application web

Étapes fonctionnelles

Précisions

Expression de besoins fonctionnels

Nos consultants avec votre équipe métier :

  • identifient vos besoins
  • définissent une structure
  • déterminent les objectifs et les contraintes
  • les formalisent dans une expression de besoins reprenant fonctionnalités à appliquer

 

Conception UX et Ergonomie

Le consultant UX expérience utilisateur :

  • planifie la conception centrée utilisateur et démarre par des entretiens avec les utilisateurs finaux pour comprendre leurs parcours.
  • comprend et spécifie les exigences utilisateurs et organisationnelles (résultats attendus,... ).
  • conceptualise avec pragmatisme des maquettes/prototypes fonctionnels en testant différentes pistes via des interfaces pour visualiser en direct la navigation et les interactions.
  • évalue les solutions au regard des exigences prédéfinies (tests utilisateurs).

Design UI

L’UI designer :

  • valide ensuite la cohérence entre l’expression de besoins et les interfaces à concevoir.
  • conçoit des prototypes mariant bonnes pratiques, respect des tendances actuelles, adaptation optimisée et testée sur tablette et smartphone pour rendre responsive l'application web.
  • propose l’identité visuelle, la charte graphique de la solution.

Spécifications fonctionnelles

Nos consultants rédigent un cahier des charges fonctionnel précis reprenant chaque point important.

Référencement SEO

Cette dernière étape doit être réalisée par des spécialistes du SEO, référencement en identifiant :

  • contenus clés et différenciants et les mots clefs afférents,
  • besoins de partage sur les réseaux sociaux,
  • gestion et mesure du trafic grâce à des outils d'analyse web.

Les étapes techniques

Étapes techniques

Précisions sur un service web

Cahier des charges

Nous allons formaliser les besoins exprimés reprenant toutes les spécifications du projet.

Conception technique

Nos consultants

  • découpent le projet en liste des tâches,
  • chiffrent le coût du projet,
  • planifient tâches et ressources disponibles pour tenir les délais, dans le cadre du budget.
  • constituent l’équipe de projet : les consultants clients et HLi dotés de compétences pointues et complémentaires de ses ressources (matérielles, techniques et financières) sont identifiées puis affectées aux tâches (maillage).

Développement avec l’approche DevOps

Les développeurs d’HLi vous proposent le langage le plus adapté à votre projet et à votre SI : .Net, Java, Angular JS, Node.js, Php... À chaque langage son framework et ses services, ses API, ses bibliothèques de composants, etc.

Tests fonctionnels puis recette client

Tests puis recettes fonctionnels sont indispensables :

  • sous tous les terminaux, smartphones, tablettes, PC, …
  • selon les différents modes de consultation des internautes.

C'est à partir du cahier des charges et de ses exigences fonctionnelles que les référentiels des tests et jeux de données doivent être constitués. Ces éléments serviront ensuite à l’exécution manuelle ou automatisée des cas de tests critiques et doivent être consignés dans le cahier de recette.

Mise en production, déploiement et choix de l’hébergement, Support

Selon sa criticité, votre application web sera hébergée :

  • soit au sein de votre infrastructure,
  • soit sur un hébergement cloud dédié, soit mutualisé réunissant haute disponibilité, sécurité, sauvegarde des données, infogérance des données, support technique, astreinte... autant d’éléments à voir avec  vous.

Maintenance

  • corrective, supprimer les bugs après livraison,
  • évolutive, maintenir la cohérence de l'application avec les besoins de l'entreprise,
  • préventive, installer les mises à jours et autres,
  • perfective, optimiser l'application.

Sécurisez votre application web

Étant donné que votre service web est une possible entrée vers votre application. La sécuriser est donc important. Nous étudierons avec vous les diverses possibilités :

  1. de chiffrage les canaux d’échange, SSL ou CLS,
  2. d’utilisation du framework des Services Web modernes (pour java : CXF, Métro, JBossWS ….),
  3. d’authentification de l’utilisateur,
  4. de vérification de l’identité et des droits de l’appelant avant de le laisser appeler vos méthodes métiers.