perspective_broker
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
perspective_broker [2018/09/09 12:16] – [Les choses que vous pouvez copier à distance] serge | perspective_broker [2022/12/05 15:51] (Version actuelle) – [Python: Twisted Perspective Broker] serge | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Python: Twisted Perspective Broker ====== | ====== Python: Twisted Perspective Broker ====== | ||
- | <WRAP center round info 60%> | + | <WRAP center round info centeralign |
- | Niveau Pro | + | **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' | ||
+ | * les exemples ne respectent pas le PEP 8, c'est imbriqué au possible | ||
</ | </ | ||
+ | |||
+ | <WRAP center round box 60% > | ||
+ | * **{{tagpage> | ||
+ | * **[[using_perspective_broker|Page suivante]]** Using Perspective Broker | ||
+ | * **[[https:// | ||
+ | </ | ||
+ | |||
+ | **Traduction Google de [[https:// | ||
=====Introduction Perspective Broker===== | =====Introduction Perspective Broker===== | ||
- | Traduction Google de **[[https:// | + | **La page suivante est [[using_perspective_broker|Using Perspective Broker]]** |
====Introduction==== | ====Introduction==== | ||
- | Supposons que vous vous retrouviez dans le contrôle des deux extrémités du fil: vous avez deux programmes qui doivent se parler et vous pouvez utiliser n' | + | Supposons que vous vous retrouviez dans le contrôle des deux extrémités du fil: vous avez deux programmes qui doivent se parler et vous pouvez utiliser n' |
Le système Perspective Broker (en abrégé «PB») repose sur quelques concepts centraux: | Le système Perspective Broker (en abrégé «PB») repose sur quelques concepts centraux: | ||
* serialization = sérialisation : prendre des objets et des types assez arbitraires, | * serialization = sérialisation : prendre des objets et des types assez arbitraires, | ||
- | * remote method calls = ppels de méthode distants | + | * remote method calls = appels |
- | Ce document contiendra plusieurs exemples qui sembleront redondants et verbeux une fois que vous aurez compris ce qui se passe. Pour commencer, une grande partie du code sera simplement étiquetée «magic»: | + | Ce document contiendra plusieurs exemples qui sembleront redondants et verbeux une fois que vous aurez compris ce qui se passe. Pour commencer, une grande partie du code sera simplement étiquetée «magic»: |
====Feuille de route de l' | ====Feuille de route de l' | ||
Ligne 37: | Ligne 52: | ||
====Sous-classement et mise en œuvre==== | ====Sous-classement et mise en œuvre==== | ||
+ | <code python> | ||
+ | class A: | ||
+ | pass | ||
+ | class B(A): | ||
+ | pass | ||
+ | </ | ||
- | Techniquement, vous pouvez sous-classer tout ce que vous voulez, mais techniquement, | + | **Si une class B hérite d'une autre class A, B est une sous class de A.** |
- | | + | Techniquement, |
- | * [[https:// | + | |
+ | | ||
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
Ligne 70: | Ligne 93: | ||
En plus de renvoyer des objets sur lesquels vous pouvez appeler des méthodes distantes, vous pouvez renvoyer des copies structurées d' | En plus de renvoyer des objets sur lesquels vous pouvez appeler des méthodes distantes, vous pouvez renvoyer des copies structurées d' | ||
- | Deux variantes de base permettent de copier des objets à distance. Encore une fois, vous pouvez les utiliser en les sous-classant. Afin de spécifier l' | + | Deux variantes de base permettent de copier des objets à distance. Encore une fois, vous pouvez les utiliser en les sous-classant. Afin de spécifier l' |
+ | | ||
+ | ou méthode spécialisée par défaut de Python pour cette saveur. | ||
* [[https:// | * [[https:// | ||
- | C'est le type d' | + | C'est le type d' |
[[https:// | [[https:// | ||
Ligne 80: | Ligne 105: | ||
<code python> | <code python> | ||
- | from twisted.spread import flavors | + | from twisted.spread import flavors |
- | class Foo ( flavors . Copyable ): | + | |
- | pass | + | class Foo(flavors.Copyable): |
- | class RemoteFoo ( flavors . RemoteCopy ): | + | pass |
- | pass | + | |
- | flavors . setUnjellyableForClass ( Foo , RemoteFoo ) | + | class RemoteFoo (flavors.RemoteCopy): |
+ | pass | ||
+ | | ||
+ | flavors.setUnjellyableForClass(Foo, | ||
</ | </ | ||
Ligne 91: | Ligne 119: | ||
* [[https:// | * [[https:// | ||
- | Permettez-moi de commencer par un avertissement: | + | Permettez-moi de commencer par un avertissement: |
- | Cacheable est une saveur conçue pour être copiée uniquement lorsque cela est nécessaire et mise à jour à la volée au fur et à mesure des modifications. Lorsqu' | + | [[https:// |
- | Cacheable est conçu pour minimiser les erreurs liées à la réplication d'un objet entre plusieurs serveurs, en particulier ceux liés aux informations obsolètes. Pour ce faire, Cacheable enregistre automatiquement les états des observateurs et des requêtes, ensemble. Vous pouvez remplacer la méthode getStateToCacheAndObserveFor(self, | + | [[https:// |
Semblable à getStateToCopyFor , getStateToCacheAndObserveFor reçoit une perspective. Il reçoit également un observer , qui est une référence distante à une quatrième version référençable «secrète»: | Semblable à getStateToCopyFor , getStateToCacheAndObserveFor reçoit une perspective. Il reçoit également un observer , qui est une référence distante à une quatrième version référençable «secrète»: | ||
Ligne 101: | Ligne 129: | ||
Un [[https:// | Un [[https:// | ||
- | Enfin, lorsque toutes les références à un [[https:// | + | Enfin, lorsque toutes les références à un [[https:// |
+ | **La page suivante est [[using_perspective_broker|Using Perspective Broker]]** | ||
- | {{tag> | + | {{tag> |
perspective_broker.1536495363.txt.gz · Dernière modification : 2018/09/09 12:16 de serge