La création d'une application Web

Réaliser un logiciel qui peut s'utiliser sans installation

Les logiciels comme Google Doc, qui permet de faire du traitement de texte sans disposer du logiciel sur son ordinateur, sont amenés à peupler le "cloud".
L'absence d'installation et de problème de compatibilité ou de mise à jour leur donne un avantage certain. Comment réaliser une telle Application Internet Riche, ou RIA en anglais?

Sommaire

Des ordinateurs propulsés par le soleil
et tournés vers un nuage virtuel(le cloud).

Applications Web pour le débutant

Application locale et application web

Une application est un logiciel fonctionnant sur un ordinateur, distinct du système d'exploitation. On la distingue aussi des scripts qui n'ont pas d'interface utilisateur.
Cependant, elle est liée au système d'exploitation ou à un environnement comme Java grâce auquel elle interagit avec le matériel.
Le propre de l'application web est l'absence de relation avec l'environnement sur le poste client, autre que le navigateur. L'application web, pour une part, est exécutée sur le serveur sur lequel sont stockées les ressources qu'elle utilise, notamment une base de données. L'interface utilisateur est exécutée sur le poste client et utilise les ressources offertes par le navigateur, notamment les formulaires.

Application web, CMS, service web

Il faut différencier les applications web des CMS (Content Management System), les gestionnaires de contenu qui sont un moyen évolué de créer un site d'information tandis que l'application web réalise des traitements plus variés. Un CMS peut fonctionner statiquement hors connexion, ou dynamiquement en interaction avec l'utilisateur et est alors une application web.

Les services web sont des systèmes permettent l'interopérabilité entre ordinateurs à travers un réseau. Assez fréquement ils utilisent le format XML d'enveloppe SOAP pour véhiculer les requêtes et une interface qui décrit le service, en WSDL.

Usages possibles pour les entreprises et particuliers.

On trouvera sur l'Open Directory une liste des applications web disponibles.
Cela inclut principalement des logiciels utilisant des bases de données, des logiciels de stockage, des gestionnaires de projets collaboratifs.
En fait la plupart des applications bureautiques pourraient fonctionner de façon distante.
On peut aussi inclure les jeux en réseau, la téléphonie, des logiciels éducatifs, etc...
Les applications Web peuvent même s'installer sur le poste local, comme cela est le cas pour le système d'aide de Windows, remplacé par une aide HTML créée pour le Web.

Choisir une technologie

On devra choisir entre plusieurs technologies pour réaliser une application Web. Consulter les standards en cours de définition pourra être utile pour les développements à long terme.

HTML et formulaires

Les formulaires sont l'usage le plus commun et le plus simple du navigateur comme interface utilisateur.
Gestion des évènements et actions peuvent être ajoutés à HTML avec du code JavaScript qui pourrait être utilisé pour toutes autres choses: dessiner, jouer du piano electronique, etc...
L'emploi d'Ajax améliore la réactivité de l'interface en évitant le réaffichage de celle-ci quand elle est modifiée.
Plusieurs spécifications du W3C sont en cours pour développer HTML et ses formulaires.

Flash

En concurrence avec Ajax, l'utilisation du format Flash de Macromedia et son langage ActionScript n'est pas la plus commune, mais si l'on veut s'offrir les outils de développements onéreux qu'elle requiert, cette plateforme facilite nettement la création d'applications. Cependant Flash ralentit les pages Web et ne fonctionne pas sous toutes les configurations.

Java et applets

C'est l'approche la plus commune pour les entreprises, notamment pour les grands projets. L'outil est le même que pour les applications locales, et le runtime Java étant présent sur le serveur comme le poste client, les fonctionnalités sont les mêmes. Le coût est dans la lenteur de l'exécution.

PHP et LAMP

L'ensemble Linux, Apache (le serveur), MySQL (la base de données) PHP (le langage) est très commun. PHP peut aussi être utilisé sur Windows et avec d'autres serveurs et bases de données. LAMP est le système le plus fréquemment utilisé, mais après Java pour les applications de taille importante.

