Abstract
In order for IoT application developers to deliver on the promise of IoT, new tools and methodologies addressing the challenges associated with development of highly distributed systems running on non-reliable and heterogeneous hardware are required. Some of the main characteristics of cloud computing that has been a driving force for its success, are resource pooling, elasticity and the capacity for combining unrelated services. We believe that a similar approach is needed for IoT as well. In this paper, we show how Calvin, an open source peer-to-peer platform for distributed applications, tackles many of the problems inherent in IoT. By only loosely associating the functionality of a device with a semantics, and having implementations based on conventions rather than pre-defined terminology, it is possible to let a system of Calvin runtimes autonomously handle deployment decisions, and respond to changing requirements. We will discuss how to develop and deploy dynamic and adaptive IoT-applications based on capabilities and requirements, and how to resolve requirements by automatically combining information from multiple sources based on encapsulated domain knowledge.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Amazon Web Services Inc.: AWS Lambda — Serverless Compute (2016). https://aws.amazon.com/lambda/
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R.C., Mellor, S., Schwaber, K., Sutherland, J., Thomas, D.: Manifesto for Agile Software Development (2001). http://www.agilemanifesto.org/
Bergius, H.: NoFlo — Flow-based Programming for Javascript (2015). http://noflojs.org
Bhattacharyya, S.S., Brebner, G., Janneck, J., Eker, J., von Platen, C., Mattavello, M., Raulet, M.: Opendf: a dataflow toolset for reconfigurable hardware and multicore systems. SIGARCH Comput. Archit. News. 36(5), 29–35 (2009)
Biddlecombe, E.: UN predicts “Internet of Things” (2005). http://news.bbc.co.uk/2/hi/technology/4440334.stm
Bykov, S., Geller, A., Kliot, G., Larus, J., Pandya, R., Thelin, J.: Orleans: a framework for cloud computing. Technical report MSR-TR-2010-159, Microsoft Research (2010)
Eker, J., Janneck, J.: CAL language report: specification of the CAL actor language. Technical memorandum UCB/ERL M03/48, University of California Berkely (2003)
Ericsson Research: Calvin — Lets Things Talk to Things (2015). https://www.github.com/EricssonResearch/calvin-base
Eugster, P.T., Felber, P.A., Guerraoui, R., Kermarrec, A.M.: The many faces of publish/subscribe. ACM Comput. Surv. (CSUR) 35(2), 114–131 (2003)
Garey, M.R., Johnson, D.S.: Computers and Intractability: A Guide to the Theory of NP-completeness. W.H. Freeman, New York (1979)
Giang, N.K., Blackstock, M., Lea, R., Leung, V.C.M.: Developing IoT applications in the fog: a distributed dataflow approach. In: 2015 5th International Conference on the Internet of Things (IOT), pp. 155–162 (2015)
Gil, J.M.R.: Secure Domain Transition of Calvin Actors. Master’s thesis, Lund University (2016)
Hewitt, C., Bishop, P., Steiger, R.: A universal modular actor formalism for artificial intelligence. In: Proceedings of the 3rd International Joint Conference on Artificial Intelligence. pp. 235–245. Morgan Kaufmann Publishers Inc. (1973)
IBM: Cloud-first distributed event-based programming service (2015). https://developer.ibm.com/openwhisk/
IBM Emerging Technologies: A visual tool for wiring the Internet-of-Things (2016). http://nodered.org/
IFTTT Inc: IFTTT — Put the internet to work for you (2015). https://ifttt.com
Jimenez, J., Koster, M., Tschofenig, H.: IPSO smart objects. In: IoT Semantic Interoperability Workshop 2016 (IOTSI) (2016)
Latronico, E., Lee, E.A., Lohstroh, M., Shaver, C., Wasicek, A., Weber, M.: A vision of swarmlets. IEEE Internet Comput. 19(2), 20–28 (2015)
Lee, E.A., Hartmann, B., Kubiatowicz, J., Rosing, T.S., Wawrzynek, J., Wessel, D., Rabaey, J.M., Pister, K., Sangiovanni-Vincentelli, A.L., Seshia, S.A., Blaauw, D., Dutta, P., Fu, K., Guestrin, C., Taskar, B., Jafari, R., Jones, D.L., Kumar, V., Mangharam, R., Pappas, G.J., Murray, R.M., Rowe, A.: The swarm at the edge of the cloud. IEEE Des. Test 31(3), 8–20 (2014)
Mell, P., Grance, T.: The NIST definition of cloud computing. Technical report, National Institute of Standards and Technology (2011)
Morrison, J.P.: Flow-Based Programming: A New Approach to Application Development. CreateSpace, Paramount (2010)
Nilsson, T.: Authorization Aspects of the Distributed Dataflow Oriented IoT Framework Calvin. Master’s thesis, Lund University (2016)
Persson, P., Angelsmark, O.: Calvin — Merging Cloud and IoT. Procedia Comput. Sci. 52, 210–217 (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Angelsmark, O., Persson, P. (2017). Requirement-Based Deployment of Applications in Calvin. In: Podnar Žarko, I., Broering, A., Soursos, S., Serrano, M. (eds) Interoperability and Open-Source Solutions for the Internet of Things. InterOSS-IoT 2016. Lecture Notes in Computer Science(), vol 10218. Springer, Cham. https://doi.org/10.1007/978-3-319-56877-5_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-56877-5_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-56876-8
Online ISBN: 978-3-319-56877-5
eBook Packages: Computer ScienceComputer Science (R0)