StratAjax Outils en ligne d'aide au développement AJAX
Mimoun Laurent - David Teller
Février 2006

INTRODUCTION

Une fois de plus, le Web se dote de nouvelles technologies. À l'avant-garde de cette évolution, des services tels que Google Maps, GMail ou Flickr, mais aussi, peut-être plus discrètement, les composants qui constituent les logiciels Mozilla Firefox ou Apple Dashboard. Tous sont construits à l'aide de principes similaires : une interface utilisateur décrite à l'aide de formats ouverts et affichée par le navigateur Web, des comportements programmés à l'aide du langage JavaScript et des interaction entre clients et serveurs sous la forme de dialectes XML -- autant de techniques rassemblées souvent sous les termes d'Ajax ou Web 2.0.

Où blesse le bât ? À plusieurs endroits. D'une part, si elles sont ouvertes, toutes ces technologies sont en perpétuelle évolution, souvent peu ou pas documentées, détournées de leur usage initial et finalement délaissées par les outils de développement. C'est ainsi que le JavaScript, conçu comme un langage minimaliste et spécialisé dans la conception de pages web légèrement interactives, se retrouve aujourd'hui utilisé pour gérer des bases de données parfois critiques, des interfaces graphiques, et même de la cryptographie -- alors même que les implantations de JavaScript proposées par les différents navigateurs présentent de subtiles incompatibilités. D'autre part, si Google ou Apple peuvent se permettre d'employer des équipes de programmeurs hautement qualifiés, les développeurs d'applications Ajax semblent provenir en majorité du monde du développement Web, et se retrouvent en permanence confrontés à des problèmes hors de leur champ de qualifications.

Pour contribuer à résoudre ces deux problèmes, nous proposons de mettre à disposition des développeurs un ensemble d'outils d'aide au développement. Ces outils seront accessibles en ligne, sous la forme d'un site web et de services web, et fourniront notamment des fonctionnalités suivantes:

Ces outils disponibles sur notre site Web seront hébergés et exécutés sur un ensemble de serveurs à notre entière responsabilité, sur lequel les développeurs pourront venir déposer les fichiers source qu'ils désirent. Ainsi centraliser les outils doit nous permettre,

Le service s'appellera StratAjax: Static Techniques, Repository, Assistance and Tools for AJAX.

Détaillons maintenant le projet.

STRATAJAX

Le public

On peut diviser une application Ajax en deux parties:

Un développeur du noyau sera donc, pour l'essentiel, libre de choisir les outils les plus appropriés pour gérer le problème. Il utilisera par exemple le langage C s'il est nécessaire d'interagir avec le système d'exploitation, le langage Java pour combiner robustesse et vitesse de développement, OCaml ou Haskell pour assurer une robustesse presque parfaite, Erlang pour des applications massivement distribuées, Perl si le traitement impose de gérer des chaînes de caractères, etc. Dans tous les cas, il sera confronté à une unique plate-forme -- le serveur -- disposera d'outils de test et de débogage, voire de vérification statique de code ou d'audit.

À l'inverse, le développeur du client léger sera contraint d'utiliser XML et JavaScript -- technologie qui ont initialement été conçues pour des tâches totalement différentes -- et sera confronté à des différences parfois subtiles dans l'implantation de ces techniques par les navigateurs. De plus, JavaScript ne dispose que de maigres outils de débogage [cite:Venkman] et d'audit [cite:JSLint], et les dialectes XML d'à peu près rien. En plus de cela, les développeurs Ajax, en plus des problèmes habituels pour les développeurs Web, sont soudainement confrontés à des questions de stabilité, de fiabilité, de gestion de la distribution ou encore d'asynchronie, questions qui n'ont rien de simple même pour des programmeurs vétérans.

C'est à ce marché que s'adresse StratAjax. Aux développeurs web plongés dans un monde de programmation loin de leur formation et de leur expérience. Ces développeurs web ont déjà leurs outils favoris pour mettre en place des pages web ou encore gérer les composants multimédias, et ont déjà des connaissances des problèmes techniques liés aux navigateurs ou à JavaScript, mais ils n'ont ni la discipline des programmeurs expérimentés, ni l'habitude de la programmation fortement typée, ni, pour le moment, les outils nécessaires pour les aider. Ces programmeurs, à leur tour, se rassemblent essentiellement en deux catégories :

StratAjax se propose de fournir des services pour les deux publics.

La technique

StratAjax se présentera comme un ensemble de services web, dotés d'une interface utilisable sous la forme d'un site web. Le développement de StratAjax se fera graduellement, en commençant par les outils les plus simples, de manière à pouvoir arriver tôt sur le marché.

Dépôt de code

StratAjax emploiera des outils standard de dépôt de code (RCS, CVS, Subversion), dont les clients sont d'ores et déjà incorporés dans la majorité des suites de développement existantes. Ces outils permettent de sauvegarder le code source d'un programme sur un serveur distant, puis de sauvegarder toutes les versions successives du programme, de manière à pouvoir revenir en arrière suite à des erreurs de programmation. De plus, dans le cadre de développements en groupe, ces outils permettent de détecter les modifications incompatibles.

Ces outils sont disponibles sous la forme de logiciels libres. Une interface web personnalisée pour ces outils permettra à des développeurs qui ne les connaissent pas ou qui ne disposent pas des clients de bénéficier tout de même du dépôt de code. Un service de sauvegarde sur bande sera incorporé de manière à éviter tout accident matériel ou logiciel.

Génération interactive de code

StratAjax disposera de modules de génération interactive de code pour des tâches précises, qui seront complétés au fur et à mesure des besoins des utilisateurs. En particulier, nous mettrons le plus vite possible à disposition un module de génération de code JavaScript pour utilisation transparente de services web décrits en WSDL, SOAP et UDDI.

