Need some advice before design/coding a network baes software

Hello group,

I'm planning to write a utility to setup on two different work stations (X and Y). Each work station lives in two different networks. I like to be able to see and have access to contents or see storage

Where can I start to implement this kind of application from scratch? what elements are important to create such a software?

Who is Participating?
OrcbighterConnect With a Mentor Commented:
Firstly, I take it from your question that you want to write it all yourself? Thus ruling out any existing 3rd-party software that might already  do the job, such as TeamViwer.

Secondly, you could look at Microsoft's Remote Desktop Services facility (used to be called Terminal Services). This would be the means to access the computer, then you could run a tailored program that could be run and report.
Use the client-server idea I mentioned previously. If this suits, do some research on some simple client-server or pier-to-peir programs in whatever language you decide on, in order to understand TCP and how to use it. Afterall, this will be the means that you use to connect from server to client and pass information.
The next thing would be to do similar research on Windows Services. This will be the architecture you use to design the programs that will run on the remote machines.
First, you should try to use TcpClient to send/receive data. After making you a hand with this, you'll be able to think of the protocol you'll create to your purpose.

A protocol shall include :
- Message structure
- Message acceptable using the structure defined
- The interaction between the two parties in terms on the order of messages to achieve a functionality.
- The error detection / correction
- The security level (as you would probably pass over the internet, any can intercept your data)

Meaning that, you probably profit to document yourself on existing protocols and those subjects.

After having tested mentally and conceptually your protocol, you can implement it using the TcpClient.
akohanAuthor Commented:

Thanks Djon,

so base on that what data do I need to be able to make a peer to peer connections. or I guess I cannot call that peer to peer connection since they will be in 2 different networks. Right?
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

That's something to decide too. Do you want a client/server paradigm, P2P, else ? That depends also on your needs and what you want to offer.
Just a thought;
You state "...I like to be able to see and have access to contents or see storage"

You don't specify whether your programs will pass this information across the network, or if this information is purely for use by the local copy of your program.
If you are doing the first option, then the first question will be whether the network security people (who are all wonderfull people, really!) will let you do this. If the answer is no, and you can't convince them otherwise, there is no point in writing the program in the first palce.
Just a happy thought for you to ponder :-)
akohanAuthor Commented:

For now the requirements is only to see the contents on other station ... not passing anything just checking and displaying contents of a remove machine.

first point, from your response I understand that you will be accessing remote machines to see what the contents are on that macjhine. If correct, then the act of "seeing" is actually having information from those machines being passed back for you to view. The only way to view the information directly would be to log on to each machine, which I think is not what you want.
Most commercial products that do similar tasks to what you describe use a similar setup. They have a client program on the remote machine (daemon in Unix, service in Windows) that performs all the data acquisition tasks. They start with the machine when its boots and run continuously.
On another machine they can run a main task that can connect to the client on the remote machine ( or the remote client can be periodically trying to connect to the main task).  When the connection to the main program is made, the remote client transmits the latest information, probanly via TCP/IP, although some sites may prefer you to use HTTPS. Your main program can then format the data for viewing or for reports as you see fit.
akohanAuthor Commented:

Hi OrcBighter,

Thank you for the heads up. May I ask what direction I should take toward this theory? any online resources or book that I can go for?

akohanAuthor Commented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.