Towards a Programming Model for Ubiquitous Computing

Author(s):  
Jorge Barbosa ◽  
Fabiane Dillenburg ◽  
Alex Garzão ◽  
Gustavo Lermen ◽  
Cristiano Costa

Mobile computing is been driven by the proliferation of portable devices and wireless communication. Potentially, in the mobile computing scenario, the users can move in different environments and the applications can automatically explore their surroundings. This kind of context-aware application is emerging, but is not yet widely disseminated. Based on perceived context, the application can modify its behavior. This process, in which software modifies itself according to sensed data, is named Adaptation. This constitutes the core of Ubiquitous Computing. The ubiquitous computing scenario brings many new problems such as coping with the limited processing power of mobile devices, frequent disconnections, the migration of code and tasks between heterogeneous devices, and others. Current practical approaches to the ubiquitous computing problem usually rely upon traditional computing paradigms conceived back when distributed applications where not a concern. Holoparadigm (in short Holo) was proposed as a model to support the development of distributed systems. Based on Holo concepts, a new programming language called HoloLanguage (in short, HoloL) was created. In this chapter, we propose the use of Holo for developing and executing ubiquitous applications. We explore the HoloL for ubiquitous programming and propose a full platform to develop and execute Holo programs. The language supports mobility, adaptation, and context awareness. The execution environment is based on a virtual machine that implements the concepts proposed by Holo. The environment supports distribution and strong code mobility.

2012 ◽  
pp. 1744-1757
Author(s):  
Jorge Barbosa ◽  
Fabiane Dillenburg ◽  
Alex Garzão ◽  
Gustavo Lermen ◽  
Cristiano Costa

Mobile computing is been driven by the proliferation of portable devices and wireless communication. Potentially, in the mobile computing scenario, the users can move in different environments and the applications can automatically explore their surroundings. This kind of context-aware application is emerging, but is not yet widely disseminated. Based on perceived context, the application can modify its behavior. This process, in which software modifies itself according to sensed data, is named Adaptation. This constitutes the core of Ubiquitous Computing. The ubiquitous computing scenario brings many new problems such as coping with the limited processing power of mobile devices, frequent disconnections, the migration of code and tasks between heterogeneous devices, and others. Current practical approaches to the ubiquitous computing problem usually rely upon traditional computing paradigms conceived back when distributed applications where not a concern. Holoparadigm (in short Holo) was proposed as a model to support the development of distributed systems. Based on Holo concepts, a new programming language called HoloLanguage (in short, HoloL) was created. In this chapter, we propose the use of Holo for developing and executing ubiquitous applications. We explore the HoloL for ubiquitous programming and propose a full platform to develop and execute Holo programs. The language supports mobility, adaptation, and context awareness. The execution environment is based on a virtual machine that implements the concepts proposed by Holo. The environment supports distribution and strong code mobility.


Author(s):  
B. Darsana ◽  
Karabi Konar

Current advances in portable devices, wireless technologies, and distributed systems have created a mobile computing environment that is characterized by a large scale of dynamism. Diversities in network connectivity, platform capability, and resource availability can significantly affect the application performance. Traditional middleware systems are not prepared to offer proper support for addressing the dynamic aspects of mobile systems. Modern distributed applications need a middleware that is capable of adapting to environment changes and that supports the required level of quality of service. This paper represents the experience of several research projects related to next generation middleware systems. We first indicate the major challenges in mobile computing systems and try to identify the main requirements for mobile middleware systems. The different categories of mobile middleware technologies are reviewed and their strength and weakness are analyzed.


Author(s):  
Anind K. Dey ◽  
Jonna Häkkilä

Context-awareness is a maturing area within the field of ubiquitous computing. It is particularly relevant to the growing sub-field of mobile computing as a user’s context changes more rapidly when a user is mobile, and interacts with more devices and people in a greater number of locations. In this chapter, we present a definition of context and context-awareness and describe its importance to human-computer interaction and mobile computing. We describe some of the difficulties in building context-aware applications and the solutions that have arisen to address these. Despite these solutions, users have difficulties in using and adopting mobile context-aware applications. We discuss these difficulties and present a set of eight design guidelines that can aid application designers in producing more usable and useful mobile context-aware applications.


2009 ◽  
pp. 3222-3235 ◽  
Author(s):  
Anind K. Dey ◽  
Jonna Häkkilä

