Enabling high-level application development for the Internet of Things

Application development in the Internet of Things (IoT) is challenging because it involves dealing with a wide range of related issues such as lack of separation of concerns, and lack of high-level of abstractions to address both the large scale and heterogeneity. Moreover, stakeholders involved in the application development have to address issues that can be attributed to different life-cycles phases. when developing applications. First, the application logic has to be analyzed and then separated into a set of distributed tasks for an underlying network. Then, the tasks have to be implemented for the specific hardware. Apart from handling these issues, they have to deal with other aspects of life-cycle such as changes in application requirements and deployed devices.Several approaches have been proposed in the closely related fields of wireless sensor network, ubiquitous and pervasive computing, and software engineering in general to address the above challenges. However, existing approaches only cover limited subsets of the above mentioned challenges when applied to the IoT. This paper proposes an integrated approach for addressing the above mentioned challenges. The main contributions of this paper are: (1) a development methodology that separates IoT application development into different concerns and provides a conceptual framework to develop an application, (2) a development framework that implements the development methodology to support actions of stakeholders. The development framework provides a set of modeling languages to specify each development concern and abstracts the scale and heterogeneity related complexity. It integrates code generation, task-mapping, and linking techniques to provide automation. Code generation supports the application development phase by producing a programming framework that allows stakeholders to focus on the application logic, while our mapping and linking techniques together support the deployment phase by producing device-specific code to result in a distributed system collaboratively hosted by individual devices. Our evaluation based on two realistic scenarios shows that the use of our approach improves the productivity of stakeholders involved in the application development.

[1]  David E. Culler,et al.  Hood: a neighborhood abstraction for sensor networks , 2004, MobiSys '04.

[2]  Chien-Chung Shen,et al.  Querying and tasking in sensor networks , 2000, Defense, Security, and Sensing.

[3]  Luca Mottola,et al.  Programming wireless sensor networks , 2011, ACM Comput. Surv..

[4]  Tony Clark,et al.  Model-driven development - Guest editor's introduction , 2003 .

[5]  Roy H. Campbell,et al.  Olympus: A High-Level Programming Model for Pervasive Computing Environments , 2005, Third IEEE International Conference on Pervasive Computing and Communications.

[6]  Robert B. France,et al.  Using aspect oriented techniques to support separation of concerns in model driven development , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[7]  Valérie Issarny,et al.  The iBICOOP middleware: Enablers and services for emerging pervasive computing environments , 2009, 2009 IEEE International Conference on Pervasive Computing and Communications.

[8]  Flavio Oquendo,et al.  Software Architecture , 2004, Lecture Notes in Computer Science.

[9]  CassouDamien,et al.  Enabling high-level application development for the Internet of Things , 2015 .

[10]  Damien Cassou,et al.  DiaSuite: A tool suite to develop Sense/Compute/Control applications , 2014, Sci. Comput. Program..

[11]  Han Chen,et al.  The Design and Implementation of a Smart Building Control System , 2009, 2009 IEEE International Conference on e-Business Engineering.

[12]  C. Harrison,et al.  A Theory of Smart Cities , 2011 .

[13]  Wei Hong,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation Tag: a Tiny Aggregation Service for Ad-hoc Sensor Networks , 2022 .

[14]  Gregory D. Abowd,et al.  A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications , 2001, Hum. Comput. Interact..

[15]  Jadwiga Indulska,et al.  A survey of context modelling and reasoning techniques , 2010, Pervasive Mob. Comput..

[16]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

