Vous êtes sur la page 1sur 43

Java, langage et architecture

Fiche technologique

OCTOBRE 2000

LE CIGREF
Le Cigref, Club informatique des grandes entreprises franaises, existe depuis 1970. Sa finalit est la promotion de lusage des systmes dinformation comme facteur de cration de valeurs pour lentreprise. Il constitue un lieu privilgi de rencontre et dchange dinformations entre les responsables des grandes entreprises franaises ou europennes utilisatrices dimportants systmes dinformation. Ce partage dexpriences vise faire merger les meilleures pratiques. Chaque anne, le Cigref ralise des tudes sur des sujets dintrt commun. Rapports publis par le Cigref en 2000 :

Grer les connaissances Dfis, enjeux et conduite de projet Impacts et usages de la messagerie lectronique La scurit lheure dinternet Le phnomne Linux en entreprise ( paratre) Fiche technologique Mobilit et GSM ( paratre) Fiche technologique Nomenclature 2000 (dition de septembre 2000) Les emplois-mtiers du systme dinformation Observatoire 2000 des Tlcoms XML, vers un format universel ? Fiche technologique

Ces rapports peuvent tre obtenus en se connectant sur le site web du Cigref : www.cigref.fr

PARTICIPANTS
Un groupe de rflexion anim par Guy Lapassat, directeur informatique de la Gnrale des Eaux, a t constitu au Cigref, avec la participation active des personnes et entreprises suivantes :
Thierry Allembach Georges Arhodakis Jean pierre Asun Yves Barthelemy Jean-Claude Baux Henri Bnoliel Jacques Bisiaux Alain Bonjean Paul Bourgmayer Christian Cad Elisabeth Canat Anne-France Chambon Martine Chicault Bertrand de Greef Ky Do Ngoc Marc Dukat Brigitte Genovese Alain Grard Philippe Gillot Claude Gnemmi Aline Grasset Jacky Grinenwald Jean-Claude Hurteau Pascal Laurent Thomas Lemele Olivier Lenormand Patrick Lepage Lyonnaise des Eaux LOral AtoFina Michelin Alcatel SMABTP Crdit foncier de France Grepac (Agirc) Alcatel Cnav-TS CNCA Banque de France Radio-France AP-HP Framatome Cnav-TS Alstom CNCE
Caisse des Dpts et Consignations

MGEN MMA Crdit lyonnais Axa Mairie de Paris MMA CNRS LOral

Jean Philippe Madelaine Victor Emmanuel Maduro Grard Margueritte Danile Mermet Jean-Michel Michl Olivier Mimaud Jacques Nussli Jean-Marc Pailloux Alain Paoli Marc Persuy Jean-Marie Pilot Laurent Poulalion Jeannine Pugin Ulrich-Andr Renauldon Gilbert Rochard Marc Rocher Marie-Franoise Rotenberg Vincent Russo Yves Soussan Jrome Topezenki Gilles Trhin Jean-Jacques Vaultier Fabrice Viger Christian Vouillon Hiep Vu Thanh Philippe Zanini

Cogema Intermarch Framatome Crdit foncier de France PSA SNCF MGEN SNCF Intermarch PSA Cnav-TS Agirc Framatome Axa AP-HP Mairie de Paris Socit gnrale Alstom Mairie de Paris Natexis Banques populaires ParisBourse SBF SA Azur GMF Natexis Banques populaires Framatome AP-HP Mairie de Paris

Ltude a t rdige par Guy Lapassat (Gnrale des Eaux), Stphane Rouhier (Cigref) et Frdric Lau (Cigref).

SOMMAIRE

1.

RSUM

2.

ENJEUX

3.

HISTORIQUE

11

4.

DESCRIPTIF

13

5. 5.1 5.2 6. 6.1 6.2 6.3 6.4 6.5 7.

CLASSIFICATION Portabilit Intgration technologique PRINCIPAUX ACTEURS DU MARCH Sun Oracle IBM Microsoft Et les autres CONTRAINTES LIES JAVA

17 17 17 19 19 20 22 23 24 25

8.

BNFICES LIS JAVA

27

9.

TYPES DUTILISATIONS

29

10. COTS POUR LENTREPRISE

31

11. BNFICES POUR LENTREPRISE

33

12. VOLUTION PRVISIBLE 12.1 12.2 Court terme Long terme

35 35 35 37

13. COMMENTAIRES

14. RECOMMANDATION

39

ANNEXE : LEXIQUE

41

Cigref Java, langage et architecture

1. RSUM
Java est un langage de programmation inspir de C++, gr par des machines virtuelles , environnements dexploitation qui sinterfacent avec les systmes dexploitation des serveurs. La quasi-normalisation de Java et larchitecture dcrite ci-dessus permettent dutiliser Java sur de nombreux ordinateurs et de rendre les programmes crits en Java largement indpendants des systmes dexploitation sur lesquels ils tournent. Java nest pas un langage de description de pages statiques comme HTML ou dynamique comme XML : cest du code applicatif qui sexcute sur un serveur.

