Académique Documents
Professionnel Documents
Culture Documents
SOMMAIRE :....................................................................................................................................................... 2
INTRODUCTION.................................................................................................................................................. 3
PROBLÉMATIQUE................................................................................................................................................ 3
Introduction
L’évolution informatique a mené à la diversification de son application et l’apparition de
nouveaux obstacles. L’intérêt de cette recherche et d’éclaircir un point majeur de l’optimisation
et l’amélioration de logiciels, généralement, et d’applications Web spécifiquement.
Problématique
Le Monde d’internet est de plus en plus peuplé par des pages uniques d’application (Single page
Application) et de serveurs dynamiques. La nécessité d’une connexion permanente avec les
serveurs pour l’échange de données croit au jours le jour.
Cette dépendance limite les possibilités hors connexion ou lors d’une utilisation d’une
connexion instable. Cela génère de la frustration pour l’utilisateur face à une application non
réactive et un délai d’attente conséquent. Après des implémentations primaires comme
AppCache, nait un besoin nouveau.
Les « Services Workers » sont l’évolution des caches simples révolutionnant la notion de
création d’application web. Ils offrent la possibilité de simuler une connexion serveur, facilité la
charge serveur et garder l’application fonctionnelle de façon limités.
L’image ci-dessus est une partie de l’évolution d’internet qui montre l’intérêt qui est attribuer à
son développement et son amélioration. La quantité de donnée échanger fait paraitre un
problème important qui est la raison même de notre étude.
• Evolution Coté Client
Il existe de nombreux langage de programmation capable de fonctionner coté client.
Pour mieux nous situer Intéressons-nous plus précisément à Javascript à travers une foire aux
questions :
Q : Qu’est-ce que Javascript ?
R : JavaScript est un langage de programmation de scripts principalement employé
dans les pages web interactives mais aussi pour les serveurs avec l'utilisation (par
exemple) de Node.js.
Q : Quelle est le Rôle de JavaScript ?
R : Javascript est la source même de l’interactivité et du dynamisme du Web. JavaScript est
parfois considéré comme l'une des technologies cœur du World Wide Web. Le
langage JavaScript permet des pages web interactives, et à ce titre est une partie
essentielle des applications web.
Q : En quelle années a-t-il été développer ?
R : Tout a commencé en 1995, un groupe de développeurs de Netscape (Navigateur) décide de
se lancer dans l’innovation du web en le rendant plus dynamique.
Q : Quel été les piliers de son fondement ?
R : L’un des principaux objectifs de Javascript d’être accessible au maximum de profession de
l’informatique et non pas seulement aux développeurs les plus aguerri. Donc il été nécessaire
que Javascript (à l’époque s’appelant Mocha) d’être rapide et simple.
Pour Résumer
Javascript est, pour simplifier, un code qui s’exécute coté client pour offrir une nouvelle couche
de logique qui permettent d’offrir différente fonctionnalité au paravent difficile à envisager.
Exemple : animations, validation, réactivité…
L’Evolution
Les Scripts qui à l’époque s’exécuter pour fournir de simple animations et réactivité dans une
page web on exploser pour devenir des « plateformes ».
Javascript est un langage qui de nos jours et la base de presque tous les « Framework » coté
client renommé : React, Angular et VueJs. D’où le choix d’en parler dans cette étude.
Ces mêmes « Framework » offre la possibilité d’interagir de façon plus dynamique avec le
serveur à travers des requêtes. La capacité de sauvegarder les données reçues par le serveur
soit en les affichants ou les sauvegardant en mémoire limite les capacités du client.
Le Serveur n’est pas concerné par l’identité du client et de sa disposition avec les fichiers envoyé
du a la nature des requêtes http.
Cela est clairement un default qui a donc nécessité l’implémentation de fichiers plus au moins
temporaire pour nous offrir une certaine traçabilité.
A la recherche d’un candidat, la majorité se tourne vers une base de données. Or la limite de
connexion, la vitesse et les risques de sécurité non font pas un candidat valide pour le besoin
mentionné.
• Conclusion
Le Besoin d’une zone abstraite où des fichiers temporaires ou permanant dépendant du besoin
d’échange soit facilement accessible pour le client comme pour le serveur.
La solution : Un Cache.
Varnish
Contrairement aux autres caches mentionnés plus haut, Varnish a une utilité plus spécifique.
Varnish joue le rôle d’un cache proxy-inverse. L’idée de Varnish est d’offrir un cache sur un
hardware diffèrent qui lui communique avec le serveur.
Ce Cache devient un délégué pour les charges répétitives de la base de données. Ceci offre une
performance plus importante que les solutions traditionnelles.
Ils existent d’autre solutions, comme un fichier simple, ou même des caches en base de
données.
Il est important de choisir un dénouement qui offre une balance entre : cout, performances et
utilité.
wopA315.tmpoleObject4.bin
Cookies
La première forme primitive d’informations conservé depuis le serveur coté client a été sous la
forme de petit fichier ne dépassant pas une taille de 300ko. Permettant de conserver des
informations personnalisées, le serveur récupérer ces fichiers pour customiser le traitement.
De nombreuses limitations tels le manque de sécurité (modifications par un tiers ou
l’utilisateur) et la limite de taille on encourager au développement de nouveau concept.
AppCache
L’échange constant d’informations a nécessité la sauvegarde de ressource au niveau locale mais
offrant une « api » de haut niveau, supporté par les navigateurs qui diminue le trafic entre le
client et le serveur. Ce système offre une utilisation hors connexion ou une amélioration des
performances. A chaque requête effectuer le serveur vérifie l’existence de la ressource au
niveau du cache et n’envoie une requête que si le besoin d’une mise à jour et spécifié ou la
ressource n’est pas trouver.
Malgré cette nouvelle fonctionnalité, l’AppCache est toujours limites par un manque de
flexibilité et une logique simple qui ne prend pas en considération les situations de connectivité
lente ou de signal faible.
• Conclusion
Le cache est né d’un besoin d’améliorée et réduire le temps d’attente. La nature du cache peut
paraitre à première vue simple et le problème au quelle il s’adresse résolut, or, les exigences de
perfectionnements poussent toujours au progrès.
Un service Workers est un script qui est déclencher hors de la page mais au service de cette
dernière. Base sur javascript, certaines limitations comme l’accès au DOM oblige l’utilisation de
l’interface postMessage.
Il est aussi fort important de noter que le cycle de vie d’un service Worker unique est à prendre
en considération lors de l’utilisation. Quand, il n’est pas utilisé le service Worker est arrêter et
est redémarrer on cas de nécessité. Cette situation contraint à ne pas utiliser des variables
globales dans l’espoir de les utiliser dans le futur.
Le cycle de vie commence à l’atterrissage sur une page web qui contient un script qui déclenche
l’installation du service Worker. Ce dernier peut soit échouer soit réussir. En cas de réussite, le
service Workers sera « prêt » et mis en attente pour son appel si besoin. Le service peut
recevoir des messages de la page web et réagir ou peut être de nouveau mis en attente ou
totalement arrêté.
Conclusion
Après cette brève exploration de l’univers qui entourent les services Workers et une découverte
des plusieurs rôles du cache nous terminons notre étude sur la réalisation que les cache sont et
seront toujours une part entière de l’informatique dans tous ces domaines mais surtout dans le
web.
L’évolution des caches dépend fortement de leurs contextes et de leurs environnements. Malgré
cela il y a un effort collectif à améliorer l’expérience utilisateur.