[17]  Viktor K. Prasanna,et al.  Expressing Sensor Network Interaction Patterns Using Data-Driven Macroprogramming , 2007, Fifth Annual IEEE International Conference on Pervasive Computing and Communications Workshops (PerComW'07).

[18]  Tarek F. Abdelzaher,et al.  EnviroSuite: An environmentally immersive programming framework for sensor networks , 2006, TECS.

[19]  Feng Zhao,et al.  Tiny web services: design and implementation of interoperable and evolvable sensor networks , 2008, SenSys '08.

[20]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[21]  Kenji Tei,et al.  Model driven development for rapid prototyping and optimization of wireless sensor network applications , 2011, SESENA '11.

[22]  Jie Liu,et al.  galsC: a language for event-driven embedded systems , 2005, Design, Automation and Test in Europe.

[23]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[24]  Chao Chen,et al.  Toward a collaboration model for smart spaces , 2012, 2012 Third International Workshop on Software Engineering for Sensor Network Applications (SESENA).

[25]  David E. Culler,et al.  TinyOS: An Operating System for Sensor Networks , 2005, Ambient Intelligence.

[26]  Michele Zorzi,et al.  WebIoT: A web application framework for the internet of things , 2012, 2012 IEEE Wireless Communications and Networking Conference Workshops (WCNCW).

[27]  Fernando Losilla,et al.  Wireless Sensor Network Application Development: An Architecture-Centric MDE Approach , 2007, ECSA.

[28]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[29]  Sanjay Kumar Madria,et al.  Sensor networks: an overview , 2003 .

[30]  Valérie Issarny,et al.  Enabling High-Level Application Development in the Internet of Things , 2013, S-CUBE.

[31]  Chien-Chung Shen,et al.  Sensor information networking architecture and applications , 2001, IEEE Wirel. Commun..

[32]  T. Luckenbach,et al.  TinyREST – a Protocol for Integrating Sensor Networks into the Internet , 2005 .

[33]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[34]  Milind R. Naphade,et al.  Smarter Cities and Their Innovation Challenges , 2011, Computer.

[35]  Marco Aurélio Gerosa,et al.  Service-oriented middleware for the Future Internet: state of the art and research directions , 2011, Journal of Internet Services and Applications.

[36]  Gilles Grimaud,et al.  The Web of Things: Interconnecting Devices with High Usability and Performance , 2009, 2009 International Conference on Embedded Software and Systems.

[37]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI '03.

[38]  Srinivasan Seshan,et al.  IrisNet: An Architecture for a Worldwide Sensor Web , 2003, IEEE Pervasive Comput..

[39]  Ramesh Govindan,et al.  Macro-programming Wireless Sensor Networks Using Kairos , 2005, DCOSS.

[40]  Stephen J. Mellor,et al.  Model-driven development - Guest editor's introduction , 2003 .

[41]  Damien Cassou,et al.  Toward a Tool-Based Development Methodology for Pervasive Computing Applications , 2012, IEEE Transactions on Software Engineering.

[42]  Rajesh K. Gupta,et al.  Programming models for sensor networks: A survey , 2008, TOSN.

[43]  Michael Blackstock,et al.  WoTKit: a lightweight toolkit for the web of things , 2012, WOT '12.

[44]  Roy Want,et al.  An introduction to RFID technology , 2006, IEEE Pervasive Computing.

[45]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[46]  Jean Vanderdonckt,et al.  A Review of XML-compliant User Interface Description Languages , 2003, DSV-IS.

[47]  J. Newell Project Final Report , 2005 .

[48]  M. Welsh,et al.  The Regiment Macroprogramming System , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[49]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[50]  Yong Yao,et al.  The cougar approach to in-network query processing in sensor networks , 2002, SGMD.

[51]  Terence Parr The Definitive ANTLR Reference: Building Domain-Specific Languages , 2007 .

[52]  Kay Römer,et al.  Algorithms for generic role assignment in wireless sensor networks , 2005, SenSys '05.

[53]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[54]  Gregory D. Abowd,et al.  A Context-Based Infrastructure for Smart Environments , 2000 .

[55]  Executive Summary World Urbanization Prospects: The 2018 Revision , 2019 .

[56]  Pankesh Patel,et al.  Evaluating the Ease of Application Development for the Internet of Things , 2013 .

[57]  Urs Bischoff,et al.  RuleCaster: A Macroprogramming System for Sensor Networks , 2006 .

[58]  Marko Grobelnik,et al.  The web of things , 2011, WWW.

[59]  Roberto Chinnici,et al.  Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language , 2007 .

[60]  Stephan Haller,et al.  The Things in the Internet of Things , 2010 .

[61]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[62]  Wei Hong,et al.  TinyDB: an acquisitional query processing system for sensor networks , 2005, TODS.

[63]  Gian Pietro Picco Software engineering and wireless sensor networks: happy marriage or consensual divorce? , 2010, FoSER '10.

[64]  L. Erlikh,et al.  Leveraging legacy system dollars for e-business , 2000 .

[65]  Viktor K. Prasanna,et al.  High-Level Application Development for Sensor Networks: Data-Driven Approach , 2011, Theoretical Aspects of Distributed Computing in Sensor Networks.

[66]  Vipul Gupta,et al.  Early lessons from building Sensor.Network: an open data exchange for the web of things , 2010, 2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops).

