Inspired by the Open mHealth application architecture, which emphasizes user-controlled data security, reusable common modules and inter-operability among different mHealth applications, this dissertation introduces NDNFit, a mobile health (mHealth) application built on the Named Data Networking (NDN) architecture, while offer users the familiar user experience as traditional mHealth applications. An equally important motivation for NDNFit is NDN's application-driven architecture development philosophy -- NDNFit serves as a use case to experiment with integrating multiple NDN components into one coherent application ecosystem, as well as drive the design and development of NDN architecture and protocol.
During the design and implementation process of NDNFit, we identified and solved five problems. First, because NDN mandates that all data packets be authenticated, NDNFit builds a namespace and certificate management system to manage identity and certificate, and defines trust policies for consumers to verify data packets; to protect confidentiality, it employs NAC to encrypt Data content, and makes the first effort to obscure Data names. Second, NDNFit employs Named Function Networking (NFN) to implement data processing services, defines name conversion services to enable sharing of named functions across multiple mHealth applications, and designs key delegation mechanisms for named functions to properly secure processed data. Third, to provide reliable data storage service, NDNFit designs DSU command protocol for users to communication with the storage, and designs mechanisms to employ State Vector Synchronization (SVS) protocol to replicate data in a distributed data storage system. Fourth, NDNFit introduces catalog and denial of existence packets for efficient data transferring among different components. Last, NDNFit recognizes the issue of application mobility and refine forwarding hint to enable data reachability and support producer application mobility.
The NDNFit design illustrates that NDN's data-centric approach to networking -- naming and securing data directly, and sharing namespace between application layer and network layer -- provides a superior solution over the existing TCP/IP based solution for Open mHealth application architecture, as NDN network primitives enable users' control over their own data and facilitate interoperability among multiple applications, without relying on underlying transport layers and other third party services. The NDNFit design also demonstrates the power of NDN naming conventions -- how Data packets are named, and what is the relationship between different Data names -- in simplifying application design, that good naming conventions can help in many aspects: enable data-centric security, speed up data dissemination, or even improve data reachability.
At the end of this dissertation, we present the initial implementation of NDNFit as well as its demonstration on NDN testbed. Experimental results show that NDNFit design works well, and the lessons we learned from NDNFit design and development can benefit those of future NDN-based applications.