Vous êtes sur la page 1sur 2

Service Locator

-Linterface graphique a besoin de localiser les stateless beans au travers dun service de nommage. Le
code technique qui permet daccder JNDI peut tre isol dans une mme et seule classe : le Service
Locator.
-Le design pattern Service Locator, dont le seul but est de localiser des objets dans larbre JNDI,
permet de rendre notre systme plus flexible en centralisant et masquant les accs JNDI. En effet, au
lieu dajouter ce code technique dans nos crans Swing, ce design pattern fournit plusieurs
mthodes pour retrouver des objets stocks dans le service de nommage.
Lautre avantage du Service Locator est doptimiser la rcupration des objets en utilisant un
mcanisme de cache. Lorsquil trouve un objet dans JNDI, le Service Locator le stocke dans un cache
(une HashMap par exemple), puis le rutilise directement lors des appels suivants. Ceci nest possible
que si le Service Locator implmente le design pattern Singleton
Le singleton
Un singleton est une classe pour laquelle une et une seule instance existe dans toute lapplication.
Toutes les rfrences dobjets de ce type sont en ralit des rfrences un mme objet. Par
consquent, un singleton nest stock quune seule fois en mmoire. Lutilisation dun singleton rside
dans la prvention de la cration dun objet autre que celui que vous fournissez. Pour ce faire, il suffit
dans un premier temps de dclarer tous les constructeurs comme tant priv, et davoir une mthode
publique et statique permettant de retourner linstance unique du singleton.

Le constructeur est priv, il ne peut donc pas


tre appel par une classe extrieure, ce qui
nous garantit lunicit de linstanciation. On
initialise le contexte JNDI et le cache dans le
constructeur

Mthode permettant de retrouver une interface


distante.On commence par rechercher lobjet dans
le cache. Si lobjet ne sy trouve pas, on le
recherche dans JNDI puis on le stocke dans le
cache pour les utilisations futures

Mthode static permettant d'assurer l'unicit de


l'instance

4INFOB2/3 ZK Page 1
Business Delegate
Nous venons disoler le code JNDI dans un Service Locator, il ne nous reste plus qu dlguer son
appel par un Business Delegate. Lide de ce pattern est davoir une classe Business Delegate par
stateless session bean qui redfinit chaque mthode distante. Les interfaces graphiques nutilisent donc
que les mthodes des objets Delegate sans se proccuper de la faon de rcuprer la rfrence sur
linterface distante. Ce design pattern permet de regrouper un seul endroit tous les appels distants.

Le nom JNDI de
l'interface remote

rcupration du proxy de
linterface distante

4INFOB2/3 ZK Page 2

Vous aimerez peut-être aussi