The present application claims priority to Korean patent application number 10-2015-0038950, filed on Mar. 20, 2015, the entire disclosure of which is incorporated herein in its entirety by reference.
1. Field of Invention
Various embodiments of the present invention relate to a method and system for selecting and recommending things based on quality of service in a web of things environment.
2. Description of Related Art
WoT (Web of Things) technology is a technology for realizing an IoT (Internet of Things) by connecting various things (sensor device, service etc.) of the real world and virtual world using web technologies (HTML, URI, HTTP etc.).
Generally, the WoT technology abstracts things into resources according to REST (Representational State Transfer) architecture style, expresses URI (URL) for identifying the resources, resource structures, and the resources in various formats (HTML, XML, JSON), and provides a method for connecting in hyperlinks, and REST API based on HTTP methods (POST, GET, PUT, DELETE) for accessing (generating, searching, updating, and deleting) the resources. In such a case, there is an advantage that various things may be easily connected through the web, and the connected things can be combined so as to make a new Mashup service. For example, it is possible to gather data collected from a sensor device (thing) and data collected from a map service (thing) using the REST API, and make a new Mashup service by operating in an interlocked manner with an actuator (thing).
In order to develop or utilize a Mashup service, there needs to be a search function for things, and the user may usually search a desired thing using a keyword.
However, the conventional technology of searching things based on keywords merely provides a list of things that the user wants, and not a search function that takes into consideration the QoS (Quality of Service).
In such a case, for example, when there is a patient of emergency, it is possible to make a search for an AED (Automated External Defibrillator) and emergency room (service) for emergency treatment, but it is not possible to know whether the AED is a normal operating AED or whether or not the emergency room is available to promptly process a request for emergency service. Therefore, a QoS based search for things in WoT is very important.
Recently, for QoS based search for things, a semantic web technology for storing semantic information for expressing/measuring QoS of things in ontology and inferring the QoS through the ontology is being developed. However, not only does the semantic web technology require a lot of effort in constructing the ontology, but it is also difficult to automatically update semantic information of things, making it difficult to actually adopt the technology.
Various embodiments of the present invention are directed to resolve all the aforementioned problems of the conventional technology, that is to collect quality information of web services of things and information on users' reviews regarding the web services of things, so as to generate a rule for predicting the QoS grade of the things.
Various embodiments of the present invention are also directed to predict the QoS grade of things according to the generated rule, and to select and recommend things corresponding to high priority QoS grades to the users.
One embodiment of the present invention provides a method for recommending a predetermined thing to a user in a WoT environment, the method including (a) obtaining web log data and metadata of at least one thing; (b) generating QoS features of the thing from the web log data and metadata; (c) in response to obtaining user's review information about thing, computing QoS grade information of the thing from the review information; and (d) generating a rule for predicting a QoS grade for a thing for which there is no review information with reference to the QoS grade information on the thing and the QoS features of the thing.
Another embodiment of the present invention provides a system for recommending proper things to a user in a web of things, the system including a QoS feature generator configured to obtain web log data and metadata of at least one thing, and to compute QoS features of the thing from the web log data and metadata; a QoS classifier generator configured to generate a QoS grade classifier for obtaining user's review information about thing, for computing QoS grade information of thing from the review information, and for predicting a QoS grade of thing which there is no user's review information with reference to the QoS grade information and the QoS features of the thing; and a thing recommender configured to, in response to receiving a request to provide a web of things service from a user, search a list of things and compute QoS features for each of the things, input the QoS features of each of the things to the rule to predict a QoS grade for each of the things, and recommend a thing having a high QoS grade to the user.
According to the aforementioned embodiments of the present disclosure, it is possible to collect quality information of web service of things and user's review information about web service of things, and generate a rule for predicting the QoS grade of things.
Furthermore, according to the aforementioned embodiments of the present disclosure, it is possible to predict the QoS grade of things according to the generated rule, and select and recommend things corresponding to high priority QoS grades to the users.
The above and other features and advantages of the present invention will become more apparent to those of ordinary skill in the art by describing in detail embodiments with reference to the attached drawings in which:
Hereinafter, embodiments will be described in greater detail with reference to the accompanying drawings. Embodiments are described herein with reference to cross-sectional illustrates that are schematic illustrations of embodiments (and intermediate structures). As such, variations from the shapes of the illustrations as a result, for example, of manufacturing techniques and/or tolerances, are to be expected. Thus, embodiments should not be construed as limited to the particular shapes of regions illustrated herein but may include deviations in shapes that result, for example, from manufacturing. In the drawings, lengths and sizes of layers and regions may be exaggerated for clarity. Like reference numerals in the drawings denote like elements.
Terms such as ‘first’ and ‘second’ may be used to describe various components, but they should not limit the various components. Those terms are only used for the purpose of differentiating a component from other components. For example, a first component may be referred to as a second component, and a second component may be referred to as a first component and so forth without departing from the spirit and scope of the present invention. Furthermore, ‘and/or’ may include any one of or a combination of the components mentioned.
Furthermore, ‘connected/accessed’ represents that one component is directly connected or accessed to another component or indirectly connected or accessed through another component.
In this specification, a singular form may include a plural form as long as it is not specifically mentioned in a sentence. Furthermore, ‘include/comprise’ or ‘including/comprising’ used in the specification represents that one or more components, steps, operations, and elements exist or are added.
Furthermore, unless defined otherwise, all the terms used in this specification including technical and scientific terms have the same meanings as would be generally understood by those skilled in the related art. The terms defined in generally used dictionaries should be construed as having the same meanings as would be construed in the context of the related art, and unless clearly defined otherwise in this specification, should not be construed as having idealistic or overly formal meanings.
[Embodiment of the Present Disclosure]
Configuration of an Entirety of the System
As illustrated in
First of all, the communication network 100 according to the embodiment of the present disclosure may have a two-aspect configuration of wired and wireless communication, and furthermore, the communication network 100 may be configured as one of various types of communication networks including WAN (Wide Area Network), LAN (Local Area Network), mobile communication network, and mobile communication network, and satellite communication network. More specifically, the communication network 100 in the present disclosure may include a wireless communication network realized by technologies of IEEE 802.11, CDMA (Code Division Multiple Access), WCDMA (Wideband Code Division Multiple Access), GSM (Global System for Mobile communications), and LTE (Long Term Evolution). However, the communication network 100 may include in at least some part thereof a well known wired/wireless data communication network, well known telephone network or well known wired/wireless television communication network.
Next, a system for providing a web of things service 200 according to an embodiment of the present disclosure may collect QoS features of things (not illustrated) and users' review information on each of the things, and perform a function of generating a rule for predicting a QoS grade of the things based on the collected QoS features and users' review information on the things. Furthermore, at a service request by the user, the system for providing a web of things service 200 may search for serviceable things, predict a QoS grade for each of the things according the generated rule, and recommend things corresponding to high priority QoS grades to the user.
Explanation on the configuration and functions of the system for providing a web of things service 200 according to the present disclosure will be made in detail later on.
Next, a user terminal apparatus according to an embodiment of the present disclosure 300 is a digital apparatus that includes a function of connecting to a system for providing a web of things service 200 or a server 400 and communicating with the same. Any digital apparatus such as a desktop computer, notebook computer, workstation, PDA, web pad, mobile phone and the like that are provided with a memory means and microprocessor so as to provide computation capabilities may be selected as a user terminal apparatus 300 according to the present disclosure. Especially, the user terminal apparatus 300 may include a browser (not illustrated) program that enables a user to receive a web of things service.
Lastly, the server 400 according to an embodiment of the present disclosure may be an information provision apparatus capable of communicating with the system for providing a web of things service 200 or the user terminal apparatus 300. Such a server 400 may be, for example, one of various types of web servers, and especially, one that may directly provide web log data or information related to web log data to the system for providing a web of things service 300.
Furthermore, the server 400 may connect an IP-based sensor network consisting of things of heterogeneous networks with the conventional Internet (for example, IP network), so that the things may be connected to the Internet. That is, in response to receiving a request of specifying a thing based on an IP address to perform communication from the user terminal apparatus 300, the server 400 may compress the HTTP, TCP, UDP, and IP header used in performing communication so as to be transmittable to the things (that is, sensor network), and may perform a function of restoring the compression on a response from the things so as to be transmittable to the user terminal apparatus 300 on the internet.
Configuration of a System for Providing a Web of Things Service
Hereinafter, explanation will be made on the configuration of the system for providing a web of things service according to the present disclosure 200 and functions of each component thereof.
As illustrated in
First of all, the QoS feature generator 210 according to the embodiment of the present disclosure may perform a function of computing web log data, that is a record of processing a request for a web of things service, and computing QoS feature from the metadata of things.
Web log data is data that has been processed and recorded at a request for a web of things service. The web log data may include an IP address that sent the request, processing time, HTTP method processing information and the like. Furthermore, thing metadata is information on a thing, that may include an ID, name, explanation, manufacturer, manufactured data, photograph, and certification information of the thing. The thing metadata may be registered by the developer of the thing.
In response to obtaining web log data regarding a thing, the QoS feature generator 210 may refine the web log data and convert the same into a request/response data through a data preconditioning process, and more specifically, the QoS feature generator 210 may perform a data preconditioning process on the web log data so that the converted resource request/response data includes an average response time, and number of times of requests/responses, that are statistical data of request/response records of the thing.
The QoS feature generator 210 may generate QoS feature from the resource request/response data and metadata of the thing. Especially, the QoS feature data generated by the QoS feature generator 210 may include information on an average time of response to a request for a web of things service, information on the reliability that is, the number of times of normal responses at requests made for a web of things service during a predetermined period of time, information on the availability, that is the ratio of time that the web of things service is not turned down during a predetermined period of time, and information on whether or not a certification has been made. Hereinafter, QoS feature on a thing being computed according to an embodiment of the present disclosure will be explained in detail with reference to
First of all, the QoS feature generator 210 may obtain the web log data and then perform a function of refining the data that is unnecessary or data that includes errors. As illustrated in
For example, <129.254.85.92, yjlee, PUT, /192.168.0.101/wot/devices/device1, 200, 230, 2014-10-27 13:10:27, 31, http> record may mean that a user named ‘yjlee’ who uses an IP address of 129.254.82.92 made a PUT request to device1, and a normal response (status 200) was made at 13th hour, 10 minutes, 27 seconds on Oct. 27, 2014, and 230 bytes of data was transmitted, and the response time was 31 millisecs.
Meanwhile, the web log data 310 may be sorted in the key order of <URI, time, method>, and the QoS feature generator 210 may convert the sorted web log data into resource request/response data 320 using a MapReduce function.
The method of converting the sorted web log data 310 into resource request/response data 320 using the MapReduce function will be explained in more detail with reference to
As illustrated in
For example, </device1, GET, 19.5, 2, 2, 37, 37> may mean that the average response time of a GET request regarding device1 is 19.5 millisecs, the total number of requests is 2, the total number of normal responses is 2, and MTTF is 37 hours. Numerical values representing MTTF and MTBF may be calculated by analyzing the ‘time’ feature of the web log data. For example, since the time interval that device1 made a normal response is 37 hours, MTTF may be 37, and since there was no breakdown, MTBF may be 37.
Meanwhile, the QoS feature generator 210 may collect metadata of each of a plurality of things connected via the web inside the web of things environment, and store the collected metadata in a predetermined metadata repository 330, and in a case of intending to obtain QoS feature of a certain thing, the QoS feature generator 210 may obtain metadata corresponding to the certain thing from the metadata repository 330.
More specifically, the QoS feature generator 210 may obtain certification information, that is a feature to be used as QoS feature of among the features (ID, title, name, manufacturer, manufactured data, photo, certification information of the thing) of the metadata stored in the metadata repository 330. Meanwhile, in the present specification, for the sake of ease of explanation, explanation was made based on an assumption that an additional metadata repository 330 is provided as a repository for storing the metadata of things, but without limitation. Thus, the metadata of things may be stored in a repository that is physically differentiated as aforementioned, or may be stored in a database of the system for providing a web of things service according to the present disclosure.
As illustrated in
Of among the attributes representing QoS features, the ‘response’ attribute is the response time, that is the time it, takes to be provided with a response to a service request, and the ‘reliability’ attribute is the reliability, that is the extent of preciseness of normality to the service request during a given period of time, and the ‘availability’ attribute is the availability representing the ratio of time where service is not turned down during the given period of time.
The QoS feature generator 210 may obtain data value regarding the ‘average-response’ attribute of among the resource request/response data 320 as the data value regarding the ‘response’ attribute, and the ‘reliability’ attribute and ‘availability’ attribute may each be computed by math formula 1 and math formula 2.
That is, as illustrated in
The sorted web log data according to the embodiment of the present disclosure is converted into resource request/response data through dispersed processing using a MapReduce function. The MapReduce is a core function of Hadoop which is an open source big data platform, which stores the web log data dispersedly through a dispersed file system of an HDFS (Hadoop Distributed File System), and processes (calculates) an operation of converting into the resource request/response data through the MapReduce function.
A Map function receives key(k1) and value(v1) as inputs of function, and uses the received key-values to parallel-process a logic of the user, and then outputs a new list of key(k2) and value(v2). When the Map function is performed repeatedly, numerous pieces of output data will be generated, and that output data will be sorted to the key(k2), and thus numerous values(list(v2)) will exist in each key(k2). A Reduce function receives inputs of key(k2) and value list (list(v2)), parallel-calculates the logic of the user, and then outputs a list of numerous ‘key(k3)-value(v3)’.
More specifically, as illustrated in
According to the present disclosure, as a dispersed processing method is performed using an open source, Hadoop MapReduce, in order to efficiently extract the QoS feature of things from the bulk web log data (big data), it is possible to generate the QoS feature efficiently and inexpensively.
Next, the QoS classifier generator 220 according to an embodiment of the present disclosure may perform a function of generating a rule that enables prediction of a QoS grade of things based on QoS features of things obtained from the QoS feature generator 210 and users' review information about things.
First, the QoS classifier generator 220 may collect review information on a thing from a plurality of users who use a web of things service, and then statistically analyze the collected review information of the users so as to compute a QoS grade for the thing. For example, assuming that user's review information on a thing is expressed as one of excellent, good, average, and poor, when 1000 users gave excellent, 100 users gave good, and 30 users gave poor for a certain thing (device 1), the QoS grade of device 1 computed by calculating an average value of the review information and standard deviation may be excellent.
According to an embodiment of the present disclosure, the QoS classifier generator 220 may generate a QoS classifier that predicts a QoS grade of a thing for which there is no user's review information through machine learning having QoS features and QoS grade information for each thing as training data.
More specifically, the QoS classifier generator 220 may generate a classifier that may execute a classification algorithm based on QoS features and QoS grade information and learn a rule for QoS grade evaluation, and classify input data (QoS features in the present disclosure) where the rule has been applied per grade. The classification algorithm may be a decision tree algorithm such as ID3, C4.5, CART, and CHAID.
That is, according to the present disclosure, the QoS grade classifier may be a decision tree generated based on QoS features and QoS grade information, and more particularly, when the QoS feature variable is defined as ‘features’, and the QoS grade information is defined as ‘labels’, it may be expressed as mapping function ‘f’ as shown below, and it is possible to perform a classification algorithm and generate function f.
Mapping function: f(features)→labels
More specifically, it is possible to it is possible to pre-classify ‘labels’ into excellent, good, average, and poor; extract ‘response’, ‘reliability’, ‘availability’, and ‘certified’ as features for classifying the ‘labels’, and then generate a classifier (or, classification rule) from the QoS features and QoS grade (QoS grade may have the same meaning as the label in the map function). Hereinafter, a process of generating a QoS grade classifier according to an embodiment of the present disclosure will be explained in detail with reference to
First of all, the QoS classifier generator 220 may collect user's review information 510 for each of a plurality of things, analyze the information 510 statistically, and compute a QoS grade 520 for each of the plurality of things. For example, as illustrated in
The QoS classifier generator 220 may receive input of QoS features 530 and QoS grade information 520 as training data, and generate a QoS grade classifier through a classification algorithm. Meanwhile, as aforementioned, the classification algorithm may be a decision tree algorithm such as ID3, C4.5, CART, and CHAID.
As illustrated in
The decision tree 550 may include a root node, intermediate node, and leaf node, and further, the decision tree 550 may include a branch that connects the nodes.
The leaf node of the QoS grade classifier (decision tree) 550 of the present disclosure may be a QoS label, and the root node and intermediate node may be QoS features. The QoS features 530 may be normalized in order to easily configure a decision tree. For example, ‘response’ (1575 milliseconds) of device 1 may be converted into a normalized ‘response’ feature value (<5 sec).
Meanwhile, to express a decision tree 550 of the QoS grade classifier in a rule, the rule may be as follows: Rule 1 is “IF (response >5 sec) AND certified=‘no’ THEN QoS=‘Poor’”, Rule 2 is “IF (response ≦5 sec) AND reliability ≧99% AND availability ≧99.9% THEN QoS=‘Excellent’”, Rule 3 is “IF (response ≦5 see) AND reliability <99% AND availability ≧99.9% THEN QoS=‘Good’”, and Rule 4 is “IF (response ≦5 sec) AND reliability ≧99% AND availability <99.9% THEN QoS=‘Average’”.
As illustrated in
As illustrated in
According to the present disclosure, the greater the training data, the more accurate the QoS grade classifier, and every time training data is newly input and a QoS grade classifier is regenerated, the condition indicating the rule may differ.
Next, in response to there being a request for a web of things service from the user, the thing recommender 230 according to an embodiment of the present disclosure may search for serviceable things, and may perform a function of recommending a thing having the highest QoS grade of among the searched things to the user.
In response to there being a thing for which there is no QoS grade information of among the searched things, the thing recommender 230 may predict a QoS grade for each of the things for which there is no QoS grade information using the QoS grade classifier generated from the QoS classifier generator 220. More specifically, it is possible to input QoS features for each of the things for which there is no QoS grade information in the QoS grade classifier, thereby predicting the QoS grade. Then, the thing recommender 230 may compare the QoS grades of the searched things and recommend a thing with a high grade to the user.
More specifically, as illustrated in
For example, as illustrated in
Meanwhile,
Since the present disclosure automatically generates a classifier (rule) for predicting a QoS grade of a thing using the classification technology of machine learning, it is possible to update/expand a rule with less efforts than in the conventional technology of expressing and inferring the QoS of things. More specifically, since the semantic web technology stores and manages semantic information for expressing/measuring and inferring (predicting) QoS in ontology, a lot of effort must be put into establishing the ontology, and it is difficult to automatically update the ontology. On the other hand, in the case of the present disclosure, since it is possible to automatically generate a classifier (rule) for predicting a QoS grade, it is easy to update the rule. Especially, the present disclosure uses QoS features and QoS grade information of things as training data necessary for increasing the accuracy of the QoS grade classifier, but uses web log data where history of request/response for things is accurately recorded to extract QoS features, and computes QoS grade information from the review information, thereby generating a QoS grade classifier having a high accuracy, the more abundant the training data, the longer the accuracy of the classifier may be increased.
Furthermore, unlike the conventional method of analyzing user profiles and classifying into user groups with similar features, and using the same to predict and recommend preference of the users, the present disclosure does not need user profiles, and thus it is possible to protect users' privacy and recommend appropriate things.
Next, in the database 240 according to an embodiment of the present disclosure, QoS features, metadata of things, and QoS grade classifier may be stored. Although
Lastly, the controller 260 according to an embodiment of the present disclosure may perform a function of controlling flow of data between the QoS features generator 210, QoS classifier generator 220, thing recommender 230, database 240, and communicator 250. That is, the controller 260 according to the present disclosure may control each of the QoS features generator 210, QoS classifier generator 220, thing recommender 230, database 240 and communicator 250 to perform their unique functions by controlling data flow to and from the system for providing a web of things service 200 and data flow between the components of the system for providing a web of things service 200.
The aforementioned various embodiments of the present disclosure may be realized in program command formats that may be performed through various computer components and be recorded in a computer readable record media. The computer readable record media may include a program command, data file, or data structure, or a combination thereof. A program command being recorded in a computer readable record media may be one that has been especially designated and configured for the present disclosure or one that is well known in the related art. Examples of computer readable record media include magnetic media such as hard disk, floppy disk, and magnetic tape; optic record media such as CD-ROM and DVD; magneto-optical media such as floptical disk; and hardware apparatus especially configured to store and perform program commands such as ROM, RAM, and flash memory and the like. Examples of program commands include not only mechanical codes such as those made by compilers but also sophisticated language codes that may be executed by computers using interpreters. The hardware device may be configured to operate as one or more software modules in order to perform processes of the present disclosure, and vice versa.
In the drawings and specification, there have been disclosed typical exemplary embodiments of the invention, and although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation. As for the scope of the invention, it is to be set forth in the following claims. Therefore, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2015-0038950 | Mar 2015 | KR | national |