# An Experimental Performance Evaluation of Cloud-API-Based Applications
## 3 Methodology and Experimental Setting
### Testing Process and Approach  
In this work, we introduce a performance evaluation study that aims to assess different cloud computing platforms for different API-based application categories (i.e., educational and professional). These categories were selected because they have been the ones most commonly deployed in the cloud environment during the COVID-19 lockdowns. The entire world suddenly switched to online studies, and most professional businesses went online as well.  
Figure 1 summarizes the sequential steps of the proposed experimental study. The first step was to select applications for the testing process and investigate their characteristics and the parameters affected. In our work, two mobile applications based on web-APIs were selected from two different categories. These applications were Sebawayh (i.e., educational application) and TaqMan(i.e., professional application). Sebawayh is an educational web-API and smartphone app for Arabic language learning. It has three main users: students, teachers, and system administrators. It has multiple learning levels and categories. The system has a registration form for the students before starting any level of learning on the system. It has a smartphone interface that sends HTTP requests to the web-API. On the other hand, TaqMank is a solar power renewable energy design, monitoring, and management application. It is utilized to monitor power system usage and to show reports about the system. It can also be utilized by engineers to calculate the voltage requirements of any system. It calculates the voltages and battery power and monitors consumption. It can be connected to a third-party application to receive power usage data for the monitoring process.  
The next step was to lease cloud servers and configure them according to the tested applications. The most popular and commonly used platforms were selected in this study (i.e., Amazon AWS EC2 and Microsoft Azure). The third step was to deploy the APIs on the configured servers. A load test method was used to compare the two applications on the two cloud platforms. To test these web services/APIs, an open-source load-testing framework was utilized, named Apache JMeter [18]. This framework is used for application and web service testing, as well as for measuring and analyzing the performance of a variety of web services including web-based/cloud applications. JMeter, considered as a multi-threading framework, allows concurrent workload sampling [19]. It can be configured to automate web services' testing regarding different parameters. Finally, the collected results were analyzed and compared according to the considered parameters, as illustrated in Figure 1. In this study, we focused on collecting technical performance parameters. Allmonitoring data were extracted from JMeter after each test completed [20]. The investigated parameters of this study were:  
* **Response time**: measures the required time for handling the request and returning the results for the request;
* **Latency**: measures the required time for the request to reach the server. This time is used to measure the network quality between the server location and clients. It also can be impacted by the load that hits the server;
* **Processing time**: measures the required time of the operating system to work or process a request;
* **Throughput**: measures the number of tasks that have been completed during a certain period of time. In the cloud environment, throughput measures how fast the application can transfer the data between a client and a server.