views:

37

answers:

1

This is a broad but specific question. The idea is that we want to tie in a 'buddy' functionality to a communications app. Very broadly, I believe that the application clients would connect to a central database/auth service which would provide the buddy data and then allow client apps to connect directly to eachother, without passing communications through the server.

Specifically, however, what solutions, software, products, servers, technologies, etc would be best to implement to handle such a task?

Thanks for reading and responses are much appreciated.

//edit: the com app may run on a linux distro, may be web based, or both

A: 

To do something like this is similar to a file sharing architecture. Where you have a central store for all of your buddy information. This would have a service based API that your other applications would be aware of. The buddy server would need to know about the client applications and their physical locations. This in turn would allow the client applications to log in to the buddy server, locate the other clients in the area, and then connect to them directly.

Where this becomes a problem is getting around fire wall issues. The clients would have to act as mini-servers here. Once a client logs in to the buddy server, discovers the other clients that it might want to connect with, it will then have to establish communications with them...sometimes through a firewall. This is where I am lost as I have not done this aspect of it.

The other way around this is to keep your clients logged in to the buddy server where by all communications are routed through the server to the other logged on clients. This is a more resource intensive manner to approach this type of problem...and not the suggested route.

Andrew Siemer