IoT application development usually involves separate programming at the device side and server side. While separate programming style is sufficient for many simple applications, it is not suitable for many complex applications that involve complex interactions and intensive data processing. We propose EdgeProg, an edge-centric programming approach to simplify IoT application programming, motivated by the increasing popularity of edge computing. With EdgeProg, users could write application logic in a centralized manner with an augmented If-This-Then-That (IFTTT) syntax and virtual sensor mechanism. The program can be processed at the edge server, which can automatically generate the actual application code and intelligently partition the code into device code and server code, for achieving the optimal latency. EdgeProg employs dynamic linking and loading to deploy the device code on a variety of IoT devices, which do not run any application-specific codes at the start. Results show that EdgeProg achieves an average reduction of 20.96%, 27.8% and 79.41% in terms of execution latency, energy consumption, and lines of code compared with state-of-the-art approaches.
翻译:IoT 应用程序开发通常涉及设备侧面和服务器侧面的单独编程。 虽然独立的编程风格对于许多简单的应用程序来说已经足够, 但对于许多复杂的应用程序来说并不合适, 其中包括复杂的互动和密集的数据处理。 我们提议以边缘为中心的编程方法EdgeProg, 以简化IoT 应用程序编程, 其动机是边际计算越来越受欢迎。 有了 egeProg, 用户可以集中写应用逻辑, 并增强 If-TTTT (IFTTT) 语法和虚拟传感器机制。 这个程序可以在边端服务器上处理, 边端服务器可以自动生成实际的应用程序代码, 智能地将代码分割成设备代码和服务器代码, 以实现最佳的悬浮。 EdgeProg 使用动态连接和加载, 将设备代码安装在各种IoT 设备上, 这些装置在开始时不会运行任何特定应用程序的代码。 结果显示, EdgeProg 与最先进的方法相比, 执行时便服、能源消耗和代码线平均减少了20.96%、 27.8%和79.41%。