Une tasse de café fumante est



Documents pareils
Éléments de programmation et introduction à Java

Annexe : La Programmation Informatique

Évaluation et implémentation des langages

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

La technologie Java Card TM

Linux embarqué: une alternative à Windows CE?

Environnements de développement (intégrés)

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le concept de virtualisation regroupe

Retrouver de vieux programmes et jouer sur VirtualBox

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Qu est-ce que le «cloud computing»?

La reconquête de vos marges de manœuvre

Vulgarisation Java EE Java EE, c est quoi?

IV- Comment fonctionne un ordinateur?

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Chapitre I Notions de base et outils de travail

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

La mémoire. Un ordinateur. L'octet. Le bit

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Point sur les solutions de développement d apps pour les périphériques mobiles

Programmation Orientée Objet

L informatique en BCPST

Encadré par : Michel SIMATIC

Version de novembre 2012, valable jusqu en avril 2013

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Initiation à JAVA et à la programmation objet.

La communication et la gestion de l'information

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Les jeux sous GNU/Linux progressent

Leçon 1 : Les principaux composants d un ordinateur

Traitement de données

CH.3 SYSTÈMES D'EXPLOITATION

Préconisations Portail clients SIGMA

Nouveautés Ignition v7.7

Introduction aux systèmes temps réel

Introduction à l informatique en BCPST

Lutter contre les virus et les attaques... 15

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Configuration requise pour l utilisation de la plateforme EnlightKS Online Certification Management Services ET2.13 Juin 2011

Cours 3 : L'ordinateur

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

Insight Software Live

Guide de dépannage Internet pour PC Pour voir les reportages audio et vidéo, sur le site de Radio-Canada

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Le matériel informatique

Cours 1 : Qu est-ce que la programmation?

MANUEL D INSTALLATION

LES OUTILS DE LA MOBILITE

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Java embarqué. Présentation faite en Java sur un microcontrôleur AVR32 d'atmel. Ecole des Mines de Nantes. 31 Janvier

M Études et développement informatique

WINDOWS Remote Desktop & Application publishing facile!

... et l appliquer à l optimum. Reconnaître la qualité... Solution Partner. Answers for industry.* *Des réponses pour l industrie.

ANTI-VIRUS / PROTECTION DES POSTES DE TRAVAIL ET DES SERVEURS DE FICHIERS

Windows 7 - Installation du client

La carte à puce. Jean-Philippe Babau

Infrastructure Active Directory en termes de GPO

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Améliorez la sécurité en matière de soins de santé et de soins aux patients grâce à la VDI avancée d Imprivata

Gé nié Logiciél Livré Blanc

LA CARTE D IDENTITE ELECTRONIQUE (eid)

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

1/ Pré requis techniques pour l installation du logiciel complet de gestion commerciale Wingsm en version Hyper File :

Garantir une meilleure prestation de services et une expérience utilisateur optimale

Tablette Pegasus PC Notes. Code : Conrad sur INTERNET Version 02/ Conditions du système.

DOSSIER REVENDEURS. Ciel Gestion commerciale Ciel Gestion commerciale Evolution

11 Février 2014 Paris nidays.fr. ni.com

Intrunet SI120/SI220 Pour une sécurité sur mesure

Java - la plateforme

Comment gérer toutes mes tâches logicielles d automatisation dans un seul environnement?

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Logiciels Open Sources et le Secteur Privé

as Architecture des Systèmes d Information

Projet Active Object

Manuel d installation de l application Dimona New via SMS

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service

creo elements/pro creo elements/direct creo elements/view

Présentation de la gamme des PGI/ERP modulaires Wavesoft

SQL Server Installation Center et SQL Server Management Studio

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Installation et prise en main d UBUNTU

EIP 2012 Projet Livepad. Documentation technique 1.5

Remise à niveau d un programme JAVA du domaine public

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Intrusion. Intrunet SI120/SI220 Pour une sécurité sur mesure. Answers for infrastructure. 1

White Paper - Livre Blanc

Architecture matérielle des systèmes informatiques

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Processus d Informatisation

Transcription:

INFORMATIQUE La technologie Java est prête à embarquer Java est une technologie de programmation puissante et fiable. Elle est omniprésente sur Internet, dans la téléphonie mobile et sur la plupart des plates-formes électroniques grand public. Ses nombreux atouts séduisent le monde industriel. Parmi ceux-ci, on notera un principe de fonctionnement à base de machine virtuelle, qui garantit la portabilité sur n importe quel matériel, un degré de sécurité digne des langages spécialisés, et une programmation orientée objet qui favorise la réutilisation des composants et réduit les temps de développement. Certains éditeurs commercialisent des versions de Java pour tous les types d applications, depuis le contrôle de process industriel jusqu aux systèmes embarqués critiques. Une tasse de café fumante est forcément apparue un jour ou l autre à l écran de tout utilisateur d Internet. C est le symbole du langage de programmation Java, créé par Sun en 1994. Sa présence se renforce chaque jour un peu plus sur les pages de nos navigateurs, et il a envahi le marché des applications multimédia pour téléphones portables. Cette explosion de Java est surtout due à deux caractéristiques totalement innovantes à l époque de sa création. C est un langage accessible à tous, avec un très grand nombre de développeurs regroupés en une communauté active, et grâce à un concept à base de Machine Virtuelle (ou VM, pour Virtual Machine), les applications s exécutent en toute sécurité quelle que soit la plateforme matérielle. Ce sont des caractéristiques qui ne sont pas pour déplaire aux industriels. Ces derniers, on le sait, sont demandeurs de solutions libres de droits, qui ne dépendent pas de la bonne santé d une société éditrice, et pour lesquelles des développements sont fréquemment effectués. Et quel que soit le secteur, la sécurité et la portabilité des applications sont des préoccupations importantes. C est pourquoi, après avoir fait ses preuves dans le secteur grand public, le langage Java intéresse de plus en plus les industriels. Des éditeurs de logiciels se sont donc spécialisés sur ce créneau en adaptant Java aux multiples contraintes de l industrie (applications temps réel ou critiques, coût du matériel, etc.). Remplaçant du C et de l Ada? Aujourd hui, les applications industrielles embarquées sont majoritairement développées en langage C. Il s agit d un langage assembleur (ou natif ) qui communique directement avec le matériel sur lequel il est implémenté. Pour rappel, le langage C a été inventé pour bâtir des systèmes d exploitation (ou OS, pour Operating System). Les applications en C sont donc extrêmement rapides et performantes. Cependant, la programmation s effectue au plus près de la machine, si bien que les risques d erreurs ne sont pas à écarter. La gestion de la mémoire, notamment, pose de nombreux problèmes de débogage pour qui n est pas un expert de l assembleur. D où la naissance des langages orientés objet, tels que Java, Smalltalk-80, Ada, C++ ou encore Visual Basic, qui séparent le comportement (les fonctions des données manipulées). Grâce à ces derniers, le développeur n a plus besoin de modéliser les process et d écrire tous les algorithmes. Il se contente de décrire des objets et la manière dont ils communiquent ou interagissent entre eux. Ces langages, à l inverse de leurs homologues assembleurs, sont prévus pour la conception d applications, et non pas de systèmes d exploitation. On se trouve donc à un niveau d exécution supérieur. Ainsi, si l application effectue une opération non autorisée, elle ne plantera pas la machine sur laquelle elle s exécute. Ada, dans ses versions 83, 95 ou 05, reste aujourd hui un langage de programmation fortement utilisé pour le développement d applications critiques ou très fortement contraintes. Très largement répandu dans toutes les industries aéronautiques, militaires ou spatiales, que ce soit pour les équipements embarqués (systèmes de navigation) ou non-embarqués (logiciels de contrôle aérien). Il s agit d un langage très avancé en termes de pouvoir d expression et de fonctionnalités. Toutefois, la communauté restreinte d utilisateurs fait que, malgré sa richesse, ce langage manque d outils et de bibliothèques prêts à l emploi. Il demande des investissements importants en développement. Autre frein au déploiement de l Ada pour les projets aéronautiques : le manque de main-d œuvre qualifiée. En effet, les écoles d ingénieurs qui intègrent des formations au langage Ada dans leurs cursus se font de plus en plus rares. Mais à l inverse, des milliers d ingénieurs sachant développer en Java sortent chaque année des écoles. «On peut dire que l industrie a atteint aujourd hui une certaine limite technologique, commente Fred Rivard, président du directoire d Industrial Software Technology (IST), société éditrice de solutions Java pour l électronique embarqué. Les développeurs qui travaillent dans les systèmes temps réel et critiques se rendent compte du problème : il n est plus possible de L essentiel Java est de plus en plus utilisé dans l industrie Une application développée en ce langage peut être portée sur n importe quelle plate-forme matérielle sans recompilation Des solutions existent pour adapter Java aux contraintes temps réel L empreinte mémoire peut être réduite pour les petits microcontrôleurs Java remplace déjà les langages C et Ada pour certaines applications critiques 35