Web 2.0: Ajax etc...

Le Web 2.0 désigne l'ensemble des technologies qui supplantent le site HTML classique réalisé avec un editeur HTML, et inclut les outils permettant une réalisation collaborative, par les contributeurs externes, du site.
Ajax est l'élément essentiel pour la réalisation d'applications. Les CMS dynamiques sont en eux-mêmes des applications web dédiées à la production d'articles et à la contribution par les forums et les FAQ notamment.
Cependant le Web 2 peut s'étendre à bien d'autres choses et inclut toutes les technologies portées sur le Web, conformément aux exemples donnés plus loin.

Réalisation de l'application

L'interface utilisateur graphique

Pour gérer l'interface dans les pages chargées par le navigateur, la partie procédurale s'écrit en JavaScript.
Le contenu de la page est accédé par le DOM. Les données sont stockées dans des fichiers XML ou JSON. XML est aussi accédé par le DOM tandis que JSON est converti en objets JavaScript.

La comparaison des langages d'interface utilisateur aidera à choisir la meilleure plateforme.

L'accès aux bases de données et la génération des pages

L'application peut être écrite avec le langage PHP ou ASP ou encore en JSP (Java) lesquels permettent d'accéder aux bases de données. PHP reconnait la plupart d'entre elles.
Le langage Java est utilisé par les entreprises mais fait partie d'une plateforme d'ensemble.

La communication avec le serveur

Même s'il existe des moyens plus classiques, Ajax qui permet d'échanger des données avec le serveur sans délai d'attente, et de les afficher dans les zones appropriées sans réafficher la page entière, convient parfaitement aux applications web.

Utilisation d'un framework

De nombreux cadres d'applications, incluant les frameworks Ajax, fournissent aux programmeurs les bibliothèques de fonctions web utiles.
Les frameworks prennent en compte les questions de sécurité et toutes les tâches répétitives.

J2EE (Java 2 Enterprise Edition) est un ensemble de composants conçus pour les applications Web de taille importantes. Il inclut JSP, une alternative à PHP, les servlets qui sont des services web, les applets qui s'exécutent sur le navigateur, les "Beans", composants réutilisables et communiquants, l'interface aux bases de données JDBC et autres. C'est la plateforme la plus utilisée.

Conclusion

Le nombre des technologies, plateformes et cadres d'applications existants amène à définir précisément la nature, le public visé, les services rendus par l'application que l'on veut développer, pour choisir les meilleures ressources.

Exemples divers

Les ASP, ou Application Service Providers, fournissent des logiciels utilisables sur le Web en remplacement des logiciels locaux traditionnel contre paiement d'un abonnement, ou quelquefois gratuitement comme le fait Google avec Writely.

Le format RSS permet non seulement de promouvoir un site, mais aussi de créer le sommaire d'une partie de son contenu, le forum par exemple. Il est bien inutile de créer un aggrégateur car les nouveaux navigateurs les gèrent d'office.

Le mash-up n'est pas une technologie mais l'art de combiner les technologies. L'exemple le plus classique d'application est la réunion de Google Map avec un catalogue immobilier pour fournir une visualisation in-situ des logements.

Les projets collaboratifs ou systèmes collaboratifs comme XFN et FOAF sont les bases d'applications nouvelles pour le Web.

Les standards pour les applications web

Le W3C qui a défini la spécification de HTML et XML est très impliqué dans le développement de standards pour toutes les composantes et tous les aspects des applications Web. Cela concerne les formulaires de saisie, la communication avec le serveur, la sécurité et aussi partiellement le traitement des données en définissant les interfaces des APIs et les formats de stockage.
Le WHAT WG (Web Hypertext Application Technology Working Group) est une autre organisation qui travaille pour faire de HTML un format d'applications Web.

Standards actuels du Web

Spécifications en cours de définition

Documentation

© 2006-2012 Xul.fr