Cigref Java, langage et architecture

2. ENJEUX
Actuellement, Java est un standard gr par Sun ainsi quune communaut de dveloppeurs. Cette communaut est ouverte et attentive aux tentatives de dvoyer ou circonscrire le langage. Cette ouverture est la garantie de la prennit dun standard qui permet de faire des applications indpendantes des platesformes : le langage Java permet de saffranchir pour une bonne part des stratgies commerciales des fournisseurs. Cette relative indpendance permet une entreprise denvisager plus facilement de dvelopper et dutiliser des composants logiciels mtiers portables dun environnement un autre, quil sagisse de progiciels ou de logiciels spcifiques.

Cigref Java, langage et architecture

11

3. HISTORIQUE
Sun est lorigine du langage Java. Le projet date de 1992 sous lappellation Green Project . cette poque, deux anciens responsables de Sun cherchent dvelopper un systme dexploitation (OS) baptis Oak , destin linformatique domestique (tlvision, assistant personnel). Le projet choue en 1994 et lOS domestique est abandonn, mais Bill Joy (Sun) retravaille avec ses quipes le langage quil rebaptise Java . Cest en utilisant le langage de programmation pour internet que Java va rellement dcoller partir de 1994 (machine virtuelle Java, compilateur, API, scurit). partir de 1996, des diteurs comme Netscape commencent intgrer des composants Java dans leur offre (navigateur), suivis en 1997 par Microsoft, IBM

Cigref Java, langage et architecture

13

4. DESCRIPTIF
Dans les annes 80-90, les architectures utilisaient des solutions largement propritaires (systmes dexploitation du serveur, poste de travail, middleware protocole de communication ). Ces architectures posent des problmes avec internet, dans la mesure o les postes de travail des utilisateurs sont extrieurs lentreprise, cest--dire quils peuvent utiliser des systmes dexploitation divers et des versions autres que celles utilises par lentreprise qui offre des services internet. Les possibilits davoir des programmes indpendants des composants techniques du poste de travail prsente donc un intrt considrable. La solution tait davoir des applications auxquelles on puisse accder via une interface gnrique comme par exemple un navigateur, mais composes de code qui sexcuterait soit en local sur le poste de travail, soit sur le serveur. Ce code devrait respecter, bien entendu, un standard non propritaire et reconnu. De l est n le langage Java qui est un langage de programmation objet inspir de C++, reposant sur des classes et sur la notion dhritage. Il permet dutiliser les plates-formes informatiques, les interfaces homme-machine (IHM), le rseau et les bases de donnes de faon unique et homogne : il favorise donc la portabilit des dveloppements et saffranchit des notions propritaires voques plus haut. De lavis des utilisateurs, cest un langage peu encombrant, sr et portable. Dautre part, deux volutions ont renforc lattrait de Java :

lvolution dinternet de services dinformation statiques, pour lesquels HTML tait un outil satisfaisant, des services dinformation dynamiques (pages intgrant des informations extraites de bases de donnes) et des services transactionnels ; lutilisation des architectures internet sur dautres terminaux que les PC (tlphone, TV, NC).

Dans le premier cas, la gamme des possibilits de Java permet de satisfaire des besoins fonctionnels. Dans le second cas, la portabilit de Java rpond aux besoins techniques.

14

Cigref Java, langage et architecture

Une application Java nest pas une suite de balises permettant de dcrire un traitement simple comme HTML ou XML, mais bien un code informatique excut sur la machine cible. Pour cela, toute application Java doit sexcuter dans un environnement dexcution pour accder des composants mtiers qui interrogent les ressources systme via des interfaces :

lenvironnement dexcution Machine ou JVM ;

est

appel

Java

Virtual

les interfaces daccs aux ressources sont regroups dans le Java Development Kit ou JDK ; les composants mtiers sont appels aussi des beans .

Progressivement, une architecture autour de Java sest mise en place autour de ces trois briques de base. Elles permettent de mettre en uvre des applications excutes sur le poste de travail et sont alors nommes applet ou sur un serveur et nommes servlet .

Les applets sont gnralement excutes sur le poste de travail. Elles peuvent tres localises sur le poste mais sont la plupart du temps tlcharges partir dun serveur web de composants et excutes dans le navigateur.
Serveur Web
Pages HTML

client
navigateur

HTML/HTTP IHM
Applet JAVA

donnes

JDBC

client navigateur
HTML, applets, ...

Source : Fi System Figure 1 : Mode de fonctionnement dune applet.

Les servlets sont excuts sur le serveur. Ce sont des composants soit conus des fins de prsentation, soit des fins de traitement. Les premiers sont appels Java Server Page ou JSP et gnrent des pages web destination de lutilisateur, les second sont appels Java Beans, ce sont des composants exclusivement utiliss en back-office .

