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?
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
- HTML 4 et les formulaires.
- DOM
Le Document Object Model définit une interface pour accéder au contenu d'un document HTML ou XML. Il est utilisé par JavaScript et fait partie aussi des technologies constituant Ajax. - Windows Object 1.0. Standardisation de l'objet windows du DOM, utilisé par JavaScript. (Anglais.)
- XML est un format universel de stockage et d'échange de données.
- XHTML se veut un remplaçant de HTML. Il réécrit le langage en tant que dialecte de XML. La définition "transitional" supporte à la fois XHTML et HTML mais la version 1.1 est du XHTML strict.
- XForms 1.0. Recommandation d'un langage de formulaire en XML pour le Web ou autres applications et utilisable par les mobiles.
Spécifications en cours de définition
- HTML
5. Un document de travail par le WHATWG est en cours pour ajouter à
HTML et DOM des possibilités qui les rende mieux adaptés aux
applications web. (Anglais.)
Cette spécification va remplacer HTML4, XHTML 1.x, et DOM2 HTML tout en restant compatible.
Elle devrait supplanter aussi Web Forms 2.0, bien qu'il soit aussi en cours et elle constituera une alternative à XHTML 2 du W3C. - Widgets 1.0. Concerne les petites applications web comme celles qui seront affichées par Windows Vista. Spécifie principalement le fichier manifest indiquant comment afficher le widget. (Anglais.)
- File Upload. Définit une classe et ses membres pour une fenêtre de dialogue qui charge un fichier, composant d'une application web. (Anglais.)
- Web API. Définition des interfaces et évènements, et donc spécification des bibliothèques de programmation pour le Web. (Anglais.)
Documentation
- How Microsoft lost the API war. Un article soutenant la thèse que les applications Web sont en train de remplacer celles de Windows. (Anglais.)
- Web Application Security Consortium (WASC). Projet documentaire pour la sécurité des applications Web.