Skip to Content
Applied SciencesApplied Sciences
  • Article
  • Open Access

29 November 2021

A Dynamic Decision Support System for Selection of Cloud Storage Provider

,
,
and
1
Information and Communication Engineering Department, Yeungnam University, Gyeongsan 38541, Korea
2
Department of Computer Science, Federal Urdu University of Arts, Science & Technology, Islamabad 44000, Pakistan
3
Department of Computer Science, CECOS University, Peshawar 25120, Pakistan
*
Author to whom correspondence should be addressed.
This article belongs to the Section Computing and Artificial Intelligence

Abstract

In recent years, the cloud computing model has gained increasing attention and popularity in the field of information technology. For this reason, people are migrating their applications to public, private, or hybrid cloud environments. Many cloud vendors offer similar features with varying costs, so an appropriate choice will be the key to guaranteeing comparatively low operational costs for an organization. The motivation for this work is the necessity to select an appropriate cloud storage provider offering for the migration of applications with less cost and high performance. However, the selection of a suitable cloud storage provider is a complex problem that entails various technical and organizational aspects. In this research, a dynamic Decision Support System (DSS) for selection of an appropriate cloud storage provider is proposed. A web-based application is implemented using PHP and MySQL to facilitate decision makers. The proposed mechanism has been optimized in a way that enables the system to address static database issues for which a user might not acquire the best solution. It focuses on comparing and ranking cloud storage providers by using two modules: scraping and parsing. The evaluation of the proposed system is carried out with appropriate test cases and compared with existing tools and frameworks.

1. Introduction

The National Institute of Standards and Technology (NIST) defines the cloud as “a huge pool of easily usable and manageable virtualized resources such as hardware, development platforms and/or services. These resources can be dynamically reconfigured to adjust to a variable load (scale) allowing for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized Service Level Agreements (SLAs)” [1]. Cloud computing became one of the essential technologies in the last decade. The conventional information technology (IT) setup requires the same location as the data storage device. However, in cloud computing, one can access and update information through the internet from anywhere at any time. Data from the cloud is accessed by a wireless/wired or mobile broadband connection. The common example of cloud computing is webmail, where the service provider maintains the server space and allows access to email service based on their email address and password.
Cloud computing provides a variety of services depending on organizations’ requirements. Major services are Software as a Service (SAAS), Platform as a Service (PAAS), and Infrastructure as a Service (IAAS). In SAAS cloud computing, the provider ensures availability of both software and internet service. The market for SAAS is end-users. The advantage of SAAS is efficient hardware utilization, with a major drawback being less control. Examples of SAAS are Microsoft Office 365 and Apple iCloud. In PAAS cloud computing, the provider maintains an environment for software development. The market for PAAS is developers. Its main advantage is to reduce software concerns, but its major drawback is vendor lock-in. Microsoft Azure and Google App Engine are examples of PAAS. In the IAAS cloud computing structure, a repository and other resources are maintained by the service provider. The market for IAAS is network architects. Its main advantage is full control, and its major drawback is less efficiency. The examples for IAAS include Microsoft Azure and Amazon Web Service (AWS) [2].
Cloud computing has three main types (public, private, and hybrid) with different benefits for each type. The public cloud is a standard cloud computing model in which resources, such as CPU, memory, a repository, and APIs, are available to all users. These services can be public websites like Daraz, or storage space like Dropbox and OneDrive. A private cloud has a restricted environment where services are available through authorization (e.g., government ministry websites). In order to get the flavor of both public and private environments, there is a hybrid cloud. This type is not commonly used owing to some security concerns. Similarly, public users do not easily accept private cloud restrictions. A community cloud is a variant of hybrid cloud that provides services within a community [3]. Figure 1 clearly shows that cloud services are dependent on the user’s capability requirement and the openness of the membership.
Figure 1. Cloud Computing Based on Capability and Access.
Cloud computing has the following characteristics:
  • On-Request Self-Service
Cloud computing assists clients to run their resources individually, like server time and network storage, as per their requirements. Usually, most cloud computing users start with limited services, but increase their demand over time. The on-request self-service approach allows end users to request resources at the runtime. When a user requests any resource, this process starts immediately, even though it can be determined by the design and resource availability of the cloud vendor.
  • Wide Range Network Access
This means the resources can be accessed from a diverse set of devices such as computers, laptops, mobile phones, tablets, etc., on the network through standard procedures, as shown in Figure 2.
Figure 2. Cloud Computing Model.
  • Resource Sharing
Vendor’s computing resources are shared and stored to serve clients using a multi-tenant model. Different physical and virtual resources are assigned according to client’s requirements automatically. There is a form of intelligence regarding position independence, in which the client usually has no control over the information about the location of assigned resources but might be notified about it at a higher level, e.g., a data center.
  • Scalability
