Guillaume Desnoix wrote:
Non , en fait dans local 1, Registry .bind est un dynamic proxy qui simule l'interface Echange et qui fait le Marshall/unMarshall !!!!marc wrote:Enfin je crois
Presque. Tu crees juste une instance d'Echange dans Local1 ;-)
Donc un r�el Appel distribu� on passe par HTTP !!!!!!!!
Si bien sur !! mais ce n'est pas clair dans l'example que j'ai post� trois seconde avant de prendre train d�sol�
Merci pour l'exemple. Effectivement c'est simple. Mais ce n'est pas multi-langage.
en fait le serveur publie le service sur l'URL "http://localhost:8004/glue/echange" , mais il publie aussi le wsdl!! dans un autre url ("http://localhost:8004/glue/echange" l'�quivalent de l'IDL)
et donc apr�s tu peut ecrire un client dans n'importe quel language qui supporte SOAP attaquant l'url de ce service
python perl, C#, C++ et le reste !! en g�n�rant stub et skeleton, ou en r�alisant un invocation dynamique( exactelment comme en corba)
en fait en python tu peut aussi faire
une ligne du type(je n'ai pas d'example excat sous la main )
server=soapserver(http://localhost:8004/glue/echange.wsdl")
server.getRate(fr,us)
c'est aussi simple !!!
Alors voici le meme en Corba (sachant que Dodico est notre equivalent a Glue, une lib qui factorise le code d'initialisation). Pas beaucoup plus complique ?
/* IDL */
interface IExchange {
float getRate(string country1,string country2);
};
/* JAVA */
public class Exchange extends IExchangeImpl
{
public float getRate(String country1, String country2) {
return 122.69f;
}
}
public class Publish1 {
public static void main(String[] args) {
CDodico.bind("exchange",new Exchange());
}
}
public class Local1 {
IExchange exchange=IExhangeHelper.narrow
(CDodico.find("exchange"));
System.out.println(exchange.getRate("usa","japan");
}
Guillaume
