This application claims the benefit of Korean Patent Application Nos. 10-2016-0110328, filed Aug. 29, 2016 and 10-2017-0094121, filed Jul. 25, 2017, which are hereby incorporated by reference in their entirety into this application.
The present invention relates generally to Internet-of-Things (IoT) technology and, more particularly, to technology for interoperation between an Open Connectivity Foundation (OCF) device and a Bluetooth Low Energy (BLE) device that does not support OCF.
In the current market, platforms/frameworks for supporting the Internet of Things (IoT) in various manners coexist. Each platform emphasizes its own advantages to compete with other platforms for market share. Among these platforms, in Open Connectivity Foundation (OCF), various companies are participating in fixing related standards at the initiative of Samsung and Intel. Simultaneously therewith, IoTivity, which is an open-source project for implementing standards, is ongoing together with standardization.
IoTivity is an IoT open-source framework for realizing OCF standards, and is intended to support connections between respective devices independently of various Operating Systems (OSs) and communication protocols.
Bluetooth is protocol technology used to connect devices such as peripheral devices using frequencies in a 2.4 GHz band. With the advent of Bluetooth version 4.0, a Bluetooth Low Energy (BLE) function has been added, by which a basis for use with the IoT has been established. In IoT, BLE is a protocol that can be usefully utilized in wearable devices owing to characteristics such as low power consumption and low coverage.
Meanwhile, Korean Patent Application Publication No. 10-2014-0074152 entitled “Method and Mobile Terminal for Controlling BLE Device” discloses a method for, when a BLE device is registered, efficiently managing a Bluetooth Low Energy (BLE) device by indicating attribute information of the BLE device in a list and by registering information about the addition of a user to the BLE device, received from the user, to be mapped to the BLE device, and a mobile terminal for the method.
However, Korean Patent Application Publication No. 10-2014-0074152 is configured to manage a BLE device using a mobile terminal, and is disadvantageous in that, when a standard supported by an IoT device (e.g. mobile terminal) is not supported by the BLE device, configuration for interoperably connecting the IoT device to the BLE device is not taken into consideration.
Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to interoperably connect an OCF device that supports an OCF framework to an existing non-OCF BLE device that does not support the OCF framework.
Another object of the present invention is to allow a gateway for interoperation between an OCF device and a non-OCF BLE device to communicate with the non-OCF BLE device using the feature of a Generic ATTribute profile (GATT) when receiving a Representational State Transfer (REST) architectural style (i.e. RESTful) operation from the OCF device and to provide the results of communication with the non-OCF BLE device to the OCF device through a RESTful style operation.
In accordance with an aspect of the present invention to accomplish the above objects, there is provided an Internet-of-Things (IoT) device interoperation method using an IoT device interoperation apparatus, including performing an endpoint discovery procedure between an Open Connectivity Foundation (OCF) device and a non-OCF Bluetooth Low Energy (BLE) device; and performing interoperation between the OCF device and the non-OCF BLE device by performing a resource manipulation procedure using a Create, Retrieve, Update, Delete, and Notify (CRUDN) operation.
In accordance with another aspect of the present invention to accomplish the above objects, there is provided an Internet-of-Things (IoT) device interoperation apparatus, including an endpoint discovery unit for performing an endpoint discovery procedure between an Open Connectivity Foundation (OCF) device and a non-OCF Bluetooth Low Energy (BLE) device; a resource manipulation unit for performing interoperation between the OCF device and the non-OCF BLE device by performing a resource manipulation procedure on the non-OCF BLE device through a Create, Retrieve, Update, Delete, and Notify (CRUDN) operation in response to a request from the OCF device; and a resource model database (DB) unit for updating resource information in a resource model DB in response to a request from the endpoint discovery unit and/or the resource manipulation unit.
The above and other objects, features and advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
The present invention will be described in detail below with reference to the accompanying drawings. Repeated descriptions and descriptions of known functions and configurations which have been deemed to make the gist of the present invention unnecessarily obscure will be omitted below. The embodiments of the present invention are intended to fully describe the present invention to a person having ordinary knowledge in the art to which the present invention pertains. Accordingly, the shapes, sizes, etc. of components in the drawings may be exaggerated to make the description clearer.
In the present specification, it should be understood that the terms such as “include” or “have” are merely intended to indicate that features, numbers, steps, operations, components, parts, or combinations thereof are present, and are not intended to exclude a possibility that one or more other features, numbers, steps, operations, components, parts, or combinations thereof will be present or added.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings.
Referring to
In functions for respective layers in the OCF framework illustrated in
An OIC framework layer may provide functional interactions specified in the OIC core specification (ID & Addressing, Resource model, CREATE, RETRIEVE, UPDATE, DELETE, NOTIFY (CRUDN), Messaging, Discovery, Device management, and Security).
A transport layer may provide end-to-end flow communication suitable for Quality of Service (QoS) constraints.
A networking layer may provide a function for data exchange between OIC devices in a network.
An L2 connectivity layer may provide a connection function for the physical link layer (e.g. Wi-Fi or Bluetooth).
Further, interactions between individual objects may be realized via operations satisfying a RESTful style based on resource models.
That is, a RESTful operation may be composed of individual operations satisfying CRUDN.
Here, the RESTful operation may include at least one of CREATE, RETRIEVE, UPDATE, DELETE, and NOTIFY operations.
Here, the OCF client may be an entity that initiates communication in the RESTful operation, and may correspond to the OCF device according to an embodiment of the present invention.
Here, the OCF server may be an entity that responds to the communication initiated by the client, and may correspond to an IoT device interoperation apparatus according to an embodiment of the present invention.
Referring to
Further, the IoTivity architecture may use a Constrained Application Protocol (CoAP, RFC 7252), established by Internet Engineering Task Force (IETF), as a transport protocol. The CoAP may be a transport protocol specified for constrained devices having limited capabilities.
Referring to
The APPS region may provide applications. The controller region may include a physical interface layer and a link layer. The host region may include a Logical Link Control & Adaptation Protocol (L2CAP) layer that supports packet encapsulation or partitioning/merging, a Generic ATTribute profile (GATT) that is concerned with data transmission in BLE, an ATTribute (ATT) protocol, a Generic Access Profile (GAP) that is used for the most basic control, such as the connection between BLE devices, and a Security Manager Protocol (SMP) that defines a pairing or key exchange method between devices. A Host Controller Interface (HCI) is present between the host region and the controller region, and may then provide a communication means between the host region and the controller region. In this case, when the host and the controller are implemented in a single chip, the HCI may be provided as a software (SW) API. When the controller is manufactured as a separate chip, the HCI may be a Universal Asynchronous Receiver/Transmitter (UART), a Serial Peripheral Interface (SPI), or a Universal Serial Bus (USB) interface.
Referring to
Here, the reference model may include a service characteristic model that represents data handled by BLE nodes.
Here, the reference model may define basic procedures required to exchange data. In GATT, the data to be exchanged by devices may be hierarchically represented. The actual data may be represented by characteristics, and characteristics may be collected to constitute a single service. GATT-based profiles for respective purposes, which are implemented based on the GATT, may define data that is used as characteristics, and related characteristics may be collected to constitute a single service.
Each characteristic may be composed of attributes.
Each attribute may be composed of the following fields.
Attribute=attribute handle+attribute type+attribute value+attribute permission
The attribute handle may correspond to a handle for identifying each attribute.
The attribute type may correspond to a type value (e.g. UUID is used) for identifying each attribute.
The attribute value may correspond to the actual value of each attribute.
The attribute permission may correspond to the operation permitted for each attribute.
Also, each characteristic may be defined by the following attributes.
Characteristic definition=characteristic declaration+characteristic value+(optional) characteristic descriptor(s)
In this way, the manipulation of characteristics constituting each service may be implemented using an ATT protocol. Services used in GATT-based profiles defined by a Bluetooth Special Interest Group (SIG), actual services, and formats and definition methods of respective characteristics are defined in detail in the Bluetooth core specification.
The ATT protocol may correspond to a communication protocol having a simple client/server structure. ATT may be used when an application that compiles with GATT-based profiles processes data.
Here, the data processed by the application may be attributes in GATT.
Here, examples of an ATT operation may provide the operations shown in the following Table 1.
Communication entities in the GATT may function as one of a client and a server, as in the case of ATT.
The client may be the client of the ATT, and may send a request to process an attribute to the server and receive a response to the request from the server.
The server may be the server of the ATT, and may receive a request for the attribute of the client, process the request, and send a response to the request to the client.
The GATT may support features shown in the following Table 2 so as to manipulate attributes. Respective features may be based on operations provided by the ATT. ATT operations to which sub-procedures of respective features are mapped may be given in the following Table 2.
The following Table 2 shows an example of a list of features supported by the GATT.
In BLE data communication according to an embodiment the present invention, details of the Bluetooth core specification, ATT operation types and messages in Table 1, and the list of features supported by the Generic Attribute profile (GATT) in Table 2 may correspond to contents disclosed in http://www.bluetooth.com.
Referring to
Further, an IoT device interoperation apparatus 100 may function as an OCF server, instead of the non-OCF BLE device 20, for the OCF device 10.
Here, the IoT device interoperation apparatus 100 may correspond to a gateway apparatus for interoperably connecting the OCF device 10 to the non-OCF BLE device 20.
That is, the IoT device interoperation apparatus 100 may include the functions of a typical gateway apparatus, and may perform gateway functions based on OCF standards.
The non-OCF BLE device 20 may correspond to any of various types of existing devices (e.g. a scale, a sphygmomanometer, etc.) that support BLE and that have been widely popularized.
As a communication protocol between the non-OCF BLE device 20 and the IoT device interoperation apparatus 100, BLE may be used.
The OCF device 10 may be a device equipped with an IoTivity stack, and may generally be, for example, a smart phone.
As a communication protocol between the OCF device 10 and the IoT device interoperation apparatus 100, any communication protocol (e.g., Ethernet, WiFi, or the like) that is supported by OCF may be used.
The following Table 3 shows an example of a characteristic database (DB) of a non-OCF BLE device according to an embodiment of the present invention.
Referring to Table 3, the characteristic DB of the non-OCF BLE device may include a handle address, an identifier, a permitted operation, and an actual value depending on the type of device.
The communication procedure of the IoT device interoperation apparatus 100 according to an embodiment of the present invention may chiefly include an endpoint discovery procedure and a resource manipulation procedure.
When information about an OCF server is not known before communication is initiated, the OCF client may perform the endpoint discovery procedure.
Therefore, when information about the IoT device interoperation apparatus 100 is not known before communication is initiated, the OCF device 10 may perform the endpoint discovery procedure. The endpoint discovery procedure may be performed using CoAP discovery or HTTP discovery.
In accordance with an embodiment of the present invention, the IoT device interoperation apparatus 100 may perform a CoAP-based endpoint discovery procedure in order to interoperably connect the OCF device 10 to the non-OCF BLE device 20.
The CoAP-based endpoint discovery procedure may be processed in such a way as to transmit a discovery request packet to a prearranged multicast address and port and receive responses that are sent by devices joining the corresponding multicast address. Here, the devices joining the corresponding multicast address may include the IoT device interoperation apparatus 100 or other OCF devices 10.
If the OCF device 10 discovers information about the non-OCF BLE device 20 via endpoint discovery or becomes aware of the information through another path, the OCF device 10 may perform manipulation on resources mapped to the non-OCF BLE device 20 using a CRUDN operation. Here, fundamentally, all OCF nodes may join the corresponding multicast address.
Prior to all procedures described in the present invention, pairing and bonding procedures between the IoT device interoperation apparatus 100 and the non-OCF BLE device 20 may be performed in advance.
That is, the IoT device interoperation apparatus 100 according to an embodiment of the present invention may know in advance information about all non-OCF BLE devices 20 connected thereto.
Referring to
The endpoint discovery unit 110 may perform an endpoint discovery procedure between the Open Connectivity Foundation (OCF) device 10 and the non-OCF BLE device 20.
The resource manipulation unit 120 may perform interoperation between the OCF device and the non-OCF BLE device by performing a resource manipulation procedure.
The resource model DB unit 130 may mange a resource model DB.
Here, the resource model DB unit 130 may write resource information to the resource model DB or update the resource information in the resource model DB in response to a request from the endpoint discovery unit 110 or the resource manipulation unit 120.
Here, the resource model DB unit 130 may read resource information requested by the endpoint discovery unit 110 and the resource manipulation unit 120 from the resource model DB, and may provide the read resource information.
Further, the resource model DB unit 130 may activate the setting of notification of resource information using the resource model DB depending on the NOTIFY operation.
In this case, the resource model DB unit 130 may deactivate the setting of notification of resource information using the resource model DB depending on the NOTIFY operation.
Here, the IoT device interoperation apparatus 100 may communicate with the OCF device 10 using a communication protocol supported by OCF and may communicate with the non-OCF BLE device 20 using Bluetooth Low Energy (BLE).
Referring to
That is, at step S210, the endpoint discovery procedure between the OCF device 10 and the non-OCF BLE device 20 may be performed.
Referring to
In detail, at step S211, when the OCF device 10 sends the discovery request message to a preset multicast address and port, a Constrained Application Protocol (CoAP)-based endpoint discovery procedure may be performed.
For example, the multicast address may correspond to an Internet Protocol version 6 (IPv6) address of FFOX::FD, and the port may correspond to 5683.
Here, at step S211, the OCF device 10 may specify a specific resource name in the discovery request message and may send the discovery request message to the IoT device interoperation apparatus 100.
Further, in the procedure at step S210, the discovery request may be processed at step S212.
That is, at step S212, resource information of all non-OCF BLE devices 20 connected to the IoT device interoperation apparatus 100 may be returned. Here, at step S212, it may be determined whether the OCF device 10 specified the specific resource name in the discovery request message. When the specific resource name is included in the discovery request message, step S212 may be configured to return a response message, with only information about the corresponding resource being included in the response message.
Further, in the procedure at step S210, characteristics may be requested at step S213.
At step S213, the IoT device interoperation apparatus 100 may check the connection states of all the non-OCF BLE devices 20 connected thereto.
Here, at step S213, the IoT device interoperation apparatus 100 may check the connection states and may reconnect to non-OCF BLE devices 20 which are disconnected therefrom.
At step S213, if connections between the IoT device interoperation apparatus 100 and non-OCF BLE devices 20 have been completed, the IoT device interoperation apparatus 100 may request services and/or characteristics from the non-OCF BLE devices 20 that have been connected using the features of “service discovery” and “characteristic discovery” that are supported by the GATT.
Examples of the GATT may correspond to details disclosed in the above Table 2.
Further, in the procedure at step S210, characteristics may be returned at step S214.
That is, at step S214, the non-OCF BLE devices 20 that have been connected may return the requested services and/or characteristics to the IoT device interoperation apparatus 100.
Here, the IoT device interoperation apparatus 100 may create resource information corresponding to the non-OCF BLE devices 20 using the received services and/or characteristics of the non-OCF BLE devices 20.
The IoT device interoperation apparatus 100 may add the created resource information to the resource model DB.
Here, the resource information may include resource names, resource URI links, etc.
The resource information may be created by referring to the results of retrieval from the file in which resource models are stored or from the Internet site on which the DB of the resource models is stored. Here, the resource information may be stored in the resource model DB so that respective pieces of resource information are associated with BLE characteristic handles corresponding to the services and/or characteristics of the non-OCF BLE devices 20.
Here, the schema information of the resource models may be provided as a separate JavaScript Object Notation (JSON) file.
Further, the Internet site on which the DB of the resource models is stored may be a oneIoTa site (www.oneiota.org) on which the DB of all resource models generated by OCF is stored.
In this case, the IoT device interoperation apparatus 100 may generate a mapping table in which OCF resource identifiers (OCF resource URIs) mapped to the pieces of resource information added to the resource model DB and BLE characteristic handles mapped to the non-OCF BLE devices 20 corresponding to the OCF resource URIs are stored.
Here, when in the mapping table, a BLE service includes one or more characteristics, an OCF resource URI may be mapped to one or more BLE characteristic handle values.
For example, it can be seen that Table 4 shows an example of an OCF resource—BLE characteristic mapping table. The example of the mapping table of Table 4 may be constructed using the characteristic DB of the non-OCF BLE device of Table 3.
Referring to Table 4, ‘OCF resource URI’ may include a device name corresponding to the non-OCF BLE device 20 and an index (serial number) for identifying the same type of device.
As shown in Table 4, the OCF resource identifier (URI) may be generated in the format of /<device name>/<n>.
However, the format of the OCF resource URI is not limited thereto, and the OCF resource URI may be generated in other formats, as long as the OCF resource URI contains required information.
Here, ‘n’ may be an index (serial number) added to provide for the case where one or more devices of the same type are connected (where n=0, 1, 2, . . . ).
‘BLE characteristic handle’ may correspond to the handle value of a characteristic included in the service of the non-OCF BLE device 20.
For example, as shown in Table 4, in index ‘0’, the ‘heartrate’ of the OCF resource URI may be the name of an OCF device corresponding to a non-OCF BLE heart rate device, and ‘0’ means that the device is a first device. ‘BLE characteristic handle 0x0027’ denotes the characteristic handle value of the non-OCF BLE device mapped to the OCF resource URI.
Further, in the procedure at step S210, a discovery response message may be sent at step S215.
That is, the IoT device interoperation apparatus 100 may update the DB by creating resource information using the characteristics received at step S214, and may generate a response message corresponding to the discovery request at step S212 using the updated DB and send the response message to the OCF device 10.
Here, at step S215, the discovery response message may be returned to the OCF device 10, with all or part of the resource information being included in the discovery response message.
Here, at step S215, all or part of the resource information may be included in the discovery response message, based on the results of determining whether the OCF device 10 specified the specific resource name in the discovery request message at step S212.
Here, at step S215, if it is determined that a specific resource name is specified, only resource information corresponding to the specific resource name may be included in the discovery response message.
In contrast, at step S215, if it determined that a specific resource name is not specified, all or part of the resource information of all non-OCF BLE devices 20 that have been connected at step S213 may be included in the discovery response message.
Further, step S210 may further include, before receiving the discovery request message at step S211, the step of receiving and processing characteristics.
That is, the step of receiving and processing the characteristics may be configured such that, when connection between the IoT device interoperation apparatus 100 and the non-OCF BLE device 20 is made, the IoT device interoperation apparatus 100 may receive services and/or characteristics from the non-OCF BLE devices 20.
The step of receiving and processing the characteristics may be performed by connecting each non-OCF BLE device 20 to the IoT device interoperation apparatus 100 through pairing when the power of the non-OCF BLE device 20 has been turned on.
Here, the step of receiving and processing the characteristics may be configured such that the IoT device interoperation apparatus 100 adds resource information corresponding to the services and/or characteristics, received at step S214, to the resource model DB.
An example of the step of receiving and processing characteristics will be described in detail below with reference to the sequence diagram of
Further, the IoT device interoperation method according to the embodiment of the present invention may perform a resource manipulation procedure at step S220.
That is, at step S220, the resource manipulation procedure may be performed using a CRUDN (CREATE, RETRIEVE, UPDATE, DELETE and NOTIFY) operation, and then interoperation between the OCF device 10 and the non-OCF BLE device 20 may be performed.
Referring to
That is, at step S221, the IoT device interoperation apparatus 100 may receive a CRUDN message for performing respective operations which satisfy RESTful-style CRUDN operation (CREATE, RETRIEVE, UPDATE, DELETE and NOTIFY) from the OCF device 10.
Further, in the procedure at step S220, the CRUDN message may be processed at step S222.
That is, at step S222, the IoT device interoperation apparatus 100 may process the received CRUDN message and may check parameters and information contained in the CRUDN message.
The following Table 5 shows examples of parameters contained in the CRUDN message.
Further, in the procedure at step S220, the CRUDN operation may be performed at step S223.
That is, at step S223, respective operations satisfying the CRUDN operation (CREATE, RETRIEVE, UPDATE, DELETE, and NOTIFY) may be performed based on the parameters and information contained in the CRUDN message.
Here, at step S223, the IoT device interoperation apparatus 100 may interoperably connect the OCF device 10 to the non-OCF BLE device based on the CRUDN operation.
Hereinafter, the CRUDN operation, which is a detailed process for interoperably connecting IoT devices to each other via the endpoint discovery procedure at step S210 and the resource manipulation procedure at step S220, will be described in detail using respective sequence diagrams with reference to
Further, the resource manipulation unit 120 of the IoT device interoperation apparatus 100 according to an embodiment of the present invention may perform the above-described step S220 and detailed steps 5221 to S223.
A detailed process of the endpoint discovery method at the above-described step S210 according to an embodiment of the present invention will be described in detail with reference to the sequence diagram of
Referring to
In detail, at step S310, when the OCF device 10 sends the discovery request message to a preset multicast address and port, a Constrained Application Protocol (CoAP)-based endpoint discovery procedure may be performed.
For example, the multicast address may correspond to an Internet Protocol version 6 (IPv6) address of FFOX::FD, and the port may correspond to 5683.
Here, at step S310, the OCF device 10 may specify a specific resource name in the discovery request message and may send the discovery request message to the IoT device interoperation apparatus 100.
Further, the endpoint discovery method according to an embodiment of the present invention may process the discovery request at step S320.
Here, at step S320, it may be determined whether the OCF device 10 specified a specific resource name in the discovery request message.
Next, in the endpoint discovery method according to an embodiment of the present invention, the IoT device interoperation apparatus 100 may request characteristics from the non-OCF BLE devices 20 at step S330.
Here, at step S330, the IoT device interoperation apparatus 100 may check the connection states of all non-OCF BLE devices 20 connected thereto, and may reconnect to non-OCF BLE devices 20 that have been disconnected from the IoT device interoperation apparatus 100.
At step S330, if connections between the IoT device interoperation apparatus 100 and non-OCF BLE devices 20 have been completed, the IoT device interoperation apparatus 100 may request services and/or characteristics from the non-OCF BLE devices 20 that have been connected using the features of “service discovery” and “characteristic discovery” that are supported by the GATT.
Next, the endpoint discovery method according to the embodiment of the present invention may return the characteristics at step S340.
That is, at step S340, the non-OCF BLE devices 20 may return the requested services and/or characteristics to the IoT device interoperation apparatus 100.
Here, the IoT device interoperation apparatus 100 may add OCF resource information, corresponding to the non-OCF BLE devices 20, to the resource model DB using the received services and/or characteristics of the non-OCF BLE devices 20.
Here, the resource information may be created by referring to the results of retrieval from the file in which resource models are stored or from the Internet site on which the DB of the resource models is stored. Here, the resource information may be stored in the resource model DB so that respective pieces of resource information are associated with BLE characteristic handles corresponding to the services and/or characteristics of the non-OCF BLE devices 20.
Here, the IoT device interoperation apparatus 100 may add the created OCF resource information to the resource model DB.
Here, the resource information may include resource names, resource URI links, etc.
Here, the schema information of the resource models may be provided as a separate JavaScript Object Notation (JSON) file.
Further, the Internet site on which the DB of the resource models is stored may be a oneIoTa site (www.oneiota.org) on which the DB of all resource models generated by OCF is stored.
In this case, the IoT device interoperation apparatus 100 may generate a mapping table in which OCF resource identifiers (OCF resource URIs) mapped to the pieces of resource information added to the resource model DB and BLE characteristic handles mapped to the non-OCF BLE devices 20 corresponding to the OCF resource URIs are stored.
The OCF resource URIs or BLE characteristic handles have been described above with reference to Table 4.
Next, the endpoint discovery method according to the embodiment of the present invention may send a discovery response message at step S350.
That is, at step S350, the IoT device interoperation apparatus 100 may send a response message to the OCF device 10 in response to the discovery request from the OCF device 10.
At step S350, the discovery response message may be returned to the OCF device 10, with all or part of the resource information being included in the discovery response message.
Here, at step S350, all or part of the resource information may be included in the discovery response message, based on the results of determining whether the OCF device 10 specified the specific resource name in the discovery request message.
Here, at step S350, if it is determined that the specific resource name is specified, only resource information corresponding to the specific resource name may be included in the discovery response message.
In contrast, at step S350, if it determined that a specific resource name is not specified, all or part of the resource information of all non-OCF BLE devices 20 that have been connected at step S330 may be included in the discovery response message.
Referring to
That is, at step S360, the IoT device interoperation apparatus 100 may receive characteristics from non-OCF BLE devices 20 using the features of the GATT.
Here, step S360 may be performed on condition that the IoT device interoperation apparatus 100 is connected to each non-OCF BLE device 20.
Step S360 may be configured such that, after connections between the IoT device interoperation apparatus 100 and the non-OCF BLE devices 20 have been completed, the IoT device interoperation apparatus 100 may receive services and/or characteristics from the non-OCF BLE devices 20.
Then, the endpoint discovery method according to the embodiment of the present invention may process the characteristics at step S370.
That is, at step S370, the IoT device interoperation apparatus 100 may add OCF resource information, corresponding to the non-OCF BLE devices 20, to the resource model DB of the IoT device interoperation apparatus 100 using the received services and/or characteristics of the non-OCF BLE devices 20.
Here, at step S370, the OCF resource information corresponding to the services and/or characteristics of the non-OCF BLE devices 20 may be created by referring to the results of retrieval from the file in which resource models are stored or from the Internet site on which the DB of the resource models is stored.
Further, at step S370, the resource information created by the IoT device interoperation apparatus 100 may be added to the resource model DB of the IoT device interoperation apparatus 100.
Here, step S370 may be configured to store OCF resource information in which OCF resource URIs and BLE characteristic handles corresponding to non-OCF BLE devices match each other in the resource model DB.
Referring to Table 4, ‘OCF resource URI’ may include a device name corresponding to each non-OCF BLE device 20 and an index (serial number) for identifying the same type of device.
‘BLE characteristic handle’ may correspond to the handle value of the characteristic of the non-OCF BLE device 20.
Furthermore, in the endpoint discovery method according to the embodiment of the present invention, the IoT device interoperation apparatus 100 may receive a discovery request message from the OCF device 10 at step S380.
Next, the endpoint discovery method according to the embodiment of the present invention may process the discovery request and generate a discovery response message at step S385, and may send the discovery response message at step S390.
At step S390, the discovery response message may be returned to the OCF device 10, with all or part of the resource information being included in the discovery response message.
Further, a detailed process of the CRUDN operation according to the embodiment of the present invention, described above at step S220, will be described in detail later with reference to sequence diagrams in
A description of attributes and features used by the GATT profile according to the embodiment of the present invention has been made above with reference to Table 2.
Here, the detailed description of individual parameters for a CRUDN message according to an embodiment of the present invention has been made above with reference to Table 5.
Referring to
That is, at step S410, the OCF device 10 may request the IoT device interoperation apparatus 100 to create a new resource.
Here, the OCF device 10 may generate a CREATE request message that includes information about the resource to be newly created using a content parameter Cn in order to request the creation of the new resource.
At step S410, the OCF device 10 may send a CREATE request message to the IoT device interoperation apparatus 100.
Here, at step S410, the IoT device interoperation apparatus 100 may receive the CREATE request message.
However, since the non-OCF BLE device 20 does not support the feature of creating new characteristics, it cannot create new characteristics.
Therefore, the IoT device interoperation apparatus 100 cannot create new resource information for the non-OCF BLE device 20, either.
Further, in the CREATE operation performance method according to the embodiment of the present invention, the IoT device interoperation apparatus 100 may send a CREATE response message to the OCF device 10 at step S420.
In detail, at step S420, the IoT device interoperation apparatus 100 may respond to the OCF device 10 to indicate that new resource information cannot be created.
At step S420, the IoT device interoperation apparatus 100 may generate a CREATE response message containing a response code 4.05 (Method Not Allowed) as a response code parameter Rs in order to indicate that a new resource information create request cannot be processed.
At step S420, the OCF device 10 may identify that new resource information cannot be created by checking the response code 4.05 (Method Not Allowed) through the response code parameter Rs contained in the received CREATE response message.
Referring to
That is, at step S510, the OCF device 10 may request resource information in a current state from the IoT device interoperation apparatus 100.
At step S510, the OCF device 10 may generate a RETRIEVE request message in which the URI of the resource requested by the OCF device 10 is included in a To parameter in order to make a RETRIEVE request.
Next, the RETRIEVE operation performance method according to the embodiment of the present invention may retrieve information from a mapping table at step S520.
That is, at step S520, an OCF resource URI and a BLE characteristic handle value, which correspond to the URI stored in the To parameter, may be retrieved from the mapping table such as that shown in the example of Table 4.
Next, the RETRIEVE operation performance method according to the embodiment of the present invention may request the reading of a characteristic value at step S530.
That is, at step S530, the IoT device interoperation apparatus 100 may request a characteristic value from the non-OCF BLE device 20.
Here, step S530 may be configured such that the IoT device interoperation apparatus 100 requests a characteristic value corresponding to a BLE characteristic handle value using the feature of “Characteristic Value Read” supported by the GATT.
Further, the RETRIEVE operation performance method according to the embodiment of the present invention may return the characteristic value at step S540.
In detail, at step S540, the non-OCF BLE device 20 may return the requested characteristic value to the IoT device interoperation apparatus 100.
Next, the RETRIEVE operation performance method according to the embodiment of the present invention may send a RETRIEVE response message at step S550.
In detail, at step S550, resource information in the current state may be created using the received characteristic value.
That is, at step S550, the IoT device interoperation apparatus 100 may send a RETRIEVE response message to the OCF device 10 such that all or part of the resource information corresponding to the received characteristic value is included in the RETRIEVE response message.
Here, the IoT device interoperation apparatus 100 may update the received characteristic value in the entry value of the resource model DB corresponding to the received characteristic value.
Here, the RETRIEVE response message may include the URI of the resource included in the RETRIEVE request message.
In this case, the IoT device interoperation apparatus 100 may send a RETRIEVE response message including the resource information (containing the URI of the resource included in the RETRIEVE request message) requested by the OCF device 10 to the OCF device 10 using a content parameter Cn.
Here, at step S550, the OCF device 10 may determine the requested resource information in the current state by checking the received RETRIEVE response message.
Referring to
That is, at step S610, the OCF device 10 may request the IoT device interoperation apparatus 100 to update resource information.
At step S610, in order to request the update of a specific resource, the OCF device 10 may generate an UPDATE request message in which the URI of a target resource requested to be updated is included in a To parameter and in which the update information of the resource is included in a content parameter Cn.
Then, the UPDATE operation performance method according to the embodiment of the present invention may update a resource model DB at step S620.
That is, at step S620, the update information of the resource included in the UPDATE request message may be updated in the resource model DB.
In detail, at step S620, the IoT device interoperation apparatus 100 may retrieve an OCF resource identifier (OCF resource URI) and a BLE characteristic handle value, which correspond to the resource that is requested to be updated and that is included in the UPDATE request message, from a mapping table.
Next, the UPDATE operation performance method according to the embodiment of the present invention may request the writing of a characteristic value at step S630.
That is, at step S630, the IoT device interoperation apparatus 100 may request the non-OCF BLE device 20 to update the characteristic value.
Here, at step S630, the IoT device interoperation apparatus 100 may request the update of the characteristic value corresponding to a BLE characteristic handle value using the feature of “Characteristic Value Write” supported by the GATT.
In detail, at step S630, the IoT device interoperation apparatus 100 may request the non-OCF BLE device 20 to update the retrieved characteristic value.
Here, at step S630, the non-OCF BLE device 20 may update the characteristic value requested to be updated.
Then, the UPDATE operation performance method according to the embodiment of the present invention may send an UPDATE response message at step S640.
That is, at step S640, the IoT device interoperation apparatus 100 may send an UPDATE response message including the results of update to the OCF device 10.
At step S640, the OCF device 10 may determine whether the requested resource information has been updated by checking the UPDATE response message.
Referring to
That is, at step S710, the OCF device 10 may request the IoT device interoperation apparatus 100 to delete an existing resource.
At step S710, the OCF device 10 may generate a DELETE request message in which the URI of the existing resource to be deleted is included in a To parameter in order to make a DELETE request.
Here, at step S710, the OCF device 10 may send the DELETE request message to the IoT device interoperation apparatus 100.
However, since the non-OCF BLE device does not support the feature of deleting existing characteristics, it cannot delete the existing characteristics.
Therefore, the IoT device interoperation apparatus 100 cannot delete the existing resource information in relation to the non-OCF BLE device, either.
Further, in the DELETE operation performance method according to the embodiment of the present invention, the IoT device interoperation apparatus 100 may send a DELETE response message to the OCF device 10 at step S720.
That is, at step S720, the IoT device interoperation apparatus 100 may respond to the OCF device 10 to indicate that the existing resource information cannot be deleted.
Here, at step S720, in order to send a response indicating that the deletion of the existing resource information that was requested to be deleted cannot be processed, the IoT device interoperation apparatus 100 may generate a DELETE response message in which a response code 4.05 (Method Not Allowed) is included in a response code parameter Rs.
At step S720, the IoT device interoperation apparatus 100 may send the DELETE response message to the OCF device 10.
Further, at step S720, the OCF device 10 may determine that the existing resource information cannot be deleted by checking the response code 4.05 (Method Not Allowed) of the response code parameter Rs included in the received DELETE response message.
Referring to
The NOTIFY operation is used to notify an OCF client of the change of resource information in an OCF server using an asynchronous method. This operation is composed of two operations, that is, observe setting that is executed by the OCF client on the OCF server and notification that allows the OCF server to notify the OCF client of the change of a resource whenever the resource is changed.
That is, at step S810, the IoT device interoperation apparatus 100 may receive a RETRIEVE request message from the OCF device 10.
Here, at step S810, in order to receive notification of the corresponding change whenever a specific resource is changed, the OCF device 10 may generate a RETRIEVE request message in which the URI of a resource, for which notification is to be requested, is included in a To parameter and in which information indicating activation of notification setting is included in an Observe parameter Obs.
At step S810, the OCF device 10 may send the RETRIEVE request message to the IoT device interoperation apparatus 100.
At step S810, the IoT device interoperation apparatus 100 may receive the RETRIEVE request message.
Next, the NOTIFY operation performance method for activating notification setting according to the embodiment of the present invention may activate notification setting at step S820.
That is, at step S820, an OCF resource URI and a BLE characteristic handle value, which correspond to the URI of the To parameter, may be retrieved from the mapping table according to an example, such as that shown in Table 4.
Here, at step S820, notification setting of the characteristic corresponding to the resource information of the resource model DB mapped to the retrieved BLE characteristic handle value may be activated.
Further, the NOTIFY operation performance method for activating notification setting according to the embodiment of the present invention may request the writing of a characteristic descriptor value (i.e. “Characteristic Descriptor Value Write”) at step S830.
That is, at step S830, the IoT device interoperation apparatus 100 may request the non-OCF BLE device 20 to write a characteristic description value.
Here, at step S830, the IoT device interoperation apparatus 100 may enable a notification bit included in a Client Characteristic Configuration Descriptor (CCCD) for the characteristic of the non-OCF BLE device 20 that corresponds to the BLE characteristic handle value using the feature of “Characteristic Descriptor Value Write” supported by the GATT.
Further, the NOTIFY operation performance method for activating notification setting according to the embodiment of the present invention may return the results of requesting the writing of the characteristic descriptor value at step S840.
That is, at step S840, the non-OCF BLE device 20 may return the results of enabling the notification bit to the IoT device interoperation apparatus 100.
Next, the NOTIFY operation performance method for activating notification setting according to the embodiment of the present invention may send a RETRIEVE response message at step S850.
That is, at step S850, the IoT device interoperation apparatus 100 may send the RETRIEVE response message to the OCF device 10.
Here, step S850 may be performed based on the results of requesting the writing of the characteristic descriptor value received by the IoT device interoperation apparatus 100.
At step S850, the IoT device interoperation apparatus 100 may generate a RETRIEVE response message that includes the results of completing the activation of notification setting to respond to the RETRIEVE request message.
At step S850, the IoT device interoperation apparatus 100 may generate a RETRIEVE response message in which the results of completing the activation of notification setting, rather than the change of resource information, are included in the Observe parameter Obs.
Here, at step S850, the IoT device interoperation apparatus 100 may send the RETRIEVE response message, including the results of completing the activation of notification setting, to the OCF device 10.
At step S850, the OCF device 10 may determine whether the activation of notification setting of requested resource information has been completed, by checking the received RETRIEVE response message.
The NOTIFY operation performance method depending on the change of a characteristic value, shown in
Here, the NOTIFY operation performance method depending on the change of a characteristic value may be performed when the change of a characteristic value in which a notification bit is enabled in advance in the characteristic of the non-OCF BLE device 20 is observed, even if there is no resource information request from the OCF device 10.
Referring to
That is, at step S860, the non-OCF BLE device 20 may observe the change of the characteristic value.
Next, the NOTIFY operation performance method depending on the change of a characteristic value according to the embodiment of the present invention may provide notification of the change of the characteristic value at step S870.
That is, at step S870, the non-OCF BLE device 20 may notify the IoT device interoperation apparatus 100 of the changed characteristic value.
Here, at step S870, when the characteristic in which the notification bit is enabled in advance is changed, the non-OCF BLE device 20 may notify the IoT device interoperation apparatus 100 of the changed characteristic value using the feature of “Characteristic Value Notification” supported by the GATT.
Further, the NOTIFY operation performance method depending on the change of a characteristic value according to the embodiment of the present invention may send a RETRIEVE response message at step S880.
That is, at step S880, the IoT device interoperation apparatus 100 may send the RETRIEVE response message to the OCF device 10.
Here, at step S880, the IoT device interoperation apparatus 100 may update changed resource information corresponding to the changed characteristic value in the resource model DB.
At step S880, the IoT device interoperation apparatus 100 may update the resource model DB using a mapping table.
At step S880, the IoT device interoperation apparatus 100 may check the update of the resource model DB and may then determine whether the notification setting of the updated resource information has been activated.
Here, at step S880, if it is determined that the notification setting of the updated resource information has been activated, the IoT device interoperation apparatus 100 may generate a RETRIEVE response message.
At step S880, the IoT device interoperation apparatus 100 may generate a RETRIEVE response message in which the updated resource information is included in a content parameter Cn.
Here, at step S880, the IoT device interoperation apparatus 100 may send the RETRIEVE response message to the OCF device 10.
At step S880, the OCF device 10 may determine whether the characteristic value of the non-OCF BLE device 20 has been changed by checking the updated resource information of the received RETRIEVE response message.
Referring to
That is, at step S910, the IoT device interoperation apparatus 100 may receive the RETRIEVE request message from the OCF device 10.
Here, at step S910, in order to deactivate notification of a specific resource, the OCF device 10 may generate a RETRIEVE request message in which the URI of a resource, for which the deactivation of NOTIFICATION setting is to be requested, is included in a To parameter and in which information indicating the deactivation of notification setting is included in an Observe parameter Obs.
At step S910, the OCF device 10 may send the RETRIEVE request message to the IoT device interoperation apparatus 100.
Further, the NOTIFY operation performance method for deactivating notification setting according to the embodiment of the present invention may deactivate notification setting at step S920.
That is, at step S920, an OCF resource URI and a BLE characteristic handle value, which correspond to the To parameter, may be retrieved from the mapping table according to an embodiment such as that shown in Table 4.
Here, at step S920, notification setting of resource information in the resource model DB corresponding to the retrieved BLE characteristic handle value may be deactivated.
Then, the NOTIFY operation performance method for deactivating notification setting according to the embodiment of the present invention may request the writing of a characteristic descriptor value (i.e. “Characteristic Descriptor Value Write”) at step S930.
That is, at step S930, the IoT device interoperation apparatus 100 may request the non-OCF BLE device 20 to write a Characteristic Descriptor value.
At step S930, the IoT device interoperation apparatus 100 may disable a notification bit included in the Client Characteristic Configuration Descriptor (CCCD) of the characteristic of the non-OCF BLE device 20, corresponding to the BLE characteristic handle value, using the feature of “Characteristic Descriptor Value Write” supported by the GATT.
Further, the NOTIFY operation performance method for deactivating notification setting according to the embodiment of the present invention may return the results of writing the characteristic descriptor value at step S940.
That is, at step S940, the non-OCF BLE device 20 may return the results of disabling the notification bit to the IoT device interoperation apparatus 100.
Next, the NOTIFY operation performance method for deactivating notification setting according to the embodiment of the present invention may send a RETRIEVE response message at step S950.
That is, at step S950, the IoT device interoperation apparatus 100 may send the RETRIEVE response message to the OCF device 10.
Here, at step S950, the IoT device interoperation apparatus 100 may determine the received results of requesting the writing of the characteristic descriptor value.
At step S950, the IoT device interoperation apparatus 100 may generate a RETRIEVE response message, including the results of completing the deactivation of notification setting, to respond to the RETRIEVE request message.
Here, at step S950, the IoT device interoperation apparatus 100 may generate a RETRIEVE response message, in which the results of completing the deactivation of notification setting, rather than the change of resource information, are included in the Observe parameter Obs.
At step S950, the IoT device interoperation apparatus 100 may send the RETRIEVE response message including the results of completing the deactivation of notification setting to the OCF device 10.
Here, at step S950, the OCF device 10 may determine whether the deactivation of notification setting of the requested resource information has been completed by checking the received RETRIEVE response message.
Referring to
The present invention may interoperably connect an OCF device that supports an OCF framework to an existing non-OCF BLE device that does not support the OCF framework.
Further, the present invention may allow a gateway for interoperation between an OCF device and a non-OCF BLE device to communicate with the non-OCF BLE device using the feature of a Generic ATTribute profile (GATT) when receiving a Representational State Transfer (REST) architectural style (i.e. RESTful) operation from the OCF device and to provide the results of communication with the non-OCF BLE device to the OCF device through a RESTful style operation.
As described above, in the IoT device interoperation apparatus and method according to the present invention, the configurations and schemes in the above-described embodiments are not limitedly applied, and some or all of the above embodiments can be selectively combined and configured so that various modifications are possible.
Number | Date | Country | Kind |
---|---|---|---|
10-2016-0110328 | Aug 2016 | KR | national |
10-2017-0094121 | Jul 2017 | KR | national |