Bonjour à tous,

"David MENTRE" <[EMAIL PROTECTED]> writes:

> Comme je le disais, je peux filer un coup de main sur cette partie. Ou
> alors mettre à disposition une interface au format XML RPC (mais ça me
> plait beaucoup moins). A creuser en septembre.

Bon, en est pas en septembre mais j'ai creusé un peu. :-)

En ce qui concerne ONC RPC pour PHP, c'est pas si simple. Il serait
relativement facile de faire un « binding » (désolé Fred ;-) entre une
version compilée par rpcgen(3) vers le langage C de la description XDR
du protocole réseau de demexp (càd la description du format des
messages) et PHP. J'ai trouvé des tutoriaux qui décrivent comment
démarrer[1].

Le principal inconvénient de cette approche, c'est qu'on perd la
généricité de la description XDR du protocole. Si la description XDR
change, il faudra changer le binding à la main : c'est nul.

Normalement, un compilateur est chargé de faire cette correspondance
entre la description XDR d'un côté et les structures de données natives
du langage : c'est rpcgen(3) pour le C et ocamlrpcgen pour OCaml. Mais
rien de tel n'existe pour PHP et ça me semble compliqué (en tout cas pas
trivial) à faire pour PHP (et surtout ça n'intéresse personne, hormis
moi :-). Une autre piste serait de tout recoder XDR et RPC en PHP natif,
mais je ne sais pas dans quelle mesure PHP est capable de lire et
d'écrire directement des octets dans une socket TCP (des idées ???).

Reste la piste XML RPC. Le protocole est relativement simple[2] si ce
n'est fruste et bien sûr le diable se cache dans les détails mais vu les
structures de données utilisées pour demexp, on doit pouvoir exprimer ce
que l'on veut.

Côté OCaml, il y a une bilbiothèque disponible[3] mais elle a beaucoup
de (grosses) dépendences (notamment PXP, qui est utilisé optionnellement
en sous-main par CDuce, mais pas dans le version actuelle de CDuce dans
la Debian). Sinon, on doit pouvoir faire quelque chose avec CDuce, en
rajoutant une bibliothèque pour gérer le protocole HTTP.

Ce pose aussi la question d'intégrer l'interface ONC RPC et XML RPC dans
le même serveur OCaml (attente sur le réseau, etc.). Pas trivial non
plus. 

Pour l'instant j'en suis là. Si quelqu'un a des lumières, je suis
preneur.

Amicalement,
d.


Footnotes: 
[1]  http://www.zend.com/php/internals/

[2]  http://www.xmlrpc.com/spec

[3]  http://raevnos.pennmush.org/code/ocaml-xml-rpc/

-- 
GPG/PGP key: A3AD7A2A David MENTRE <[EMAIL PROTECTED]>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A


-- 
Liste de discussion demexp-fr.
Pour se d�sinscrire, cliquer sur le lien ci-apr�s.
mailto:[EMAIL PROTECTED]

Répondre à