Limits on the services can be increased or decreased with respect to (w.r.t) users’ or subscribers’ demand. For example, websites like eBay or Daraz present offers for their products on special occasions, where traffic will definitely increase and require more computational power [2]. The progress of IT assists people in getting closer to the information they need, whether they are end users, organizations, or employees who want to acquire and use necessary application or business-related information. How to meet these demands with the least amount of resources is a challenge that system developers and stakeholders have to face. As the cloud business increases, many organizations are joining the market as cloud storage and service providers. The majority of providers offer similar services with different pricing since data processing performance remains limited. The marginal differences leave cloud users with the mystery of estimating costs. They will need to pay to deploy and run their legacy applications in a cloud environment.
The basic concept of cloud computing is to fulfill the dynamic demands within a minimum time with the least money. This flexible sharing concept attracts different organizations, which are interested in moving their applications, websites, and online stores to cloud-based solutions. IT-based organizations are migrating their data to the cloud because of several issues such as storage space, hardware availability, scalability, billing expenses, and data recovery [4].
Decades ago, data were being accessed and stored on the local system, which was considered to be safer and more available. At that time, organizations had faced many problems due to this local storage like security, synchronization of data, data loss because of disk damage or bad sectors. However, the volume of data has grown at an exponential rate for many organizations. This enormous growth in data could not be managed efficiently at the local systems due to the limited capacity and lack of trained system experts or administrators in the case of a small company.
The storage can be categorized into offline and online. In offline storage, the organization or personal data are stored on the storage media such as hard disk, tape, USB sticks, DVDs and CDs. Database operations like maintenance, security, backup and recovery are difficult, time consuming and costly in offline storage. In the case of online storage, the data are stored remotely and virtually on the server or cloud through internet. A distributed storage is an infrastructure where data are divided and stored on multiple servers (nodes), usually situated at different locations. All nodes are interlinked with each other in order to share data, and their storage space or number may be increased with the size of data. The stored data in the distributed storage is managed by the coordination and synchronization of servers. On the other hand, the cloud storage comprises of data servers to store and access data through internet. It provides easy access as well as updates from anywhere at any time, no data loss, location independence, scalable, better security with backup and recovery. The major concern of users is the accessibility of data in distributed cloud storage, i.e., data must be accessible as demanded by the user. Usually, the cloud storage is free for personal use usually up to a fixed point. It is free for organizations for a trial period with limited features, but the payment is necessary for each plan afterwards.
Organizations are interested in migrating their legacy local data storage to cloud-based storage to get maximum benefits with less cost, sharing, consistency and scalability. The number of cloud storage providers has increased due to rapid changes in technology. However, the selection of the right cloud storage for an organization is not an easy task due to the involvement of many diverse factors. Before the selection process, it is necessary to identify key requirements, available budget as well as expectations of the organization. Key challenges for the selection of cloud storage include current environment of organization, required storage, budget and cost.
In this research, a dynamic Decision Support System (DSS) is proposed that can be effective for organizations that need to select an appropriate cloud storage provide for their data. The key contributions of this research are as follows:
i.
A web-based Decision Support System (DSS) is proposed to compare and rank cloud storage providers with a user-friendly interface.
ii.
A dynamic database module is added to give quick updated results.
iii.
The AHP technique, most trusted for decision-making problems, is implemented for comparing and ranking of cloud storage providers.
The paper is organized as follows. Section 2 presents the state of the art related to cloud computing, cloud services, and DSSs. Section 3 describes the proposed methodology, and Section 4 elaborates its implementation details. Section 5 discusses the experiment results, and Section 6 concludes the research with possible future research directions.

3. Proposed Decision Support System

Cloud computing adaptation has been growing in recent years due to its striking business framework established on the provision of unseen cloud computing resources, such as software, networks, servers, bandwidth, and data repositories. Cloud storage providers charge clients on the basis of hour, month, and year. A cloud computing environment provides a flexible subscription service for any application, which can be simply withdrawn just by asking. This kind of privilege given to customers increases their confidence and, as a result, they explore more cloud applications. Cloud computing has substantial benefits that are typically associated with its acceptance, like decreasing functional costs. The computing resource seems unlimited, and scalability is another beauty of cloud computing, where resources can be increased or decreased at runtime. These increasing benefits of the cloud attract all kinds of enterprises, whether they are governments, semi-governmental or private. Each type has its own prospects, because some focus on cutting IT expenditures, and others focus on reforming their business models by obtaining cloud storage and services. Besides the above fascinations, it is difficult for many organizations to implement cloud-centered solutions due to lack of IT expertise of their employees, or a limited budget [23].
The decision to shift data to the cloud environment is not a simple task as it involves multiple contradictory aspects. Some of these complex factors include performance, privacy, data security, legal concerns, scalability, service availability, quality of service, and mainly the cost [24]. There must be an efficient and reliable tool that can help organizations or individuals. Additionally, developers in organizations need to learn all imaginable technical boundaries that might interrupt cloud acceptance by the organization. Another issue that restricts or confuses an organization wanting to migrate to a cloud environment is the availability of a large number of cloud storage providers and their offers with marginal differences in cost. In this section, we discuss the design methodology of the proposed DSS, which starts by defining and identifying system requirements and parameters validations. For this purpose, a conceptual architecture of the proposed system is presented that is further divided into modules and sub-modules. It discusses detailed flow charts and data flow diagrams. All essential parameters are identified, which is part of the process when applications shift to the cloud. The main issue after identification of requirements is that there are a lot of cloud storage providers. Sometimes, a very small change in the specifications can result in very large cost differences. The user has to choose a sensible value that decreases the legacy system’s expenses with a lower cost and higher performance.
The main task of the suggested DSS is to rank cloud storage providers on the basis of services by considering two aspects: cost and performance. Performance is an array of multiple parameters. The important function is a comparison of providers and rankings that works based on the user’s selected parameters. A database is created to store information about multiple cloud providers. Different operations are performed on the basis of this data. Two steps are followed when fetching data from cloud providers. First, data are fetched from the required vendor site with a scraping mechanism. Secondly, the scraped data are parsed to get the required data. The proposed DSS has a simple, elegant, and user-friendly interface where one can perform different operations while logged in. Re-ranking services based on cost or performance are shown for different cloud storage providers. Moreover, users can select different parameters in order to see the best provider for their requirements. These parameters are either numeric like cost, number of CPU cores, etc., or non-numeric such as sharing and synchronization. Besides basic tasks like registering, users can select parameters for ranking providers [25]. Figure 4 represents a use-case diagram of the proposed system, showing its functions, data handlers, and user interfaces. The administrator is on the right side, while the end user is on the left side to select the parameters. Checking the results from the selected parameters presents a default ranking by the system. On the other side, the administrator is responsible for managing the database.
Figure 4. Use Case Diagram of the Proposed Cloud Ranking and DSS.

3.1. Modules Identification

