The Web platform for the electronic counting of votes had to be focused on providing the citizens of Mendoza with specific information about the elections, such as querying the electoral register online. In addition, it had to meet the need for fast and consistent data, which is inherent to the electoral context, with an agile and accurate response to the counting of votes.
On one side, the loading of data had to be decentralized (uploaded from the polling stations), and on the other hand, the application's scalability had to be taken into account, considering the large number of concurrent web queries that take place during the elections.
To this end, a web solution divided in three independent Java-Web applications was designed: 1. System for decentralized uploading and vote counting process. 2. System for querying results and publishing the counting of votes. 3. System for querying the electoral register.
Technologies used :: GeneXus, GXportal and GXchart
In addition to using GeneXus for platform development, it was complemented with GXportal for publishing the portal with election-related information. The use of GeneXus and GXportal simplified and accelerated the process of implementing the project. This, combined with the experience of ACP Ingeniería en Sistemas SRL handling the technologies involved and working in the field of mission-critical solutions for governments, ensured the high quality of the end result. Due to the various objectives and problems to be solved, it was decided that the best approach would be to divide the project development into three independent Java-Web subsystems, using GeneXus:
1. System for decentralized uploading and vote counting process:
A system in charge of providing a decentralized, reliable and dynamic loading mechanism from the various authorized polling places.
2. System for querying results and publishing the vote count:
System in charge of the primary and final sampling of polling stations, as it is completed in the different locations where Telegrams are loaded. Thus, it is possible to update results and the distribution of government seats on the web.
3. System for querying the electoral register:
A system that allows citizens to query the electoral register and provides the necessary details on the precise location of the corresponding polling station.
All applications were run on various Linux servers with Java – Web technology, using Tomcat 5.5 as app server and DB2 for iSeries as DBMS. For generating graphics, GXChart was installed on a local server.
Information security :: strategies for maintaining confidentiality
One of the main challenges of the distributed loading was electoral data security, as it is confidential up to its processing and publication. This was taken into account during development and was solved using security levels:
· For connecting to each remote loading station in the system, a VPN (Virtual Private Network) was established with the server, making sure that access was allowed to the system from a single workstation per loading place.
· In the application, it was controlled that only one user associated with the IP provided by the VPN could load only those telegrams (vote count results) corresponding to his loading station.
In this way, multiple controls were performed in the various tiers that make up the Web application.
Data loading and querying :: Agile and scalable with data entry and HTML static pages
Data loading had to be secure and fast, as well as easy to perform by non-IT staff.
:: Agile
So that in addition to being secure, the loading was agile for operators, the Web forms for loading vote count results were designed as “data entry”, which means that they didn’t require using the mouse at any stage, and could be completed using only the numeric pad.
:: Scalable
As for publishing vote count results, it was necessary to define a mechanism that would allow for ample scalability, due to the large number of concurrent data queries that had to be made in a short time span and the constant generation of statistical charts. To this end, HTML static pages were generated with the results that didn’t require access to the database. This significantly improved the response time to requests for vote count results, successfully supporting the high volume of requests received. And all this was achieved using only GeneXus, with no need for any external solution.
**************************
From the point of view of government management, it was possible to publish the final voting result within approximately 3 hours while preliminary results started to be shown within 45 minutes after the polling stations were closed. In addition, data quality was significantly improved thanks to the loading being performed directly from the stations, drastically reducing the number of human errors.
Compared to the elections in 2007:
- The first data sampling was provided approximately 2 hours earlier.
- The final vote count was provided approximately 6 hours earlier.
- The number of errors in telegrams was reduced approximately by 70%.