[67]  MohamedNader,et al.  A survey on service-oriented middleware for wireless sensor networks , 2001 .

[68]  Kenji Tei,et al.  Case studies on the development of wireless sensor network applications using multiple abstraction levels , 2012, 2012 Third International Workshop on Software Engineering for Sensor Network Applications (SESENA).

[69]  大島 正嗣,et al.  Simple Object Access Protocol と,その応用としてのソフトウェアの組み合わせについて (渡邉昭夫教授退任記念号) , 2001 .

[70]  Kamin Whitehouse,et al.  Semantic Streams: A Framework for Composable Semantic Interpretation of Sensor Data , 2006, EWSN.

[71]  Damien Cassou,et al.  Leveraging software architectures to guide and verify the development of sense/compute/control applications , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[72]  Valérie Issarny,et al.  Towards application development for the internet of things , 2011, MDS '11.

[73]  Kamin Whitehouse,et al.  MacroLab: a vector-based macroprogramming framework for cyber-physical systems , 2008, SenSys '08.

[74]  Vicente Pelechano,et al.  Article in Press Pervasive and Mobile Computing ( ) – Pervasive and Mobile Computing towards the Model Driven Development of Context-aware Pervasive Systems , 2022 .

[75]  Archana Bharathidasan,et al.  Sensor Networks : An Overview , 2002 .

[76]  Viktor K. Prasanna,et al.  The Abstract Task Graph: a methodology for architecture-independent programming of networked sensor systems , 2005, EESR '05.

[77]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[78]  Ruben Picek,et al.  Model Driven Development – Future or Failure of Software Development? , 2007 .

[79]  Henry Muccini,et al.  A model-driven engineering framework for architecting and analysing Wireless Sensor Networks , 2012, 2012 Third International Workshop on Software Engineering for Sensor Network Applications (SESENA).

[80]  Luciano Lavagno,et al.  A Framework for Modeling, Simulation and Automatic Code Generation of Sensor Network Application , 2008, 2008 5th Annual IEEE Communications Society Conference on Sensor, Mesh and Ad Hoc Communications and Networks.

[81]  Jean-Philippe Vasseur,et al.  Interconnecting Smart Objects with IP: The Next Internet , 2010 .

[82]  Amy L. Murphy,et al.  Programming Wireless Sensor Networks with the TeenyLimeMiddleware , 2007, Middleware.

[83]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[84]  Jadwiga Indulska,et al.  Developing context-aware pervasive computing applications: Models and approach , 2006, Pervasive Mob. Comput..

[85]  Peter Friess,et al.  Internet of Things Strategic Research Roadmap , 2011 .

[86]  J. Antonio García-Macías,et al.  TinySOA: a service-oriented architecture for wireless sensor networks , 2009, Service Oriented Computing and Applications.

