• Aucun résultat trouvé

Les Fondements du langage Java & son évolution actuelle.

N/A
N/A
Protected

Academic year: 2022

Partager "Les Fondements du langage Java & son évolution actuelle."

Copied!
41
0
0

Texte intégral

(1)

Les Fondements du langage Java

&

son évolution actuelle .

Décembre 2003 Professeur :

M. LECLERCQ

(2)
(3)

CNAM Valenciennes Informatique C2

Décembre 2003

Introduction ... 1

1. Le Langage ... 2

1.1. Historique ... 2

1.2. Ses caractéristiques ... 3

1.3. La machine Virtuelle Java (JVM) ... 6

2. La plate forme Java ... 8

2.1. Java 2 Standard Edition (J2SE) ... 9

2.1.1. Core Java ... 10

2.1.2. Desktop Java ... 16

2.2. Java 2 Entreprise Edition (J2EE) ... 22

2.3. Java 2 Micro Edition (J2ME) ... 27

2.4. JAVA CARD : Java pour les cartes à puces ... 29

3. Java dans le monde ... 31

3.1. Le coût pour l'entreprise ... 31

3.2. J2EE ou .NET ?... 32

3.3. La stratégie de Sun pour l’avenir... 35

Conclusion... 37

(4)

CNAM Valenciennes Informatique C2

- 1 - Décembre 2003

Introduction

Write Once, Run Anywhere (Ecrire une fois, exécuter partout) telle est le principe de base de Java. La portabilité du langage est l’une de ses forces, à la différence d’autres langages de programmation qui doivent être compilés en fonction de l’environnement technique et logiciel des systèmes de destination. Une application Java, une fois compilée, pourra être exécutée sur différents types d’OS et différentes architectures matérielles grâce à une machine virtuelle.

D’un point de vu langage Java s’inspire de C++. L’une des principales règles adoptées par les développeurs lors de la conception de Java était de reprendre les meilleurs points d’autres langages tels que FORTRAN, Lisp et Small Talk. Les méthodologies et algorithmes utilisés dans Java sont donc déjà d’une robustesse largement prouvée.

Java est relativement proche du langage C++ étant donné qu’il possède la même syntaxe. Toutefois Java est plus simple car les pointeurs, la surcharge d’opération et l’héritage multiple, ont été supprimé, « le ramasse miettes », une meilleur gestion des erreurs et l’intégration des variables chaîne et tableau ont été rajouté.

La puissance de Java réside aussi dans son API (Application Programming Interface) qui regroupe de nombreux packages permettant entre autre d’accéder aux réseaux, aux entrées/sorties, de manipuler des composants graphiques, du son, des bases de données…

Des sociétés du monde entier ont trouvé des myriades d’utilisations de Java, toutes bénéficiant de sa capacité inégalée à améliorer la fiabilité, la sécurité, la simplicité des produits et des environnements informatiques.

Java touche des millions d’utilisateurs plus rapidement que tout autre produit informatique avant lui, il fonctionne partout. Java est rapidement adopté comme un standard pour la diffusion d’informations du fait de ses avantages semble-t-il innombrables pour les entreprises comme pour les utilisateurs finaux.

Parce que Java est indépendant des plates-formes, il s’étend au-delà de l’entreprise, avec des applications fonctionnant sur des ordinateurs portables, des kiosques, des télévisions, des téléphones cellulaires et une multitude d’autres équipements.

(5)

CNAM Valenciennes Informatique C2

- 2 - Décembre 2003

1. Le Langage

1.1. Historique

En 1991, Sun Microsystems croit à l’évolution de la domotique et se lance dans la mise au point d’une télécommande universelle permettant de commander l’ensemble des appareils électroménagers domestiques;

son nom la Star 7. Le programme informatique de cette télécommande devait être léger, portable, robuste.

Devant l’ensemble des contraintes techniques James Gosling, un des auteurs du projet, décida de créer un langage orienté objet reprenant les caractéristiques principales du C++, en éliminant ses points difficiles, en le rendant moins encombrant et plus portable. Ainsi, ce langage fut baptisé OAK (OAK signifiant chêne).

Malheureusement le projet de télécommande universelle ne rencontra pas le succès escompté.

En 1993, l’envole d’Internet fait apparaître de nouveaux besoins. Le réseau des réseaux rassemble sur une même structure des machines différentes et sur un support réseau faible en débit. OAK était conçu pour être portable et petit.

Le nom OAK étant déjà déposé, il fallut en trouver un autre, après un temps de réflexion le nom Java c’est imposé. Java est la traduction en argot de café, le café étant la boisson habituelle de l’équipe de développement.

Au depuis de l’année 1995, un navigateur Web du nom de Hot Java de Sun Microsystems voit le jour. Il intègre un interpréteur pour le langage Java. En août 95, la première licence de Java est vendue à Netscape.

Depuis le 23 Mai 1995, jour où Sun a officiellement présenté Java, le langage a beaucoup fait parler de lui.

(6)

CNAM Valenciennes Informatique C2

- 3 - Décembre 2003

1.2. Ses caractéristiques

Java est un langage de programmation aussi

« puissant » que C ou C++, il est orienté objet et regroupe toutes les améliorations apportées à la programmation depuis ces dernières années.

La Simplicité

James Gosling, a décrit Java comme C++ en retirant les éléments particulièrement complexes et sous- utilisés du C++ qui amènent souvent le programmeur à écrire un code médiocre. Le mécanisme de nettoyage de la mémoire « le ramasse miettes » (garbage collection) est automatique ; aussi les programmes n’ont pas constamment besoin de libérer de la mémoire.

Orienté objet

En programmation orientée objet, les données sont traitées comme des objets, auxquels sont appliquées des méthodes (programmes, sous-programmes, calculs, etc.).

Il est donc impératif de résonner Objet.

Distribué

Les appels aux fonctions d’accès réseau et les protocoles Internet les plus couramment utilisés tels que HTTP et FTP sont intégrés dans Java. Autrement dit, le développeur peut appeler ces fonctions très simplement via les bibliothèques fournies et accéder aux fichiers sur Internet aussi facilement que s’il s’agissait d’écrire dans un système de fichiers local.

(7)

CNAM Valenciennes Informatique C2

- 4 - Décembre 2003

Robuste

Java insiste beaucoup sur le contrôle de type, tant à la compilation qu’à l’exécution. Chaque structure de données doit être explicitement définie et typée. En pratique, par conséquent, le programmeur devra être plus rigoureux lors de sa conception initiale. Java offre aussi un modèle de pointeur totalement différent de celui du C et du C++ qui empêche à une application d’écraser une zone de mémoire et d’altérer des données. Il est impossible, par exemple, de convertir un entier arbitraire en pointeur. C’est une approche souvent utilisée par les virus et autres programmes indésirables pour accéder à l’espace mémoire d’une autre application.

Sûr

