Broker
- transforme toute application SML en un service distribué sans code supplémentaire sur le serveur ou le client,
- les connexions, les appels de fonctions distantes, le passage de paramètres et les retours d’erreurs sont transparents,
- interprète un dialogue en SML, en XML-RPC et en PHP sérialisé,
- toute erreur du côté serveur est capturée et remontée au client comme si elle s’était produite localement,
- le broker étend radicalement les possibilités d’implémentation en offrant un vrai partage des rôles sans contraintes.
;; dans un processus SML, définir une fonction comme d’habitude
? (defun calc:add (x y) (+ x y))
;; l’exporter et s’enregister sur le bus
? (load "smlb") ;charger le broker
? (smlb:export 'calc:add) ;la fonction est maintenant publique
? (smlb:start "Calculator") ;enregistrement sur le bus
;; dans un autre processus SML
? (load "smlb") ;charger le broker
;; importer la fonction et l’exécuter tout simplement
? (smlb:import "Calculator" 'calc:add)
? (calc:add 1 2) ;appel distant avec connexion automatique
= 3
? (calc:add 1) ;une erreur est déclenchée localement
Error: Bad number of arguments: 1