Poussée par le dynamisme de sa communauté d utilisateurs, la technologie Java évolue. Et grâce aux développements effectués pour adapter les machines virtuelles à l électronique embarquée, une multitude de nouveaux marchés peuvent en bénéficier : contrôle industriel, applications radar et satellites, contrôle aérien, automobile, aéronautique et spatial en sont quelques exemples. continuer à programmer de la même manière qu il y a 25 ans sur des systèmes modernes, alors que nous sommes passés à l ère des architectures 32 bits et des processeurs multicœur et que la pression économique sur les entreprises est de plus en plus forte.» Java, comment ça marche? Le principe de Java repose sur trois grandes idées novatrices : un langage de programmation standard, une machine virtuelle pour l exécution des programmes et un outil autonome de gestion de la mémoire. Premièrement, le langage de programmation défini par Sun fait appel à une syntaxe relativement proche du C. Cependant, il s agit d un langage plus rigoureux, qui oblige à bien écrire. Mais qui entraîne une réduction des temps de débogage. De plus, étant donné qu il s agit d un langage orienté objet, il favorise la réutilisation de ces objets ou composants d une application à l autre. Ce qui réduit cette fois les temps de conception. Et la réutilisation ne se fait pas uniquement à l intérieur d une société. Elle est mondiale. En effet, la communauté des développeurs Java est très active et travaille constamment à l élaboration de composants logiciels, de nouvelles bibliothèques de fonctions et d objets. Tom Grosman, chef de projet chez Aonix, éditeur de solutions Java et ADA pour l embarqué, souligne notamment que «la version 6 de Java contient 20 000 composants environ, contre 15 000 dans la version précédente sortie deux ans plus tôt.» Ceci illustre le dynamisme de cette communauté. Il apparaît même que ce mode de fonctionnement est le meilleur moyen pour faire accepter un langage de programmation en tant que standard. Comme le remarque Régis Latawiec, directeur des ventes chez IST : «un langage n a de succès que s il est utilisé par beaucoup de monde.» Et ceci, Sun l a bien compris. Car après avoir décidé d ouvrir les droits d utilisation de Java, il en a fait en 2006 une technologie Open Source. Java a été dès lors encore plus accessible et modifiable. 36

