Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour les gens!
J'aimerai que quelqu'un satisfasse ma curiosité: existe-t-il un moyen en PB pour établir des connections client-to-client? Quels objets utiliser?
Bête exemple: client 1 essaie de lire la variable globale 2 du client 2. How to do that? (ou encore client 1 essaie de lire la variable d'instance de l'objet 2 du client 2)
Un grand merci d'avance ;-)
Dernière modification par Shed (26-10-2011 08:30:46)
Hors ligne
Dans quel but ?
Des solutions pour faire communiquer 2 applications, ça existe (mailslot, corba, tcp...) à condition sans doute de définir un protocole de dialogue.
Mais un truc pour accéder directement à des propriétés d'un objet se trouvant dans une autre application ou instance de l'application, à priori je ne vois pas.
Hors ligne
Ouaip, c'est bien ce que je me disais. Pas d'équivalent d'objet de communication pour le client-to-client.
J'ai trouvé ceci: http://www.level5software.net/documents/Pslib21.htm
D'après ce que j'ai compris, c'est un sender d'un coté, un listener de l'autre et la possibilité de faire transiter des blobs en tcp/ip d'une machine à une autre. Par contre, ça m'a l'air assez vieux, et puis faut aussi tout coder les interfaces de communication, parce que c'est cool de pouvoir faire transiter des blobs, mais ça ne reste jamais que des blobs. Ca m'étonne quand même que personne n'ait jamais développé de librairie pour ce genre de choses.
----------
seki a écrit:
Dans quel but ?
La même chose que chaque nuit Minus: tenter de conquérir le moooOOOoooooOOOnde!
Dernière modification par Shed (27-10-2011 06:52:38)
Hors ligne
seki a écrit:
Dans quel but ?
Sinon, tu peux toujours passer par la base de données, ça sera plus simple.
Hors ligne
Shed a écrit:
J'ai trouvé ceci: http://www.level5software.net/documents/Pslib21.htm
The PowerSocket Library...
Shed a écrit:
D'après ce que j'ai compris, c'est un sender d'un coté, un listener de l'autre et la possibilité de faire transiter des blobs en tcp/ip d'une machine à une autre. Par contre, ça m'a l'air assez vieux, et puis faut aussi tout coder les interfaces de communication, parce que c'est cool de pouvoir faire transiter des blobs, mais ça ne reste jamais que des blobs. Ca m'étonne quand même que personne n'ait jamais développé de librairie pour ce genre de choses.
Comme tu dis, en socket il faut se farcir toute le protocole...
Autant utiliser un autre canal de communication comme les mailslots qui simplifient grandement la communication (un process ouvre la mailslot et envoie des messages dedans -un peu comme un pipe-, un ou plusieurs autres process -éventuellement écrits dans un autre langage ou sur une autre machine- viennet ensuite lire les messages de manière asynchrone) seulement une fois qu'on a fait transiter les données d'un objet dans le tuyau, il faut encore pouvoir transformer les blobs en objets vivants dans la VM de destination... Et pour faire Frankenstein, en tête je ne vois que corba, qui permet de transmettre des objets. Ceci dit ça ne répond pas à la problématique de départ ou un objet A veut accéder à des propriétés d'un objet B ailleurs.
Hors ligne
erasorz a écrit:
seki a écrit:
Dans quel but ?
Sinon, tu peux toujours passer par la base de données, ça sera plus simple.
Parce que je suis naturellement curieux et naturellement fun ^^. J'me suis créé un petit jeu style jeu de dames en pb et j'me suis simplement demandé si j'pourrais y jouer avec mes collègues :-) (ok, on est loin de la domination du monde...)
Passer par une base de données pour faire ça, clairement non. J'ai pas envie de mettre en place une DB pour ça. Et puis ça m'oblige à développer moi même le listener qui va aller checker la DB toute les x dixièmes de secondes pour prendre en compte les changement (l'éternel problème), c'est pas propre.
Hors ligne
seki a écrit:
Shed a écrit:
J'ai trouvé ceci: http://www.level5software.net/documents/Pslib21.htm
The PowerSocket Library...
C'est quand même amusant, on dirait que tu parles de ça comme d'un viel artefact perdu.
Ca sent les anciennes prises de tête là-dessous :-)
Hors ligne
Shed a écrit:
Et puis ça m'oblige à développer moi même le listener qui va aller checker la DB toute les x dixièmes de secondes pour prendre en compte les changement (l'éternel problème), c'est pas propre.
Dans tous les cas tu seras obligé de faire un "listener"
Hors ligne
Hors ligne
erasorz a écrit:
Shed a écrit:
Et puis ça m'oblige à développer moi même le listener qui va aller checker la DB toute les x dixièmes de secondes pour prendre en compte les changement (l'éternel problème), c'est pas propre.
Dans tous les cas tu seras obligé de faire un "listener"
Oui mais:
- Quelqu'un a peut-être déjà écrit des choses pour ça (d'où mon post)
- Je pense pas que harceler une DB soit le meilleur moyen d'implémenter ça.
Hors ligne
Ton besoin semble assez proche du mailslot que propose seki (d'ailleurs il me semble qu'il à un objet PB pour çà à dispo) : cela te permet de gérer la couche messagerie.
Cependant il n'y a pas la couche d'interface 'automagique' pour piloter/interroger un objet PB instancié powerobject1 sur HOST1 depuis HOST2.
J'ai bien une idée pour se rapprocher de çà mais c'est encore dans mon labo ...
Dernière modification par xlat (27-10-2011 12:34:25)
Hors ligne
xlat a écrit:
Ton besoin semble assez proche du mailslot que propose seki (d'ailleurs il me semble qu'il à un objet PB pour çà à dispo) : cela te permet de gérer la couche messagerie.
Cependant il n'y a pas la couche d'interface 'automagique' pour piloter/interroger un objet PB instancié powerobject1 sur HOST1 depuis HOST2.
J'ai bien une idée pour se rapprocher de çà mais c'est encore dans mon labo ...
librairie PB? Ca pourrait m'intéresser.
Hors ligne
C'est moi ou on savait faire ça avant avec PB????
http://techno-kitten.com/Changes_to_Pow … puting.htm
-_-
Quand tu vas voir la doc sybase à ce sujet là, tu as droit à: "Coucou les loulous, on a arreter de suivre ce machin à PB8, si vous voulez du serveur prenez notre EAS usine à gaz".
Hors ligne
Shed a écrit:
librairie PB? Ca pourrait m'intéresser.
Je viens de publier mon proof-of-concept dans un autre post de PBadonf.
En cherchant bien, on doit pouvoir trouver des bugs encore non corrigés, toute dénonciation est bienvenue
Hors ligne
Shed a écrit:
C'est moi ou on savait faire ça avant avec PB????
http://techno-kitten.com/Changes_to_Pow … puting.htm
-_-
Quand tu vas voir la doc sybase à ce sujet là, tu as droit à: "Coucou les loulous, on a arreter de suivre ce machin à PB8, si vous voulez du serveur prenez notre EAS usine à gaz".
Yep,
et tu veux pas installer une EAServer pour jouer aux dames ?
Hors ligne
Oui, le fameux objet transport qu'ils ont
Hors ligne
Hummm... dommage... je crois que c'est ce qu'il m'aurait fallu.
Hors ligne
Non mais c'est complètement mercantile d'avoir fait ça... je m'insurge... ça avait l'air génial cet objet...
Hors ligne
Shed a écrit:
Non mais c'est complètement mercantile d'avoir fait ça... je m'insurge... ça avait l'air génial cet objet...
Ca l'était effectivement
Hors ligne
Pas de bidouille possible pour récupérer ça?
J'imagine que je ne suis pas le premier à dire ce genre de choses...
Hors ligne
Shed a écrit:
Non mais c'est complètement mercantile d'avoir fait ça... je m'insurge... ça avait l'air génial cet objet...
tu n'es pas le premier à t'insurger : http://pbadonf.fr/forum/viewtopic.php?pid=22072
Hors ligne
Oui
Hors ligne
Sinon il y a un exemple de winsock pour PB sur codexchange (il faut juste créer un login gratuit) : http://downloads.sybase.com/codexchange … sock32.pbl
Hors ligne
Je l'ai déjà
Je crois que je vais m'orienter par là ou alors en utilisant ce que seki a développé.
J'me demande quand même comment je vais coder toute la partie "triggering".
Avec un timer à mon avis.
Hors ligne
Shed a écrit:
xlat a écrit:
...
J'ai bien une idée pour se rapprocher de çà mais c'est encore dans mon labo ...librairie PB? Ca pourrait m'intéresser.
oui, c'est un PBNI, qui permet de scripter du powerbuilder en perl, d'où ma citation
xlat a écrit:
la couche d'interface 'automagique' pour piloter/interroger un objet PB
Par exemple, tu pourrais envoyer un script depuis HOST2 à HOST1 qui l’exécuterait et çà pourrait ressembler à çà:
$w_dammes->Of_play('host2', 'Row3Column2', 'Row4Column3')
et donc en pb :
in_perl.eval( ls_script )
Hors ligne