Application Web - Web application

Le groupware Horde est une application web open source .

Une application Web (ou application Web ) est un logiciel d'application qui s'exécute sur un serveur Web , contrairement aux programmes logiciels sur ordinateur qui s'exécutent localement sur le système d'exploitation (OS) de l'appareil. Les applications Web sont accessibles par l'utilisateur via un navigateur Web avec une connexion réseau active. Ces applications sont programmées à l'aide d'une structure modélisée client-serveur : l'utilisateur (« client ») reçoit des services via un serveur hors site hébergé par un tiers. Des exemples d'applications Web couramment utilisés comprennent: web-mail , les ventes au détail en ligne , services bancaires en ligne et de ventes aux enchères en ligne .

Définition et termes similaires

La distinction générale entre une page Web dynamique de toute nature et une "application Web" n'est pas claire. Les sites Web les plus susceptibles d'être appelés « applications Web » sont ceux qui ont des fonctionnalités similaires à celles d'une application logicielle de bureau ou d'une application mobile . HTML5 a introduit une prise en charge explicite du langage pour créer des applications chargées en tant que pages Web, mais pouvant stocker des données localement et continuer à fonctionner hors ligne.

Les applications à page unique ressemblent davantage à des applications, car elles rejettent le paradigme Web plus typique consistant à se déplacer entre des pages distinctes avec des URL différentes . Cela est dû au fait que des composants individuels peuvent être remplacés ou mis à jour sans avoir à actualiser toute la page Web. Les frameworks à page unique peuvent être utilisés pour accélérer le développement d'une telle application Web pour une plate-forme mobile, car elle est capable d'économiser de la bande passante, ainsi que l'extinction du chargement de fichiers externes.

Application Web mobile

Il existe plusieurs façons de cibler les appareils mobiles lors de la création d'applications Web :

  • La conception Web réactive peut être utilisée pour créer une application Web, qu'il s'agisse d'un site Web conventionnel ou d'une application d'une seule page, visible sur de petits écrans qui fonctionnent bien avec les écrans tactiles.
  • Les applications Web progressives (PWA) sont des applications Web qui se chargent comme des pages Web ou des sites Web ordinaires, mais peuvent offrir des fonctionnalités utilisateur telles que le travail hors ligne et l'accès au matériel de l'appareil traditionnellement disponible uniquement pour les applications mobiles natives.
  • Les applications hybrides intègrent un site Web dans une application native, éventuellement à l'aide d'un framework hybride. Cela permet le développement à l'aide de technologies Web (et éventuellement de copier directement le code d'un site Web mobile existant) tout en conservant certains avantages des applications natives (par exemple, accès direct au matériel de l'appareil, fonctionnement hors ligne, visibilité sur l'App Store). Les frameworks d'applications hybrides incluent Apache Cordova , Electron , Flutter , Haxe , React Native et Xamarin .

Histoire

Dans les modèles informatiques antérieurs tels que client-serveur, la charge de traitement de l'application était partagée entre le code sur le serveur et le code installé sur chaque client localement. En d'autres termes, une application avait son propre programme client précompilé qui lui servait d'interface utilisateur et devait être installé séparément sur l' ordinateur personnel de chaque utilisateur . Une mise à niveau du code côté serveur de l'application nécessite généralement également une mise à niveau du code côté client installé sur chaque poste de travail utilisateur, ce qui augmente les coûts de support et diminue la productivité . En outre, les composants client et serveur de l'application étaient généralement étroitement liés à une architecture informatique et à un système d'exploitation particuliers et les porter sur d'autres était souvent prohibitif pour toutes les applications, sauf les plus grandes (de nos jours, les applications natives pour les appareils mobiles sont également entravées par tout ou partie des problèmes ci-dessus).

En revanche, les applications Web utilisent des documents Web écrits dans un format standard tel que HTML et JavaScript , qui sont pris en charge par divers navigateurs Web. Les applications Web peuvent être considérées comme une variante spécifique du logiciel client-serveur où le logiciel client est téléchargé sur la machine cliente lors de la visite de la page Web concernée, à l'aide de procédures standard telles que HTTP . Des mises à jour du logiciel Web client peuvent se produire chaque fois que la page Web est visitée. Au cours de la session, le navigateur Web interprète et affiche les pages et agit en tant que client universel pour toute application Web.

Au début du Web , chaque page Web était livrée au client sous forme de document statique, mais la séquence de pages pouvait toujours offrir une expérience interactive, car les entrées de l'utilisateur étaient renvoyées via des éléments de formulaire Web intégrés au balisage de la page. Cependant, chaque modification significative de la page Web nécessitait un aller-retour au serveur pour actualiser la page entière.