Puisque l’objectif est que les applications Java puissent arriver directement sur le système de l’utilisateur à partir d’Internet, il est important pour la JVM de pouvoir s’assurer qu’une application n’a pas été altéré après sa compilation. Un mécanisme total de contrôle complet a été incorporé afin que la JVM puisse vérifier la légitimité du code.

Indépendant du matériel

L’un des impératifs de base de Java était de permettre à toute application Java de fonctionner sur n’importe quel matériel et système d’exploitation. C’est la raison pour laquelle le compilateur Java ne génère pas des instructions machine spécifiques mais du Byte Code.

Ce code objet compilé peut alors être exécuté via un interpréteur Java sur n’importe quelle plate-forme.

(8)

CNAM Valenciennes Informatique C2

- 5 - Décembre 2003

Portable

L’un des facteurs déterminants essentiels de la portabilité entre différentes architectures est la façon dont sont traitées les variables (particulièrement numériques).

Lorsque vous développez en C, la taille d’un mot «word»

dépend de l’architecture du processeur. Java définit explicitement tous les types de données. «Int» est toujours un entier 32 bits en complément à deux signé, les «floats» et «longs» adhèrent à la spécification IEEE 754, tandis que les «chars» sont de type Unicode et les

«booleans» True ou False et cela indépendamment des processeurs et des OS

La performance

La sagesse traditionnelle veut que les programmes compilés s’exécutent beaucoup plus rapidement que les programmes interprétés. Le compilateur de Java est un compilateur optimisé et génère du byte code en tenant compte du fait que la cible finale est du code machine.

Ainsi le compilateur inclut dans le byte code des instructions permettant à l’interpréteur de tirer la meilleure performance de l’application. Dans les tests effectués chez Sun, une application Java byte code interprétée s’exécute dans un temps comparable à une application compilée en C ou C++ natif.

Multithreadée

Dans les programmes multithreadés, plusieurs processus sont exécutés simultanément. Ceci améliore évidemment la performance, mais au prix d’une augmentation exponentielle de la complexité de la programmation puisque le développeur doit garder trace simultanément des activités de tous les threads. Java contient un jeu sophistiqué de primitives de synchronisation basé sur les travaux de C.A.R. Hoare.

(9)

CNAM Valenciennes Informatique C2

- 6 - Décembre 2003

Comme les primitives sont intégrées dans le langage les applications Java, la tâche du programmeur est considérablement simplifiée.

Dynamique

Les bibliothèques externes de Java n’étant pas gérées de la même manière qu’en C et C++, il n’est pas nécessaire de modifier le programme de base si une bibliothèque change.

1.3. La machine Virtuelle Java (JVM)

Les applications écrites en Java ne seront pas compilées pour s’exécuter directement sur une machine, elles seront compilées en pseudo code (Byte Code). Lors de l’exécution du Byte Code, la JVM transformera les instructions Java en instruction compréhensible par le processeur et le système opérationnel (OS) de la machine. Il n’est donc plus nécessaire de modifier les applications et de les recompiler pour un autre système, la JVM s’en charge.

Si cette méthode a des avantages pour la portabilité des applications, elle a aussi des inconvénients car convertir des instructions Java en instructions interprétables par la machine où s’exécute le programme prend du temps.

Pour palier à ce problème, il existe trois solutions : La première est d’inclure dans le compilateur la possibilité de compiler le code Java en code natif de la machine exécutant le programme.

La seconde est d’inclure dans la JVM un Just In Time (JIT) qui est chargé de traduire le code Java d’une classe en code natif lors de sa première exécution. Lorsqu'une

(10)

CNAM Valenciennes Informatique C2

- 7 - Décembre 2003

classe est traduite en code natif elle le reste jusqu’à la fin de l’exécution du programme.

La troisième Solution est d’introduire dans la machine, au niveau Hard, une puce capable de comprendre le langage Java.

01110 11100 11000 10000 00111

Windows

Hardware

Linux

Hardware

OS XYZ

Hardware

JVM

Hardware

JVM JVM JVM

Code JAVA

Compilation

Distribution

(11)

CNAM Valenciennes Informatique C2

- 8 - Décembre 2003

2. La plate forme Java

La plate forme Java est la seule plate forme logicielle pouvant s’exécuter sur différentes plates formes techniques (hardware). Car les plates formes techniques varient fortement en fonction de leurs espaces de stockage, de mémoire, de connexion réseau et des capacités de calcul. Les différentes plates formes de développement ont été conçu pour développer et déployer directement des applications sur différentes catégories de machine.

La technologie Java s’est agrandit au file du temps afin de répondre aux différents besoins des environnements techniques.

Java 2, Standard Edition (J2SE) inclus le

« Cœur » de Java et un environnement pour les applications clientes. C’est une version basic des technologies de « Java 2Platform, Entreprise Edition (J2EE) » et de « Java Web Service ». J2SE est composé d’outil, d’un compilateur, d’un Runtime et des Api Java afin d’écrire, de tester, de déployer et d’exécuter des applets et des applications.

Java 2, Enterprise Edition (J2EE) définit les standards pour le développement de composants. Il est basé sur J2SE et accompagné de services, d’outils et d'API complémentaire afin de simplifier le développement de composant métier pour les entreprises.

Java 2, Micro Edition (J2ME) est un jeu de technologies et de spécifications à destination des systèmes embarqués, tels que les téléphones portables, les PDA (personal digital assistants), les imprimantes et les télévisions interactives.

Java Card technology adapte la plate forme Java aux cartes à puces et autre appareil ayant une mémoire et une capacité de calcul limitée de bénéficier de la technologie Java.

(12)

CNAM Valenciennes Informatique C2

- 9 - Décembre 2003

2.1. Java 2 Standard Edition (J2SE)

Il y a deux produits principaux dans la plate forme J2SE ; JAVA 2 Runtime Environment, Standard Edition (JRE) et JAVA 2 Software development Kit, Standard Edition (SDK).

JRE contient les API Java, JVM et d’autres composants nécessaires à l’exécution des applets et des applications écrites en Java. JRE est aussi le fondement de la technologie de J2EE, JRE ne contient pas d’outils et d’utilitaires comme un compilateur ou un debugger.

Le SDK regroupe tous les outils du JRE ainsi qu’un compilateur et un debugger pour développer des applications.

Figure 1 – Source Sun.com

L’API définit la manière par laquelle les applets et les applications interagissent et utilisent les fonctions disponibles dans les classes du J2SE.

(13)

CNAM Valenciennes Informatique C2

- 10 - Décembre 2003

L’API Java est organisé dans deux groupes Core Java (Le Coeur) et Desktop Java.

Core Java regroupe les fonctions essentielles pour les applications écrites en Java, comme les accès aux bases de données, la sécurité, RMI, communication …

Desktop Java regroupe de nombreux outils pour développer des applications clientes riches, comme Java Plug In, JavaBeans, Java Foundation Classes (JFC), Swing et de nombreuses API multimédia.

2.1.1. Core Java

Java Authentication and Authorization Service (JAAS)