Cigref Java, langage et architecture

15

serveur Web quelconque Html

client navigateur

HTTP

SGBD
Moteur de script Servlets
JAVA

JDBC Java Beans Components, EJB

Intgration de code Java au sein de pages HTML (JSP)

Source : Fi System Figure 2 : Mode de fonctionnement dun servlet.

Cigref Java, langage et architecture

17

5. CLASSIFICATION
5.1 Portabilit
Le langage Java doit sexcuter sur une machine virtuelle. Celle-ci est aujourdhui disponible sur quasiment toutes les plates-formes, ce qui garantit en thorie une portabilit maximum. En ce qui concerne les postes clients, les navigateurs les plus connus comme Netscape et Internet Explorer intgrent une JVM. En revanche, parmi les navigateurs moins rpandus, certains excutent du code Java mais ne lintgrent pas en standard, et dautres ne sont pas compatibles Java en natif. Nanmoins, il existe un composant additionnel Java fourni par Sun qui permet davoir les fonctionnalits Java et, qui plus est, davoir la mme version sur des navigateurs diffrents. Pour les serveurs de composants, si lon respecte deux rgles : dvelopper en Java classique ;

encapsuler systmatiquement toute fonction propritaire ;

alors on peut dire que la portabilit du langage est complte non seulement dun environnement de dveloppement un autre, mais aussi dune plate-forme technique une autre (Java est cross-platform ). Certains membres du Cigref ont notamment constat cette portabilit entre Visual Age for Java dIBM et J-Developer dOracle. Par le pass, lvolution (trop) rapide des versions (3 versions majeures en 3 ans dexistence : 1. 0. 2, 1. 1. x, 1. 2/2. 0) ainsi que quelques pratiques singulires (Microsoft) ont pu poser des problmes de compatibilit du code gnr, mais ceux-ci sont aujourdhui rsolus. Il apparat donc que la compatibilit ascendante est correcte.

5.2

Intgration technologique
Larchitecture Java rpond parfaitement aux standards de linternet. Son volution favorise son intgration avec des outils de gnie logiciel et de middleware . Nanmoins, la cible principale de cette architecture sest largie au fil du temps :

limitation linteractivit des pages web avec la version 1.0.x; extension aux applications sur poste client ; utilisation pour les serveurs et architecture multicouches.

Cigref Java, langage et architecture

19

6. PRINCIPAUX ACTEURS DU MARCH


Pour larchitecture, selon SQLi, les leaders sont aujourdhui Sun, IBM, Oracle et BEA. Microsoft fait aussi partie des acteurs en ce qui concerne la JVM intgre son navigateur mais son architecture ASP le met directement en concurrence avec larchitecture Java. Pour le langage, le choix faire nest pas seulement entre Java et un autre langage objet mais aussi entre les diteurs dun mme langage. Le critre de comptence technique de lditeur nest pas le seul prendre en compte, il faut aussi tenir compte de la taille de lentreprise et de sa prennit financire. Une des difficults rside dans la multiplication des rachats oprs entre diteurs, ce qui a tendance limiter le choix des entreprises.

6.1

Sun
Sun est lorigine de Java et conserve un rle fdrateur fort. Sa stratgie consiste dvelopper un maximum de partenariats avec des diteurs et des constructeurs du monde de linformatique, des tlcoms et de laudiovisuel (Nokia, Ericsson, Psion, Alcatel, Silicon Graphics, Gemplus, Schlumberger) pour dvelopper des API mtier et rendre Java incontournable et le plus ouvert possible1. Paralllement, Sun a entrepris galement de racheter un certain nombre dentreprises telles que Stardivision (suite bureautique Star Office), Netdynamics (serveurs applicatifs), Forte, Integrity Arts (API Javacard). Sun cherche aussi vangliser le monde des dveloppeurs. Le programme de certification de Sun, baptis Sun Developer Connection compte 1,2 millions de personnes dans le monde, dont 40 000 en France. Par ailleurs, Sun cherche simplifier son modle de gestion des licences. Vendue auparavant entre 50 et 150 000 dollars la licence, Sun sest rendu compte que ce mode de licences savrait trop coteux pour les petits dveloppeurs. Dsormais, le tlchargement du code source est gratuit sur le site de Sun et le constructeur se rmunre sur un pourcentage des ventes ralises par le partenaire. Auparavant, Sun comptait 200 socits licencies. Aujourdhui, ce nombre se situe entre 2 000 et 5 000 licencis.

Revers de la mdaille, les API voluent trs vite et les dveloppeurs ont parfois du mal suivre.

20

Cigref Java, langage et architecture