Context-awareness is a maturing area within the field of ubiquitous computing. It is particularly relevant to the growing sub-field of mobile computing as a user’s context changes more rapidly when a user is mobile, and interacts with more devices and people in a greater number of locations. In this chapter, we present a definition of context and context-awareness and describe its importance to human-computer interaction and mobile computing. We describe some of the dif- ficulties in building context-aware applications and the solutions that have arisen to address these. Despite these solutions, users have difficulties in using and adopting mobile context-aware applications. We discuss these difficulties and present a set of eight design guidelines that can aid application designers in producing more usable and useful mobile context-aware applications.


Author(s):  
Cristiano André da Costa ◽  
Jorge Luis Victoria Barbosa ◽  
Luciano Cavalheiro da Silva ◽  
Adenauer Corrêa Yamin ◽  
Cláudio Fernando Resin Geyer

The growing availability of wireless networks and the proliferation of portable devices have made mobile computing a reality. Furthermore, the widespread use of location systems stimulates the creation of context-aware and adaptive systems. Ubiquitous computing integrates and extends these approaches through a new proposal where users’ applications are available in a suitable adapted form, wherever they go and however they move. In this scenario, issues related to development of software need to be tackled. This chapter reviews essential concepts of the ubiquitous computing area, its evolution, and challenges that must be managed. To deal with these issues, the authors describe the main requirements for the development of ubiquitous software. This analysis starts with the discussion of limitations in the use of traditional programming models, and then goes on to the proposition of techniques to address these limitations. The authors trust that this discussion can help the future development of ubiquitous applications.


Author(s):  
Juan-Carlos Cano ◽  
Carlos Tavares Calafate ◽  
Jose Cano ◽  
Pietro Manzoni

Communication technologies are currently addressing our daily lives. Internet, fixed-line networks, wireless networks, and sensor technologies are converging, and seamless communication is expected to become widely available. Meanwhile, the miniaturization of devices and the rapid proliferation of handheld devices have paved the path towards pervasive computing and ubiquitous scenarios. The term ubiquitous and pervasive computing refers to making many computing devices available throughout the physical environment, while making them effectively invisible to the user (Weiser, 1991). Thanks to advances in the devices’ processing power, extended battery life, and the proliferation of mobile computing services, the realization of ubiquitous computing has become more apparent, being a major motivation for developing location and context-aware information delivery systems. Strongly related to ubiquitous computing is context-aware computing. In context-aware computing, the applications may change or adapt their functions, information, and user interface depending on the context and the client’s profile (Weiser, 1993). Many research centers and industries are actively working on the issues of context-awareness or more generally on ubiquitous computing (Baldauf, Dustdar, & Rosenberg, 2007). In particular, several proposals focus on smart spaces and intelligent environments (Harter, Hopper, Steggeles, Ward, & Webster, 1999; Kindberg et al., 2002; Smart-its, 2007), where it is expected that smart devices all around us will maintain updated information about their locations, the contexts in which they are being used, and relevant data about the users. Clearly, contextual services represent a milestone in today’s mobile computing paradigm, providing timely information anytime, anywhere. Nevertheless, there are still few examples of pervasive computing environments moving out from academic laboratories into our everyday lives. This occurs since pervasive technologies are still premature, and also because it is hard to define what a real pervasive system should be like. Moreover, despite the wide range of services and potential smart applications that can benefit from using such systems, there is still no clear insight about a realistic killer application.


Sensors ◽  
2021 ◽  
Vol 22 (1) ◽  
pp. 128
Author(s):  
Tomasz Górski

Ensuring a production-ready state of the application under development is the imminent feature of the Continuous Delivery (CD) approach. In a blockchain network, nodes communicate and store data in a distributed manner. Each node executes the same business application but operates in a distinct execution environment. The literature lacks research focusing on continuous practices for blockchain and Distributed Ledger Technology (DLT). Specifically, it lacks such works with support for both design and deployment. The author has proposed a solution that takes into account the continuous delivery of a business application to diverse deployment environments in the DLT network. As a result, two continuous delivery pipelines have been implemented using the Jenkins automation server. The first pipeline prepares a business application whereas the second one generates complete node deployment packages. As a result, the framework ensures the deployment package in the actual version of the business application with the node-specific up-to-date version of deployment configuration files. The Smart Contract Design Pattern has been used when building a business application. The modeling aspect of blockchain network installation has required using Unified Modeling Language (UML) and the UML Profile for Distributed Ledger Deployment. The refined model-to-code transformation generates deployment configurations for nodes. Both the business application and deployment configurations are stored in the GitHub repositories. For the sake of verification, tests have been conducted for the electricity consumption and supply management system designed for prosumers of renewable energy.


Sign in / Sign up

Export Citation Format

Share Document