Autre caractéristique d une application Java : elle ne s exécute pas directement sur le matériel sur lequel elle est installée. Elle est exécutée par une machine virtuelle. Il s agit d un processeur logiciel, doté d environ 200 instructions différentes et faisant office d intermédiaire entre hardware et software. Pour développer une application, il suffit de faire appel aux bibliothèques fournies avec Java (graphiques pour l affichage, périphériques d entrée ou de sortie, etc.). Puis, une fois l application écrite et testée, un compilateur se charge de la traduire dans le langage de la machine virtuelle appelé Bytecode. C est un langage compréhensible par toutes les machines virtuelles. Ce qui en facilite le déploiement : l application est compilée une seule fois, puis elle peut être déployée sur diverses architectures. Toutefois, une machine virtuelle Java pour PC sera différente d une machine virtuelle pour un Mac ou une architecture ARM. Mais le fonctionnement de l application reste absolument identique, et ce sans recompilation. D où le slogan de Java : Write once and run anywhere ( écrivez une fois et exécutez n importe où ). En outre, comme les cibles matérielles peuvent être très variées (en termes de capacités de mémoire et de puissance de calcul), les développeurs de Sun ont conçu plusieurs versions de machines virtuelles. Il existe donc trois machines virtuelles standards, différenciées par la taille de leur empreinte mémoire, par les bibliothèques et le nombre de fonctions intégrées. J2SE (Java version 2 Standard Edition) est la version que l on retrouve sur les ordinateurs personnels. J2EE (Java version 2 Enterprise Edition) est réservée aux gros serveurs (applications bancaires, par exemple). Enfin, J2ME (Java version 2 Micro Edition) est destinée aux équipements disposant de peu de mémoire tels que les téléphones mobiles. La machine virtuelle comporte un certain nombre de fonctions pour maintenir la stabilité du système et garantir les performances. Ainsi, elle intègre un scheduler, ou planificateur de tâches, pour le développement d applications multitâche. Mais la principale innovation est sans conteste la généralisation de l utilisation d un garbage collector, ou ramasse-miettes. Il s agit d un agent autonome de gestion de la mémoire qui scrute à intervalles de temps réguliers la structure de la mémoire. Il recherche les objets non utilisés, élimine ceux qui ne servent plus (on dit qu il les tue ) et réorganise la mémoire en rassemblant les objets éparpillés (opération de défragmentation ). Auparavant, avec le langage C, le programmeur était obligé de créer et de réserver des adresses mémoire pour les différentes valeurs à stocker. Celles-ci n étaient pas forcément vidées par le programme au cours de son exécution, et une fois la mémoire saturée, c est tout le système qui se retrouve bloqué. Selon certaines estimations, 30 à 40 % des bugs rencontrés dans les applications en C sont liés à des problèmes de gestion de la mémoire. Cela ne prête pas forcément à conséquence sur un PC disposant de plusieurs centaines de mégaoctets de mémoire, mais dans le domaine de l électronique embarquée les choses se compliquent. Lorsqu il s agit d écrire un programme pour un airbag (sur un calculateur automobile) ou pour un oscilloscope (sur un processeur programmable), la gestion optimale de la mémoire revêt une tout autre importance. Ce sont en effet des applications embarquées pour lesquelles aucun plantage n est tolérable. Et le plus souvent, ces équipements ne disposent pas plus de quelques dizaines de kilo-octets de mémoire (voire quelques centaines de kilo-octets). Pourquoi Java dans l embarqué? Toutes les conditions sont réunies pour que Java connaisse un essor important dans l industrie au cours des années à venir. Nous l avons vu, le langage Java accélère les temps de programmation (grâce à la réutilisation de briques logicielles) et de débogage (le langage est rigoureux et la machine virtuelle effectue des vérifications au cours de l exécution). La productivité s en trouve améliorée. Fred Rivard avance que «Java permet d être 6 à 10 fois plus productif que les langages de type C, suivant le degré de complexité des applications.» Secteur par secteur : les principaux avantages de Java Multimédia et télécoms : Le langage a commencé à se développer dans ces secteurs car l adaptation aux nouvelles technologies y est beaucoup plus rapide que dans l industrie (où le matériel a besoin d être éprouvé, certifié). On trouve Java dans la plupart des jeux sur Internet et sur les téléphones portables. On le trouve également dans les lecteurs multimédias, les platines DVD, imprimantes laser, etc. Cela permet aux fabricants d ouvrir leurs systèmes à des tiers qui développent pour eux de nouvelles fonctions. Automobile : Java est de plus en plus utilisé pour les systèmes d infotainment (qui regroupent le logiciel de navigation, la gestion du système audio, l affichage des informations, le réglage des options, etc.). Le cloisonnement de l application Java évite que le système ait une quelconque influence sur les organes critiques de la voiture (ABS, airbags ou autres). Bâtiment et télématique : Dans ces domaines, Java est principalement utilisé pour sa robustesse. Il s agit d applications où un plantage matériel peut avoir des conséquences désastreuses. Industrie : De par sa spécification standardisée, Java s adapte parfaitement aux applications à longue durée de vie. Une application peut être maintenue en fonction très longtemps et suivre les évolutions du matériel. De plus, il est tout à fait indiqué pour le développement d Interfaces Homme Machine car il s adapte automatiquement à l écran et au clavier disponibles. En outre, les bibliothèques graphiques livrées avec Java permettent de réaliser des interfaces très flatteuses, incluant des animations 3D. Automation : On retrouve des technologies Java dans certains automates, et dans les convertisseurs autorisant le passage du langage Grafcet au langage automate, par exemple. Transport, défense, avionique : Ces secteurs qui ont travaillé très longtemps avec des langages très poussés et spécialisés tels que l Ada commencent à connaître une pénurie d ingénieurs qualifiés. Ils étudient de près les capacités safety critical de Java et les certifications (DO-178B en tête) qui seront bientôt disponibles. 37

