• Aucun résultat trouvé

Présentation de Java

N/A
N/A
Protected

Academic year: 2022

Partager "Présentation de Java"

Copied!
19
0
0

Texte intégral

(1)

Présentation de Java

Stéphane Frénot – Frédérique Laforest – Frédéric Le-Mouël

2006

INSA lyon

Département Télécommunication Services & Usages

(2)

Langage de programmation

Write once, run anywhere

(3)

Java ?

• Printemps 90 : Naughton, Gosling et Sheridan :

– "Le consommateur est le centre du projet, il faut construire un environnement de petite taille avec une petite équipe et intégrer cet environnement dans une nouvelle génération de machines : des ordinateurs simples pour des gens normaux."

• Printemps 91 : Microprocesseur grand public.

– La "Green Team" prototype une machine de pilotage de l'électroménager

• Août 91 : Gosling développe Oak

• Août 92 : ---duke--->

(4)

Java ?

• Eté 1993 : Sté. "First Person" est en train de couler

– Eric Schmidt ( Sun) demande une adaptation au Net

• Gosling : travaille sur le code

• Naughton : cherche une application stratégique

• Janvier 1995

– Oak ==> Java, HotJava

• Août 1995 - Première licence sur Netscape

• Janvier 1996 - JDK 1.0.1

• Fév. 97 - JDK 1.1

• Jan 99 - JDK 2.0 (aka 1.2)

• 2003 J2se 1.4, J2ee, J2me (Standard, Entreprise, Micro)

(5)

Ce que c’est !

• Une architecture technique

• Un langage OO

• Une bibliothèque de 5000 éléments

(6)

Plateforme Java : architecture

J D K 1 . 1

J A V A B e a n s

S e r v e u r s

A P I d e

S é c u r i t é R M I J D B C J N I I n t e r n a t i o n a

l i s a t i o n

J a v a C o r e R e f l e c t i o n J N D I S e r v e r

A P I J a v a

I D L M a c h i n e V i r u e l l e J a v a O S + E m b e d d e d A P I +

P e r s o n a l A P I

P C s N C P D A P u c e s J a v a

H o r i z o n t a l e

C o u c h e s y s t è m e

P l a t e s - f o r m e s c i b l e s M e d i a

A P I

C o m m e r c e

A P I M a n a g e m e n t A P I T r a n s a c t i o n

S e r v i c e s A u t r e s A P I V e r t i c a l e

J D K 1 . 0

Java Client/Serveur : Nicolas, Avare, Najman - Eyrolles

(7)

Machine Virtuelle : Emulateur

• Byte-Code/P-Code/J-Code

– opcode : 1 octet pour l'instruction – 0,n opérandes

• MicroProcesseur logiciel

– Jeu d'instructions

– Registres (pc, optop, frame, vars) – Pile, Heap

– Ramasse-miettes

– Espace de stockage des méthodes – Tas de constantes

• ==> Compilé ou Interprété

Compilateur javac Byte-Code .class MV Interpréteur

SE Matériel

Source

.java

(8)

Machine Virtuelle

• Système d'exploitation

• Isolation

• Autonomie

===> Avantages ?

(9)

Java est portable

• Le compilateur Java génère du byte code.

• La Java Virtual Machine (JVM) est présente sur Unix, Win32, Mac, OS/2, Netscape, IE, ...

• Le langage a une sémantique très précise.

• La taille des types primitifs est indépendante de la plate-forme.

• Java supporte un code source écrit en Unicode.

• Java est accompagné d'une librairie standard.

(10)

Java est distribué

• API réseau (java.net.Socket, java.net.URL, ...).

• Chargement / génération de code dynamique.

• Applet.

• Servlet.

• Remote Method Invocation : RMI

• Interconnexion sur CORBA

(11)

Java est robuste

• A l’origine, c'est un langage pour les applications embarquées

• Gestion de la mémoire par un garbage collector (ramasse miettes)

• Pas d’accès direct à la mémoire

• Mécanisme d'exception

• compilateur contraignant (erreur si exception non

gérée, si utilisation d’une variable non affectée, ...)

(12)

Java est multi-threadé

• Exécution de tâches en //