Cette API peut être utilisée pour l’authentification des utilisateurs, pour déterminer l’utilisateur qui est en train d’exécuter le programme, sans se soucier que le programme en cours d’exécution soit une application cliente, une applet, un composant JavaBean ou un servlet.

JAAS permet aux applications de rester indépendantes des techniques d’authentification. Les nouvelles techniques ou les modifications des techniques d’authentification existantes peuvent être implémentées sans pour autant modifier le code de l’application. JAAS étend la sécurité de l’architecture Java en utilisant une police de sécurité pour spécifier les droits d’exécution de l’utilisateur.

Les principales caractéristiques de JAAS

S’assurer que l’utilisateur a les droits requis pour exécuter les fonctions de l’application.

• Il est natif Java

• Supporte le Single Sign-on

(14)

CNAM Valenciennes Informatique C2

- 11 - Décembre 2003

• Gestion souple des droits pour les utilisateurs et les groupes

• Interaction avec d’autres modes d’authentification

• Java Naming and Directory Interface (JNDI) o UNIX

o WINDOWS o Kerberos o Keystore

Java Cryptography Extension (JCE)

JCE est un package pour encrypter, générer des clés de cryptage et de décryptage, il connaît également l’algorithme MAC (Message Authentification Code)

Java Secure Socket Extension (JSSE)

JSSE permet de sécuriser les communications sur Internet. Il implémente une version du protocole SSL et TLS et des fonctionnalités pour l’encryptage des données, l’authentification sur les serveurs, l’intégrité des messages et d’autres options d’authentification. Les développeurs peuvent construire des échanges de données sécurisées entre un client et un serveur sur un réseau TCP/IP par l’intermédiaire des protocoles http, Telnet, NNTP et FTP.

Les principales caractéristiques de JSSE

• Natif Java

• SSL V3

• TLS 1.0

• Utilisation simple des clés publiques et privées de cryptage et des certificats.

• Les classes SSLSocket et SSLServerSocket peuvent être instanciées pour créer des canaux de communication sécurisés

• Support HTTPS

• Server Session Management pour gérer le cache des sessions

• L’algorithme RSA Cryptography

(15)

CNAM Valenciennes Informatique C2

- 12 - Décembre 2003

• Les autres algorithmes de cryptage

Cryptage Clé (Bits)

RSA (authentication and key exchange)

2048 (authentication) 2048 (key exchange) 512 (key exchange) AES (bulk encryption) 128

256 RC4 (bulk encryption) 128

128 (40 effective) DES (bulk encryption) 64 (56 effective)

64 (40 effective) Triple DES (bulk

encryption) 192 (112 effective) Diffie-Hellman (key

agreement)

1024 512

DSA (authentication) 1024

Java DataBase Connectivity (JDBC)

L’API JDBC permet aux applications Java d’accéder aux bases de données SQL standard du marché.

JDBC permet d’établir une connexion à une base de données, d’exécuter des requêtes SQL et de traiter les résultats.

L’architecture JDBC

JDBC contient 2 principaux jeux d’interface, une pour accéder proprement dit aux données et la seconde pour écrire des drivers.

(16)

CNAM Valenciennes Informatique C2

- 13 - Décembre 2003

Les applications et les applets peuvent accéder aux bases de données via JDBC en utilisant une technologie native Java :

Sur la partie gauche, le driver JDBC s’adresse, par l’intermédiaire d’un protocole réseau, directement à la base de données. C’est une liaison directe entre le client et la base de données.

Sur la partie droite, le driver JDBC s’adresse à un middleware qui gérera les requêtes vers la base de données. Le middleware peut aussi s’adresser à différents systèmes de base de données.

(17)

CNAM Valenciennes Informatique C2

- 14 - Décembre 2003

Connexion par l’intermédiaire de JDBC en utilisant ODBC et des librairies d’accès propriétaires de la base de données:

Sur la partie gauche, la combinaison JDBC et ODBC permet d’interroger la base de données. Cette solution est à utiliser dans le cas où il n’existe aucun autre driver.

Sur la partie droite, le driver convertit les appels JDBC en appels natifs Oracle, Sybase, Informix, DB2 etc…

Cette configuration impose que les librairies pour l’accès natif soient présentes sur les machines clientes.

Avantages de JDBC

• Ouverture des données

Avec JDBC les entreprises ne sont pas enfermées dans des architectures propriétaires et ils peuvent continuer à utiliser leur base de données et

(18)

CNAM Valenciennes Informatique C2

- 15 - Décembre 2003

d’accéder en même temps à d’autres bases de données.

• Simplification du développement

JDBC masque la complexité d’accès à certaine base de données. JDBC est simple à apprendre, facile à déployer et peu coûteux à maintenir.

• Aucune configuration des postes clients

Toutes les informations nécessaires à l’accès aux données sont définis par le JBDC URL ou par un objet DataSource enregistré avec Java Naming and Directory Interface (JDNI).

Java Platform Debugger Architecture (JPDA)

JPDA fournit une infrastructure nécessaire pour debugger des applications. JPDA inclut 3 outils : Java Debug Interface (JDI) pour le debuggage de « haut niveau »; Java Debug Wire Protocole (JDWP) qui définit le format des informations et les requêtes échangées entre le debugger et l’application; Java Virtuel Machine Debug Interface (JVMDI) est un debugger de « bas niveau » pour analyser les échanges avec la JVM.

Java Remote Methode Invocation (RMI)

RMI permet de créer des applications ou des composants pouvant être appelés par différentes JVM sur différentes machines.

Java Naming and Directory (JNDI)

JNDI joue un rôle essentiel dans les applications Intranet et Internet pour accéder aux informations sur les utilisateurs, les machines, les réseaux, les services et les applications.

JNDI permet de nommer et de répertorier les fonctions des applications Java. JNDI a été créé spécialement pour la plate forme utilisant le model objet Java. Les applications basées sur la technologie Java peuvent découvrir et retenir les autres composants Java, identifier les attributs et les objets utilisant ces attributs.

JNDI permet aussi aux applications d’accéder aux autres systèmes de nommage et d’annuaire, comme LDAP, NDS, DNS, et NIS.

(19)

CNAM Valenciennes Informatique C2

- 16 - Décembre 2003

Java Management Extensions (JMX)

JMX est une technologie ouverte pour manager et surveiller les systèmes et les applications.

Java Communications API

Cette API peut être utilisée pour écrire des applications de communication comme les mails et les fax. Elle supporte aussi les ports RS232, IEE 1284, et les ports parallèles.

Ses fonctions peuvent

• Identifier les ports disponibles

• Ouvrir une communication

• Gérer les accès concurrentiels aux ports

• Communiquer de manière synchrone et asynchrone Java Telephony API

Cette API a été créé pour développer simplement des applications en supportant les technologies actuelles de téléphonie et en restant ouverte sur les technologies futures. Elle inclut toute les fonctions de gestion d’une centrale téléphonique et peut être déployée sur toutes les architectures techniques. Cette API est supportée par les plates formes téléphoniques courantes du marché comme Microsystem’s SunXTL, Microsoft et INTEL TAPI, Novell et Avaya TSAPI et IBM CallPath.