Le mode de fonctionnement entre Sun et le dveloppeur est le suivant : soit le dveloppeur accepte le code fourni par Sun et ne le modifie pas, soit le dveloppeur introduit une modification dans le code source et dans ce cas il doit passer par une phase de certification supplmentaire baptise Java Specification Request (JSR). Cette phase de validation qui comprend la fois des spcifications et des tests se dcompose en 11 tapes, et dure 8 mois maximum. Il y a aujourdhui 32 Java Specification Request, dans plusieurs domaines (tlphonie, temps rel). Le propritaire du code source est soit le dveloppeur soit Sun. Plus rcemment, Sun a dcid de sorienter vers une distribution en ligne gratuite des outils de dveloppement et de sa suite bureautique Star Office. Cette distribution gratuite associe une compatibilit entre Windows et Star Office a pour but de dstabiliser Microsoft, qui tire encore lessentiel de ses revenus de la vente de licences. Cette distribution pourrait se faire notamment par le biais des ASP (Applications Services Providers), des fournisseurs daccs actuels qui se repositionneraient vers de la fourniture de contenu la demande. Sun pense que lutilisateur doit maintenant payer le service et non plus le produit. En consquence, Sun va mettre en ligne lquivalent fonctionnel de Star Office accessible via un portail de services Star Portal : ne sera tlchargeable que la fonction utile lutilisateur, la personnalisation des usages est alors possible mais devient payante. Jusqu il y a peu, on pouvait penser que Sun cherchait garder un contrle sur la standardisation de Java, en tmoigne sa sortie de lISO et tout rcemment de lECMA (European Computer Manufacturer Association). Nanmoins, suite aux inquitudes manifestes de la communaut des dveloppeurs et ayant pris conscience de limportance de lindpendance de Java, Sun vient de modifier les rgles de nomination des instances qui grent Java : le JCP 2.0 (Java Community Process) sera revu dans sa structure et surtout beaucoup plus ouvert : cette ouverture serait-elle un moyen pour Sun dentrer de nouveau dans les instances de normalisation tout en gardant la tte haute ?

6.2

Oracle
Oracle, the 300 % Java company souffrait jusquil y a peu dun manque de cohrence dans son offre. Les membres du Cigref ne comprenaient pas le positionnement dOracle 8i par rapport Oracle Application Server (OAS). Pourquoi Oracle 8i intgrait une JVM dans le moteur lui-mme alors quOAS utilise une JVM

Cigref Java, langage et architecture

21

externe (celle dInprise en loccurrence). En plus, les utilisateurs reprochaient OAS dtre encore trop propritaire. Plutt que dtre 300 % Java, Il aurait mieux valu tre 100 % cohrent Java. Oracle vient de ragir en homognisant compltement son offre, OAS par un travail de migration devient IAS (Internet Application Server) et est 100 % compatible Java. Llment le plus important est la JVM qui est celle utilise par Oracle 8i (8.1.7) et qui intgre la compilation Java. Lancienne JVM dOAS nest plus vendue, elle est fige en version 4.08.2 et maintenue en tant que telle. Le package IAS se compose :

du serveur web Apache ; du moteur Oracle IAS ; dOracle iCache qui est un cache de donnes vers Oracle 8i ; terme, lobjectif est aussi dtre cache dobjets ; dun ensemble de modules correspondant aux connecteurs dOAS. Actuellement, nous pouvons notamment trouver MOD Wap (pour loffre Portal to go) et MOD Java qui permet dutiliser la JVM se trouvant sur le serveur Oracle 8i et de faire excuter des traitements au niveau de ce dernier.

En ce qui concerne le langage, lenvironnement de dveloppement JDeveloper est apprci pour son ct convivial et sa dclinaison dans de multiples architectures comme Unix, NT, Linux, S390 De plus, pour sextraire en douceur de lenvironnement propritaire client-serveur dOracle en prenant la vague Java, JDeveloper est une bonne solution transitoire. En septembre 2000, Oracle intgrera la compilation Java au produit. Cette compilation tant une transcription en C puis compilation C. Pour 2001, un outil de conception UML viendra complter le tout. Enfin, le dpartement Recherche & Dveloppement dOracle avait mis au point pour ses besoins propres un framework (environnement de travail) pour les composants : il sera commercialis sous le nom de Oracle Business Composant for Java (OBC4J). Ce framework permettra laccs des composants techniques et sera intgr loffre de JDeveloper.

22

Cigref Java, langage et architecture

6.3

