1
1.0 Introduction
Le besoin de communication entre applications informatiques n'a jamais cessé de croître
avec la popularisation du réseau Internet et du WWW dans les années 80 et 90.
L'architecture client/serveur est née avec la possibilité de transférer de l'information entre
le module "serveur" et le module "client" d'une application distribuée.
À ses débuts, la technologie impliquait une programmation assez cryptique et difficile
d'approche (les Sockets BSD sont un exemple). Entre autres, elle imposait au concepteur
de logiciels de mettre au point des protocoles de communication relativement complexes.
Ces protocoles devaient contrôler la transmission des données, effectuer les vérifications
d'usage (représentation différente selon les plates-formes) et effectuer le dé/codage ces
données. Le programmeur devait donc réserver une bonne part de son temps à la
conception du protocole, hypothéquant le temps consacré au processus de conception du
logiciel lui-même.
On a ensuite développé une technologie de plus haut niveau (Remote Procedure Call,
RPC). RPC permet de séparer une application en deux modules (le serveur et le client) de
fonctionnalités différentes, et de les distribuer sur des machines différentes. Encore
utilisée aujourd'hui, cette technologie permet aux applications de provoquer l'exécution
de procédures appartenant à des applications distantes et ce, de façon transparente. Avec
cette technologie, le programmeur n'a plus à développer des protocoles gérant les
méthodes de transferts, de vérifications et de dé/codages. Ces opérations sont entièrement
prises en charge par RPC.
L'évolution des langages de programmation a amené de nouveaux outils aidant à la
conceptualisation des problèmes en informatique. En effet, la venue de l'orienté-objet
facilite l'abstraction du problème à résoudre en fonction des données du problème lui-
même (par l'utilisation de classes et d'objets). Aussi, la venue de la programmation-objet
a donné lieu à de nouvelles technologies de distribution des applications informatiques.
Les concepts d'héritage, d'encapsulation et de polymorphisme sont mis à profit avec
l'orienté-objet.
Java RMI est un exemple de technologie orienté-objet (grâce à Java) permettant de
distribuer une application (grâce à RMI). Entre autres, RMI permet le transfert de
comportements (objets) d'un module à un autre. Un système informatisé de collecte des
dépenses des employés d'une entreprise est un bon exemple. Dans ce cas, le département
des finances désire récolter les dépenses mensuelles de ses employés, mais la politique de
dépense change de mois en mois. Le problème des multiples mises à jour des applications
clientes se pose, il y en aurait une à chaque mois pour chaque employé. La solution
"RMI" permet d'éliminer ce problème en exportant, sur demande des clients, l'objet
contenant la politique en vigueur. Ces derniers utilisent alors cet objet avant de
transmettre leur rapport de dépenses "adapté" au serveur.