2.1.2. Desktop Java

Java Runtime Environment (JRE)

JRE inclut les librairies, la Machine Virtuelle (JVM) et d’autres composants pour exécuter les applets et les applications écrites en Java. Deux voix pour le développement font partie entière de JRE :

• Java Plug-in qui est capable d’exécuter les applets sur les plus populaires navigateurs Web

• Java Web Start pour le déploiement des applications à travers les réseaux

(20)

CNAM Valenciennes Informatique C2

- 17 - Décembre 2003

Java Web Start

Java Web Start fournit un déploiement flexible et fiable sur des solutions développées en java. Cette API est développée dans le cadre du groupe de JCP (Java Community Programme) sous le nom de The Java Network Launching Protocol & API.

La technologie Java Web Start fonctionne sur tous les navigateurs et tous les serveurs Web. La principale fonction de cette API est de déterminer et d’installer automatiquement la version de la plate forme Java nécessaire à son exécution.

JavaBeans

Le but des JavaBeans est de définir des composants développés par des sociétés et pouvant être assemblé entre eux.

Il y a deux sortes de JavaBeans

• Certains composants peuvent être de petits composants ne pouvant exister seuls, mais assemblés avec d’autres ils forment des applications plus importantes.

• D’autres composants peuvent être des applications indépendantes, par exemple un composant tableur peut être intégré dans un document Web.

Les composants peuvent être encapsulés les un dans les autres. La portabilité du langage fait de cette encapsulation un atout majeur pour intégrer le composant

« root » dans des environnements propriétaires tels que des documents Word, un programme en VB etc…

Ces composants peuvent aussi fournir des fonctionnalités supplémentaires aux environnements dans lesquels ils s’exécutent. Par exemple, un système ne prenant pas en charge les barres de menu, un composant JavaBeans fournissant des API peut palier à ce manque.

(21)

CNAM Valenciennes Informatique C2

- 18 - Décembre 2003

Java Foundation Classes (JFC).

JFC est un ensemble d'API de base pour créer des applications graphiques, il regroupe :

• Abstract Window Toolkit (AWT) AWT intègre des fonctions pour utiliser les fonctions graphiques du système sur lequel le programme Java s’exécute.

• Java 2D pour la gestion des graphiques, des images, des textes et des impressions

• Swing est une extension de AWT offrant des fonctions graphiques plus avancées

• Internationalization pour la gestion des différentes langues utilisées par les utilisateurs.

JFC offre la possibilité de créer des applications graphiques pour le Web (les applets Java) ce qui enrichit considérablement les pages HTML en les rendant dynamiques dans leurs contenus, animées, interactives.

JFC permet aussi une mise à jour simplifiée des applications. Une autre technologie JavaServer Pages, inclut dans J2EE (Java 2 Entreprise Edition), rend facile la construction de contenu Web dynamique en mélangent les données et le code HTML. Cette technologie est l’équivalant des ASP (Active Server Page) de Microsoft.

AWT et SWING

AWT (Abstract Window Toolkit) est historiquement la première interface graphique qui fut proposée. La contrainte de l’AWT, ou l’avantage (c’est à double tranchants), c’est que Java fait appel au système d’exploitation sous-jacent pour afficher les composants graphiques. Pour cette raison, l’affichage de l’interface utilisateur d’un programme peut diverger sensiblement : chaque système d’exploitation dessine à sa manière un bouton. AWT garantit que la fonctionnalité recherchée sera dans tous les cas fournit (mais présentée différemment).

(22)

CNAM Valenciennes Informatique C2

- 19 - Décembre 2003

Or Java se veut être 100% indépendant de la plate- forme utilisée, pour cette raison, une nouvelle API fut définit. Mais hormis ce détail d’affichage, l’AWT présente un avantage indéniable : en utilisant les objets graphiques de l’OS, la rapidité d’exécution est augmentée.

SWING fut donc mis en place pour assurer 100% de portabilité. Le pari est gagné, mais à un coup non négligeable car pour assurer cette portabilité, un bouton (au tout autre composant graphique) est dessiné non plus par l’OS, mais par la JVM, ce qui est important en terme de temps d’exécution.

En fait, SWING est présenté comme étant écrit uniquement en Java mais en réalité Java doit au moins être capable d’interagir avec l’OS pour pouvoir tracer un point. Or c’est ce que font les classes de base de l’AWT.

En conséquence, tous les composants de SWING dérivent d’une classe de l’AWT.

Les mécanismes de gestion d’évènements et de positionnement des composants de l’AWT restent utilisables avec SWING. Donc, certaines classes déjà utilisées avec l’AWT sont toujours disponibles. En terme d’importation de package, cela implique qu’un programme SWING doit malgré tout importer certains packages de l’AWT.

Interaction de Swing avec l’utilisateur

Swing regroupe tous les composants graphiques nécessaires pour créer des interfaces graphiques évoluées, comme les boutons, les tree-views, les barres de menu, les boites de dialogue, le copier- coller, etc…

Swing intègre aussi un package pour le texte offrant une gestion avancée de style et d’édition.

Quatre styles graphiques sont disponibles rappelant les OS majeurs du marché et les développeurs peuvent en créer d’autres afin de donner une identité visuelle à leurs applications.

(23)

CNAM Valenciennes Informatique C2

- 20 - Décembre 2003

Java Sound

Java Sound permet de capturer, de traiter et de restituer des données audio en plusieurs formats. Son moteur 16 Bits 32 canaux est capable de redistribuer le son à un taux d’échantillonnage variant de 8 à 48 kHz et est parfaitement adapté au streaming.

Java Sound intègre le support audio de bas niveau et de ce fait un contrôle étendu des systèmes audio et MIDI des cartes son. Java Sound n’a pas été conçu pour fonctionner de façon indépendante, mais comme une plate forme d’interface destinée à la création de divers outils audio. Une des applications utilisant Java Sound ayant révolutionné Internet est le tchatche vocal.

Java Media Framework (JMF)

JMF prend en charge l’audio et la vidéo. JMF permet de capturer, de jouer, de distribuer en streaming et de convertir toutes sortes de flux vidéo et audio. Cette extension à Java Sound permet de développer des applications multimédia très complètes et portables sur différent système.

Java 3D

Java 3D est une interface de programmation permettant d’écrire des programmes affichant et interagissant avec des objets graphiques dans un espace à 3 dimensions. Elle utilise les fonctions des cartes graphiques en s’appuyant sur OpenGl ou DirectX.

De nombreuses classes permettent de lire des fichiers d’un format particulier pour créer des représentations en 3D, comme les format 3D StudioMax, le fichier DXF pour la CAO et VRML.

Créer des scènes en 3D peut être complexe. Dans ce cadre, l’utilisation de Java permet de bénéficier de la structuration d’un langage de programmation objet et d’une API 3D très riche. Cette dernière permet de construire « facilement » des mondes 3D complexes où évoluent des objets graphiques.

(24)

CNAM Valenciennes Informatique C2