IBM
IBM fait partie des entreprises les plus impliques dans Java. En effet, Java est intgr dans lensemble de loffre du constructeur, nomme webSphere. Concernant le dveloppement, les deux produits phare sont Websphere Studio et Visual Age for Java. Le premier est orient dveloppement de composants, le second dveloppement dapplications. Visual Age se dcline aussi en Visual Age for Packbase qui permet dextraire des services Cobol et de les transformer en services Java et Visual Age application Roles qui, en incorporant le produit Versata, permet de dvelopper des EJB sans matrise importante des objets Java une description des rgles de haut niveau suffit pour entraner un dveloppement automatique dEJB. Pour les composants, IBM propose San Francisco qui est un framework de composants mtiers multisecteurs. Il fournit la fois les classes des objets Java et les composants. Mais IBM propose aussi Websphere eComponents qui regroupe la fois San Francisco, CBTF (Core Banking Teller Framework ) et Visual Component. IBM propose aussi Websphere eCommerce suite intgrant un serveur Websphere, une JVM et des outils de dveloppement. Pour le middleware , il y a Websphere Application Server qui est dit en plusieurs ditions :

standard (servlet et JSP) ; advanced (Standard avec les conteneurs EJB) ; enterprise (Advanced avec Tx Series et Component Broker).

De plus, IBM propose une srie de connecteurs vers DB/2, CICS, MS/Series, IMS Enfin, loffre groupware dIBM sarticule autour de Domino Notes qui intgre le dveloppement des agents Notes en Java, et dont tous les objets internes sont accessibles en Java. Pour complter cette offre, IBM propose ePortal qui sarticule autour de Domino Raven qui permet de faire de la gestion des connaissances et de profils dutilisateurs et dun portail websphere EIP (Enterprise Information Portal). Ce dernier peut fournir des accs vers des serveurs web externes, des bases relationnelles, des serveurs LDAP

Cigref Java, langage et architecture

23

Les principaux partenaires dIBM pour cette offre sont Versata pour le moteur de dveloppement, Versant pour les containers de persistance base de donnes objet, Ariba pour le relations interentreprises et BMC pour les agents dadministration Patrol for websphere. Prolifix fournit un pont entre websphere et Tuxedo et Rational un outil de modlisation (Rose) et un outil de gestion de versions (Clear Case). Pour accompagner la vague Java, IBM a mis en place une plateforme de services, Object Technology Group qui intgre des experts Java ainsi que dautres technologies comme XML et Wap ; IBM Global Services fournit les forces vives de dveloppement Java. Pour les dveloppeurs, IBM met disposition des forums et des confrences web (ww.ibm.com/developper). Enfin, Java mobilise 5 laboratoires soit 700 personnes auxquels sajoutent 3 000 dveloppeurs.

6.4

Microsoft
Les dbut de Java nont pas t encourags par Microsoft qui a essay de mettre en avant son langage Visual Basic comme langage de scripting pour les pages interactives sur internet, lopposant ainsi directement Javascript. Le succs de ce dernier et le fait quil soit devenu un standard a conduit Microsoft changer de stratgie et se convertir Java. Mais trs rapidement, Microsoft est accus de dvoyer Java en proposant des fonctions qui sortent du standard et nuisent sa portabilit. Nanmoins, Microsoft possde une des JVM les plus performantes du march sur le navigateur Internet Explorer. Microsoft propose un atelier de dveloppement intgr la suite Visual Studio : Visual J++, et qui est jug trs intressant la condition de privilgier les bibliothques et extensions nonMicrosoft. La nouvelle version de la suite Visual Studio ne devrait nanmoins pas incorporer dans un premier temps Visual J++, Microsoft mettant en avant un nouveau langage : C#, concurrent direct de Java.

24

Cigref Java, langage et architecture

6.5

Et les autres
Pour les EJB :

BEA webLogic Persistence PowerTier for EJB Gemstone/J Etc.

Pour les JDK :


BlackDown Inprise/Borland JBuilder Symantec Visual Cafe VisionSoftware VisionJade Progress Apptivity SilverStream Etc.

Pour les JDK autour de la Javacard :


Odissey Lab (Bull), GemXpresso (Gemplus), GenerIC (Oberthur Card System), Cyberflex Open (Schlumberger )

Cigref Java, langage et architecture

25

7. CONTRAINTES LIES JAVA


Java ncessite avant tout chose une bonne apprhension de la notion dobjet. Les dveloppeurs C++ seront certes favoriss, mais il faut penser aux autres (Visual Basic, cobol, C, etc.). Un effort particulier doit donc tre fourni pour passer des langages procduraux aux langages objet. Il peut tre intressant dans certains cas de prvoir une tape C++ mais en rgle gnrale, mieux vaut passer directement Java. Les contraintes se situent plus sur le poste client que sur le serveur. Si larchitecture Java simplifie les choses, une cohrence technique est indispensable ; en effet, il faut harmoniser les versions de JVM, prvoir une configuration matrielle adapte, cest--dire au moins 128 voire 256 Mo de mmoire vive pour les environnements de dveloppement et les serveurs et 64 Mo sur le poste client. Cest--dire un environnement similaire celui des applications bureautiques rcentes. Enfin, il faut prvoir une bande passante suffisante pour tlcharger les applets en cas dutilisation de Java sur le poste client (cet usage tend disparatre).

Cigref Java, langage et architecture