Ces programmes seront implantés à l'aide du langage OCaml [cite:OCaml], particulièrement approprié pour la manipulation de langages de programmation.

Documentation et analyse statique

L'atout principal de StratAjax sera la génération de documentation très riche à partir de code JavaScript, WSDL, SOAP, UDDI, XUL, etc. Cette génération de documentation ira bien plus loin que les outils actuels tels que [cite:JSDoc], et emploiera des techniques d'analyse statique pour détecter des comportements erronés dans le code.

Ainsi, si tous les fichiers sont placés dans le dépôt, la documentation d'un projet par StratAjax contiendra des informations sur

Les modules d'analyse statique seront progressivement enrichis, au fur et à mesure que les technologies évoluent et que de nouvelles failles de sécurité sont découvertes. En particulier, les développeurs abonnés recevront des mises à jour du résultat de l'audit si de nouveaux problèmes venaient à être découverts.

Les techniques d'analyse statique prendront la forme de systèmes de types avec inférence et d'interprétation abstraite. De nouveau, ces programmes seront implantés à l'aide du langage OCaml, particulièrement approprié pour la manipulation de langages de programmation.

Questions de licence

Le développement de StratAjax se fondera sur

Nous n'avons pas encore cherché à contacter les auteurs de ces derniers travaux. Si les conditions imposées pour l'utilisation de leurs résultats s'avèrent inacceptables, nous sommes confiants dans la possibilité d'obtenir des résultats similaires -- quoique initialement probablement plus faibles -- dans des délais de quelques mois.

Le logiciel serveur de StratAjax ne sera lui-même initialement pas distribué. Il entre dans nos intentions de libérer progressivement le code, à un rythme non encore déterminé.

Concurrence

Produits existants

A l'heure actuelle, il n'existe aucun outil sérieux de développement de clients Ajax.

Produits annoncés

La toute récente initiative ATF (Ajax Toolkit Framework) [cite:ATF] de la fondation Eclipse vise à proposer, à une date indéterminée, un environnement de développement ouvert de qualité industrielle. Si ATF et StratAjax visent tous deux à simplifier le développement de clients Ajax, nous comptons aller bien plus loin dans l'analyse et la documentation de code, laissant à ATF ou à d'autres outils l'édition de ce code. De plus, ATF sera développé en Java, langage de programmation tout à fait approprié pour les interfaces graphiques mais bien moins adapté que OCaml dans le domaine de l'analyse de code. Enfin, ATF vise à être un outil générique pour programmeurs confirmés. À l'inverse, StratAjax vise à accompagner des développeurs Web, tout au long de leur projet, ce qui devrait nous permettre d'attirer et de fidéliser une clientèle spécifique.

PROJET D'ENTREPRISE

L'entreprise aura le status de SARL afin de combiner les avantages des sociétés de personnes et des sociétés de capitaux.

Le chiffre d'affaire de l'entreprise sera constitué d'une part, des versements des entreprises désirant avoir un compte pour utiliser nos services en ligne sur notre site et d'autre part, des versements des annonceurs publicitaires pour l'affichage de leurs encarts sur le site.

L'équipe

Pour le moment, l'équipe se compose de trois personnes.

Laurent MIMOUN, 29 ans, initiateur du projet, diplômé de l'École Nationale Supérieure des Mines de Saint-Etienne, possède une expérience professionnelle de 6 ans dans la prestation de services et de développements Web pour le compte de SSII. Proche des problématiques des développemments Web, il possède une bonne vision des améliorations et besoins autant des équipes de développement que des clients. Par sa formation d'ingénieur Civil des Mines, il maîtrise aussi l'aspect entreprenarial du projet.

David TELLER, 27 ans, récent docteur en informatique de l'École Normale Supérieure de Lyon, spécialisé dans la conception d'outils pour l'analyse statique de propriétés de sécurité dans des programmes distribués. David TELLER a de l'expérience dans le développement de logiciels commerciaux [cite:Lector] et open-source [cite:OpenBerg], à l'aide de techniques de programmation fonctionnelle mais aussi de développement par composants et Ajax. Dans l'équipe, il a le rôle d'expert en langages et de lien avec le monde de la recherche.

-- Yoric : Et le troisième ?

En terme de besoins humains, nous recherchons à compléter l'équipe par deux autres personnes : une personne de profil Web designer afin de prendre en charge le développement de l'interface du site et un deuxième développeur spécialisé dans l'analyse de code.

Besoins en locaux/matériels

Nous estimons à peu près à 12 mois la période d'amorçage du projet.

Voici les différents besoins à couvrir durant cette période :

Afin de financer ces besoins, nous commençons à prendre nos premiers contacts auprès de différents réseaux de business angels, mais à l'heure où nous rédigeons ce document, nos dossiers sont encore en cours de sélection.

Dépenses prévisionnelles

Encore au début de notre recherche de financement, afin de convaincre d'éventuels futurs investisseurs, nous solliscitons l'aide de prestataires extérieurs pour établir un plan d'affaires et des études de faisabilités économiques : vous trouverez en pièces jointes le détail de ces dépenses prévisionnelles correspondantes.

MOYENS NÉCESSAIRES À LA MATURATION DU PROJET

RÉFÉRENCES

-- Yoric : ça, ça se fera au dernier moment, sous LaTeX -- je suis prêt à m'en charger * Lector * OpenBerg * Paul Graham sur Web 2.0 * Paul Graham sur la programmation fonctionnelle * ATF

AjaxSuperPlus (last edited 2010-08-18 14:49:12 by localhost)