Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking for info on creating a remote management interface for our software. This is not anything illicit. Our software is for live TV production and once they go on-air we can't access the PC (usually through LogMeIn).

I would like to be able to upload/download files and issue commands to our software. The commands would be software specific like "load this file" or "run this script" or "return this value" etc.

A socket connection is preferred but the problem is most of our PCs are behind firewalls and NAT servers. I'm not sure where to start. I think HTTP tunneling is the way to go but am wondering if there are other options or recommendations.

Also, assume our clients are not willing to open up ports for security reasons.

Thanks.

share|improve this question
1  
This sounds like your client will be very unhappy WHEN they find out about it. –  Walter Dec 7 '12 at 19:17
1  
If this kind of functionality is required, you should tell your customer and explain why it is beneficial to you and them. Now you will be adding a new feature/selling point instead of an undocumented backdoor that could be a security risk. –  unholysampler Dec 7 '12 at 19:24
    
Just wrap your updates in an app called "naked natalie portman.exe" and post it on the net. It will be on the machines in hours. –  Martin Beckett Dec 7 '12 at 19:43
1  
The term "back door" is defined to mean a connection the user doesn't know about. If it's intentional and aboveboard, you want to call it a remote management interface. –  Karl Bielefeldt Dec 7 '12 at 19:46
    
How are you charging your client for the time that you spend on this backdoor? Will it be a line item in the invoice? –  user16764 Dec 7 '12 at 20:07

1 Answer 1

up vote 1 down vote accepted

If your clients are unwilling to change any network configurations you are out of luck.

You have two options assuming your clients are willing to work with you.

  1. RPC
  2. HTTP

I recommend http. Simply create a web interface for your application (home grown or not) and have certain urls trigger events in your application. You web server will listen to your socket and you can have whatever you want happen in response to the url that is requested (or whatever other verb is used). You need not limit yourself to http/1.1 though -- you could write your own protocol on top of a socket connection.

If you are lucky, the machine has a public IP address and port 80 is open for incoming connections.

share|improve this answer
    
Isn't RPC implemented with sockets? –  user16764 Dec 7 '12 at 19:48
    
It can be yes.. –  David Cowden Dec 7 '12 at 20:04

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.