27

8. BNFICES LIS JAVA


Indniablement, tout le monde saccorde dire que la fiabilit et la stabilit de Java ne sont plus prouver. Les cycles de dveloppement sont raccourcis et les phases de tests allges. Java est maintenant enseign dans les universits, coles et instituts, ce qui contribue sa dmocratisation et sa diffusion au sein de la communaut des dveloppeurs. Aprs la phase dadoption, la productivit est suprieure par rapport aux autres langages, en raison de la rutilisation des objets. Java est maintenant un langage de dveloppement universel et standardis qui fait rfrence pour lutilisation des technologies objet. Ces dernires le rendent particulirement adapt aux dveloppements sur des serveurs applicatifs avec la notion de composants objets ou dobjets mtiers. Les domaines d application des architectures Java sont particulirement vastes. Dautant plus que les performances sont en progression constante et que le catalogue des API disponibles senrichit continuellement. Le march est maintenant mr dveloppement est riche et srieuse. et loffre doutils de

Cigref Java, langage et architecture

29

9. TYPES DUTILISATIONS
Lutilisation la plus simple consiste en lenrichissement des pages HTML pour des applications statiques et ne ncessitant pas de traitement. Java est alors soit intgr aux pages HTML, soit tlcharg sous forme dapplets . La mise en uvre dapplications lourdes ou mtiers ncessite par contre des dveloppements qui ne sont plus compatibles avec la configuration des postes clients et contraint une excution des applications sur les serveurs. Dans ce cadre, larchitecture de rfrence Java est une architecture trois couches : poste client, serveur de composants, serveur dapplications. Mais il est aussi possible de dvelopper des applications Java dans une architecture deux couches en mettant en uvre des applications auxquelles le navigateur accde directement. Ce sont gnralement des applications qui viennent en complment dun serveur HTTP en utilisant soit des servlets (les pages HTML sont construites dynamiquement par lapplication) soit des JSP (les pages sont statiques et intgrent du code Java qui dialogue avec lapplication). Mais dans ces deux cas, les requtes sont bien signifies par le poste client directement lapplication. On trouve aussi des architectures deux couches qui mettent gnralement en uvre des applications intgrant la fois le serveur de composants et la partie applicative. On se trouve alors avec deux tages sur le serveur : cest une fausse architecture trois couches. Dans les architectures deux et trois couches, la tendance actuelle est dutiliser des EJB sous forme de composants mtiers rutilisables. En environnement extranet et internet, trois types de problmes apparaissent : la compatibilit entre navigateurs, le temps de chargement des applets et les performances du poste client ; dans ces cas, on privilgiera des dveloppements applicatifs intgrant des serveurs de composants ou des servlets qui construisent dynamiquement les pages HTML (dautant que les applications sont de plus en plus dveloppes pour des accs clients et fournisseurs). Par contre, lutilisation dapplets est optimale au sein dun intranet, pourvu que lentreprise ait des normes internes pour les configurations de ses diverses entits.

30

Cigref Java, langage et architecture

Exemple d applet :

le Projet Atride chez EDF. Il sagit dun frontal graphique sous forme dapplet pour un systme de gestion des donnes territoriales (SGDT) utilis par des ingnieurs noninformaticiens (100 utilisateurs).

Exemples de servlets :

Le site de bourse en ligne CPR E*Trade : projet comprenant un servlet ct serveur, un lien Corba mais pas de moniteur transactionnel ; Projet Savoir chez France Tlcom : application pour les travaux de voirie regroupant 2 000 utilisateurs et gnrant 15 accs par seconde en moyenne. Lapplication sappuie sur un moniteur transactionnel Tuxedo, une base de donnes Oracle et un serveur dapplication IBM websphere ; Projet de hot line Itineris Digit 2G chez France Tlcom Mobile : permet lappelant dobtenir des renseignements sur les fonctionnalits de son GSM. Il a ncessit le dveloppement dune application HTML sur le poste client et dune applet Java pour ladministration (saisie de nouvelles fiches).

Hormis les applications web, on commence aussi trouver des applications sur des quipements embarqus comme les cartes puce, les terminaux de paiement lectroniques, les tlphones mobiles. Le principal attrait tant la possibilit de tlcharger simplement de nouvelles versions et applications de manire transparente pour lutilisateur.

Cigref Java, langage et architecture

31

10. COTS POUR L ENTREPRISE


