1. Introduction
The advent of ubiquitous wireless connectivity in conjunction with the ever-increasing deployment of pervasive computing technologies has changed the landscape of information and communication technologies. One of the most important examples is the Internet of Things (IoT) [
1] metaphor, which is defined as “a world-wide network of interconnected objects uniquely addressable based on standard communication protocols”. IoT refers to the integration of large numbers of real-world objects, that is “things”, in the Internet and aims to simplify high-level interactions of the physical world to resemble interactions taking place in virtual electronic worlds. Theoretically, IoT can be applied to all kinds of domains, and IoT has been widely used in many key areas such as business, healthcare and industry [
2], currently. For example, Berkers et al. proposed an ecosystem model around a smart, horizontal IoT service platform to realize IoT business [
3]. Shang et al. discussed the application of IoT in e-commerce [
4].
The IoT service has made great progress in practical applications, which has greatly facilitated our production and our life. As a large amount of services grows dramatically, how to discover and select the best services dynamically to satisfy the actual needs of users in the IoT service set, the elements of which have the same function, is an unavoidable issue. Therefore, evaluating the quality level of the service existing in the IoT to provide a reference for the users choosing the most appropriate service has become a hot topic in the current academic research. At present, researchers have not yet built a unified estimating method for the quality level of the IoT service, most of which refer to the evaluation system of web service, i.e., Quality of Service (QoS), which is the most widely-used non-functional measurement standard, and Quality of Experience (QoE), which is an evaluation method based on the degree of user acceptance, including both the subjective and objective aspects. For example, in [
5], a QoS ontology was proposed to describe the contextual features of the IoT services embedded in physical entities. In [
6], a multi-dimensional user requirement QoS model was used to describe service oriented toward physical objects. In [
7], four kinds of QoS calculation models were proposed, which can be used to decompose and optimize the complex QoS requirements of IoT services. Aazam et al. devised a QoE-based resource estimation in IoT on the basis of the Relinquish Rate (RR) to enhance QoS [
8]. The method reported in [
9] adopted multiple linear regression analysis to evaluate QoE in IoT. In [
10], a framework was given of scalable QoE modeling based on the massive amount of quality metrics for explosively increasing applications in IoT. Another IoT service measurement approach is to establish a Service Level Agreement (SLA) or its variant [
11,
12,
13] between the network service providers and the users. The SLA is in general a contract that defines some terms such as the type of service, the quality of service and the payment of the customer, and its application in IoT has just begun, with many drawbacks, though it had been studied for many years in web service [
11]. All these research works above just use some static data to evaluate the quality of the service and ignore the dynamic changing trend of the service performance during the testing or executing process. For example, most evaluation methods based on QoS use the static service parameters to determine the service level, with the level of services remaining unchanged after evaluations. Most of the methods based on QoE rely too much on users’ subjective feelings, and the evaluation result is uncertain due to the differences among each one’s feeling. In addition, the traditional approaches to handle Service Level Agreements (SLAs) are limited to a predefined service quality provided for a fixed price. Likewise, SLA provides only a static QoS description, and the modification of the predefined QoS parameter results in a re-negotiation, usually combined with a service termination, which takes plenty of time and resources [
13]. However, the status, or more precisely, the properties of services change over time moment by moment, such as the executing efficiency, the reliability, the availability, etc. When service’s efficiency, reliability or availability decrease or increase, the service level evaluated must reflect the latest status of services as soon as possible. Dynamic estimation of service level, therefore, is very necessary, such as considering the latest service execution time to measure the property of its efficiency and the history of service execution accuracy to measure its reliability by giving different weights to different periods of time. Combined with these factors, the rangeability of the level estimated can be influenced appropriately in order to achieve the effect of dynamic evaluation.
On the other hand, IoT services enable the interconnection of a large number of smart devices (things) using a combination of networks and computing technologies. However, an influx of interconnected things makes a greater demand on the underlying communication networks and affects the implementation effect of the service [
14]. All of these make the performance of the service fluctuant, which may lead to a reduced availability of the service selection. Some research works have been carried out to improve the availability. For example, in [
15], a QoS architecture for IoT that focused on the control-mechanism for transferring and translation of QoS was proposed to improve the QoS of IoT. In [
16], a new and trustable framework for a Mobile Edge Computing (MEC) management/orchestration system with crucial security and authentication components by which it ensures the delivery of users’ QoE was given. Furthermore, in [
17], a cooperative evolution approach for service composition under the restrictions of QoS was proposed to address the aim of distinguishing prospective services out of many “similar” services and identifying needed services with regard to the criteria of QoS. Because locating and invoking suitable services are quite challenging and traditional service discovery and selection approaches have been proven inadequate, Karageorgos et al. proposed a decentralized service discovery and selection model [
18] based on Artificial Potential Fields (APFs), which are formed on each user service request and become active at points where services can be provided. However, they did not consider some cases such as multiple variables in generating artificial potential fields, etc. In practical industrial applications, many scholars also have put forward various methods to solve the problem of the selection strategy for IoT services. For instance, the authors of [
19] proposed a register service selection-based security architecture to get rid of these problems in oil production materials, pharmaceuticals and compound process industries. However, their approach only can be applied to some specific areas, not as a generic method to solve the IoT service selection problem in all kinds of areas.
Based on the above analysis, we can conclude that one effective way to solve the problem of IoT service selection in IoT is to grade the services, as well as the similar problem in other domains [
20]. It can achieve the purpose of filtering poor quality services to ensure the quality of services and developing the optimal selection strategy by evaluating the efficiency, reliability and other comprehensive indexes of services. Nevertheless, there is no specific method for rating or estimating IoT services [
21] or grading the level of services only by a very simple method such as the estimating method by a Randomization Test (RT) and the estimating method by a Single Test in Steps (STS) [
22]. Neither of these methods consider the angular and the accidental factors, so that the resulting service level is not very reasonable, and it is difficult to achieve the purpose of filtering out bad services and preserving the quality services. For example, Kim et al. have studied the development and application of a taxonomy for IoT services [
23], but they did not propose a specific level evaluation method.
In this paper, a dynamic evaluation method is presented to estimate the quality level of the IoT service, which takes into account the comprehensive and changeable factors, and each new evaluation can achieve a higher level for better service indicators or vice versa, i.e., dynamic. Specifically, an estimation mechanism for the quality level of the IoT service based on fuzzy logic ([
24] also proved fuzzy theory can be applied to IoT effectively) is used to grade the quality of the service, which only considers the implementation effect of the service in the previous execution process, instead of considering what kind of evaluation system is adopted, which ensures the proposed method as a relatively generic approach. Firstly, a series of level changing rules based on fuzzy logic is defined, which can be used to calculate the quality level of the service by testing the implementation effect of the service. Furthermore, the dynamic influence factor for the rangeability of the fuzzy membership degree is analyzed and formulized. Experiments are carried out by using a simulated service set and show that the performance of the proposed method can achieve a more stable result and is more in line with the actual service level in comparison with existing approaches, i.e., RT and STS. To sum up, our main contribution is that the proposed method, which fully considers the dynamic changing of the service and intensively takes the uncertainty of QoS into account, i.e., combining the theory of fuzzy logic, is a relatively better approach in terms of appropriate evaluation of IoT services compared to the other methods. At the same time, it can be used as a general method, since it does not only limit the specific IoT sub-domain of the service, but also extracts the more common properties in the IoT service for dynamic evaluation, so that it can be applied to a specific domain by adding or deleting some certain attributes.
The rest of the paper is organized as follows.
Section 2 discusses the basic theory of fuzzy logic and proposes the estimation method for IoT service level based on fuzzy logic, as well as gives some cases to illustrate it. In
Section 3, the service execution time and service reliability as the evaluation parameters are added to the influence factor for the rangeability of the fuzzy membership degree; their definition is given, and how they change the amplitude of the membership degree is explained.
Section 4 establishes a probabilistic model to express the service passing the test or not and reports the experimental results and performance analysis in comparison with the existing approaches. Finally,
Section 5 concludes our work and sheds light on future works.
2. An Estimation Mechanism for the Quality Level of the Service Level Based on Fuzzy Logic
In 1965, American scholar Zadeh put forward a method to describe fuzzy phenomena in mathematics: fuzzy sets. The fuzzy set theory holds that the object in the domain of discourse becomes gradually transitive due to the nature of the collection, rather than having a sudden change. The appropriate membership function is established, and the fuzzy objects can be analyzed by the relevant operation and transformation of fuzzy sets [
25]. The fuzzy logic extends the binary logic zero and one to the closed interval
for any value in it, and it can be consecutive with an infinite number of values, which belongs to the interval
. In domain of discourse
U, there is a given mapping
:
U →
; this means
determines a fuzzy set on
U, marked as
.
is called the membership function of
’, and this is denoted as
. It represents the degree to which an object belongs to the fuzzy set [
26]. When
,
u completely belongs to the fuzzy set
, and
u completely does not belong to fuzzy set
when it is equal to zero.
The service level reflects the comprehensive ability of the service, i.e., the overall service implementation and the evaluation of the service by the users (or the rating agency). The initialization of the service level can be evaluated by testing. The precondition of the testing is to have a set of evaluation samples based on a certain standard, and the evaluation sample is divided into the service levels. A simpler assessment (i.e., STS) is that if the service passes a test of an evaluation sample of n, we speak about the service reaching a level of n. This method has great randomness such that the sample of the same rating may not be able to measure the same angle, i.e., the service could only pass the evaluation testing on these angles and cannot through testing at other angles. As a result, we need to do a series of tests to evaluate the level of service. In this paper, a method based on fuzzy logic is proposed to estimate the service level, and we can find out which level the service is most likely to reach based on the evaluation test.
For the sake of illustration, this paper divides the service into six levels (of course, it can be extended to n levels), and we use H to represent it, so . The membership degree of each level is denoted by (i), . We use K to represent the fuzzy set of the service level, and K is expressed as: |, i∈H}, where 0 ≤ ≤ 1, ≤ 1. For a service resource, the highest degree of membership is the level of the service resource.
For example, assume the membership of the six levels of a service after testing is , so the fuzzy set of the service level can be denoted as . As can be seen from the set K, the membership degree of Level 2 is the highest, so it can be estimated that the service is most likely to reach Level 2.
Based on the fuzzy logic proposed in [
27], the membership grade changing rules of fuzzy set
K are given in
Table 1.
m is the grade of the evaluation sample;
.
k is the number of rounds currently being calculated; and
q is defined as the changing factor of the membership degree, which affects the changing rangeability of the membership degree, i.e., the higher
q is, the more the membership degree
of the current level increases and vice versa.
The rule is defined in the way given below when it is used in practice. When the service passes the evaluation testing at a certain level, this level and the following level adopt the increase rule, while the above levels adopt the decrease rule. For cases that do not pass, the membership grade does not change [
27]. For example, as shown in
Table 2, the parameter
q is set to
in order to explain the changing rules of the membership grade in
K.
From this table, we can doubtlessly deduce that the service should be at the second level. Though it passed the third test, the fourth test at the same level failed. It is assumed that the last time the service was tested, it happened to coincide with the evaluation angle of the evaluation sample, which led to the passing of the test; or in this testing, the evaluation angle of the evaluation sample did not coincide with the test, so that the test failed. When performing the fifth service test at the same level, it failed again. It is possible to have a higher probability of not reaching this level, then lowering the level to continue the test. With this algorithm, some interference information can be excluded (i.e., some angle, contingency factor, etc.) to make the result more reasonable [
27]. The level of the service can be evaluated by a certain number of tests.
In the same test, the degree of membership change obtained is shown in
Table 3, after each stage when
.
At this point, we can find that the membership grade of Service Level 3 is the highest in the third test. If the test has finished at this time, the level of the service will return to 3. Therefore, the accuracy of the service level estimation depends on the number of tests and the strategy of testing. In general, the test at the same level should be repeated several times, especially for the case of failing several times for a certain level of test, and the level must be reduced to test again. For example, in
Table 3, the test level was reduced to 2 when the forth and fifth test of Level 3 were not passed.
In addition, in the event of two consecutive tests of the service not passing a certain level and still not passing the test after reducing the level the first time, we will make it equal to the first failure to try the level. In this case, we can guarantee the same subproblems, so that it is convenient for us to implement this using the iteration method.
Finally, considering the boundary conditions, the test level is no longer reduced when the test level is 1, and the results of the fuzzy set are integrated with the other level test for the test at Level 6 due to the two consecutive calculations showing a rising rule.
3. The Influence Factor for the Rangeability of the Fuzzy Membership Degree
Based on the above two examples, we can clearly see that parameter q determines the rangeability of the membership degree. Decrease rules, for example, = with the variation of . Since the service level is a comprehensive evaluation of the service, parameter q can consider many changeable factors, such as the speed of the test completed for services, the reliability, satisfaction and interest of the samples, etc. All of these factors may change over time, and the changed factors (better or worse) will affect the q in turn (higher or lower). Therefore, the next evaluation can produce a different result, which reflects the dynamic nature of the proposed method. In this paper, we selected two changeable factors to illustrate, i.e., the execution time of the service test and the reliability of the sample to illustrate.
First of all, the speed of service execution is compared with the similar services by a regular execution time and the longest execution time. The service completes the test in a time less than or equal to the regular execution time, indicating that the service response performance is very good; the performance of service response is flat when the service execution time is between regular and maximum time; if it exceeds the maximum time, we think the service response performance is poor [
27]. The service completion test speed factor can be defined as Definition 1 in the form of a function to express.
Definition 1. is the regular time to complete the evaluation sample test for the service; is the maximum time to complete the test for the service; ρ is the adjustment coefficient, . The function that denotes the speed of testing a service is defined as follows (for each evaluation sample test, the values of and can be different): Secondly, is used to represent the reliability of samples, . The larger the value of is, the more reliable the evaluation sample is and the faster the service level needs to change. The reliability of the evaluation sample reflects the historical accuracy of the sample. According to different historical stages, we have given different adjusting parameters for the calculation of its accuracy to reflect the reference value of the accuracy of different historical periods. Generally speaking, the most recent data are the most valuable, so we can obtain Definition 2 for and in most cases.
Definition 2. Set up and as two historical moments. is a closer moment to the present. Therefore, there are three time periods, the time period before , the time period – and the time period to present. , , have been used as factors to adjust the correct reference weight of the three historical periods. Each of these three factors is greater than zero and less than one, and . , and represent the accuracy of these three historical periods, so we have: If we use
,
,
respectively representing the same number of services evaluated by sample testing and the last evaluation results in three historical periods,
,
,
, respectively representing the total number of service tests evaluated by the sample in the three historical periods, therefore we have:
Finally, according to the characteristics of
q, set:
where “
c” is a constant,
. “
” is an adjustable coefficient to reflect the difference in the evaluation of different services.
when the service test execution time is within the normal range, and q becomes larger as the RE becomes higher.
becomes smaller when the test time goes beyond the normal range, and
q becomes smaller as
becomes lower.
, and
when the test time exceeds the maximum time, indicating the failure of the membership changing rule [
27].
In particular, this mechanism can be extended to achieve a level of self-renewal in service-providing applications; because when introducing service level matching in the previous section, we allowed the service to be run across level calling, which is consistent with the strategy of the evaluation test. In addition, the parameter q that determines the degree of membership changing is evolved according to the user’s feedback on the performance of the service such as the user’s satisfaction degree, interest degree, etc. At this time, the parameter can be understood as the credibility of user evaluation.