Se débarrasser des idées reçues Lorsque l on évoque Java pour l industrie, certaines opinions perdurent alors qu elles peuvent aujourd hui n être que des préjugés Java, c est gros Il est vrai qu une machine virtuelle Java standard occupe le plus souvent entre 8 et 10 Mo de mémoire. Cependant, grâce à des technologies telles que la MicroJvm d IST, la taille d une machine virtuelle peut descendre sous la barre des 50 kilo-octets. Il est donc possible de l adapter à des systèmes économiques, d autant plus que les outils de développement de Java sont gratuits (Eclipse, Netbean). Java, c est lent Il existe de nombreuses techniques d accélération éprouvées pour que les applications Java puissent s exécuter quasiment aussi vite que du C (JIT, AOT, Ice Tea, Jazelle). Certaines machines virtuelles baremetal bootent même en quelques millisecondes. D autres offrent des temps de cycles inférieurs à la milliseconde. Java, c est pas sécurisé La présence de la machine virtuelle offre une protection infaillible contre les agressions venues de l extérieur. Une application Java ne pourra ni transmettre un virus ni donner accès aux informations d un ordinateur relié à un réseau. Le Bytecode verifier veille. Java, c est fait pour les jeux vidéo Le fait que Java soit très utilisé par l industrie du jeu vidéo présente des avantages : une communauté de développeurs très active qui contribue à améliorer sans cesse le standard, et l existence d un très grand nombre d ingénieurs ayant appris à développer en Java. Eclipse, l IDE le plus utilisé (Integrated Development Environment), a été téléchargé plus de 2 500 000 fois en quelques semaines après la sortie de sa dernière version. Rappelons que grâce à la machine virtuelle, une application peut être déployée facilement sur des plates-formes totalement différentes. Du coup, cela en fait l outil de programmation idéal pour la construction d Interfaces Homme Machine (IHM) : l affichage sera toujours le même, sur un petit afficheur au bord de la ligne de fabrication ou sur le PC du responsable de production. Avec une application en C, des surprises sont toujours possibles lors du déploiement car les librairies graphiques d un PC de bureau, d un afficheur ou d un Panel PC ne sont pas les mêmes. Cela n arrive pas avec Java. Enfin, outre sa robustesse (une application Java ne peut pas faire planter le matériel), Java offre aux industriels un niveau de sécurité très élevé : il est possible de valider formellement que le Bytecode Java d une application ne fait pas d opération interdite. Une application industrielle qui s exécute sur une machine virtuelle pourra communiquer avec un serveur distant, mais jamais une personne ou une application extérieure ne pourra accéder aux informations contenues sur un ordinateur ni lancer une autre application. La machine virtuelle est donc le meilleur des parefeu. Qu en est-il du temps réel? Les applications nécessitant du temps réel dur pourraient sembler quelque peu en reste. Par temps réel dur, on désigne des applications temps réel (aux temps de cycles très courts) à la fois déterministes (on garantit qu une application ne mettra pas plus d un certain temps pour être exécutée) et préemptives (on garantit qu une tâche prioritaire sera traitée avant toutes les autres). Mais il n en est rien. La décision de Sun de rendre Open Source la spécification Java a donné le signal de départ pour les éditeurs de logiciels spécialistes du temps réel. Les sociétés françaises Aonix et IST développent des machines virtuelles Java capables de répondre aux contraintes les plus fortes. On les appelle machines virtuelles clean room : la conception est maîtrisée d un bout à l autre de la chaîne, et l utilisateur n a aucunes royalties à verser à Sun. Les technologies PERC (chez Aonix) et MicroJvm (chez IST) ont plusieurs points communs. Tout d abord, la résolution temporelle a été améliorée pour que la machine virtuelle effectue des cycles de scrutation très rapides. «Mais la principale évolution par rapport à Java standard porte sur le ramasse-miettes, explique Tom Grosman. En effet, il faut éviter que les ressources du processeur ne soient utilisées pour le vidage de la mémoire alors que des tâches prioritaires sont en attente. Le ramassemiettes est donc totalement modifié. Il ne se lance que lorsque le système est disponible et s interrompt dès qu une tâche arrive dans le planificateur. Il devient donc préemptif (il laisse l application prendre la main quand c est nécessaire) et incrémental (il peut séparer ses tâches en plusieurs morceaux pour les exécuter pendant les courtes périodes d inactivité du système).» D autre part, ces machines virtuelles clean room sont modifiées pour tourner sur des OS temps réel. Toutes sont compatibles avec la plupart des OS temps réel du marché (VxWorks, LynxOS, QNX, etc.). Et pour certaines applications particulières, il est possible d installer une machine virtuelle qui remplit également le rôle d OS temps réel : on parle de machine virtuelle baremetal. Enfin, des interfaces ont été développées pour que des modules C puissent continuer à s interfacer sur des machines virtuelles clean room. Grâce à ces machines virtuelles, les industriels sont capables de profiter des avantages de Java sans remettre en cause les performances finales de l application. Cependant, on atteint une limite à mesure que l on descend vers des systèmes pour lesquels la dimension économique est une donnée majeure, des systèmes peu performants et dotés de peu de mémoire. Un cas standard est 256 ko de mémoire Flash et 64 ko de RAM. La grande majorité des microcontrôleurs et autres calculateurs automobiles sont équipés de processeurs 8 ou 16 bits, et embarquent très peu de mémoire. C est pourquoi IST a choisi d orienter une partie de ses recherches dans ce domaine. La société nantaise a développé un système d industrialisation de machines virtuelles spécifiques. «C est-à-dire que nous sommes capables de fournir des machines virtuelles à très faible empreinte mémoire, explique Fred Rivard. Quel que soit le type de microcontrôleur utilisé (8051, ARM 7, AVR, etc.), nous offrons une solution sur mesure qui évite au client de monter en gamme de contrôleur, et donc d augmenter le prix de son système. La plupart de ces MicroJvm descendent en dessous de 50 kilo-octets.» Enfin, par l intermédiaire de ces versions clean room, Java sera bientôt certifiable pour les applications très critiques ( safety critical, lorsque la vie d êtres humains est en jeu). «Des groupes de travail ont été créés au sein de la communauté de développeurs Java, commente Marc Richard-Foy, responsable des logiciels embarqués chez Aonix. Ils ont pour objectif de définir les spécifications de Java Temps Réel (groupe JSR 282, pour Java Specification Request 282), et de Java pour les systèmes critiques (groupe JSR 302).» Les premières versions de ces spécifications devraient être disponibles courant 2008. 38