- 21 - Décembre 2003

Java Advanced Imaging (JAI)

JAI permet de manipuler, de convertir des images.

JAI connaît plus de 100 opérations de traitement d’image, prend en charge les formats BMP, GIF, FPX, PNG, PNM et TIFF. En utilisant conjointement Java 2D et JAI, les images et les graphiques se fusionnent pour offrir des effets visuels surprenant aux utilisateurs.

Java Speech

Java Speech permet une interaction entre la voix et l’application. L’utilisateur peut piloter l’application avec la voix, l’application peut reconnaître la voix et ainsi autoriser l’accès à un lieu. L’interaction est ainsi bidirectionnelle.

JavaHelp

JavaHelp permet d’écrire des aides destinées aux utilisateurs. Ecrit entièrement en Java, JavaHelp peut s’exécuter sur tous les systèmes disposant d’une JVM. Il s’appuie sur JFC ce qui rend le développement de l’aide simple et flexible.

(25)

CNAM Valenciennes Informatique C2

- 22 - Décembre 2003

2.2. Java 2 Entreprise Edition (J2EE)

"Une Plate Forme pour l’entreprise"

J2EE définit le standard pour le développement d’application pour l’entreprise en se basant sur la modularité des composants et en offrant de nombreuses fonctionnalités pour les manipuler.

J2EE reprend plusieurs fonctionnalités de J2SE comme la portabilité, JDBC, la technologie CORBA pour l’interaction avec les ressources existantes de l’entreprise et un model de sécurité pour la protection des données.

Partant de cette base, J2EE ce voit complété par des composants orientés entreprise, comme les JavaBean, Java Servlets, Java Server Pages et XML.

Le modèle pour les applications d’entreprise:

Java BluePrints Design Guidelines pour J2EE décrit l’architecture et les bonnes pratiques pour utiliser J2EE.

Le modèle J2EE offre une approche simple pour le développement d’application Internet ou intranet les plus complexe.

(26)

CNAM Valenciennes Informatique C2

- 23 - Décembre 2003

L’un des avantage de ce modèle est d’encapsuler le

« Coeur du métier » de l’entreprise dans les Entreprises JavaBeans (EJB). L’interaction avec le client se fait par le biais de pages HTML ou des applets Java générés par des Java Servlet ou par la technologie JavaServer Pages.

L’échange des informations se fait par des protocoles de communication standard comme HTML, XML, HTTP, SSL, RMI, IIOP etc…

Ce modèle d’architecture favorise également la réutilisation des composants métier et d'augmenter le gain de temps pour les développements futurs.

Ce modèle divise les applications en trois parties : les composants, les conteneurs et les connecteurs. Les composants sont la clé de voûte des applications, les conteneurs et les connecteurs sont adaptés en fonctions des plateformes.

Les conteneurs se placent entre les clients et les composants. Ils gèrent les transactions entre les clients et les composants. Les connecteurs permettent une communication entre les différents composants.

Les clients peuvent aussi bien être des PDA, des téléphones portables, des clients Web ou d’autres types d’appareils. Une technologie d’affichage, de présentation est disponible pour chaque type de clients, les informations sont formatées par les servlet et/ou les JavaServer Pages.

(27)

CNAM Valenciennes Informatique C2

- 24 - Décembre 2003

La plate-forme J2EE couvre dix technologies cruciales pour le développement d’entreprise. Toutes ces technologies ne sont pas appropriées dans n’importe qu’elle situation, mais une fois associées, elles forment une combinaison puissante pour créer des systèmes robustes, de haute qualité et évolutifs.

• Enterprise JavaBeans (EJB)

• Common Object Request Broker Architecture (CORBA)

• Java Servlets

• Java Server Pages (JSP)

• Java Message Service (JMS)

• Java Transaction API (JTA)

• JavaMail

• Java Database Connectivity (JDBC)

• Java Naming and Directory Interface (JNDI)

• eXtensible Markup Language (XML)

Les Enterprise JavaBeans constituent une architecture par composants pour le développement côté serveur. Les composants JavaBeans contiennent la logique de gestion d’un système. Au lieu de réunir le code des interfaces utilisateurs et des traitements du côté du serveur, il est possible de créer des composants EJB qui seront appelés par d’autres systèmes maintenant ainsi la séparation entre présentation et traitement des données et la réutilisation des composants.

L’architecture de distribution d’objets CORBA (Common Object Request Broker Architecture) Les systèmes CORBA peuvent être écrits sous J2SE, l’introduction du protocole RMI-IIOP fait de CORBA un choix séduisant pour le développement d’entreprise. En effet, RMI-IIOP est une passerelle entre l’invocation de méthodes à distance (RMI) et le protocole Internet Inter- ORB (IIOP), ce qui permet aux développeurs de créer des objets en Java sans en savoir trop long sur le langage de définition d’interface (IDL) de CORBA.

Les Java Servlets et les Java Server Pages (JSP) existent depuis quelques temps déjà. Néanmoins, il s’agit de technologies importantes dans la mesure où chacune peut fournir une interface Web à des systèmes opérationnels et à des EJB. Les JSP deviennent de plus en plus populaires et permettent d’écrire facilement du code

(28)

CNAM Valenciennes Informatique C2

- 25 - Décembre 2003

côté serveur à l’intérieur d’une page Web – elles fonctionnent de la même façon que les Active Server Pages (ASP) de Microsoft. Ces deux approches offrent un excellent moyen de créer des interfaces Web et s’avèrent bien plus simples pour un développeur Java que les autres technologies, comme les scripts CGI.

La transmission de messages et les transactions, éléments importants des systèmes d’entreprise, sont représentées par le système Java Messaging System (JMS) et par Code Java Transaction (JTA). Le JMS permet l’échange d’informations et de données opérationnelles au sein de l’entreprise. La JTA permet aux développeurs de contrôler les transactions, notamment de les valider et de les annuler (opérations commit et rollback, similaires à celles utilisées dans une base de données pour effectuer des changements). Ces deux fonctionnalités sont une aubaine pour les développeurs. Il en est de même avec Code JavaMail (fournie en standard avec la plate-forme J2EE), qui permet à la fois d’accéder aux « dépôts » de messages – comme le courrier électronique et les groupes de discussion – et d’envoyer des messages.

Les bases de données, bien sûr, ont un rôle important dans toute application d’entreprise. Java Database Connectivity (JDBC) offre de hautes performances et un excellent support des systèmes de base de données. C’est une version révisée de JDBC qui améliore le contrôle du traitement des requêtes (utilisation ou non de la lecture anticipée, regroupement des requêtes en lots de traitement, etc.).

Java Naming and Directory Interface (JNDI) est inclus dans J2EE, ce qui permet aux composants de se localiser mutuellement même s’ils ont été déplacés au sein du réseau. Les améliorations apportées à JNDI par rapport aux versions précédentes incluent une prise en charge avancée du protocole LDAP et de la notification des événements. Comme de nombreuses autres technologies présentes en standard dans la plate-forme J2EE, celle-ci peut aussi être téléchargée et intégrée à J2SE.

