Outils pour utilisateurs

Outils du site


perspective_broker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
perspective_broker [2022/11/28 12:57] – [Sous-classement et mise en œuvre] sergeperspective_broker [2022/12/05 15:51] (Version actuelle) – [Python: Twisted Perspective Broker] serge
Ligne 2: Ligne 2:
  
 <WRAP center round info centeralign 60%> <WRAP center round info centeralign 60%>
-**Niveau Pro et intergalactique !**+**Niveau Pro et intergalactique !**\\ 
 +Cette API: 
 +  * a entre 15 et 20 ans 
 +  * n'est que vaguement maintenu 
 +  * un exemple au moins ne marche pas 
 +  * le tranfert de datas simples marche 
 +  * le transfert d'objets complexes ne marche pas 
 +  * les exemples ne respectent pas le PEP 8, c'est imbriqué au possible
 </WRAP> </WRAP>
 +
 +<WRAP center round box 60% >
 +  * **{{tagpage>perspectivebroker|Toutes les pages Twisted Perspective Broker}}**
 +  * **[[using_perspective_broker|Page suivante]]** Using Perspective Broker
 +  * **[[https://github.com/sergeLabo/PB|Les fichiers sources]]**
 +</WRAP>
 +
 +**Traduction Google de [[https://twistedmatrix.com/documents/current/core/howto/pb-intro.html|Introduction to Perspective Broker]] améliorée par un humain ayant fait intergalactique en 1ère langue !**
  
 =====Introduction Perspective Broker===== =====Introduction Perspective Broker=====
-Traduction Google de **[[https://twistedmatrix.com/documents/current/core/howto/pb-intro.html|Introduction to Perspective Broker]]** améliorée par un humain ayant fait intergalactique en 1ère langue !+**La page suivante est [[using_perspective_broker|Using Perspective Broker]]**
  
 ====Introduction==== ====Introduction====
Ligne 48: Ligne 63:
 Techniquement, vous pouvez sousclasser tout ce que vous voulez, mais techniquement, vous pouvez aussi écrire un tout nouveau framework, ce qui vous fera perdre beaucoup de temps. Connaître les classes utiles à la sous-classe ou les interfaces à implémenter est l'une des connaissances essentielles à la réussite de l'utilisation de PB (et de Twisted). Voici quelques conseils pour commencer: Techniquement, vous pouvez sousclasser tout ce que vous voulez, mais techniquement, vous pouvez aussi écrire un tout nouveau framework, ce qui vous fera perdre beaucoup de temps. Connaître les classes utiles à la sous-classe ou les interfaces à implémenter est l'une des connaissances essentielles à la réussite de l'utilisation de PB (et de Twisted). Voici quelques conseils pour commencer:
  
-  * [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Referenceable.html|pb.Root]] , [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Referenceable.html|pb.Referenceable]] : vous les sousclassez pour créer des objets à distance référençable (c.-à-d. des objets sur lesquels vous pouvez appeler des méthodes à distance) en utilisant PB. Vous n'avez pas besoin de modifier le comportement existant, il vous suffit d'en hériter et d'ajouter les méthodes accessibles à distance que vous souhaitez exporter.+  * [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Referenceable.html|pb.Root]] , [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Referenceable.html|pb.Referenceable]] : vous les sousclassez pour créer des objets à distance référençables (c.-à-d. des objets sur lesquels vous pouvez appeler des méthodes à distance) en utilisant PB. Vous n'avez pas besoin de modifier le comportement existant, il vous suffit d'en hériter et d'ajouter les méthodes accessibles à distance que vous souhaitez exporter.
   * [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Avatar.html|pb.Avatar]] : Vous serez en train de sousclasser cela lorsque vous entrerez dans la programmation PB avec autorisation. Ceci est un implémenteur de IPerspective.   * [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Avatar.html|pb.Avatar]] : Vous serez en train de sousclasser cela lorsque vous entrerez dans la programmation PB avec autorisation. Ceci est un implémenteur de IPerspective.
   * [[https://twistedmatrix.com/documents/18.7.0/api/twisted.cred.checkers.ICredentialsChecker.html|ICredentialsChecker]] : Implémentez ceci si vous souhaitez authentifier vos utilisateurs contre une sorte de magasin de données: par exemple, une base de données LDAP, un SGBDR, etc. Il existe déjà quelques implémentations pour différents back-end dans twisted.cred.checkers.    * [[https://twistedmatrix.com/documents/18.7.0/api/twisted.cred.checkers.ICredentialsChecker.html|ICredentialsChecker]] : Implémentez ceci si vous souhaitez authentifier vos utilisateurs contre une sorte de magasin de données: par exemple, une base de données LDAP, un SGBDR, etc. Il existe déjà quelques implémentations pour différents back-end dans twisted.cred.checkers. 
Ligne 116: Ligne 131:
 Enfin, lorsque toutes les références à un [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Cacheable.html|Cacheable]] depuis une perspective donnée sont perdues, stoppedObserving(perspective, observer) sera appelé sur  [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Cacheable.html|Cacheable]], avec la même paire perspective / observateur avec laquelle getStateToCacheAndObserveFor a été initialement appelé. Tous les appels distants de nettoyage peuvent être effectués à cet endroit, tout comme la suppression de l'objet observateur de toutes les listes dans lesquelles il se trouvait auparavant. Tout appel supplémentaire à cet objet observateur sera invalide.  Enfin, lorsque toutes les références à un [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Cacheable.html|Cacheable]] depuis une perspective donnée sont perdues, stoppedObserving(perspective, observer) sera appelé sur  [[https://twistedmatrix.com/documents/18.7.0/api/twisted.spread.pb.Cacheable.html|Cacheable]], avec la même paire perspective / observateur avec laquelle getStateToCacheAndObserveFor a été initialement appelé. Tous les appels distants de nettoyage peuvent être effectués à cet endroit, tout comme la suppression de l'objet observateur de toutes les listes dans lesquelles il se trouvait auparavant. Tout appel supplémentaire à cet objet observateur sera invalide. 
  
-=====Des exemples===== +**La page suivante est [[using_perspective_broker|Using Perspective Broker]]**
-Bon là, je ne comprends pas, c'est de l'intergalactique! +
- +
-====Exemple 1==== +
-<file python pb1client.py> +
-#!/usr/bin/env python3 +
- +
-# Copyright (c) Twisted Matrix Laboratories. +
-# See LICENSE for details. +
- +
- +
-from twisted.spread import pb +
-from twisted.internet import reactor +
- +
-def main(): +
-    factory = pb.PBClientFactory() +
-    reactor.connectTCP("localhost", 8800, factory) +
-    def1 = factory.getRootObject() +
-    def1.addCallbacks(got_obj1, err_obj1) +
-    reactor.run() +
- +
-def err_obj1(reason): +
-    print("error getting first object", reason) +
-    reactor.stop() +
- +
-def got_obj1(obj1): +
-    print("got first object:", obj1) +
-    print("asking it to getTwo"+
-    def2 = obj1.callRemote("getTwo"+
-    def2.addCallbacks(got_obj2) +
- +
-def got_obj2(obj2): +
-    print("got second object:", obj2) +
-    print("telling it to do three(12)"+
-    obj2.callRemote("three", 12) +
- +
-main() +
-</file> +
-<file python pb1server.py> +
-#!/usr/bin/env python3 +
- +
-# Copyright (c) Twisted Matrix Laboratories. +
-# See LICENSE for details. +
- +
-from twisted.spread import pb +
- +
-class Two(pb.Referenceable): +
-    def remote_three(self, arg): +
-        print("Two.three was given", arg) +
-         +
-class One(pb.Root): +
-    def remote_getTwo(self): +
-        two = Two() +
-        print("returning a Two called", two) +
-        return two +
- +
-from twisted.internet import reactor +
-reactor.listenTCP(8800, pb.PBServerFactory(One())) +
-reactor.run() +
-</file> +
- +
-<code bash> +
-Lancement du serveur $ python3 pb1server.py  +
-returning a Two called <__main__.Two object at 0x7fd4aacfb128> +
-Two.three was given 12 +
- +
-Lancement du client $ python3 pb1client.py  +
-got first object: <twisted.spread.pb.RemoteReference object at 0x7f00e4c76a90> +
-asking it to getTwo +
-got second object: <twisted.spread.pb.RemoteReference object at 0x7f00e4c76b00> +
-telling it to do three(12) +
-</code> +
- +
  
-{{tag>python sb intergalactique}}+{{tag>python sb intergalactique twisted perspectivebroker}}
perspective_broker.1669640240.txt.gz · Dernière modification : 2022/11/28 12:57 de serge