NetTalk Central

Author Topic: Design question SOAP-communication flow  (Read 3003 times)

Wolfgang Orth

  • Sr. Member
  • ****
  • Posts: 251
    • View Profile
    • oData Wolfgang Orth
Design question SOAP-communication flow
« on: May 01, 2011, 06:38:00 AM »
Hello all,

I am pondering about the flow of communication.

My recent program (a Win32) and the data sit somewhere in a LAN, lets say on machine X.

On the machines A, B and C there is a desktop LNK to start a local instance.

There are other programs form other vendors which also run on A, B and C.

The plan is now to send a XML-request from that foreign program to mine, When that received request is parsed, my EXE will display a window with some results. It is not intended to send anything back (at least not now).

The request from the foreign program on machine C should affect only the instance of my program on C. On machine A nd B some other persons are working, they are not meant with the response from my program. The same is, when A does a request, only A gets the result, B and C remain silent in that case.

My idea is to make my program a server, listening on port 8888 or whatever.

The means, there are 3 servers running onthat LAN, each one listening to 8888.

The foreign program on machine C sends its request now to 127.0.0.1:8888 and only the instance of my EXE on machine C will respond, as it never left this station.

Its that the way to go?

The alternative would be one server on machine X. But getting the local instance on C to display the result without affecting A and B. Its not my clients starting the communication chain, so it would be diffucult (but not impossible) to invoke their reaction. I would then send heartbeats back and forth during the time-out period to keep the connection alive. But thats not desirable because not really stable, even on a LAN.

Last question: would this first scenario also work when the programs are installed / running on CITRIX terminal-Server?

Thanks for any input,
Wolfgang

peterH

  • Sr. Member
  • ****
  • Posts: 413
    • View Profile
Re: Design question SOAP-communication flow
« Reply #1 on: May 01, 2011, 12:51:36 PM »
Hi Wolfgang,

The way you describe your setup it is of no relevance that your program is being fetched from a server somewhere. Once it runs, ir runs locally and the communication between the two programs is a purely local affair. Of course "the other program" must post the request to localhost or 127.0.0.1 on port 8888 and since your program listens to that port on 127.0.0.1 all should be fine, I'd say.

BTW: exchanging messages in the form of xml doesn't in itself make it SOAP (but it does sound good <g>).

Not sure about Citrix (on which ip does the program actually run?). Others will have to chime in here.

Regards
Peter

Bruce

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 11197
    • View Profile
Re: Design question SOAP-communication flow
« Reply #2 on: May 01, 2011, 10:33:58 PM »
>> The foreign program on machine C sends its request now to 127.0.0.1:8888 and only the instance of my EXE on machine C will respond, as it never left this station.

this is what I'd do.

>> Not sure about Citrix (on which ip does the program actually run?). Others will have to chime in here.

It won't work on Citrix because only one program can listen to port 8888. If you wanted to support a terminal server environment then you would need to determine if multiple instances of the foreign program will run on the machine. If so - they may need to be configured on a user-by-user basis - so that each user has a different port number. You can do this in your machine easily enough, but I'm not sure if you can configure the port on the foreign program on a _per user_ rather than _per machine_ basis.

Not sure if this is related to your other post yesterday, but I'd use NetSimple here (probably) not NetWebServer.

Cheers
Bruce


Wolfgang Orth

  • Sr. Member
  • ****
  • Posts: 251
    • View Profile
    • oData Wolfgang Orth
Re: Design question SOAP-communication flow
« Reply #3 on: May 02, 2011, 02:11:17 AM »
>>> The foreign program on machine C sends its request now to 127.0.0.1:8888 and only the instance of my EXE on machine C will respond, as it never left this station.

> this is what I'd do.

>>> Not sure about Citrix (on which ip does the program actually run?). Others will have to chime in here.

>> It won't work on Citrix because only one program can listen to port 8888.
Well, only my server would listen on that prticular port (or any other chosen by the admin).
But I will try to investigate that further.
My goal is to have just one program that fits in all enviroment. At least its the goal.


> Not sure if this is related to your other post yesterday, but I'd use NetSimple here (probably) not
> NetWebServer.

Yes, it is... so I would have to roll my own protocoll, which is not much in this case.

But then I have a webserver and a simple server to maintain. Maybe MultiProject comes to help here?


In the meantime I have remembered about of my exquisite drawing skills ::) and this is what came out of this surge of creativity.

[attachment deleted by admin]

Bruce

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 11197
    • View Profile
Re: Design question SOAP-communication flow
« Reply #4 on: May 02, 2011, 05:05:20 AM »
>> Well, only my server would listen on that particular port (or any other chosen by the admin).

yes - but it's _per machine_ not _per user_.
So _1_ user can run the server, but not all of them, on the same port.

Citrix is multiple desktops on the same PC. A server that opens a port is not related (or bound) to any one desktop.

cheers
Bruce

Flint G

  • Jr. Member
  • **
  • Posts: 55
    • View Profile
    • Email
Re: Design question SOAP-communication flow
« Reply #5 on: May 03, 2011, 02:54:44 PM »
>> Citrix is multiple desktops on the same PC. A server that opens a port is not related (or bound) to any one desktop.

Unless you're talking about virtual servers, in which case each "server" has a virtualized set of ports ... so each "server" could have a process listening on the same port number as any other "server" already has.

Regards,
Flint
NetTalk: 12.26
Clarion: 9.1.11529
Brave: 1.31.88
Chrome: 95.0.4638.69
Edge: 95.0.1020.44
ExtJS: 7.0.0.156