Le langage XML (eXtensible Markup Language), qui a été l’objet de débats passionnés dans les cercles informatiques ces dernières années. XML peut être utilisé

(29)

CNAM Valenciennes Informatique C2

- 26 - Décembre 2003

pour presque tout : échange d’informations entre bases de données, « robots » de shopping en ligne, sérialisation des objets, transmission de messages, etc.

(30)

CNAM Valenciennes Informatique C2

- 27 - Décembre 2003

2.3. Java 2 Micro Edition (J2ME)

Le Java 2 Microédition est une plateforme JAVA conçue pour fonctionner sur des terminaux embarqués. La version téléphonie mobile du J2ME est constituée par une machine virtuelle JAVA (KVM) ainsi qu’une suite Code orientée téléphonie mobile. (MIDP ou DoJa et CLDC).

Une « Kilobyte Virtual Machine » est le coeur du langage JAVA dans un terminal embarqué. Conçue pour fonctionner dans un environnement limité en terme de mémoire, d’énergie, d’accès réseau. Cette KVM est accompagnée par des API de deux types : des Configurations et des Profiles.

Une Configuration est constituée d’une API de base permettant l’accès aux fonctions de la machine virtuelle JAVA.

Il existe deux types de Configuration :

• CLDC (Connected Limited Device Configuration)

• CDC (Connected Device Configuration).

Le CLDC est orienté terminaux Mobile (avec une KVM) et le CDC est utilisé sur des terminaux du type décodeur de chaîne de télévision payante.

Un Profile est une API conçue pour tirer le meilleur parti d’un type de terminal précis (taille de l’écran, écran tactile, type de réseau ...). Il existe plusieurs types de Profiles dont le MIDP (Mobile Information Device Profile) qui est le plus utilisé. Le PDAP (PDA Profile), le Multimédia Profile sont maintenant disponibles, d’autres sont en cours de réalisation par SUN Microsystems.

Le CLDC (Connected Limited Device Configuration) est constitué d’une API de base nécessaire au langage java (java.lang, java.io, java.util) ainsi qu’une API spécialisée dans l’accès réseau mobile : javax.microedtion.io.

Le MIDP (Mobile Information Device Profile) est une API JAVA de haut niveau permettant la gestion de

(31)

CNAM Valenciennes Informatique C2

- 28 - Décembre 2003

l’interface utilisateur, la gestion de l’interface réseau, la gestion d’une base de données sur le mobile.

Cette API est à ce jour celle qui est implémentée sur les mobiles « compatibles J2ME ».

Le DoJa (Docomo Java) est une version Japonaise du MIDP. C’est une API qui est optimisée pour les terminaux i-mode de NttDocomo. On peut noter une gestion améliorée de l’interface graphique par rapport au MIDP tel qu’il est spécifié par Sun Microsystem.

Le SMS : le J2ME spécifié par SUN ne connaît rien du SMS. Par contre, de nombreux constructeurs implémentent des fonctions d’envoi de SMS (les Siemens par exemple) mais pas de réception.

Le Wap (Wireless Application Protocol) fut un gros échec commercial en Europe, mais cela ne veut pas dire qu’il est décédé pour autant. Il sert aujourd’hui de base à une multitude de protocoles, dont le J2ME. Afin de communiquer avec le monde extérieur (ici Internet) le téléphone J2ME utilise le Wireless Session Protocol (WSP).

(32)

CNAM Valenciennes Informatique C2

- 29 - Décembre 2003

2.4. JAVA CARD : Java pour les cartes à puces

Java Card est une spécification développée par Sun avec les principaux acteurs majeurs de l’industrie de la carte à puces incluant en particulier Bull/CP8, Schlumberger, Gemplus, De La Rue, Geisecke & Devrient, Dallas Semiconductor, Toshiba, Visa, MasterCard.

Java Card est une nouvelle approche pour développer des applications pour des cartes à puces.

Java Card offre un jeu standard d’APIs et de classes pour les cartes à puces supportant les standards ISO 7816/ EMV 96(Europay, MasterCard, Visa). Les Java Card APIs apportent une standardisation et la possibilité de développer des cartes à puces multifonctions : informations médicales, porte-monnaie électronique, certificats et clés de chiffrement, profils utilisateurs, points de fidélité, jeux...

La spécification Java Card est disponible et téléchargeable depuis le serveur Web de Sun Microsystems. L’évolution de Java Card est aujourd’hui réalisée à travers différents organismes de standardisations : Java Card Forum, Open Card Framework, PC/SC Workgroup.

Bénéfices de Java Card API

Son adoption rapide dans l’industrie repose sur les nombreux avantages suivants :

«Write Once, Run Anywhere» : les applications écrites pour une carte peuvent tourner sur toutes les autres cartes.

Cartes multifonctions : plusieurs applications peuvent tourner sur une seule carte, ce qui permet d’envisager des cartes à puces accueillant des bouquets de services.

Réduction des coûts d’intégration et du «Time- To-Market»: Java Card apporte une standardisation et une ouverture au monde de la carte à puces. Le développement de programmes pour cartes à puces est

(33)

CNAM Valenciennes Informatique C2

- 30 - Décembre 2003

désormais ouvert à la large communauté de développeurs Java, les outils de développement sont les environnements Java standard du marché et la mise à jour des cartes est réalisée dynamiquement par transfert du code Java sur la carte à puces.

Sécurité : les programmes Java s’exécutent sur la carte à puces en respectant le modèle de sécurité

«sandbox» offert par la Java Virtual Machine, ce qui assure une étanchéité de fonctionnement entre chaque

«Cardlet» Java (applets Java pour cartes à puces) Programmation et concepts de Java Card

Java Card est un système pour la programmation des cartes à puces. Basé sur le langage Java et la Java Virtual Machine, les programmes Java Card sont écrits et compilés avec les outils de développement Java du marché et sont installés et exécutés à jamais sur les cartes à puces.

Java Card est une version épurée du langage Java s’adaptant aux environnements réduits des cartes à puces. L’environnement minimum nécessaire au fonctionnement de Java card API est un processeur 300 KIP, 12 KO ROM, 4 KO EEPROM, et 512 Octets de RAM.

L’architecture de Java Card est basée principalement en 3 couches. La couche la plus basse est constituée de la Java Virtual Machine fournissant le moteur d’exécution des programmes Java. La couche système Java Card fournit l’environnement l’exploitation des programmes sur la carte. Les applets Java et applications Java Card sont installés au dessus de ces couches sous-jacentes.

(34)

CNAM Valenciennes Informatique C2

- 31 - Décembre 2003

3. Java dans le monde

3.1. Le coût pour l'entreprise

La comparaison doit se faire entre langage comparable (Visual Basic ou C++) et architecture comparable (Microsoft). De plus elle doit se faire sur un cycle de vie complet d’un développement de logiciel.

