150 likes | 176 Views
Learn how to design and implement an online voting system that can handle elections at any level with a user-friendly web interface. Explore the structure of a distributed system, node organization, user authentication, and communication strategies. This guide covers key design goals and implementation methods to ensure a seamless voting experience.
E N D
Design of an OnlineVoting System Adrian Ilie & Miguel A. Otaduy COMP 204, Spring 2001
Design Goals • handle elections of any kind at any administrative level • provide an easy-to-use on-line (web-based) interface • allow both a distributed and a stand-alone system organization
Example of a Distributed Election Consider an election day when elections are held at the national, state and local level. Voter data is retrieved from a census database, distributed in three locations.
Structure of a Node FAÇADE • election objects • user objects • managers DB • voters DB • candidates / answers DB • results DB
Connecting the Nodes (1) Having distributed databases means we have to search for data at different nodes... CHAIN OF RESPONSIBILITY
Connecting the Nodes (2) … but it’s distributed! PROXY
Abstract User Class • implements authentication methods • serves as a superclass for concrete user types FACTORY METHOD
User Type: Voter Created at engine with the database that contains the data about it.
User Type: Candidate All interactions are local.
User Type: Manager All interactions are local.
Menus and Actions COMPOSITE FLYWEIGHT
Handling Election Types STRATEGY
Communication Issues PROXY
OFF-LINE Application • Creation of proxy objects for remote engines. The local chain is set at each node. Customers have to agree on what nodes are included in the global system. • Creation of election objects and the manager database. • Maintenance of voter and candidate databases.