The proposed DSS has two major modules and two minor modules. An imperative prerequisite of this framework is extensibility when users roll out improvements to their administrations. The framework should refresh the related information in the knowledge base without making changes to the essential code. Along these lines, a few parameters ought to be considered by the information base, rather than being acknowledged by different modules. A generalized conceptual module of the proposed system is shown in Figure 5. It is used to rank and compare cloud storage providers’ data, and generally, its major responsibility is to calculate parameters matching as well as cost. Communication of data between the system handler and data provider module is performed through a data scraper and data parser. It empowers progressive rendering of choices to the user interface module, as indicated by conditions characterized by customers, and it acquires fundamental attributes taken from the front end. The system also permits NULL value. Correspondence with the database module encourages inquiry, and recovers information from tables by using different criteria.
Figure 5. Modules of the Proposed Decision Support System.

3.2. System Hierarchy

The proposed DSS for ranking and cloud data comparison is shown in Figure 6, where modules are further elaborated.
Figure 6. Conceptual Model of the Proposed System.
Cloud service vendors’ offerings are recognized by OfferID and OfferName. The parser offers configuration and parameters that match the requirements of the user, and finally, a priority list of vendors is generated on the basis of performance and cost. The performance attribute is further elaborated as follows: CPU cores, storage, and free storage. Cost parameters are based on monthly or yearly [26] service fees. Parameter values are fetched from the website of the cloud provider, subsequently cost is calculated and shown to users. A cloud storage provider’s data collection is extracted by the cloud data scraper or extractor module, which has two sub-modules: Cloud Data Extractor and Cloud Data Parser. The extractor module is used to get the desired data from the cloud provider’s website. It will decide which scraper or extractor is required, and how it will work. Web scraping is basically a type of data extraction. Things like climate reports, sell-off subtle elements, showcase values, or other rundowns of gathered information can be looked for in web scratching endeavors. Web scraping is guaranteed to wind up as a mainstream method for gathering data as these sorts of accumulated information assets become more proficient [27]. Web scraping is a common practice that has gained significance based on the need to free up information stored away in PDF files or web pages. The end goal is to process, examine, and concentrate on significant outcomes. Similarly, people managing B2B use cases need to get information from various sources to incorporate into new applications. The market requests all-encompassing web scraping arrangements that incorporate distributed storage and simplicity to manufacture interoperable APIs. The data extractor fetches the specific data against the selected parameters of the cloud providers from their websites and sends it to DSS database.
Some issues are expected from the process of extracting information from cloud storage providers that configure secure communications (recognized by a URL with https://, where “s” indicates “secure”), which can restrict data extraction from that particular website [28]. Usually websites that do not use https in the URL; these websites can be connected, and the required information can be extracted easily. When data are fetched or extracted, it is not in a form to be used directly in the user interface. So, at that stage, the system pauses and inserts raw data so it can be refined with good presentational and normalized positions. Data coming from different cloud provider websites are taken through this scraper module. The step-by-step process is explained in the flow chart shown in Figure 7 for the cloud data extractor algorithm.
Figure 7. Flow Chart of Cloud Data Extractor.
Figure 7 shows the step-by-step procedure to extract data from cloud providers. The list of vendors’ links in the form of an array is passed to the data extraction procedure where the system checks all links and their availability. If a link works, then the extraction process will start; otherwise, an update error may occur.

3.2.1. Cloud Data Parser

This module interacts with the cloud data extractor module, where it takes input and refines the data after applying some filters. The parser is a web-based system that can deal with broken markup. However, it may have to deal with special cases when it experiences a coding blunder. This special case gives three traits: “msg” is a short message clarifying the mistake; “lineno” is the exact line where the mistake was identified; and “balanced” is the number of characters on the line where the build begins. Figure 8 shows a simple web page’s Hypertext Markup Language (HTML) structure, where other custom tags can be included in the hierarchy. Basic functions of the system parser are reading tags, searching for required tags, and finally, extracting data from these tags.
Figure 8. HTML Structure.

3.2.2. Cloud Offer Comparison

The module shown in Figure 9 has two parts: first compares data that are requested from the user, and second compares the cloud providers. If there are two cloud storage providers, C1 and C2, with parameters P1 and P2, respectively, then P1 will be compared with P2. In cases, when the user selects a requirement, a comparison (or matching) procedure will be performed with the user-selected parameter; e.g., a user might want a system configuration including CPU with two cores, memory of 4 GB, hard-disk storage of 100 GB, file sharing allowed, and synchronization allowed [29]. The system will check and compare cloud storage providers’ data based on these requirements, and will produce a list of the matching providers.
Figure 9. Flow Chart of the Cloud Offer Matcher.

3.2.3. Cloud Service Provider Ranking

The ranking module is a very important part of the DSS [30,31] that gives two options to the user (rank by cost or performance) because some organizations have a limited budget and want to stay within their budget. On the other hand, some organizations need better performance, and budget is not a big issue, so they prefer a system with a better configuration. So, according to the user’s selected ranking type, the required procedure will be called. Figure 10 presents a flow chart of the cloud services ranking process. The performance ranking calculation is performed on the right side, while the steps for cost ranking are on the left side. The data store is accessed from both sides of the flowchart, which starts with selecting the type of ranking and ends with a list of ranked cloud storage providers.
Figure 10. Flow Chart of Cloud Storage Ranking.

3.2.4. User Interface

This module is designed for easy and maximum interaction with the user via web forms after registration and login. Control tags are used for ranking and comparing cloud storage providers. The user role is defined in the use-case diagram as shown in Figure 4 (for example, check ranking or comparison). In the cloud service comparison, users can select parameters to obtain a list of cloud providers. Then, users can choose any cloud provider according to their needs by selecting parameters like number of CPU cores, amount of storage, and availability of synchronization and/or file sharing. The system displays the results against the user input on the user interface. For ranking, the user can select the ranking type based on the cloud storage provider list and ranked on the basis of user selection type.

4. Implementation

The section starts with a brief overview of the technologies and platform used in the implementation of the proposed decision system. HTML is used for interpretation of the contents. It is a web-based system that is developed in PHP and ASP.Net because major system modules will execute on the server side. PHP has a lot of libraries with different purposes [32] to perform various functions. MySQL is an open-source relational database management system (RDBMS) that is used with PHP. The mysql_connect function is used in order to connect PHP with MySQL database [33]. All cloud vendors can be seen with the following query:
SELECT VendorName FROM vendor LEFT JOIN vendorsharing ON (pkvendorid = fkvendorid) LEFT JOIN sharing ON (pksharingid = fksharingid) WHERE vendorStatus = ‘active’ and sharingStatus = ‘Yes
jQuery is an integral part of the JavaScript (JS) library, works on the client side, and has simple and user-friendly functions for HTML file access and manipulation. AJAX (Asynchronous JavaScript and XML) is an important feature of jQuery that is used for sending asynchronous calls to the server. With AJAX, one can change the content of a page without reloading it. It is flexible, offers cross-browser support, and is used in frameworks like Bootstrap [34]. Node.js is used in building web applications and released under MIT license. It has had a great impact on web development over the past couple of years. Node.js is a server environment for JavaScript that is built on Chrome’s JavaScript runtime and used for developing network applications. In the proposed system, it is used for getting contents from MySQL database and parsing them. Its HTMLPARSER2 module is a HTML/XML/RSS parser written in JS for Node.js. The parser can handle streams (chunked data) and supports custom handlers for writing custom DOMs/output [33]. Features include No Buffering, Single Threaded, Asynchronous, Event Driven, Fast, and Highly Scalable. Bootstrap is a front-end framework for making websites. It is mainly used for responsive design, and offers interface components and design of HTML templates [34]. Windows, Apache, MySQL and PHP (WAMP) are used for web development and internal testing. It might also be used to serve live websites. Apache (HTTP web server) is the most important part of the WAMP package. Web pages are tested in a browser without being uploaded to the internet. Information about tools and their version are shown in Table 2.
Table 2. Information on the Implementation Tools.
The proposed DSS architecture includes a web data scraper, web data parser, cloud provider ranking function, comparison function, and user interface. It is a dynamic web application where all manipulations of the data, like fetching, inserting, sorting, and normalizing, are accomplished on the server side. The frequency of communication between client and server is high in number, because all computations are performed on the server side right after the user’s interaction with fetching and parsing content. The technologies on the web server only specify the kind of files being attended to by the browser that actually controls them. One of the main concerns of the system is to get dynamic contents from cloud vendor websites. In that case, data can be collected from the listed cloud storage providers all at one time and use it for system computations. In Figure 11, the cloud data scraper and cloud data parser modules on the left side are added to make the DDS dynamic. Furthermore, it shows a logical architecture with the presentation hierarchy accompanied by the development technologies used for each layer.
Figure 11. The Proposed DSS System Architecture.
The main goal of this research is to provide a dynamic DSS for customers to get updated results. Data from cloud service providers are very important, because all operations, like ranking and comparison of cloud services, are based on it. In order to fetch the data, a reliable mechanism is required. The web scraper is written for data extraction where large amounts of data or information are collected across the internet. A simple HTML Dom is used to fetch data and extract values from cloud storage provider’s web pages by using the function file_get_html (URL).
Figure 12 indicates input on the left side, process in the middle, and output on the right side. The purpose of the scraper is to fetch cloud storage provider data and save it in raw form in a MySQL database. The contents saved at this stage are not used for operations like ranking or comparison. A parser filters out the required data by using Dom document and Node.js. The JavaScript procedure for parsing data is shown in Figure 13.
Figure 12. Cloud Data Scraper.
Figure 13. Cloud Data Parser.
Figure 13 illustrates raw data, shown on the left side, extracted from the database by Node.js, and then the parsing mechanism starts. Cloud service provider ranking is one of the most important parts of the proposed decision-making system. Ranking is basically a priority list of cloud providers, and is generated by calculating comparative ranking values for different cloud services based on performance and cost. Because multiple attributes are involved, ranking cannot be calculated easily. To solve this problem, AHP is selected, which is an organized method for making multipart decisions, that assists users to calculate the “best” conclusion. It involves the following steps:
i.
Define and set criteria.
ii.
Define and set attributes.
iii.
Set and normalize attributes values.
iv.
Make pairs and normalize them.
v.
Aggregate them pair-wise.
vi.
Rank the aggregate.
vii.
Show the ranking.
One of the important tasks in the AHP technique is assigning weights to attributes, which are called relative importance values (RIV). After a study of previous research and its analysis, nine values for cost and nine values for performance attributes were taken for ranking cloud storage providers. Table 3 shows the RIV for each option.
Table 3. AHP Relative Importance Value Table.
There are two kinds of attributes, i.e., numeric and non-numeric. Table 4 shows the proposed system’s attributes that are dependent on user input. The numeric attributes include Repository, Memory, Free Storage, Trial Period, and number of CPU cores, whereas non-numeric attributes include synchronization, sharing, mobile access, and Operating System.
Table 4. Attributes of the Proposed DSS.
Twenty cloud storage providers are selected to test the proposed DSS: Sync.com, JustCloud, Dropbox, Tresorit, LiveDrive, PCloud, hubiC, Jumpshare, iCloud Drive, MediaFire, OpenDrive, SugarSync, ADrive, Mega, Google Drive, SafeCopy, OneDrive, Amazon Drive, Atlantic.net, and IBM Cloud.
The DSS helps users to select the appropriate cloud storage for their application(s). Usually, there are two kinds of users; first focuses on the cost, and can compromise on quality as well as performance; while the second type requires excellent quality and performance at any cost. The proposed DSS is designed and implemented for both types, so ranking is calculated based on both cost and performance. A structured technique AHP is used to calculate ranking w.r.t the costs of different cloud services. The goal is to rank cloud provider services on monthly and yearly cost criteria. In the second layer, there are alternatives described as “alternatives values for the above criteria”. The third layer is for the cloud providers that need to be ranked. Ranking is calculated based on the storage cost (e.g., the baseline is 500 GB). All cloud vendors offering 500 GB are selected and their monthly as well as yearly prices for 500 GB are used for rank calculations. Furthermore, a low-price vendor will get a higher weight, while a high-price will get lower weights. Steps in the Ranked cloud services by cost are shown in Figure 14.
Figure 14. Cloud Services Ranking by Cost.
In rank by performance, cost will have low priority as compared to performance attributes like storage and number of CPU cores. This option is for users who prefer high-performance systems, i.e., maximum CPU cores, RAM, storage, etc. In Figure 15, the criteria are shown on the second layer while alternatives are shown on the third layer, and the cloud service vendors are shown on the bottom layer. We have selected the “number of CPU cores” as a parameter for the selection of cloud provider as it affects the retrieval of data as well as processing.
Figure 15. Cloud Vendor Ranking by Comparison.
The cloud service comparison module is an important component in the data handler procedure. The working of this module starts by gathering cloud vendor’s data from the database and comparing against the selected parameters, as shown in Table 5.
Table 5. Comparison of Cloud Storage Provider.
The dynamic web-based system is developed to attain communication among users and the decision system. HTML, Bootstrap, and CSS are used in designing the front end, PHP at the server side while MySQL is used at the back end. The user interface consists of the login page, the ranking page, a comparison page, and the latest updates page. The login and main page screenshots are shown in Figure 16 and Figure 17, respectively.
Figure 16. Login Page of the Proposed System.
Figure 17. Main Page of the Proposed System.
After the login page, control shifts to the ranking page where a user can rank cloud storage providers by selecting either minimum cost or maximum performance. It is a simple, effortless and fast process. The SELECT dropdown control is used for selection. User Services Selection is developed especially for non-technical users. This comparison page is used to collect requirements with a menu as shown in Figure 18, and users can see a list of cloud providers generated based on the requirements.
Figure 18. Parameter Selection Menu.

5. Results and Discussion

In this section, some test cases are discussed in order to show the cloud vendors rankings and a comparison of their services. The overall functionality of the implemented system is compared with the MDSS [20] along with the online tool. After that, a comparison analysis is performed on the calculated results. After the experiments, it is verified whether the system is producing the desired functionality or not. For prediction, questions are asked by users and AHP algorithm is applied.

5.1. Ranking Validation by Using AHP

In the first experiment, the cloud storage providers ranking is calculated manually by using AHP and comparing the results with the proposed system. Weights from 1 to 8 are assigned to the parameters according to their importance, ‘1’ represents the minimum whereas ‘8’ indicates the maximum. Maximum weight is assigned to the CPU, Repository and OS owing to their importance. Similarly, the rest of the weights are assigned to the remaining parameters as shown in Table 6.
Table 6. Parameters with their Weights.
In the second step, a pair-wise weight comparison of these parameters is calculated. Parameters with small weights appear with/in that column. The formula used here is R = 1/aij, Table 7 shows a pair-wise comparison of parameters, and data are converted to decimal form. Here, the Trial column indicates a trial version of their cloud services that is provided by some vendors to attract customers.
Table 7. Parameter Paired Comparisons.
Next, the sum of all columns are calculated after converting to decimal form, as shown in Table 8.
Table 8. Column-Wise Sum of Parameter’s Weights.
After calculating the sum of the columns, the next step is to normalize the data. During this process, weights for all parameters are calculated. First of all, each column is divided by its column sum, i.e., A2/A9……A8/A9, applying the same procedure for all columns. After that, values in columns are normalized in order to ensure that calculation of the sum for each column will be always equal to 1. Then, the following formula is applied:
Priority = Sum of all normalized values row-wise/Total number of columns
Multiplying the results by 100 in order to calculate the percentages. Table 9 shows the priority calculations for different parameters in normalized form. After the calculations, the parameter CPU has the maximum priority, and subsequently, remaining parameters.
Table 9. Normalized Priority Vectors.
The rank of each parameter is calculated, and a pair-wise comparison is performed later. The max value for CPU cores has a high weight and vice versa as shown in Table 10. The same above process is repeated to calculate weights for the remaining parameters.
Table 10. Column-wise sums of the CPU Parameter.
Table 10 shows column-wise sums, whereas Table 11 shows the priority with in the CPU parameter (i.e., the max CPU value is 24 cores and has max priority).
Table 11. Priority of the CPU Parameter.
Next, the repository parameter is compared with its maximum and minimum values. The logic is the same; maximum weight is given to maximum storage, and vice versa. Table 12 shows the weights and a comparison of the column-wise sum of the repository parameter. The priority for the Repository is calculated by using the AHP as shown in Table 13.
Table 12. Repository Parameter Paired Comparison in Decimal Form.
Table 13. Priority of the Repository Parameter.
In order to achieve uniformity of the repository parameter, all storage values are converted to gigabytes. A large gigabyte value has a higher priority; i.e., 250,000 GB has a 40% maximum priority, whereas for 500 GB, the priority is 2.1%. Table 14 shows a paired comparison of the free-storage parameter. All weighted and compared values are normalized, and the column-wise sum is calculated for further processing, as shown in Table 15. Subsequently, the priority for free storage is shown in Table 16.
Table 14. Paired Comparison of Free Storage in Decimal Form.
Table 15. Column-wise Sum of Free Storage.
Table 16. Priority of Free Storage Parameter.
Free storage, synchronization, trial period (if any), mobile access, and sharing are features of a cloud vendor’s services. The cost of selected machines also varies with the selection of the cloud operating system, i.e., a system that costs $5 per hour with a Linux operating system might be $8 per hour with another operating system. Table 17 shows that Linux (due to better security) has priority over Windows and the Macintosh IOS.
Table 17. OS Parameter Paired Comparison in Decimal Form.
Table 18 shows column-wise sum of OS parameter values where Linux has twice the weight of Windows, and five times more than Mac due to its security and reliability. The same sequence of steps adopted for the above parameters are followed for further calculations; i.e., first of all, weights are defined, values are compared, converted to decimal form, and finally normalized by dividing each element to its column-wise sum.
Table 18. Priority of OS Parameter Values.
Most of the cloud providers offer a synchronization option so their clients can sync devices with the cloud storage. The major benefit of the synchronization is backup of data. By syncing, data can be transferred from the client’s device to their cloud storage easily and rapidly. When a device like a mobile or laptop syncs with the cloud, a copy is created, and whenever changes take place on a laptop, data in cloud storage will also change. Table 19 shows values of the synchronization parameter as ‘Yes’ or ‘No’, where ‘Yes’ has the higher priority when compared to ‘No’.
Table 19. Priority Values for Synchronization.
Table 20 shows the Mobile Access parameter values and their priorities. Access to a mobile connection is an important feature, because nowadays users are using smart phones for social and official tasks. The mobile access parameter has two values of either ‘Yes’ or ‘No’, where ‘Yes’ has maximum priority when compared to ‘No’.
Table 20. Values and Priorities for Mobile Access.
The trial period is an important parameter where users can use the limited services and functionality for a short period. Its priority values are shown in Table 21.
Table 21. Priority Values for Trial Period.
Table 22 shows values of the Sharing parameter and their priorities. Using this option, users can share their online data by sending links. It has two values, ‘Yes’ or ‘No’.
Table 22. Values and Priorities for Sharing.
All parameters and their associated weights are shown in Table 23. Weights are arranged for calculating final priorities corresponding to their assigned weights.
Table 23. Weights of all Parameters.
Finally, the consistency analysis is performed where the percentage is calculated for final weights relative to their aggregates. e.g., the CPU parameter criteria aggregate weight is 33%. The first is the value of sub-criteria when the CPU parameter is 24 cores and its weight percentage is 54%, i.e., the relative weight of 24 cores is 54% of 33%, which is 18.04. Table 24 shows complete results for the criteria and their sub-criteria weights. In order to test the final calculated values of the sub-criteria, sums of values must be equal to the value of the criterion. For example, the value of the operating system criterion is 14.70, its sub-criteria values are 8.90, 2.23, and 3.57, which sum to 14.70 (equal to the criteria weight). This table will be used in all further calculations. The cloud storage provider’s comparison provides the values and their ranges (as shown in Table 5). Ranking of cloud service providers will be calculated on the basis of these parameter values and their corresponding weights from Table 25.
Table 24. Relative Combined Parameter Weights.
Table 25. Cloud Storage Providers’ Performance-based Rankings.
The above results show that performance attributes are major contributors in this process. All parameter values are taken from the previous section’s vendor comparison table. Results are calculated for performance ranking and cost–benefit relationships. Parameters used are number of CPU cores, repository size in gigabytes, sharing (both file sharing and link sharing), operating system (Linux, Windows, or Mac), mobile access (if Yes), free storage in gigabytes (a survey of the internet showed the minimum value is 5 GB), and synchronization (users’ device synchronization with their cloud account).

5.2. Performance Ranking

The CPU core is the major contributor in the ranking of cloud vendor’s performance. In this process, the maximum CPU core values of all listed cloud vendors are picked up and calculations are made with the corresponding weights from Table 25. Besides the CPU, all maximum values of parameters are selected for performance ranking as follows:
If (Param[X] == Param[W] or Param[X]~Param[W])
Param[X] = Param[W]/100
e.g., Amazon offers a maximum 24-core CPU, and its weight is 18.04% in Table 24. In order to achieve accuracy, remove the percentage and convert it to 0.1804 which is placed in front of the Amazon row and in the CPU column of Table 25. This table shows a priority list of cloud vendors ranked on the basis of their weights, and combined sums of their weights are shown as rankings in the right-most column. The simple formula of ranking is applied row-wise as follows:
Ranking = Sum (C21:C31:C41……C81)
All the values in the ranking columns are less than 1, called a consistency index (CI), so our final values are validated. The vendor that has the largest value is the best vendor with respect to performance. Figure 19 shows a clear picture of the performance ranking of cloud providers, where Google and IBM have almost the same rank because they provide maximum computing resources. Cloud storage providers are shown on the X-axis and their rankings, calculated by a structured technique, on the Y-axis. Cloud service providers like SafeCopy and iCloudDrive have low rankings due to lower values.
Figure 19. Ranking By Performance.
It is clearly shown from the results that Google Drive and IBM Cloud are leading other cloud storage vendors due to their features. The IBM cloud provides dynamic scalability, monitoring tools and technology integration while Google Drive attracts users with free storage, offline features and attractive user interface. On the other hand, iCloud is at the bottom due to access from Apple devices only and limited features.

5.3. Validation of Ranking

Table 26 shows the values as calculated by the AHP and the proposed system along with their differences. There are minor differences between values generated by the AHP and the proposed system. The reason behind the differences is the use of Round() function in PHP. However, the overall rankings of the cloud providers are the same.
Table 26. Ranking Comparison between AHP and the Proposed System.
The comparison graph as shown in Figure 20 is generated based on values generated with manual AHP calculations, as presented in the above sections, and from values generated by the implemented system.
Figure 20. Comparison between AHP and the Proposed System.

5.4. Cost–Benefit Analysis

The AHP technique is widely used for the cost–benefit analysis. The baseline for this calculation is a one-core CPU with 500 GB of storage. Weights of all parameters from the cloud storage providers are calculated as shown in Table 27. The Ranking and the Cost columns are added in order to perform the cost–benefit analysis. The cost is on the basis of CPU cores and repository fixed values.
Table 27. Cost–Benefit Analysis of Cloud Vendors.
Figure 21 shows the cost–benefit relationship where benefits and costs are plotted on the Y-axis while cloud vendors are on the X-axis. It is clear from the graph that all vendors provide benefits to customers, but some cloud vendors provide almost the same benefits with less cost. The aim of this exercise is to identify those cloud vendors who provide more benefits at less cost. From the graph, we can easily identify Google as the cloud provider with top benefits and less cost. It also shows that iCloud gives fewer benefits, compared to the others, but its cost–benefit ratio is very close owing to its security. As for giving fewer options or features to end users, there will be less chance of exposing sensitive information. A cloud vendor’s priority list is generated on the basis of their services (benefits) and the costs.
Figure 21. Cost–Benefit Analysis of Cloud Vendors.

5.5. Comparison with Existing Models

Finally, functionality of the proposed system is compared with previous systems. Most of the previous studies are conceptual, and still their implementation is not possible because they were introduced between 2000 and 2015, and at that time, cloud storage providers had different offerings as well as technology. Another flaw in these systems is lack of vendor’s recommendations. Previous research dealt with the customer’s requirements as a study from the social and economic aspects. Table 28 presents a comparison of the proposed system with the previous research work.
Table 28. Comparison of the Proposed System with Existing.
Cloud Genius and SMICloud have used AHP, the same as the proposed system. After getting user requirements, all potential pairs of parameters are calculated. All frameworks use multiple criteria, but the proposed system considers fewer parameters than SMICloud as well as Cloud Genius and focuses on the critical parameters like performance and cost because of major impact on the ranking. Accuracy and Dynamic database functionality are the other edges of the proposed system.

6. Conclusions and Future Work

Cloud computing has become one of the most essential technologies in the last decade. The conventional IT setup requires its own servers, storage, services and other equipment with their maintenance and backup burdens. However, in the case of cloud computing, one can access hardware, information and services from anywhere at any time. The number of cloud storage providers has increased with the enhancement of the cloud. Many cloud providers offer the same features with little or no alteration but a huge difference in cost. Therefore, selection of a cloud storage provider is a very important task; otherwise, organizations have to pay a huge amount of money. This research has compared twenty (20) different cloud storage providers on the basis of their features. We proposed a web-based dynamic DSS for ranking and comparing cloud services provided by different vendors. The system provides results with minimal input and interaction through a user-friendly interface. The implemented system provides comparison and ranking options from where users select options through a dropdown menu. A dynamic database module is added that gives quick updated results. The AHP technique is adopted for comparing and ranking cloud storage providers.
The following issues will be investigated further in our future work.
i.
User query results can be improved by providing the offers. For example, if a user requires a system with 10 GB of storage space then more than one cloud storage provider may deliver at the same rate; in such a case, the system may generate an offer.
ii.
Some parameters may be extended to cover more scenarios (i.e., user requirements) that can enhance the comparison and ranking modules, e.g., internet bandwidth, geographical location, organized versus unorganized scalability, and comparison of SLAs.

Author Contributions

Conceptualization, A.M. and M.A.H.; methodology, A.M., S.Y.N. and M.A.H.; software, A.M. and M.A.H.; validation, A.M., and M.A.H.; formal analysis, A.M., M.A.H. and A.H.; investigation, A.M., S.Y.N. and M.A.H.; resources, A.M.; data curation, A.M. and M.A.H.; writing—original draft preparation, A.M., S.Y.N., M.A.H. and A.H.; writing—review and editing, A.M., S.Y.N. and A.H.; visualization, A.M.; supervision, A.M. and S.Y.N.; project administration, A.M. and S.Y.N.; funding acquisition, S.Y.N. All authors have read and agreed to the published version of the manuscript.

Funding

This research was supported in part by the National Research Foundation of Korea (NRF) grant funded by the Korean government (MSIT) (2020R1A2C1010366). This research was supported by the Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (2021R1A6A1A03039493). This research was supported in part by the MSIT, Korea, under the ITRC (Information Technology Research Center) support program (IITP-2021-2016-0-00313) supervised by the IITP (Institute for Information and Communications Technology Planning & Evaluation).

Data Availability Statement

No new data were created or analyzed in this study. Data sharing is not applicable to this article.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Vaquero, L.M.; Rodero-Merino, L.; Caceres, J.; Lindner, M. A Break in the Clouds: Towards a Cloud Definition. ACM SIGCOMM Comput. Commun. Rev. 2009, 39, 50–55. [Google Scholar] [CrossRef]
  2. Alharthi, A.; Alassafi, M.O.; Alzahrani, A.I.; Walters, R.J.; Wills, G.B. Critical success factors for cloud migration in higher education institutions: A conceptual framework. Int. J. Intell. Comput. Res. (IJICR) 2017, 8, 817–825. [Google Scholar] [CrossRef]
  3. Mell, P.; Grance, T. The NIST Definition of Cloud Computing Recommendations of the National Institute of Standards and Technology; NIST Special Publication, 2011; Volume 145. Available online: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf (accessed on 25 September 2021).
  4. Benefits of Disaster Recovery Using Cloud Computing. Available online: https://www.disasterrecovery.org/benefits-of-disaster-recovery-using-cloud-computing/ (accessed on 8 May 2021).
  5. Louw, R.E. Decision Support Systems (DSS). University of Missouri St. Louis. 2002. Available online: https://www.umsl.edu/~sauterv/analysis/488_f02_papers/dss.html (accessed on 25 September 2021).
  6. Fatima, H. Top 5 Cloud Based Security Solutions. Available online: https://blog.resellerclub.com/top-5-cloud-based-security-solutions/ (accessed on 8 May 2021).
  7. Bertolino, A.; Angelis, G.D.; Gallego, M.; García, B.; Gortázar, F.; Lonetti, F.; Marchetti, E. A systematic review on cloud testing. ACM Comput. Surv. (CSUR) 2019, 52, 1–42. [Google Scholar] [CrossRef] [Green Version]
  8. Siegel, J.; Perdue, J. Cloud Services Measures for Global Use: The Service Measurement Index (SMI). In Proceedings of the Annual SRII Global Conference, San Jose, CA, USA, 24–27 July 2012; pp. 411–415. [Google Scholar]
  9. Hwang, B.G.; Shan, M.; Looi, K.Y. Knowledge-based decision support system for prefabricated prefinished volumetric construction. Autom. Constr. 2018, 94, 168–178. [Google Scholar] [CrossRef]
  10. Fahmideh, M.; Daneshgar, F.; Rabhi, F.; Beydoun, G. A generic cloud migration process model. Eur. J. Inf. Syst. 2019, 28, 233–255. [Google Scholar] [CrossRef] [Green Version]
  11. Akter, M.; Gani, A.; Rahman, M.O.; Hassan, M.M.; Almogren, A.; Ahmad, S. Performance Analysis of Personal Cloud Storage Services for Mobile Multimedia Health Record Management. IEEE Access 2018, 6, 52625–52638. [Google Scholar] [CrossRef]
  12. Bocchi, E.; Drago, I.; Mellia, M. Personal Cloud Storage Benchmarks and Comparison. IEEE Trans. Cloud Comput. 2017, 5, 751–764. [Google Scholar] [CrossRef] [Green Version]
  13. Li, A.; Yang, X.; Kandula, S.; Zhang, M. CloudCmp: Comparing public cloud providers. In Proceedings of the Internet Measurement Conference, Melbourne, Australia, 1–3 November 2010; pp. 1–14. [Google Scholar]
  14. Zenuni, X.; Ajdari, J.; Ismaili, F.; Raufi, B. Cloud storage providers: A comparison review and evaluation. In Proceedings of the 15th International Conference on Computer Systems and Technologies, Ruse, Bulgaria, 27–28 June 2014; pp. 272–277. [Google Scholar]
  15. Menzel, M.; Ranjan, R. CloudGenius: Decision support for web server cloud migration. In Proceedings of the 21st International Conference on World Wide Web, Lyon, France, 16–20 April 2012. [Google Scholar]
  16. Ali, S.; Li, H. Moving software testing to the cloud: An adoption assessment model based on fuzzy multi-attribute decision making algorithm. In Proceedings of the 6th IEEE International Conference on Industrial Engineering and Applications, Tokyo, Japan, 12–15 April 2019; pp. 382–386. [Google Scholar]
  17. Garg, S.K.; Versteeg, S.; Buyya, R. SMICloud: A framework for comparing and ranking of cloud services. In Proceedings of the 4th IEEE International Conference on Utility and Cloud Computing, Melbourne, VIC, Australia, 5–8 December 2011; pp. 210–218. [Google Scholar]
  18. Security Intelligence. Available online: https://securityintelligence.com/news/data-privacy-now-a-top-public-priority/ (accessed on 11 May 2021).
  19. Khurana, R.; Kumar, R. Quality Based Cloud Service Broker for Optimal Cloud Service Provider Selection. Int. J. Appl. Eng. Res. 2017, 12, 7962–7975. [Google Scholar]
  20. Vasilios, A.; Darsow, A.; Karastoyanova, D.; Leymann, F. CloudDSF—The Cloud Decision Support Framework for Application Migration; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2014; pp. 1–16. [Google Scholar]
  21. Vasilios, A.; Song, Z.; Leymann, F. Supporting the Migration of Applications to the Cloud through a Decision Support System. In Proceedings of the IEEE 6th International Conference on Cloud Computing, Santa Clara, CA, USA, 28 June–3 July 2013. [Google Scholar]
  22. Mohagheghi, P.; Berre, J.; Sadovykh, A.; Barbier, F.; Benguri, G. Reuse and Migration of Legacy Systems to Interoperable Cloud Services- The REMICS project. In Proceedings of the Towards a Service-Based Internet—Third European Conference, Ghent, Belgium, 13–15 December 2010. [Google Scholar]
  23. Islam, S.; Fenz, S.; Weippl, E.; Mouratidis, H. A risk management framework for cloud migration decision support. J. Risk Financ. Manag. 2017, 10, 10. [Google Scholar] [CrossRef] [Green Version]
  24. Youssef, A.E. A framework for cloud security risk management based on the business objectives of organizations. Int. J. Adv. Comput. Sci. Appl. 2019, 10, 186–194. [Google Scholar] [CrossRef] [Green Version]
  25. Do, T.M.T. Introduction of Cloud Provider-Specific Knowledge and Further Evaluation of the Cloud Decision Support Framework. Master’s Thesis, University of Stuttgart, Stuttgart, Germany, 2016. [Google Scholar]
  26. Shameem, P.M.; Johnson, N. An Effective Resource Management in Cloud Computing. Int. J. Commun. Netw. Distrib. Syst. 2017, 19, 448–464. [Google Scholar] [CrossRef]
  27. Alkhalil, A.; Sahandi, R.; John, D. Migration to Cloud Computing: A Decision Process Model. In Proceedings of the Central European Conference on Information and Intelligent Systems, Varaždin, Croatia, 17–19 September 2014. [Google Scholar]
  28. Sáez, S.G.; Andrikopoulos, V.; Bitsaki, M.; Leymann, F.; Van Hoorn, A. Utility-based decision making for migrating cloud-based applications. ACM Trans. Internet Technol. (TOIT) 2018, 18, 1–22. [Google Scholar] [CrossRef]
  29. Choi, S.J.; Choi, S.W.; Kim, J.H.; Lee, E.-B. AI and Text-Mining Applications for Analyzing Contractor’s Risk in Invitation to Bid (ITB) and Contracts for Engineering Procurement and Construction (EPC) Projects. Energies 2021, 14, 4632. [Google Scholar] [CrossRef]
  30. Gómez, S. Design Support for Performance-and Cost-Efficient (re) Distribution of Cloud Applications. Master’s Thesis, University of Stuttgart, Stuttgart, Germany, 2019. [Google Scholar]
  31. Şener, U.; Gökalp, E.; Eren, P.E. ClouDSS: A decision support system for cloud service selection. In Proceedings of the International Conference on the Economics of Grids, Clouds, Systems, and Services, Biarritz, France, 19–21 September 2017; pp. 249–261. [Google Scholar]
  32. PHP The Right Way. Available online: https://phptherightway.com/ (accessed on 18 May 2021).
  33. PHP Connect to MySQL. Available online: https://www.w3schools.com/php/php_mysql_connect.asp (accessed on 28 May 2021).
  34. Bootstrap. Available online: https://getbootstrap.com/ (accessed on 2 June 2021).
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.