Les technologies Microsoft (Visual Basic et ASP) semblent plus adapter pour les petits projets des développements au fils de l’eau, tandis que Java semble mieux conçu pour des grands projets structurés. Plus précisément, dans les organisations décentralisées ou les développements d’application se font de manière individuelle, Visual Basic est plus adapté. Concernant le volume du code Java et ASP sont équivalents.

Il est évident qu’un nouveau langage de développement est dans un premier temps plus coûteux à adopter par une entreprise (migration, formation..), mais les bénéfices à moyen terme peuvent être supérieurs.

Le coût tend même à devenir secondaire lorsque le projet est considéré comme stratégique pour l’entreprise.

Le coût de développement : Java nécessite un re- développement initial obligatoire des applications de l’entreprise. Le coût de développement en Java peut être de 15% supérieur qu'en C ou Visual Basic (tarifs des SSII). Mais il faut tenir compte de la portabilité future.

Coût de migration : une migration d’un système existant entraîne généralement le re-développement des différentes applications afin de les améliorer, d’anticiper les futures demandes et de les porter sur des clients légers.

Coût du déploiement : pour une application dans un environnement intranet ce coût et quasiment nul, cependant le serveur d’application reste plus élevé.

Coût de l’administration : étant donné qu’il n’y a pas d’installation client le coût est donc plus réduit.

(35)

CNAM Valenciennes Informatique C2

- 32 - Décembre 2003

Coût de formation : pour un développeur confirmé, passer en Java n’est pas simple, car il faut résonner objet au lieu de Merise. Mais la multiplication des formations initiales et professionnelles en java va entraîner une baisse importe des cours (Java et la UML sont actuellement au programme des formations).

3.2. J2EE ou .NET ?

Si le choix d'une architecture logicielle est plus dicté par l'existant applicatif de l'entreprise que par ses réelles capacités techniques, l'offre de Microsoft est-elle une véritable solution de remplacement à J2EE ?

En dépit des efforts fournis par Microsoft ces dernières années, la plate-forme Java a connu un essor important dans les architectures déployées par les grandes entreprises.

Une ascension encore plus importante depuis le lancement de J2EE qui a su parfaitement persuader les grands consommateurs de système d'information, capables de dépenser des budgets importants dans la mise en oeuvre d'une plate-forme Internet ou intranet. De même, J2EE a su aussi convaincre par la multitude de solutions Open Source proposées.

De fait, Microsoft s'est vu confiné au milieu du marché, ce qui l'a poussé à lancer son offre .NET. Après les premières annonces marketing, dès juin 2000, le géant américain a délivré une brique significative de son offre, début 2002.

