• Aucun résultat trouvé

05Les technologies logicielles

N/A
N/A
Protected

Academic year: 2022

Partager "05Les technologies logicielles"

Copied!
10
0
0

Texte intégral

(1)

C A H I E R

05 Les technologies logicielles

Ce cahier présente quelques exemple langages récents

1. LE LANGAGE JAVA

Le langage Java est né d'une initiative de la société Sun MicroSystem.

D'un point de vue technologique, ce langage a été conçu pour développer des applications fonctionnant sous ordinateurs connectés à un serveur via un réseau. Il est indépendant des ressources réseau et matériel.

De plus, le langage Java produisant des programmes très compacts en taille ne nécessite pas des micro-ordinateurs de grande puissance, tout juste pourvus de mémoire vive de 8 Mo.

1.1. UNIVERSALITE DU LANGAGE JAVA

Le langage Java a été conçu, dés l'origine, pour s'émanciper des différentes machines et systèmes d'exploitation.

Le même code de l'application peut ainsi tourner sur un micro-ordinateur sous environnement Machintosh, sous Windows/PC, sous Unix, sous un Network Computer (NC) et d'autres ...

respectant à la lettre l'adage "Ecrire une fois, exécuter partout".

L'utilisateur peut espérer, à l'avenir, ne plus avoir à se soucier du choix d'une machine et d'un système d'exploitation.

C'est peu dire que cette liberté de choix de fournisseurs risque de modifier le paysage de la micro-informatique de demain. Et dès aujourd'hui les plus grands acteurs de l'industrie et pas uniquement les éditeurs, y songent et même depuis quelques mois.

En réalité, ce que l'on peut percevoir de consensuel et de gage d'universalité dans le concept Java, vu de l'extérieur, se révèle être un débat houleux, et cache des enjeux commerciaux énormes.

Il y a d'un côté une alliance constituée des sociétés Sun, IBM, Netscape, Lotus, Apple, Oracle, Corel, lesquelles multiplient entre elles des accords de partenariat.

De l'autre côté, se tient la toute-puissante société Microsoft, numéro un mondial du logiciel, qui détient, à elle seule, l'essentiel du marché des systèmes d'exploitation (avec MS-DOS, Windows 3.1, Windows 95 et Windows NT), tout comme celui des applications ...

Car le langage Java est de nature à briser, techniquement et commercialement, le monopole de la société Microsoft.

(2)

Parce qu'il est ouvert à tous, le langage Java offre à nombre de sociétés la possibilité de lutter à armes égales.

Cependant, certains se souviendront que le Langage C, lui aussi, devait être universel. On recompilait simplement une application pour qu'elle tourne sur une autre machine.

Avant encore, on nous parla du système Unix, unique pour tous. Pourtant, il existe bien des

"Unix".

1.2. LE LANGAGE DE PROGRAMMATION JAVA - LES "APPLETS"

Le langage Java permet d'écrire des "applets". Une "applet" est un seul et même petit programme dont l'étonnante vertu est de s'exécuter indifféremment sur des environnements différents.

Il existe plusieurs manières d'exécuter une applet sur un micro-ordinateur :

♦ Le navigateur Internet fait office d'intermédiaire pour charger l'applet.

♦ Ensuite, il fait appel à l'interpréteur (le "plug-in Java") qui traduit les instructions Java pour le processeur et le système d'exploitation (Windows, Mac, Os, Unix ...).

♦ Le navigateur n'est plus sollicité. Les instructions de l'applet sont directement prises en charge par l'interpréteur appelé aussi "machine virtuelle". C'est elle qui prépare les instructions pour le processeur et le système d'exploitation.

♦ Ce coup-ci, toutes les instructions de l'applet sont traduites d'un bloc en instructions exécutables par le processeur. Cette méthode améliore le temps d'exécution de l'applet.

