Thème :
code mobile et les nouvelles architectures applicatives
quoi?
pour quoi faire?
comment faire?
mots-clés:
– applet, servlet, JDBC, RMI, Corba,
– programmation distribuée
code mobile
définition :
programme compilé (code), portable et transportable transportable: lieux de stockage et d›exécution différents portable: indépendant de la plate-forme.
Pour quoi faire?
– ne plus gérer les configurations des postes clients,
– distribuer facilement les applications et leurs versions successives.
Java = code mobile + sécurité.
Piliers de la programmation distribuée
Base de données :
droits d›accès, indexations, interrogations, transactions.
Hypertextes (Web) :
interface de présentation et de navigation entre les documents.
Code mobile Java :
comportement associé à des documents.
pour quoi faire? … deux exemples
Exemple 1: tribunal fédéral.
contexte :
– 5500 cas traités chaque année,
– stockage dans une BD textuelle BASISplus,
– 30 juges and clercs ont accès à cette base,
– 250 employés (15 informaticiens),
– développement d›applications en Ada83/Motif1.2,
– futur proche : changer de plate-forme serveur.
décision :
écrire les applications le + possible indépendemment du matériel.
source : http://java.sun.com/products/jdk/rmi/examples.html
Exemple 1: tribunal fédéral.
démarrage du projet :début 1996,
– client WWW pour accéder à la base,
– RMI pas encore là,
– donc CGI/Forms.
début 1997.
– API RMI arrive,
– autres types de clients envisagés,
– RMI : «middeware» entre la BD et les clients,
– Java Native Interface est utilisé pour faire un pilote d’accès à la BD.
Exemple 1 : commentaires.
– déploiement par internet des applications,
– facilité de mise en oeuvre (proto en deux jours),
– RMI et JNI sont utilisés,
– distribution du code :
en partie sur le client,
en partie sur le serveur (par RMI accéder aux données).
Exemple 2 : gestion de notes de frais.
source : http://java.sun.com/marketing/collateral/javarmi.html contexte (fictif) :
gestion des notes de frais de l›entreprise en fonction d›une politique qui peut évoluer.
application distribuée:
client :
interface graphique de saisie des notes de frais, communication avec le serveur via RMI.
serveur :
stocke les notes de frais dans une BD via JDBC.
–> conception classique multi-rangs.
Exemple 2 : gestion de notes de frais.
Comment anticiper des nouvelles politiques de notes de frais au niveau du design de l›application?
Architectures possibles :
a) installer la politique dans le client,
–>problème de mise-à-jour des clients
b) le serveur vérifie chaque entrée ajoutée à une note de frais, et ce relativement à la politique actuelle.
–>problème de charge du serveur et de performance.
c) le serveur vérifie chaque note de frais, au moment où elle est soumise, et ce relativement à la politique actuelle.
–>problème du traitement par lots.
Exemple 2 : gestion de notes de frais.
Comportement mobile:
Possibilité via RMI, de déplacer des objets d›une application distribuée du client vers le serveur et réciproquement.
Utilisation dans l›exemple:
La politique (actuelle ou future) de gestion des notes de frais est implantée sur le serveur par un objet.
Cet objet est envoyé au client lorsqu›il saisit une note de frais.

Télécharger cours Java et le Web (173 KO) (Cours PDF)
