representation formats can coexist and communicate with devices using compressed formats whether they reside in the same (sub-)network or not. The communication can be end-to-end if both devices implement CTC or a CTC gateway can be deployed to seamlessly translate between the compressed format and the original data format.
The schema registration and schema repository mechanisms defined within the CTC com- munication model enable the dynamic assignment and distribution of schema information at run time. Following the same approach as CTC, these mechanisms are very flexible and tailored to the multiple restrictions of resource-constrained devices and networks. In this thesis, we use CTC as the compression solution for the schema registration and schema repository mechanisms. A specific underlying binding protocol, CoAP, is also used as an illustrative and relevant example. However, the proposed CTC communication model is generic enough to be applied to other structured data compression approaches based on contextual information (such as EXI) or binding protocols (such as MQTT).
In Section 7.3 we showed the positive impact and the reduction on the quantity of exchanged messages when the CTC communication model is used. The section also shows that different configurations meet the restrictions of the available resources and application needs.
In summary, all the objectives of this work have been successfully met and has been proven that the hypothesis this thesis is based on (described in Chapter 1.2) holds. CTC is a good candidate for general structured data representation targeted at resource-constrained devices and networks as it produces very efficient implementations in terms of memory usage and energy consumption while maintaining interoperability with the original data format.
Additionally, the modular approach followed by the CTC Library allows to tailor the CTC capabilities to the needs of the application and further optimize the used resources. This is complemented by the CTC Compiler tool, which eases the adoption of CTC and its integration on IoT application developments.
8.2
Future Work
In this work, a preliminary implementation of the CTC Library has been developed. This prototype will be further developed to improve and to fully implement the features presented in this document. For instance, the parsing of the formatted data is based on a straightforward algorithm for text search on a list of elements, i.e., the template table. Further research on text search and text matching would improve this process. As another example, the CTC Compiler would need further development to produce the full set of data binding code stubs.
As a future work, we are planning on extending the CTC mapping to additional data model representation formats as well as define further bindings of the schema registration mechanisms to other typical IoT communication protocols. Specifically, it is of great interest to extend the CTC Compiler capabilities to process data model based protocols, such as SOAP, in order to support the automatic generation of Web Service bindings. The extension of CTC to more
technologies would raise its usability for more IoT scenarios and make CTC more appealing to IoT system developers and integrators.
Another interesting improvement of CTC would be to include mechanisms to take into account the constraints described in the schema, e.g., the maximum value of a number. Leveraging the constraints would improve the compression rate by producing more compact representations of the data as well as enable the partial validation of the coded data streams
We are also exploring the possibility of embedding the data model related information stored in the schema context directly in the code stubs generated by the CTC Compiler, in contrast to keeping the information in a separated and dedicated structure. The purpose of the research is to assess if such a change would bring improvements regarding memory usage and processing performance while keeping software modularity.
Finally, we are considering another line of research focused on the application of approaches used in CTC to EXI. Some of the mechanisms designed for CTC could be applied to EXI grammar implementations in order to enhance its efficiency, from in-memory representation to grammar processing. By improving the implementation efficiency of EXI processors, the use of EXI would open to a broader range of resource-constrained devices.
A
|
Data formats: technical aspects
This appendix contains further details of the XML Schema and JSON Schema specifications. This information is complementary to the descriptions found in Section 3.1, but it is not mandatory by any means to follow the work described in this document. However, this information has been gathered here for convenience as it may help in understanding the mapping processes described in Section 4.1.4 as well as some of the design decisions behind the Context Table and Template Table specifications.
A.1
XML Schema
This section gives a more detailed overview of the XML Schema specification [(W3d]. The XML Schema specification describes the structure and vocabulary of XML documents.
Usually, an XML document includes a reference to the XML Schema that describes its vocabu- lary and the XML document is denoted an “instance” of the schema document. The main use for XML Schemas is for document validation, which lies on verifying that the content of an XML document is in conformance with the model and structure described in the associated schema.
The following subsections describe the essential concepts and components of the XML Schema specification which are relevant to this thesis. However, these subsections do not aim to provide exhaustive information but to give enough information to understand the principles proposed in this thesis.