♦ Le système d'exploitation est conçu pour Java. Il traite directement les instructions de l'applet (c'est le cas des "Java Stations" de la société Sun).

Depuis sa création, le langage Java s'est rapidement répandu et les éditeurs de logiciels en ont été les premiers utilisateurs. De nombreuses applications ont ainsi été développées.

La première d'entre elles a été Hot Java, un navigateur Internet écrit par la société Sun Microsystems elle-même.

En novembre 1996, l'éditeur Corel a dévoilé la première suite bureautique écrite en Java, composée principalement du traitement de texte Wordperfect et du tableur Quattro Pro.

Depuis ma rencontre avec cette première appelette, chaque jour, les pages Web que je télécharge charrient leur lot de babioles, lesquelles s'exécutent dans la fenêtre du navigateur que j'utilise, quel qu'il soit, tantôt Navigator de Netscape, tantôt Internet Explorer de Microsoft. Les babioles en question ? Beaucoup d'animations, et puis aussi, des jeux.

1.3. GLOSSAIRE JAVA Java Script

(3)

Java Script n'a rien à voir avec Java. C'est un ensemble de fonctions inventées par le logiciel de navigation Netscape qui permet d'enrichir les pages HTML, comme par exemple, l'affichage de textes déroulants dans le bas des fenêtres.

La société Microsoft a, quant à elle, créé Jscript, dont le rôle est identique. Mais ces deux jeux de commandes ne sont pas compatibles entre eux.

Java Beans

C'est un ensemble de règles publiées par la société Sun qui définissent les principes du partage d'informations entre les programmes écrits en Java.

Avec Java Beans, le langage Java n'est plus seulement un langage de programmation, il devient également un outil de communication entre applications à la manière d'Open Doc ou d'ActiveX.

Interpréteur Java

C'est un logiciel qui interprète les commandes Java et les traduit en instructions pour le processeur et le système d'exploitation de l'ordinateur.

Machine virtuelle Java

C'est un logiciel qui simule la présence d'un processeur Java et plus précisément la présence dans l'ordinateur d'une unité de calcul et de registres dans lesquels sont stockées les informations à traiter.

Dans la pratique, le rôle de machine virtuelle est assumé par l'interpréteur Java.

Compilateur JIT

Le compilateur traduit des commandes Java en instructions pour le processeur de l'ordinateur.

Cela permet d'accélérer l'exécution des programmes écrits en Java qui sont très lents en mode interprété. L'appellation JIT provient de l'anglais "Just In Time" (juste à temps), ce qui signifie que l'application Java est compilée au moment où elle arrive dans la mémoire de l'ordinateur.

2. LES LANGAGES DE SCRIPT 2.1. INTRODUCTION

Ce chapitre est consacré aux langages de script, sous toutes leurs formes. Perl, Java Script, VBScript, WSH sont autant de langages pas toujours très simples à définir et à expliquer.

Quelles sont les caractéristiques d'un langage de script ? Quel langage choisir ? Comment incorporer un langage de script dans sa propre application ? A quoi sert-il ?

(4)

Pourquoi JavaScript est-il devenu un standard ? Comment évolue WSH (Windows Scripting Host) dans Windows 2000 ?

En quelques années, les langages de script sont devenus incontournables.

Plusieurs millions de développeurs sont déjà formés aux technologies de "scripting" : ces technologies sont au cœur de la stratégie COM de Microsoft, pas un site Web ne fait aujourd'hui l'impasse sur JavaScript.

2.2. GENERALITES

La plupart du temps, un langage de script est utilisé pour écrire de petits programmes, insérés dans une page HTML au sein de balises "SCRIPT". Ils utilisent des variables, et manipulent la page HTML chargée dans le navigateur.

Ces petits programmes permettent de vérifier que l'utilisateur a bien saisi un formulaire, animer des boutons pour ajouter un effet visuel au passage de la souris, etc …

Si une valeur saisie est incorrecte, ces programmes "script" peuvent afficher un message d'alerte qui évite de faire des allers et retours inutiles avec le serveur HTTP.

A cette utilisation du côté client a rapidement succédé l'écriture de scripts du côté serveur, au sein de pages ASP pour Microsoft IIS ou JSP pour Netscape Enterprise Server.

Le script, là encore, est inséré au code HTML et renvoyé par le serveur, au sein de balises

"SERVER".

Mais cette fois, il est exécuté par le serveur, et le résultat de cette exécution vient modifier la page. Une fois cette dernière renvoyée au navigateur, il n'y a plus trace du code JavaScript ou VBScript présent initialement.

Notons qu'on peut combiner les deux approches en mixant les balises "SCRIPT" et "SERVER".

L'attribut "language" de ces balises permet de choisir le langage de script utilisé. On peut également mélanger VBScript et JavaScript, bien que l'intérêt soit beaucoup moins évident.

2.3. CARACTERISTIQUES DES LANGAGES SCRIPTS

Les langages de script ne sont pas nativement des langages objet. Ecrits au sein d'éditeurs rudimentaires comme le Bloc-notes, ils sont lents et difficiles à déboguer. Le code source de n'importe quel programme est lisible avec un éditeur ASCII le plus rudimentaire.

JavaScript et VBScript sont des langages interprétés. Le code est chargé, lu et vérifié, puis exécuté par un moteur binaire (ou runtime), ligne après ligne.

Une boucle en VBScript s'exécutera des dizaines (voire des centaines) de fois plus lentement qu'une même boucle écrite en C++, puis compilée en langage machine.

(5)

Toutefois, le critère de performance n'est pas rédhibitoire: après avoir attendu quelques secondes le chargement d'une page HTML sur Internet, un écart d'un dixième de seconde n'est pas significatif.

D'autres langages comme Java utilisent aussi un runtime, appelé "machine virtuelle". Mais dans ce cas, le code source Java est pré-compilé et optimisé à l'avance en un fichier binaire. Java, bien que plus lent que C++, est beaucoup plus rapide que les langages de script.

La lisibilité des langages de script est certainement à l'origine de leur succès.

Aucun environnement de développement n'est nécessaire pour écrire du JavaScript : le Bloc- notes de Windows suffit.

Nul besoin de recompiler le code suivant le système d'exploitation : un même code tourne sous Linux, Windows ou MacOS quel que soit le navigateur.

La lisibilité du code source peut toutefois présenter des problèmes de confidentialité : comment protéger la propriété intellectuelle si tout un chacun peut recopier votre code ?

Il suffit alors de visualiser le code source de la page HTML, de localiser le code entre deux balises "SCPIPT" et de faire un copier/coller vers son propre site...

Microsoft distribue une technologie baptisée Script Encoder, qui permet de crypter le source d'un langage de script. Cependant, les pages ainsi encodées ne sont lisibles qu'avec le navigateur Internet Explorer, ce qui limite son usage dans le cadre d'un site Internet où les navigateurs Netscape sont encore très présents.

Les langages de script sont réputés simples ; la réalité est plus contrastée. Dans le sens de la simplicité, il n'est pas nécessaire de déclarer ses variables avant de les utiliser. JavaScript est non typé : une variable peut tour à tour contenir du texte, un nombre ou un objet. On comprendra que cela n'accélère pas l'exécution, car aucune optimisation ne peut être faite. Au-delà de la simplicité, cela ne facilite pas la détection d'erreurs.

En ce qui concerne les performances, les moteurs de script vont en s'améliorant de version en version, dans des proportions très impressionnantes.

Le résultat ne tient pas uniquement au moteur lui-même, mais à la manière dont il s'intègre dans son hôte, respectivement Internet Explorer, Netscape Navigator ou les serveurs HTTP. L'éditeur Microsoft annonce ainsi un gain de 300 % de la vitesse des pages ASP dans IIS 5.0 sous Windows 2000 par rapport à IIS 4.0 sous Windows NT 4.0.

2.4. LES ENVIRONNEMENTS D'UTILISATION D'UN LANGAGE DE SCRIPT Un programme script s'exécute au sein d'un "contexte".

Le plus fréquent est une page HTML lue par un navigateur. Ce contexte enrichit le langage de nouveaux objets qu'il peut manipuler. Ainsi l'on dispose des objets "document", "Windows" ou

"form" lorsque l'on écrit du JavaScript du côté du client.

(6)

Sur le serveur, au sein de "Microsoft IIS" ou de "Netscape Enterprise Server", les pages ASP ou JSP qui incorporent du JavaScript ne pourront accéder à tous ces objets. Ils utiliseront plutôt les objets "Response" (qui désignent le code HTML renvoyé au navigateur) ou encore "Request"

contenant la requête HTTP transmise au serveur.

Les contextes d'utilisation ne sont pas forcément liés au Web. Avec WSH, Microsoft permet de

"scripter" Windows en JavaScript ou VBScript.

D'autres éditeurs, comme Macromedia avec la version 3.0 de DreamWeaver, utilisent JavaScript pour automatiser l'environnement de travail.

Le contexte d'utilisation d'un langage de script à des répercussions importantes sur la sécurité.

Au sein d'un navigateur, du code JavaScript ne pourra pas accéder au système de fichiers ou au système d'exploitation. On ne pourra pas non plus utiliser une adresse URL autre que celle du site sur lequel on est connecté.

Du côté du serveur, aucune de ces limitations ne s'applique ...

Le "déboguage" des scripts n'a jamais été un point fort. Tout d'abord parce qu'il n'y a pas d'environnement de développement spécifique, et que celui-ci se réduit bien souvent à un éditeur de texte qui n'a pas de lien avec l'environnement d'exécution.

Et pourtant, un langage qui n'est qu'interprété a grand besoin d'être débogué, car le premier filtre (généralement opéré par le compilateur) sur le code n'existe pas. La première solution artisanale de déboguage réside dans l'utilisation de boîtes de message dans le code qui affiche l'état du programme.

Microsoft et Netscape ont fini par écrire un environnement de déboguage, baptisé respectivement Microsoft Script Debugger et Netscape JavaScript Debugger.

Mais il est nécessaire d'autoriser le déboguage dans les applications utilisant le scripting (IIS, IE ...).

Ces outils améliorent beaucoup le confort et la productivité.

Dans la pratique, on conserve bien souvent trois environnements : l'un pour écrire le script, le second dans son contexte d'exécution, et le troisième pour déboguer.

2.5. DESCRIPTION DES DIFFERENTS LANGAGES SCRIPT 2.5.1. JAVASCRIPT

Brendan Eich, ingénieur chez Netscape, en est l'inventeur. Son nom originel est "LiveScript" et il a été rebaptisé JavaScript par la suite, probablement pour bénéficier de l'engouement autour de Java (bien qu'il n'y ait absolument aucun rapport entre JavaScript, le langage de script, et Java, le L3G nécessitant une machine virtuelle).

(7)

Le langage JavaScript a été standardisé par un organisme européen appelé ECMA en décembre 1997.

JavaScript est le plus répandu des langages de script. Il est la seule option de scripting disponible avec Netscape Navigator.

Tous les scripts développés au sein de HTML pour Internet sont donc écrits en JavaScript pour fonctionner avec les navigateurs de Netscape et de Microsoft.

Dans un contexte Intranet, où seuls les navigateurs Microsoft peuvent être déployés, on pourra se reporter sur VBScript.

Du côté du serveur HTTP, les choses sont différentes : VBScript est majoritaire sous IIS/ASP tandis que l'on retrouve JavaScript sous Netscape Enterprise Server et ses pages JSP.

En fait, il n'y a pas un seul JavaScript mais bien trois moutures différentes du langage, avec de trois légères variantes, ajouts et omissions.

Le premier, appartenant à Netscape, porte le nom générique de JavaScript.

Netscape fait encore la distinction entre le langage de base JavaScript et ses versions étendues JavaScript côté client (CSJS) et JavaScript côté serveur (SSJS), qui apportent chacun des objets supplémentaires.

Les principales innovations de JavaScript concernent la gestion des erreurs qui est implémentée avec le mot-clé "Try ... Catch ...".

La syntaxe du JavaScript est plus proche des langages C++ ou Java, avec par exemple des points- virgules en fin d'instruction, ou des instructions telles que [i++] qui signifie [i=i+1].

Autre (lourd) héritage du C++ : JavaScript est dépendant de la casse des noms de variable. Par exemple, les deux variables "Compteur" et "compteur" seront considérées comme différentes ! Et comme aucune erreur n'est soulevée par le compilateur puisqu'il n'y en a pas, ni par l'interpréteur puisqu'il n'est pas nécessaire de déclarer les variables, on entrevoit les affres dans lesquelles peuvent se débattre les développeurs.

2.5.2. LE LANGAGE VBSCRIPT

VBScript peut être vu comme une version simplifiée de Visual Basic, déjà très simple.

En interne chez Microsoft, VBScript bénéficie à plein de l'émulation entre les deux éditeurs.

Netscape fait évoluer JavaScript : Microsoft se doit de suivre avec JScript, mais doit également mettre à niveau VBScript pour inciter les développeurs à continuer à utiliser le langage maison.

Cette émulation a d'autres effets positif sur Visual Basic lui-même ou VBA, qui se doivent de rester des sur-ensembles de VBScript !

La dernière version 5.0 des langages de script JScript et VBScript de Microsoft a vu de nombreuses évolutions très intéressantes. Du côté de VBScript 5.0, on constate surtout des mises

(8)

à niveau par rapport à JScript. Les développeurs VBScript bénéficient enfin des expressions régulières manipulant les chaînes de caractères, via un objet appelé RegExp.

Seconde innovation, le support des classes.

Jusque là, VBScript était resté tristement procédural, et il n'était pas possible de développer des programmes avec une orientation objet comme avec JavaScript.

2.5.3. LE LANGAGE WINDOWS SCRIPTING HOST (WSH)

En 1996, l'éditeur Microsoft avait besoin de remplacer les anciens fichiers ".bat" du Dos (toujours utilisés sous Windows 95 ou NT) par une métaphore de programmation plus moderne.

Pourquoi alors ne pas utiliser ces mêmes langages de script qui ont pour avantage de ne nécessiter qu'un éditeur de texte, tout comme les antiques ".bat" ?

L'architecture "ActiveX Scripting" était née.

L'idée est de proposer une API unique unifiant tous les langages de script. Un programme client implémentant ces interfaces pourrait utiliser n'importe quel langage de script à la norme "ActiveX Scripting".

Microsoft disposait déjà de deux clients, Internet Explorer et IIS. Pour remplacer les ".bat", le langage "Windows Scripting Host" (WSH) a été créé.

WSH permet non pas d'automatiser des pages HTML, mais les systèmes d'exploitation Windows 98 et NT.

WSH autorise la manipulation de fichiers et répertoires, en VBScript ou en JavaScript. N'importe quel programme non-Microsoft peut aujourd'hui bénéficier de cette architecture. Il suffit d'implémenter les API, qui sont publiques. Mais cela reste assez complexe.

Pour simplifier l'intégration du script dans le plus grand nombre d'applications, Microsoft a conçu un contrôle ActiveX, Script Control, très simple d'utilisation. Il devient ainsi très facile d'intégrer VBScript dans un logiciel écrit en Delphi ou en Visual Basic ...

WHS permet de construire des fichiers batch, qui sont exécutables depuis une ligne de commande ou en double-cliquant sur une icône. Il devient possible d'écrire des routines d'installation, de backup ou des scripts d'administration dans un vrai langage (à choisir entre VBScript, JScript ou même Perl) au lieu de devoir utiliser les fichiers batch classiques (*.bat).

De plus, comme ces langages permettent d'instancier des objets COM comme Excel, MSWord, SQL Server ou Exchange, les développeurs WSH peuvent automatiser non seulement le système d'exploitation, le système de fichiers ou la base de registre, mais aussi la plupart des logiciels existants à travers OLE Automation.

(9)

2.5.4. LE LANGAGE MICROSOFT SCRIPT CONTROL (MSC)

Jusqu'en 1998, l'intégration d'un langage de script dans une application restait très complexe, et réservée aux développeurs C++ .

Microsoft a alors développé un composant ActiveX baptisé Script Control, permettant à n'importe quelle application écrite en environnement de développement Visual Basic, Delphi ou PowerBuilder d'intégrer n'importe quel langage de script compatible avec l'ActiveX Scripting, à savoir VBScript, JScript ou Perl.

L'intégration d'un langage de script au sein d'une application Windows permet de personnaliser le comportement d'une application et de l'automatiser sans avoir à le modifier. Par exemple, lors de l'exécution des requêtes exprimées par un utilisateur, il devient possible d'évaluer ces mêmes requêtes, qui n'étaient pas connues lors de l'écriture du programme et n'ont donc pas pu être codées et compilées dans le code source de l'application.

Si Microsoft fournit VBScript et JScript (sa version de JavaScript), il existe d'autres langages disponibles auprès d'éditeurs tiers et conformes à l'ActiveX Scripting comme Perl.

2.5.5. LE LANGAGE SCRIPT PERL

A l'extrême du spectre de la simplicité, on peut citer Perl, simple à écrire mais parfois impossible à relire ...

Perl est l'acronyme de Practical Extraction and Report Language. Il a été inventé par M.

LarryWall, puis publié en 1987 sur l'Internet de l'époque.

Sa version 5 date de 1994 et continue d'évoluer depuis dans un contexte Open Source.

La version "5.005" actuelle est implémentable sous toutes les plates-formes, dont bien sur Unix qui l'a vu naître.

Perl a grandement contribué à la démocratisation des langages de script, et l'on estime aujourd'hui la communauté des développeurs Perl à environ un million.

Il est difficile de décrire Perl. Sa syntaxe est semblable au langage C, mais il est plus facile à apprendre et à développer.

Grâce à l'utilisation de raccourcis présents à tous les niveaux du langage, nombre de scripts Perl sont très courts.

Malgré tout, ces raccourcis peuvent parfois nuire à la productivité par un manque de lisibilité.

L'un des points forts de Perl réside dans les expressions régulières, qui sont aux chaînes de caractères ce que les mathématiques sont aux nombres. En bref, ce sont des outils extrêmement puissants pour gérer du texte et effectuer des recherches.

Un autre avantage de Perl réside dans les très nombreux modules étendant le langage de base.

Perl est très utilisé accolé à un serveur Web, car il possède des modules gérant les sockets HTTP,

(10)

XML ou encore les e-mails SMTP. Le module appelé CGI.pm est quant à lui particulièrement intéressant pour gérer les formulaires HTML. Un autre module permet la connexion aux bases de données relationnelles Oracle ou Sybase.

Perl utilise le protocole CGI avec les serveurs HTTP mais de nombreux produits Open Source sont disponibles pour utiliser les protocoles natifs plus rapides comme ISAPI, NSAPI, ou MOD sous Apache.

Sous Windows, on peut aujourd'hui utiliser Perl de deux façons distinctes.

La première est classique, en utilisant l'interpréteur "Perl.exe".

La seconde s'intègre dans l'architecture de Microsoft, et permet d'utiliser Perl (appelé ici PerlScript) dans Internet Explorer, dans IIS au sein de pages ASP, dans WSH ou d'autres applications implémentant les interfaces ActiveX de scripting.

Références

Documents relatifs

Le candidat retenu devra dans un premier temps assimiler l’ensemble des propositions faites par notre équipe et par la communauté scientifique pour les réseaux de capteurs sans

Une coccinelle se promène dans ce parterre de nombres pour retrouver le puceron qu’elle aimerait manger.. Elle ne se déplace que dans l’ordre croissant des nombres et ne peut pas se

& U n article publi e au tournant du XXI e siècle identifie plusieurs d efis pour l’ epid emiologie environ- nementale : l’ etude des effets d’expositions multiples et corr

Utilisez la requête de tutelle pour une personne présumée handicapée (formulaire CC-GN-002) si vous demandez au tribunal de vous nommer ou de nommer quelqu’un d’autre tuteur à

Vous avez des informations à nous communiquer (réunions, animations, histoires concernant les moulins, etc.) n’hésitez pas à nous en faire part, nous en informerons les adhérents

Cette base législative est complétée par celle de l’article L3225-1 du Code de la défense qui précise que « Sans préjudice des attributions de l’autorité judiciaire pour

Dans la pratique cela suppose qu'un groupe départemental engage un certain nombre d'écoles dans ·une correspondance internationale avec un pays de la F.I.M.E.M.,

, → Pour une variable d'intérêt y donnée, laquelle parmi les deux séries de poids convient mieux d'utiliser pour produire les estimations les plus précises des paramètres de