> Tech > Evolutivité

Evolutivité

Tech - Par iTPro - Publié le 27 septembre 2010
email

A mon avis, Java l’emporte haut la main dans une grande société qui doit produire des applications de haut niveau. C’est moins vrai pour ceux d’entre nous qui travaillent dans un environnement de PME.


Pour une application modeste, CGIDEV2 surclasse ses concurrents parce qu’il

Evolutivité

exécute du code RPG natif et que ce code RPG peut être conçu pour rester en mémoire (en utilisant un groupe d’activation nommé et en laissant LR sur off). De cette façon, chaque appel est très rapide parce que les programmes restent en mémoire avec leurs fichiers ouverts : il leur suffit de traiter chaque requête.

Ce modèle est différent du modèle CGI traditionnel utilisé sur des serveurs Unix et Windows. Dans le modèle traditionnel, un nouveau processus (l’équivalent d’un job i5/OS) est créé, et le programme est chargé depuis le disque en mémoire. Le programme doit ensuite analyser les chaînes codées en URL pour obtenir ses paramètres, puis il peut ouvrir les fichiers et effectuer son traitement avant de revenir finalement.

En revanche, sur i5/OS, la première fois qu’un programme est appelé, à la fois le programme et les extensions CGIDEV2 peuvent être chargés dans un groupe d’activation, où ils restent en mémoire afin que les invocations futures soient très rapides. CGIDEV2 traite l’analyse des données codées en URL, et donc vous n’avez pas à coder cette partie du processus. De ce fait, les programmes CGIDEV2 ne connaissent pas les mêmes inconvénients que les applications CGI traditionnelles.

Dans des environnements de taille modeste, ils sont nettement supérieurs à Java et PHP. PHP et Java ont tous deux des mécanismes qui améliorent la performance sur des applications CGI traditionnelles également. PHP s’exécute comme un module Apache, et donc le code PHP lui-même est chargé en même temps qu’Apache et il reste en mémoire avec l’instance serveur Apache.

En revanche, PHP doit encore charger son code source à partir du disque à chaque invocation. Comme PHP est un langage interprété, le code ne s’exécute pas aussi vite que si c’était un langage compilé. C’est pourquoi RPG est plus rapide dans des environnements de petite envergure. Si l’on monte en puissance, PHP s’avère progressivement plus rapide parce qu’il peut s’exécuter dans des threads simultanés multiples, et donc vous pouvez traiter davantage de clients simultanément.

Java garde aussi son environnement d’exécution en mémoire. Il est mis en oeuvre comme un serveur Web séparé en utilisant soit WebSphere Application Server, soit le serveur Tomcat open-source. Mais j’ai constaté que ces serveurs et la JVM (Java Virtual Machine) qu’ils doivent utiliser pour s’exécuter, demandent une quantité notable de mémoire supplémentaire. Sur des machines plus petites et moins puissantes, les applications Java sont nettement plus lentes que PHP ou RPG.

Sur de grands serveurs avec beaucoup de mémoire, ce problème s’estompe. Et face à des milliers d’utilisateurs simultanés, Java rafle la mise. En matière de technologies Web, le niveau d’évolutivité souhaité compte beaucoup. Pour un très grand nombre d’utilisateurs, Java est le meilleur choix. Pour un plus petit nombre (par exemple moins de 200), CGIDEV2 est facilement supérieur aux autres. PHP se situe au milieu, avec plus d’évolutivité que CGIDEV2 et un besoin de ressources bien moindre que Java.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 27 septembre 2010