En 1995, Netscape a introduit un langage de script côté client appelé JavaScript permettant aux programmeurs d'ajouter des éléments dynamiques à l'interface utilisateur qui s'exécutait côté client. Ainsi, au lieu d'envoyer des données au serveur afin de générer une page Web entière, les scripts intégrés de la page téléchargée peuvent effectuer diverses tâches telles que la validation des entrées ou l'affichage/masquage de parties de la page.

En 1996, Macromedia a introduit Flash , un lecteur d' animation vectorielle qui pouvait être ajouté aux navigateurs en tant que plug-in pour intégrer des animations sur les pages Web. Il a permis l'utilisation d'un langage de script pour programmer les interactions côté client sans avoir besoin de communiquer avec le serveur.

En 1999, le concept d'"application web" a été introduit dans le langage Java dans la spécification Servlet version 2.2. [2.1?]. A cette époque, JavaScript et XML étaient déjà développés, mais Ajax n'avait pas encore été inventé et l' objet XMLHttpRequest n'avait été introduit que récemment sur Internet Explorer 5 en tant qu'objet ActiveX .

En 2005, le terme Ajax a été inventé et des applications comme Gmail ont commencé à rendre leurs côtés clients de plus en plus interactifs. Un script de page Web est capable de contacter le serveur pour stocker/récupérer des données sans télécharger une page Web entière.

En 2007, Steve Jobs a annoncé que les applications Web, développées en HTML5 à l' aide de l' architecture AJAX , seraient le format standard pour les applications iPhone . Aucun kit de développement logiciel (SDK) n'était requis et les applications seraient entièrement intégrées à l'appareil via le moteur de navigateur Safari . Ce modèle a ensuite été remplacé par l' App Store , afin de prévenir les jailbreakers et d'apaiser les développeurs frustrés.

En 2014, HTML5 a été finalisé, qui fournit des capacités graphiques et multimédias sans avoir besoin de plug-ins côté client. HTML5 a également enrichi le contenu sémantique des documents. Les API et le modèle objet de document (DOM) ne sont plus des réflexions après coup, mais sont des éléments fondamentaux de la spécification HTML5. L' API WebGL a ouvert la voie aux graphiques 3D avancés basés sur le canevas HTML5 et le langage JavaScript. Ceux-ci ont une importance significative dans la création d' applications Web riches véritablement indépendantes de la plate-forme et du navigateur .

En 2016, lors de la conférence annuelle Google IO , Eric Bidelman (Senior Staff Developers Programs Engineer) a présenté les Progressive Web Apps (PWA) comme nouveau standard dans le développement Web. Jeff Burtoft, directeur de programme principal chez Microsoft , a déclaré : « Google a ouvert la voie avec les applications Web progressives, et après un long processus, nous avons décidé que nous devions le prendre en charge pleinement. » En tant que tel, Microsoft et Google ont tous deux pris en charge la norme PWA.

Interface

Grâce à Java , JavaScript , CSS , Flash , Silverlight et d'autres technologies, des méthodes spécifiques aux applications telles que le dessin à l'écran, la lecture audio et l'accès au clavier et à la souris sont toutes possibles. De nombreux services ont travaillé pour combiner tous ces éléments dans une interface plus familière qui adopte l'apparence d'un système d'exploitation. Les techniques à usage général telles que le glisser-déposer sont également prises en charge par ces technologies. Les développeurs Web utilisent souvent des scripts côté client pour ajouter des fonctionnalités, en particulier pour créer une expérience interactive qui ne nécessite pas de rechargement de page. Récemment, des technologies ont été développées pour coordonner les scripts côté client avec des technologies côté serveur telles que ASP.NET , J2EE , Perl/Plack et PHP .

Ajax , une technique de développement Web utilisant une combinaison de diverses technologies, est un exemple de technologie qui crée une expérience plus interactive.

Structure

