Trying to implement an electronic voting system as a college project and just faced the most important step towards my aim < the system architecture >
Multi-Server/Multi-Client , MUST really be reliable to the point of about 80 million clients are online , It also MUST permit new server joining to support the voting process , Its output will be statistics & reports so that it MUST allow me gathering information at any time , Supporting encryption , hashing , digest acks , .. etc
My aim is just to support lots of clients without central point of failure then make client fount the suitable server(s) to authenticate & vote
Suitable server(s) depends on 2 criteria :
First criteria used Initially only , Both are used during voting process
After searching samples around my project found 6 solutions :
From my point of view last solution was the suitable as there isn't any bottle neck point of failure , this leads me start searching an out of box DHT library or full distributed system to be integrated in my application or just reinvent the wheel & implement the whole thing from scratch !!
Questions :
- Did i choose the right solution ?
If YES , Please point me to the right route leads to an out of box [ .NET ] library or system !
If NO , Please point me to the suitable [ .NET ] solution even that I didn't mention it in my 6 solutions !
Regards ,
NChord could get you started without having to start from scratch and probably will be good enough for an academic project.