[87]  Animesh Pathak,et al.  Srijan: a graphical toolkit for sensor network macroprogramming , 2009, ESEC/FSE '09.

[88]  Dave Evans,et al.  How the Next Evolution of the Internet Is Changing Everything , 2011 .

[89]  Klara Nahrstedt,et al.  A Middleware Infrastructure for Active Spaces , 2002, IEEE Pervasive Comput..

[91]  Luis Pérez-Lombard,et al.  A review on buildings energy consumption information , 2008 .

[92]  Viktor K. Prasanna,et al.  A Compilation Framework for Macroprogramming Networked Sensors , 2007, DCOSS.

[93]  Alex Berson Client-Server Architecture , 2006, Encyclopedia of Multimedia.

[94]  Gregory D. Abowd,et al.  The context toolkit: aiding the development of context-enabled applications , 1999, CHI '99.

[95]  Vipul Gupta,et al.  Fuseviz: A framework for web-based data fusion and visualization in smart environments , 2012, 2012 IEEE 9th International Conference on Mobile Ad-Hoc and Sensor Systems (MASS 2012).

[96]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[97]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[98]  Saul I. Gass,et al.  The Many Faces of OR , 1991 .

[99]  Robert Grimm,et al.  System support for pervasive applications , 2004, TOCS.

[100]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

[101]  Kristian Ellebæk Kjær,et al.  A survey of context-aware middleware , 2007 .

[102]  Erik Wilde,et al.  A resource oriented architecture for the Web of Things , 2010, 2010 Internet of Things (IOT).

[103]  Antonio Iera,et al.  The Internet of Things: A survey , 2010, Comput. Networks.

[104]  Karen Henricksen,et al.  A survey of middleware for sensor networks: state-of-the-art and future directions , 2006, MidSens '06.

[105]  Jean Vanderdonckt,et al.  A Theoretical Survey of User Interface Description Languages: Complementary Results , 2011 .

[106]  D. Box,et al.  Simple object access protocol (SOAP) 1.1 , 2000 .

[107]  Damien Cassou,et al.  Towards a tool-based development methodology for sense/compute/control applications , 2010, SPLASH/OOPSLA Companion.

[108]  Viktor K. Prasanna,et al.  Enabling Scope-Based Interactions in Sensor Network Macroprogramming , 2007, 2007 IEEE Internatonal Conference on Mobile Adhoc and Sensor Systems.

[109]  Klara Nahrstedt,et al.  Gaia: a middleware platform for active spaces , 2002, MOCO.

[110]  Mikko Pohja,et al.  Comparison of Common XML-Based Web User Interface Languages , 2010, J. Web Eng..

[111]  Brice Morin,et al.  A model-driven development framework for developing sense-compute-control applications , 2014, MoSEMInA 2014.

[112]  Damien Cassou,et al.  A generative programming approach to developing pervasive computing systems , 2009, GPCE '09.

[113]  I. Melzer Web Services Description Language , 2010 .

[114]  Urs Bischoff,et al.  Life cycle support for sensor network applications , 2007, MidSens '07.

[115]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[116]  Tuan Anh Nguyen,et al.  Energy intelligent buildings based on user activity: A survey , 2013 .

[117]  Ian F. Akyildiz,et al.  Wireless sensor and actor networks: research challenges , 2004, Ad Hoc Networks.

[118]  Charles Consel,et al.  A Taxonomy-Driven Approach to Visually Prototyping Pervasive Computing Applications , 2009, DSL.

[119]  Pankaj Jalote Future of Software Engineering , 2009, ICISTM.

[120]  Vinay Kulkarni,et al.  Separation of Concerns in Model-Driven Development , 2003, IEEE Softw..

[121]  Franck Barbier,et al.  Model‐Driven Development (MDD) , 2015 .

[122]  David Garlan,et al.  Project Aura: Toward Distraction-Free Pervasive Computing , 2002, IEEE Pervasive Comput..