Le framework .NET, 20 Mo de bibliothèques objets et le CLR (ou langage d'exécution unifié) sont aujourd'hui intégrés à l'offre Windows Server 2003 (WS 2003), de Microsoft. L'objectif est de concurrencer les grands serveurs d'applications Java ainsi que l'offre Open Source structurée autour d'Apache.

L'évolution apportée par WS 2003 est majeure, IIS a été retravaillé et largement restructuré et c'est un véritable serveur d'applications que Microsoft livre

(36)

CNAM Valenciennes Informatique C2

- 33 - Décembre 2003

désormais, avec de réelles capacités de montée en charge et de fiabilité, qui font de la plate-forme WS 2003 couplée au framework .NET une solution comparable, voire en avance sur certains points, aux serveurs d'applications J2EE.

Jusqu'à présent, les experts J2EE balayaient la solution Microsoft d'un revers de la main, avançant que la plate-forme n'était pas à proprement parler un serveur d'applications avec les notions de montée en charge, de disponibilité et de fiabilité que cela entend.

Microsoft avait peu communiqué vers la communauté des développeurs autour des fonctionnalités de serveur d'applications de sa plate-forme. COM+ et MSMQ étaient bien là, mais peu usités. L'ensemble de ces technologies est désormais regroupé sous une unique console d'administration, appelée Application Server.

Néanmoins, la confusion entre système d'exploitation (OS) et serveur d'applications reste plus que jamais vraie : la grosse différence avec J2EE est que l'architecture .NET est mixée avec l'OS. J2EE implique le choix d'une plate-forme indépendante de l'OS (plate- forme commerciale ou Open Source), alors que le framework .NET impose le choix de l'OS Windows.

Conscient de l'importance de cette contrainte, notamment dans le cadre d'applications mobiles, Microsoft fait tout pour gommer les inconvénients de sa stratégie : « .NET n'est pas multi OS, il est multi équipement. On va pouvoir déployer des applications sur serveurs, sur clients Windows ou même sur des terminaux mobiles sous Pocket PC. »

Les experts sont nombreux à souligner la qualité du travail fourni par Microsoft sur sa plate-forme, une qualité que observable déjà sur la version 1.0. Reste à convaincre les grandes entreprises mais aussi les développeurs. Parmi ces derniers, ce sont ceux de Microsoft qui ont le plus intérêt à travailler sur le framework .NET.

Microsoft assure une continuité au niveau des langages et d'IIS, qui évolue, mais cette continuité s'arrête là. La migration d'applications Microsoft sous la plate-forme .NET reste un véritable challenge pour les

(37)

CNAM Valenciennes Informatique C2

- 34 - Décembre 2003

entreprises. Celles-ci peuvent donc, légitimement, se poser la question : Et pourquoi pas Java ? Les applications Web de types ASP et objets COM seront plus faciles à migrer que les applications Visual Basic (VB) en mode client serveur. Le modèle objet VB est très différent du framework .NET et nécessitera beaucoup de réécritures de code. La migration de ces applications client serveur va être l'occasion pour les entreprises de reconsidérer leur choix technique. D'autant plus que le saut culturel entre VB et .NET ne doit pas être négligé.

Mis à part les défenseurs d'Open Source, la bataille des coûts de licences entre les plates-formes J2EE et .NET tourne souvent à l'avantage de ce dernier dans un premier temps, .NET peut paraître comme la solution la plus économique, mais cet avantage n'est pas aussi important sur le long terme. .NET bénéficie, sans doute, du meilleur outil de développement du marché, Visual Studio .NET, mais, dès lors que les entreprises vont chercher à industrialiser leurs développements, le duel peut tourner en faveur de Java. Ainsi, le framework Open Source Struts est un atout très important pour Java car il permet de bien structurer les développements d'applications.

Quant à l'épineux problème de l'intégration à l'existant, la portabilité de Java est un atout indéniable, à l'exemple de mainframes IBM sur lesquels on peut faire tourner une partition Linux pour exécuter des applications Java. D'ailleurs, Java a été adopté par les spécialistes de l'EAI, tel webMethods, qui intègre JBoss dans sa plate- forme.

Quant aux services Web, cheval de bataille de Microsoft pour l'intégration, ils ne sont pas encore suffisamment élaborés pour répondre aux attentes des entreprises. A l'heure actuelle, tous n'est pas possible avec XML et les services Web, dès lors qu'on parle d'applications transactionnelles, ces derniers ne permettent pas encore de gérer des transactions complexes et les solutions d'EAI s'imposent.

Microsoft saura-t-il convaincre les grands comptes de la qualité des produits dès leur sortie ? Saura-t-il persuader les développeurs de la facilité de prise en main et de la puissance de Visual Studio .NET ? Saura-t-il,

(38)

CNAM Valenciennes Informatique C2

- 35 - Décembre 2003

enfin, se constituer rapidement un réseau d'experts et de partenaires pour crédibiliser la plate-forme par le biais de réalisations significatives ?

3.3. La stratégie de Sun pour l’avenir

L’édition 2003 de JavaOne signe le retour aux sources de Sun. Le père de java proclame de nouveau son ambition d’origine : mettre sa plate forme partout, c’est à dire aussi bien sur les serveurs que sur les PC, les ordinateurs portables, les assistants personnels , les équipement médicaux ou les cartes à puces y compris celles des téléphones portables. Une ambition que Microsoft lui avait d’ailleurs volée en 2000, lors de l’annonce de son environnement .NET.

Sun aura profité du salon de San Francisco, pour dévoiler ses nouvelles armes. Le plus significatif est le changement de logo.

Une offensive centrée sur les mobiles Sun va lancer une campagne publicitaire pour faire connaître son logo et compter sur les fabricants pour imprimer son logo sur leur matériel.

Sun compte sur l’explosion du marché des mobiles, marché qu’il occupe déjà très largement avec cent modèles différents disponibles auprès de vingt deux fabricants déjà dotés de la technologie Java. En revanche les Pocket PC, très présents dans les entreprises, ne sont pas équipés de la JVM. Sun compte sur l’engouement des fabricants et des développeurs pour les équiper.

De plus, Sun vient d’annoncer un partenariat avec Motorola, Nokia, Siemens et Sony Ericsson pour la mise en place d'un programme commun de tests et de certifications pour les applications Java pour les appareils sans fil. Un site Web vient d’être créé pour venir en aide aux développeurs d’application mobile fondée sur la plate forme J2ME (Java 2 Micro Edition).

Les PC ne sont pas pour autant oubliés. Sun a retrouvé des ailes dans ce domaine depuis l’injonction

(39)

CNAM Valenciennes Informatique C2

- 36 - Décembre 2003

préliminaire, rendu en fin 2002 par un juge antitrust, obligeant Microsoft à inclure la machine virtuelle Java de Sun dans tous ses produits .NET. Microsoft reste néanmoins le maître su système d’exploitation pour les postes clients.

Pour les architectures distribuées Sun doit encore compter sur l’engouement des développeurs pour mettre en concurrence Java et la suite Visual Studio de Microsoft.

L’objectif de Sun dans les environnements de développement est d’atteindre une communauté de dix millions de développeurs dans les prochaines années.

Pour y parvenir, Sun compte séduire les développeurs professionnels. La prochaine version de J2EE sera plus simple, dotée de la technologie des métas données qui permet d’utiliser des attributs pour annoter des méthodes, des champs, des classes et des interfaces.

Sun compte aussi à reconquérir le monde des langages de script par la technologie Java Server Faces (JSF) qui servira à développer des interfaces graphiques plus riches.

Les technologies des métas données, ainsi que JSF seront intégrés dans un nouvel outil de développement rapide d’application Java pour les architectures à plusieurs niveaux. Cet outil a pour but de séduire les développeurs Visual Basic, lesquels sont d’ailleurs dans la tourmente avec .NET.

Ce qu’ambitionne Sun pour Java est donc clairement une réponse aux visées de Microsoft avec .NET. IBM pourrait bien jouer les trouble-fête. En effet, même s'il reste présent sur Java, il empreinte un chemin parallèle à celui de Sun. Ainsi il a préféré créer sa propre communauté de développement open source autour de son framework Eclipse.

(40)

CNAM Valenciennes Informatique C2

- 37 - Décembre 2003

Conclusion

Java est un langage de développement très complet, il répond à tous les besoins de l'entreprise du logiciel, son atout majeur est la portabilité. Il n'est plus nécessaire de recompiler un programme, de prendre en compte les spécificités de l'OS de destination et de re- tester les programmes lors d'une mise à jour ou d'une évolution majeur de l'OS.

Sun Microsystems avec sa politique de développement et commerciale s'avère être un concurrent sérieux pour Microsoft.

Avec Star Office une suite bureautique complète et Java Desktop System un OS basé sur Linux, Sun dispose aujourd'hui d'une solution complète pour des postes clients.

À partir du 15 décembre 2003, une vingtaine de produits Microsoft utilisant le code Java ne sera plus disponible sur le marché.

Cette décision fait suite à une longue bataille judiciaire qui opposait Microsoft et Sun. Ce dernier, éditeur de ce langage de programmation, a en effet obtenu gain de cause après avoir intenté un procès contre Microsoft l'accusant de violer ses contrats de licence autour de la machine virtuelle Java en distribuant une version non compatible.

Ainsi, la première version de Windows 98, d'Office 2000, de Windows NT 4.0, de SQL server 7, etc. figurent parmi les logiciels retirés de la vente en raison de l'obligation imposée à Microsoft d'abandonner la diffusion des solutions intégrant ce langage.

Développeurs et entreprises pourront toujours se procurer la seconde version de Windows 98 sur le site de l'éditeur. Par ailleurs, Microsoft commercialisera de nouvelles versions d'Office XP Pro, de Workstation, etc. mais sans Java.

Grâce à ses accords avec plusieurs constructeurs de téléphones mobiles, les éditeurs d'environnement de développement, les grands acteurs du monde informatique et son produit phare JAVA, Sun Microsystems ne serait-il pas le prochain leader du marché informatique ?

(41)

CNAM Valenciennes Informatique C2

- 38 - Décembre 2003

Source

http://www.sun.fr http://www.java.com http://www.01net.com

http://emmanuel-remy.developpez.com http://www.eteks.com/coursjava/

Comparatif C# / Java

http://www.25hoursaday.com/CsharpVsJava.html

Références

Documents relatifs

♦ Un algorithme doit être précis et traduisible dans un langage de programmation : Fortran, Pascal,Scheme, C, Java, etc.. [des dizaines de

Grâce à cette nouvelle façon de stocker l’information, les transformations d’un objet par l’intermédiaire d’une méthode de sa classe sont visibles pour tous les objets de

La plate-forme et le langage Java sont issus d’un projet de Sun Microsystems datant de 1990. Généralement, on attribut sa paternité a trois de ses

Cliquez ici pour telecharger le

3.5 Conversions entre types tableaux ou

Pour cela, il faut construire un objet de la classe DataInputStream qui permet de lire des éléments de type primitif dans le flux, grâce aux méthodes readBoolean , readByte ,

ü java est l’interpréteur de java, c’est la commande à utiliser pour exécuter un programme java1. ü jdb est le débogueur de java, c’est un l’outil utilisé pour débogué

La VUE est l’interface. C’est une instance d’une classe graphique. Le CONTROLEUR est une instance d’une classe implémentant les Listeners nécessaires ; on appellera cette