• Mémoire, Code et Ressources partagés

• Economie de ressources

• Un thread ~= méthode qui rend immédiatement la main

• Exemple événements (IHM, gc)

• + priorités

• + synchronisation

– (moniteur, synchronized)

• Implantation dépendante du SE

Nouveau- Né

Blockée

Runnable

Morte

Running new()

stop()

resume()

yield()

stop() stop()

start() notify()

suspend() sleep()

wait()

(13)

Java est sécurisé

• Indispensable avec le code mobile.

• Pris en charge dans l'interpréteur.

• Trois couches de sécurité :

Verifier : vérifie le byte code.

Class Loader : responsable du chargement des classes.

Security Manager : accès aux ressources.

• Code certifié par une clé.

(14)

Java est semi-réflexif

• Le langage s'autodécrit

• Les éléments du langages sont pilotable de l'extérieur

• Possibilité de faire de la meta-programmation

• La machine virtuelle est pilotable de l'extérieur

(15)

API du JDK (Paquetages)

java.lang : classes de bases (+reflect) java.io : entrées/sorties

java.util : utilitaires (structures, dates, events) (+zip) java.net : réseau

java.applet : gestion des applets

java.awt : interface graphique (image, +datatransfert, +event) java.beans : définition de composants réutilisables

java.math : entier de taille variable

java.rmi : invocation distante (+dgc, +registry, +server) java.security : (+acl, +interfaces)

java.sql : jdbc ...

(16)

Architecture technique : Conclusion

• Notion de bac à sable

– Isolation – Robustesse

– En pleine évolution

• Utilise les ressources du système d'exploitation sous-jacent

– Accès aux ressources (réseau, disque, mémoire...)

– Mais …

(17)

Le kit java

• JDK vs JRE

– Java Development Kit / Java Runtime Environment

• Versions du jdk

– 1.1 -> version de démonstration

– 1.2 -> 1ère version utilisable (interfaces graphiques) – 1.3 -> 1ère version industrielle

– 1.4 -> Version courante (compilation JIT) – 1.5 -> Version avancée (grande taille)

• 40 Mo de librairies standards compressées

• 13000 classes

• 100k la machine virtuelle

• N'est pas open-source

(18)

La famille java

Java 2 SE

– java 2 standard edition (à partir du jdk1.4) – Kit et run-time standard java

• Java 2 ME

– Java 2 Micro-Edition pour environnements contraints – CLDC / CDC

• Connected Limited Device Configuration

• Connected Device Configuration

– Midp 2.0 : couche de spécialisation constructeur

• Java 2 EE

– Java 2 Enterprise Edition – Principalement api EJB

– Pas de machine virtuelle associée

(19)

L'Iceberg Java

MV

jmx osgi

jcp jnlp

eclipse kvm

jain jini

gcj

.net

jms jsr

Références

Documents relatifs

L’acquéreur s’engage à ne pas ériger, dans le domaine skiable, d’autres installa- tions ou bâtiments que ceux qui sont normalement requis pour l’exploitation d’une Station

Enfin nous nous sommes intéressés à la méthode de rééchantillonnage dites “bootstrap” et à son adaptation pour le démixage d’images hyperspectrales en présence de pixels

Pour les petits polypes, l’ESGE recommande une résection à l ’ anse froide car elle associée à un taux de résection complète plus élevé que la pince à biopsie froide, ainsi

Le travail de recherche que nous présentons ici, s’inscrit dans le paradigme de la découverte et essaie de mesurer l’influence de la simulation par ordinateur sur les pro-

C’est également l’occasion pour l’APPT et le Centre de Compétence (MOC) de faire connaître leurs actions pour améliorer le quotidien des personnes de Petite Taille et de

9h00 -9h10 Introduction Pr David GENEVIEVE – Centre de Référence Anomalies du Développement - Centre de compétence Maladies Osseuses Constitutionnelles CHRU

Un mouvement global dans les 6 régions OMS pour agir sur les déterminants de la santé et réduire les Inégalités Sociales de Santé.. Villes et santé :

– "Le consommateur est le centre du projet, il faut construire un environnement de petite taille avec une petite équipe et intégrer cet environnement dans une nouvelle