La comparaison doit se faire entre langages comparables (Java vs Visual Basic ou C++) et architectures comparables (Java vs Microsoft). De plus, elle nest envisageable que sur un cycle de vie complet (3 ans). Les technologies Microsoft (Visual Basic ou architecture ASP) semblent plus adaptes pour des petits projets et des dveloppements au fil de leau, tandis que Java semble mieux conu pour des grands projets structurs. Plus prcisment, dans les organisations dcentralises o les dveloppement se font de manire individuelle, Visual Basic est plus adapt ; mais la tendance actuelle est la recentralisation et donc le dveloppement dapplications plus importantes avec une mthode globale et dans ce cas, Java convient mieux. Concernant le volume de code, JSP et ASP sont quivalents. Il est vident quun nouveau langage (Java) est dans un premier temps plus coteux adopter par une entreprise (migration, administration, formation) quun ancien langage (Cobol, Visual Basic, C, C++) mais les bnfices moyen terme peuvent tre suprieurs. Le cot tend mme devenir devenir secondaire lorsque le projet est considr comme stratgique par lentreprise et la direction gnrale (les nouveaux projets tels que le-business par exemple). Si lon dtaille chaque cot, on note plusieurs points.

Cots de dveloppement : Java ncessite un redveloppement initial obligatoire des applications de lentreprise. Le cot de dveloppement en java peut tre 15 % plus cher que sous Visual Basic ou C (tarifs des SSII). Mais il faut jouer fond la carte de la portabilit future. Il faut aussi noter que si la station de dveloppement Visual Basic peut tre la machine de monsieur tout le monde, celle pour dvelopper sous Java doit tre beaucoup plus puissante. Cots de migration : une migration vers une architecture de type intranet ou internet doit tre envisage si lon passe dune architecture classique une architecture Java. Mais attention, si larchitecture est homogne et base sur Microsoft NT, alors Java noffre pas plus de facilits que larchitecture Microsoft ASP. Cot de dploiement : le cot de dploiement en environnement intranet est plus faible quen environnement

32

Cigref Java, langage et architecture

client-serveur propritaire, ne serait-ce que parce quil ny a pas dapplication installer sur le poste client. Nanmoins, les serveurs dapplications sont plus chers, puisque selon les membres du Cigref, il faut compter de lordre de 50 kF pour un monoprocesseur et 60 kF par processeur supplmentaire.

Cots dadministration : ils sont plus faibles que pour les architectures client-serveur. Il y a en loccurrence moins dadministration client. Nanmoins, les membres du Cigref estiment quil faut environ 30 jours de formation pour les administrateurs. Cots de formation : ncessit dune comprhension de la mthode de conception objet par les dveloppeurs traditionnels (Cobol, Cics, SGBDR). Mais la multiplication des formations initiales et professionnelles en Java va entraner une baisse des cots de formation et une diffusion de Java dans le monde des dveloppeurs. Il est noter qu comptences initiales gales les membres du Cigref considrent que le cot de formation Java est identique celui de Visual Basic ou de C/C++ ; Selon le CXP, il faut compter de lordre de 20 kF par licence de dveloppement Java, plus 25 kF de formation par dveloppeur. Pour une quipe de 20 dveloppeurs sur 5 ans, on en arrive des cots de formation de 4 MF pour Oracle et de 5,5 MF pour IBM ; Cots de maintenance : Dans le cas des architectures multicouches, il y a report du cot des postes de travail sur les serveurs, mais ce nest pas li Java.

Cigref Java, langage et architecture

33

11. BNFICES POUR L ENTREPRISE


Il apparat que la fiabilit de Java et ses facilits de dveloppement entranent, selon les membres du Cigref, un raccourcissement de la dure des projets informatiques (de 1 an en moyenne 6 mois). Cela va sans doute conduire une adoption massive de Java permettant notamment dintroduire des composants rutilisables. On peut aussi penser que la rutilisabilit et la portabilit des applications dveloppes en Java vont permettre de simplifier grandement les migrations dapplications dun systme dinformation vers un autre, notamment lors des fusions ou acquisitions : Java favorise lindpendance technique des outils mtiers de lentreprise. De lavis des dveloppeurs membres du Cigref, le niveau dabstraction supplmentaire que le langage Java apporte par rapport C++ permet denvisager de faon plus sereine le dveloppement dobjets mtiers et plus gnralement des dveloppements prennes. Dautant plus que, hormis les API propritaires encapsules, les contraintes de dveloppement en Java sont plus souples que dans les autres langages. Concernant larchitecture, le bnfice le plus important par rapport une architecture classique client-serveur est de ne pas avoir de dploiement applicatif sur les postes, do une simplification de la mise en uvre sur le serveur. Les architectures trois couches permettent ainsi dviter davoir un middleware entre le poste client et le serveur et les problmes de configuration et de version qui en dcoulent. (Les middleware peuvent nanmoins tre reports sur les serveurs de composants ou applicatifs, le paramtrage est alors plus centralis.) Les incidences directes en sont notamment un allgement de la charge des help desks et hotlines qui peuvent se concentrer sur une aide lutilisation et non au bon fonctionnement voire la bonne configuration. Vis--vis des fournisseurs, la standardisation assure une relative indpendance, la condition de respecter un dnominateur commun (ou dencapsuler ce qui est spcifique). Et il y a actuellement une forte attente des entreprises sur les objets mtiers notamment vis--vis des progiciels de gestion intgrs (SAP, Intentia).

