{"title":"用thingflow编程事件处理器","authors":"Jeffrey M. Fischer, R. Majumdar","doi":"10.1145/3302509.3311039","DOIUrl":null,"url":null,"abstract":"We present ThingFlow, a software architecture to write event-processing pipelines for Internet-of-things (IoT) applications. Such applications typically involve sensing, stateful transformations of event streams, state estimation, and control/actuation, learning, and data analytics. They are currently programmed using a zoo of languages, systems, and APIs with ad hoc data passing protocols. ThingFlow provides three abstractions: sensors which can sample changing physical values, streams of (potentially real-valued) data, and stateful filters, which transform input streams to output streams, and can be composed. ThingFlow programs consist of compositions of filters scheduled and run by an explicit, asynchronous, scheduler. ThingFlow is implemented as a Python API whose core is compact enough to run on very limited microcontrollers such as the ESP8266, while providing support for sensors, message streams over the network, machine learning, and cloud backends. We show the expressiveness, versatility, and simplicity of ThingFlow on a number of examples from the IoT domain, incorporating sensing, filtering, actuation, data analysis, and learning.","PeriodicalId":413733,"journal":{"name":"Proceedings of the 10th ACM/IEEE International Conference on Cyber-Physical Systems","volume":"21 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-04-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Programming event processors with thingflow\",\"authors\":\"Jeffrey M. Fischer, R. Majumdar\",\"doi\":\"10.1145/3302509.3311039\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We present ThingFlow, a software architecture to write event-processing pipelines for Internet-of-things (IoT) applications. Such applications typically involve sensing, stateful transformations of event streams, state estimation, and control/actuation, learning, and data analytics. They are currently programmed using a zoo of languages, systems, and APIs with ad hoc data passing protocols. ThingFlow provides three abstractions: sensors which can sample changing physical values, streams of (potentially real-valued) data, and stateful filters, which transform input streams to output streams, and can be composed. ThingFlow programs consist of compositions of filters scheduled and run by an explicit, asynchronous, scheduler. ThingFlow is implemented as a Python API whose core is compact enough to run on very limited microcontrollers such as the ESP8266, while providing support for sensors, message streams over the network, machine learning, and cloud backends. We show the expressiveness, versatility, and simplicity of ThingFlow on a number of examples from the IoT domain, incorporating sensing, filtering, actuation, data analysis, and learning.\",\"PeriodicalId\":413733,\"journal\":{\"name\":\"Proceedings of the 10th ACM/IEEE International Conference on Cyber-Physical Systems\",\"volume\":\"21 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-04-16\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 10th ACM/IEEE International Conference on Cyber-Physical Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3302509.3311039\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 10th ACM/IEEE International Conference on Cyber-Physical Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3302509.3311039","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
We present ThingFlow, a software architecture to write event-processing pipelines for Internet-of-things (IoT) applications. Such applications typically involve sensing, stateful transformations of event streams, state estimation, and control/actuation, learning, and data analytics. They are currently programmed using a zoo of languages, systems, and APIs with ad hoc data passing protocols. ThingFlow provides three abstractions: sensors which can sample changing physical values, streams of (potentially real-valued) data, and stateful filters, which transform input streams to output streams, and can be composed. ThingFlow programs consist of compositions of filters scheduled and run by an explicit, asynchronous, scheduler. ThingFlow is implemented as a Python API whose core is compact enough to run on very limited microcontrollers such as the ESP8266, while providing support for sensors, message streams over the network, machine learning, and cloud backends. We show the expressiveness, versatility, and simplicity of ThingFlow on a number of examples from the IoT domain, incorporating sensing, filtering, actuation, data analysis, and learning.