Aggiungo che ACE utilizza una versione light del methodTable, sistema sfruttato dal progetto AMFPHP nonchè da quello analogo per Perl e Python. Trattasi di Flash remoting, utilizzo di oggetti server sul client ed invio di oggetti client al server, disponibile ufficialmente anche per J2EE ed ASP.NET.
Mi pare quello che stavo facendo proprio l'altro ieri con Nevow in Python :-)
Quindi visto che tutti i linguaggi più note hanno da anni utilizzato il trasporto di oggetti da e verso il client, se esiste un filtro (methodTable) ed in questi anni nessuno s'è mai accanito sulla pericolosità dello scambio di oggetti attraverso questo filtro, presumo che ACE non debba preoccupare nessuno, salvo bugs miei sul codice, ma il sorgente è Open.
Mi pare che Flash giri in un ambiente "boxed" dove i danni che può fare sono limitati. Solo ultimamente c'è la possibilità di fare uploading e quindi in un certo qual modo accedere al server, ma magari mi sbaglio (sulle possibilità del Flash player intendo)
In ultimo, se in Pippo(): def register(self, ClientObject): mi aspetto che ClientObject sia un'istanza esatta di un'altra classe già definita in Python sapete meglio di me come controllarlo e solo se tale allora userò il metodo che mi server, ma sono casi molto particolari, che starebbero meglio in un'area admin post autenticazione... ma non per questo non devono poter esistere (imho) visto che farlo è possibile.
Se il tuo obiettivo è mandare oggetti python <-> python stai reimplementando Twisted Perspective Broker, altrimenti se vuoi mandare oggetti js <-> python stai reimplementando JSON :-P Secondo me dovresti dare un'occhiata a Nevow Athena che fa proprio quel che cerchi.
ACE per python (PyACE ??? :P) crea la classe runtime solo se esistente, altrimenti restituisce un dict perche PyRex non supporta exec e non sono riuscito a trovare il modo nella serializer per PyRex di crere una classe runtime :-(
exec? Yeah, di all'attacker "questo sito è broken" sull'homepage che fai prima. Comunque se vuoi creare classi a runtime puoi anche dare un'occhiata al modulo new http://docs.python.org/lib/module-new.html Ma credo che il problema qui sia di tutt'altro genere
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
-- Lawrence http://www.oluyede.org/blog
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python