Cigref Java, langage et architecture

35

12. VOLUTION PRVISIBLE


12.1 Court terme
Le langage Java ne va pas remplacer les langages classiques comme Visual Basic et C qui rpondent des besoins spcifiques de dveloppement rapide pour des petites applications (Visual Basic) ou performants parce que proches du systme (C) ; Le C++, par contre, na plus de raison dtre. Sur les serveurs, la substitution se fera de manire douce : des applications ct serveur (servlets et JSP) vont se substituer aux CGI et autres ASP dans un premier temps. Selon le Gartner Group, les serveurs dapplication EJB rattraperont leur retard dici 2004 puisquils prvoient un march 50 % de serveurs MTS (Microsoft) et 50 % de serveurs EJB. Les comptences, elles, arrivent, ne serait-ce que parce que le langage Java est aujourdhui enseign actuellement systmatiquement dans les universits.

12.2 Long terme


La technologie objet a maintenant les bases pour simposer : les objets mtiers simposeront terme dune part avec larrive doutils volus ( base de rgles mtiers) intgrant un ORB et des connexions vers des bases de donnes et des ERP ; dautre part avec lmergence terme de composants mtiers sur tagre. Quel sera limpact de Java sur les postes clients ? le langage Java et larchitecture associe vont-ils faire voluer des services comme la messagerie, les annuaires et plus gnralement les outils bureautiques ? Lannonce de Starportal (offre doutils bureautiques la demande) faite par Sun, parat aller dans ce sens.

Cigref Java, langage et architecture

37

13. COMMENTAIRES
Java permet de retrouver une approche professionnelle du gnie logiciel (cycle de vie, qualit et test, outillage, intgration), avec de nouvelles faons de voir (orientation objet, dmarche itrative). Larchitecture Java soppose larchitecture Microsoft et il ny a plus dautre alternative. Le passage de lune lautre peut induire une forte inertie au changement, certes naturelle, de la part des anciens dveloppeurs. Lvolution des environnements Java est trs rapide par rapport au rythme beaucoup plus lent des volutions technologiques dans les grandes entreprises. Par comparaison, lvolution des dveloppements en C++ a t 3 fois plus lente quen Java.

Cigref Java, langage et architecture

39

14. RECOMMANDATION
De par leur volution trs rapide, les technologies multicouches sont encore jeunes et nont pas compltement fait leurs preuves. Il faut donc raison garder et ne pas cder leffet de mode en passant dun coup son systme dinformation en intranet. Les deux aspects surveiller sont notamment la stabilit et la capacit de sadapter au changement dchelle (scalability ) : si Java est une plate-forme mre, sa stabilit, qui samliore notablement avec Java2, nest pas encore totale ; Si la scalability parat tre un des point forts, elle mrite une attention particulire due la jeunesse de larchitecture Java. Enfin, les temps de rponse induits par larchitecture Java la destine, pour linstant, des applications intranet et non internet.

Cigref Java, langage et architecture

41

ANNEXE : Lexique

Cigref Java, langage et architecture

43

API : Application Programing Interface . Ensemble de fonctions regroupes dans une bibliothque et permettant daccder un composant particulier. Applet : application tlcharge depuis un serveur web qui sexcute dans une JVM intgre au navigateur. EJB : Enterprise Java Bean. Composant mtier exclusivement utilis sur les serveurs : il ncessite un serveur ddi. On appelle ce composant via un gestionnaire de Corba, un Servlet ou encore RMI. ERP : Enterprise Resource Planning . Progiciel de gestion intgr. JAAS : Java Authentication and Authorization Services. JAIN : Java Advanced Intelligent Network . JCE : Java Cryptography Extensions. JDK : Java Development Kit. Environnement de dveloppement Java permettant de produire du code Java et servant de rfrence. JINI : permet de connecter des priphriques au rseau de manire plug and play . JNI : Java Native Interface. Permet linteroprabilit de Java avec dautres langages en offrant laccs des machines virtuelles. JSSE : Java Secure Socket Extensions. JVM : Java Virtual Machine. La machine virtuelle de Java est la base mme de sa portabilit sur la plupart des plates-formes. En ralit, le code Java est compil en instructions comprhensibles par la machine virtuelle qui elle-mme interprtera ces instructions pour que lordinateur puisse les comprendre. Cest pour cela que chaque plate-forme doit disposer de sa propre machine virtuelle pour fonctionner ORB : Object Request Broker. Dans un environnement objets, programme rgulant les changes de messages entre les objets RMI : Remote Method Invocation. Invocation de mthode distante, mcanisme permettant dutiliser sous Java des objets distribus. Servlet : application sexcutant sur le serveur et gnrant des pages HTML.

Vous aimerez peut-être aussi