We used Machine Learning approaches in E- governance system and developed a framework with RESTful API for citizen access.
5.1 Implementation Environment
The deployment procedure of our proposed framework in started with creating new VPC which includes three public and one private subnet. Later we create an Internet gateway and a NAT gateway from which NAT gateway is placed in public subnet and associate an EIP to it Then finally create route by adding IGW to the public subnet and NAT Gateway to the private subnet.After that we initialize security group for each subnet for security purpose and create dashboard-sec for dashboard subnet, db-sec for db-subnet, api-sec for api segment and jump sec for jump subnet. Then we create an EC2 instance for dashboard application. We deployed the code base and create an Internet facing classic load balancer.After creating a launch configuration with dashboard application, we also create auto scaling group and add load balancer that previously created. We add the scaling policy on CPU utilization which scales the servers and send alerts through emails.
We designed four tables for our database named authenticated_organization, people, aws_face, and police_record. The fields needed for the tables are listed in Table 3. People table has relation with aws_face and police_record using the national_id field. To create JSON Web Token for API call authenticity, a combination of organization’s id, email address and password will be used.
5.2 Performance Evaluation
Primarily the neural network contains one picture per person mapped to the persons NID. For this reason, falsification of face recognition is occurred in some cases. We used the face recognition technology (FERET) database  which is a dataset used for facial recognition system evaluation to measure the error rate. We mapped one individual photo with one national id. Then we tested the system using same individual’s other photos available in the FERET database.
We calculate the error rate of the framework by measuring number of false results returned by the API. At first, the neural network has only one image per person. We mark this stage as single image stage. In each verification request if there is 80–95 % similarity then the framework adds the new image to neural network. By using this machine learning approach provided by AWS, it becomes easy and efficient to verify people by the increasing number of iterations. As the number of iteration is increases, the error rate is decreases. Even for this deep learning approach, this image data can be used further for video verification.
Error rate in this single image per person scenario is 1.60%. After this iteration, each searched persons have two facial data (on average) available. The error rate in this scenario is 1.13%. In third iteration, there are three facial data (on average) is available for each person. The error rate in this step is 0.27%. The improvement of each iteration is shown in Fig. 4.
5.3 Scalability Evaluation
To evaluate the scalability of our framework we chose CPU utilization as primary metric. The auto load testing script which is developed is used to generate artificial hit on the API endpoints. The CPU utilization of EC2 instances of People Identity Verification API is shown in Fig. 5. The Y axis reflects the CPU utilization and is measured in percentage which go up by 5 percent at each level. The X axis represents time frame. The instances are configured to add multiple instances instantly in case of high CPU utilization.
Furthermore, we generate excessive hit on the API endpoints using test script and exceeds the maximum limit of CPU power. Our system is configured to generate alert for low and excessive CPU utilization within a time range and add additional computing resources as needed. The additional resources are detached from the system when the CPU utilization becomes normal. Figure 6 shows a scenario of live monitoring the instances.
5.4 Cost Evaluation
For any application framework, cost assumption is important to evaluate the efficiency and usability. We deployed our application in Amazon Web Services (AWS) which offers a pay-as-you-go approach. With AWS the application needs to pay only for the individual services it needs, for as long as it uses them. It requires to pay for the services the application framework consumes, and once it stop using them, there are no additional costs or termination fees. If we used non cloud hosting for our application framework neither it would not scalable nor efficient. The charges of various services utilization are shown in Fig. 7. This figure proves that costing is reliable and efficient for this application framework.