Les applications sont généralement divisées en blocs logiques appelés « niveaux », où chaque niveau se voit attribuer un rôle. Les applications traditionnelles ne comportent qu'un seul niveau, qui réside sur la machine cliente, mais les applications Web se prêtent par nature à une approche à n niveaux. Bien que de nombreuses variantes soient possibles, la structure la plus courante est l' application à trois niveaux . Dans sa forme la plus courante, les trois niveaux sont appelés présentation , application et stockage , dans cet ordre. Un navigateur Web est le premier niveau (présentation), un moteur utilisant une technologie de contenu Web dynamique (comme ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python ou Ruby on Rails ) est le niveau intermédiaire (logique d'application), et une base de données est le troisième niveau (stockage). Le navigateur Web envoie des requêtes au niveau intermédiaire, qui les dessert en effectuant des requêtes et des mises à jour sur la base de données et génère une interface utilisateur.

Pour les applications plus complexes, une solution à 3 niveaux peut ne pas suffire, et il peut être avantageux d'utiliser une approche à n niveaux, où le plus grand avantage est de casser la logique métier, qui réside sur le niveau d'application, en une granularité plus fine. maquette. Un autre avantage peut être l'ajout d'un niveau d'intégration qui sépare le niveau de données du reste des niveaux en fournissant une interface facile à utiliser pour accéder aux données. Par exemple, les données client seraient accessibles en appelant une fonction "list_clients()" au lieu d'effectuer une requête SQL directement sur la table client de la base de données. Cela permet de remplacer la base de données sous-jacente sans apporter de modification aux autres niveaux.

Certains considèrent une application Web comme une architecture à deux niveaux. Cela peut être un client « intelligent » qui effectue tout le travail et interroge un serveur « inactif » ou un client « inactif » qui repose sur un serveur « intelligent ». Le client gérerait le niveau de présentation, le serveur aurait la base de données (niveau de stockage) et la logique métier (niveau d'application) serait sur l'un d'eux ou sur les deux. Bien que cela augmente l'évolutivité des applications et sépare l'affichage et la base de données, cela ne permet toujours pas une véritable spécialisation des couches, de sorte que la plupart des applications dépasseront ce modèle.

Utilisation commerciale

Une stratégie émergente pour les sociétés de logiciels d'application consiste à fournir un accès Web aux logiciels précédemment distribués en tant qu'applications locales. Selon le type d'application, cela peut nécessiter le développement d'une interface basée sur un navigateur entièrement différente, ou simplement l'adaptation d'une application existante pour utiliser une technologie de présentation différente. Ces programmes permettent à l'utilisateur de payer une redevance mensuelle ou annuelle pour l'utilisation d'une application logicielle sans avoir à l'installer sur un disque dur local. Une entreprise qui suit cette stratégie est connue sous le nom de fournisseur de services applicatifs (ASP), et les ASP reçoivent actuellement beaucoup d'attention dans l'industrie du logiciel.

Les failles de sécurité sur ce type d'applications sont une préoccupation majeure car elles peuvent impliquer à la fois des informations d'entreprise et des données clients privées. La protection de ces actifs est une partie importante de toute application Web et certains domaines opérationnels clés doivent être inclus dans le processus de développement. Cela inclut les processus d'authentification, d'autorisation, de gestion des actifs, de saisie, de journalisation et d'audit. Intégrer la sécurité dans les applications dès le début peut être plus efficace et moins perturbateur à long terme.

Les applications Web du modèle de cloud computing sont des logiciels en tant que service (SaaS). Il existe des applications commerciales fournies en tant que SaaS pour les entreprises moyennant des frais fixes ou dépendants de l'utilisation. D'autres applications Web sont proposées gratuitement, générant souvent des revenus à partir des publicités affichées dans l'interface de l'application Web.

Développement

L'écriture d'applications Web est souvent simplifiée par l'utilisation d' un framework d'applications Web . Ces frameworks facilitent le développement rapide d'applications en permettant à une équipe de développement de se concentrer sur les parties de leur application qui sont uniques à leurs objectifs sans avoir à résoudre les problèmes de développement courants tels que la gestion des utilisateurs. La plupart des frameworks utilisés sont des logiciels open source .

L'utilisation de frameworks d'applications Web peut souvent réduire le nombre d'erreurs dans un programme, à la fois en simplifiant le code et en permettant à une équipe de se concentrer sur le framework tandis qu'une autre se concentre sur un cas d'utilisation spécifié. Dans les applications qui sont exposées à des tentatives de piratage constantes sur Internet, des problèmes liés à la sécurité peuvent être causés par des erreurs dans le programme. Les frameworks peuvent également promouvoir l'utilisation de bonnes pratiques telles que GET après POST .

De plus, il existe un potentiel pour le développement d'applications sur des systèmes d'exploitation Internet , bien qu'actuellement il n'y ait pas beaucoup de plates-formes viables qui correspondent à ce modèle.

Applications

Des exemples d'applications de navigateur sont de simples logiciels de bureau ( traitements de texte , feuilles de calcul en ligne et outils de présentation ), mais peuvent également inclure des applications plus avancées telles que la gestion de projet, la conception assistée par ordinateur , le montage vidéo et le point de vente .

Voir également

Les références

Liens externes