473,324 Members | 2,473 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,324 software developers and data experts.

Design/Architecture question : redundancy for small client/server network

Hello all;

This is going to be a bit long...sorry...

I am about to start out on a small scale client/server type system.
The server will collect data from various sources (custom hardware over
ethernet), and make that data available to the clients (either
webservices or remoting, not sure yet). Since the hardware is
networked, the clients could talk to it directly, but I don't want to
put the hardware through that load since reads/writes are half slow,
hence the server. The server will also serve web pages to the external
world for monitoring purposes. In addition to "pulling" data from the
server, the clients will also have to "push" information to configure
the hardware.

This is pretty standard stuff, that I've done a bunch of times. But
now I want to be able to add a level of redundancy/high availability.
I don't care if the web pages stop getting served, but I always want
the clients to have access to the hardware data (both setting the
config and reading back).

The obvious solution would be to have a "spare" server, the same way
you would have a server cluster in a web farm. But given the scale of
the system (~10 clients), that seems overkill. Ideally what I'd like
to be able to do is to "promote" one of the clients to the server role
(with the exception of the webpages) until the real server comes back
online.

Has anyone tackled this sort of concept before? Are there any
"patterns" for this type of behaviour? I'm sure that I'm not the first
who'd want to do something like this, and it seems do-able.

The first thing I thought of would be for the server to gather a list
of all clients, and give that list back to each client. If the main
server were to go offline, each client would start going down the list
searching for the backup server - if the next item is "me", then I
become the backup server, otherwise try to contact that item and use it
as the server (this would all happen behind some proxy class). The
problem that appears to exist is the delay between a client switching
to the server role. If "Client A" is in the midst of assuming the
server role, and "Client B" tries to access "Client A" as the
backup-server, it is possible that the switch is incomplete and "Client
A" won't respond, resulting in "Client B" continuing down the list.
Maybe this could be solved using a "retry" scheme, or cycling through
the list a few times...

Thanks for reading all that!!

Derrick

May 18 '06 #1
0 1538

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

43
by: grz02 | last post by:
Hi, Im an experienced database+software designer and developer, but, unfortunately, anything to do with web-programming and web-systems designs is still a pretty new area to me... (been working...
4
by: CJM | last post by:
I have a potential client who has a Access-based DB which they use for recording orders, customer details etc... They want to provide some of this information online, eg. customer account...
17
by: tshad | last post by:
Many (if not most) have said that code-behind is best if working in teams - which does seem logical. How do you deal with the flow of the work? I have someone who is good at designing, but...
7
by: Samuel | last post by:
Hi, I am looking for some recommendations for client/server technologies and for the communication involved. I am currently planning to port a Perl application that has grown out of...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.