Les enjeux pour l industrie de demain L arrivée des langages de programmation orientés objet dans l industrie a commencé avec C# (prononcez Ci-Sharp ), le langage développé par Microsoft pour ses applications.net (prononcez Dot-Net ). Mais Laurent Mares, directeur commercial Europe chez Aonix, est convaincu que «Java, non content de proposer une puissance proche de celle du C et une sécurité accrue, apportera de profondes améliorations dans les habitudes de travail des industriels.» La principale concerne les possibilités de maintenance des logiciels. Il est possible d ajouter des fonctions à un logiciel sans se préoccuper de savoir si la mémoire va être saturée, car cela est géré par la machine virtuelle. De plus, un logiciel écrit en Java pourra être modifié longtemps après sa mise en service sans risque d incompatibilité avec le nouveau matériel. Dans les industries où la durée d exploitation d un process peut être très longue, il se révélera utile de pouvoir conserver son application logicielle sur de nombreuses années même si le matériel est changé plusieurs fois. Régis Latawiec pousse la réflexion plus loin et fournit l exemple d «une société qui dispose de deux équipements différents, A et B, sur lesquels sont installés des machines virtuelles Java spécifiques. Si au bout de 10 ans l industriel achète un équipement C (avec sa propre machine virtuelle) et qu il l utilise pour développer une nouvelle application, cette dernière pourra tourner sans distinction sur les trois équipements A, B et C». Grâce à cette technologie, il est possible de dissocier totalement les cycles de vie et de développement des matériels et des logiciels. Le programmeur n a plus à se soucier des divers changements de processeur ou de système d exploitation, des changements pouvant être initiés par le service des achats (qui a opté pour une plate-forme moins onéreuse), ou par les bureaux d études (qui ont besoin de redimensionner le matériel pour ajouter de nouvelles fonctions). Il n y aura que les drivers de très bas niveau et les BSP (Board Support Package) à changer, mais l application restera la même. Java contribue à aborder la sous-traitance sous un autre angle, particulièrement dans les secteurs automobile et aéronautique où le secret industriel revêt une importance capitale. Si un industriel confie à un tiers l écriture d une application pour un calculateur, il n est pas obligé de lui fournir les spécifications de son matériel. Il peut même ajouter au dernier moment les fonctions innovantes pour préserver le savoir-faire spécifique à son entreprise. Il devient possible également de commencer à développer une application avant que le choix du calculateur ne soit effectué. Pour finir, malgré tous les atouts évoqués, le passage des applications tout en C ou tout en Ada à des applications tout en Java ne s effectuera pas du jour au lendemain. Heureusement, le principe de la technologie Java autorise une migration en douceur des langages assembleurs vers le langage objet Java. Il est ainsi possible d installer une machine virtuelle sur n importe quel équipement, sous la forme d un plug-in qui apportera quelques nouvelles fonctions. Cela ne gênera en rien le fonctionnement de l application, et permettra une migration progressive des fonctions, lorsque seront pleinement reconnus les avantages de la technologie symbolisée par une tasse de café fumante. Frédéric Parisot 39