Call for Papers
Pervasive mobile computing is here, but how these devices and services should be programmed is still something of a mystery. There is a great deal of experience to draw upon in systems development, but many of the tools and methodologies for developing such applications comes from ancillary disciplines such as user interface design and distributed computing. Programming mobile and pervasive applications is more than than building client-server or peer-peer systems with mobility, and it is more than providing usable interfaces for mobile devices that may interact with the surrounding context. It includes aspects such as disconnected and low-attention working, spontaneous collaboration, evolving and uncertain security regimes, and integration into services and workflows hosted on the internet. In the past, efforts have focused on the form of human-device interfaces that can be built using mobile and distributed computing tools, or on human computer interface design based on, for example, the limited screen resolution and real estate provided by a smartphone. Much of the challenge in building pervasive systems is in bringing together users' expectations of their interactions with the system with the model of a physical and virtual environment with which users interact in the context of the pervasive application. An example of this is provided by mobile computer gaming, which may provide augmented or semi-immersive user experiences that project a virtual game reality, including other gamers, onto the physical environment experienced by each user.
Developers of distributed systems have several tools to draw upon that increase their productivity, and raise the level of abstraction at which they work. Remote procedure call and reliable message queues are examples of tools that have succeeded in the past to mask remote communication in client-server and business-to-business applications. Transactions and nested transactions have provided essential support for handling failures, while other tools such as failure detectors and append-only logs have been proposed in the context of building fault-tolerant distributed applications. For middleware applications, programming environments such as Eclipse, NetBeans and Visual Studio automate some of the aspects of configuring and deploying resources, such as configuring JCA connectors to backend databases. However, it is now well accepted that these techniques perform poorly in semi-connected, sensor-driven, pervasive and dynamic environments. What are the corresponding tools that designers and implementors for mobile and pervasive applications should be able to draw upon? We can indeed see users at various levels of sophistication and user interface, from software developers working with middleware tools to end users writing scripts. What support would be useful to users at all of these levels of sophistication.
Another aspects of mobile and pervasive computing is that devices increasingly must take on some "intelligence" to perform their tasks, requiring adaptive and autonomous behaviour on the part of the systems developed. Mobile personal devices such as telephones are envisioned as "intelligent assistants" that may compensate for the limitations of the user interface by asynchronously performing interactions with other devices on behalf of the device owner. Such devices may tailor their behaviour both to the current location and to the ambient context, which includes nearby devices. Smart spaces may in turn adapt their behaviour based on mobile devices in their vicinity, for example, turning off lights when people are not present or choosing not to divulge confidential information while untrusted parties are present. At the infrastructural level, autonomic network management adapts network behaviour to maintain quality of service over dynamic changes in load and environment, taking advantage of the capabilitiew of the devices actually being used for interaction. Wireless sensor networks must demonstrate stable and long-lived behaviour with little or no human intervention. Cognitive radio supposes a device that senses its radio environments and adapts to available frequencies and protocols, as part of its interaction with that environment.
All these technologies are pervasive in the sense of providing seamless, context-aware access to services - and all share common challenges for progammers in terms of reasoning about, and adapting to, the changing environment in which they compute. Service developers must be able to describe their systems' desired behaviours, the adaptations they will make, and the circumstances that will trigger these adaptations. Critically, they must also be able to reason about these adaptations over time, to guarantee that systems demonstrate the correct adaptation at the appropriate time. So programming the behaviour of such systems must take into account both the evolving physical context of their execution (where they are) and the history of their execution (how they got there).
The challenges raised by programming such components demonstrate a need to re-think existing programming approaches, APIs, languages and methods. These challenges are reflected in the teaching of mobile and pervasive computing. The traditional organization of such courses is based on collections of research papers that largely emphasize technological aspects of system design and implementation, but we are still in the early stages of determining what are the important principles that we should be teaching in such courses, analogous to the principles taught in more traditional courses in concurrent programming and distributed systems. Experience from different pedagogical approaches to teaching the development and application of mobile and pervasive computing, including for smartphones and mobile gaming, may provide useful insights in codifying the discipline.
The importance of developing new programming models is both in raising the level of abstraction, and therefore increasing the productivity of developers, and also in improving the reliability and security of mobile and pervasive systems. Given the importance of security and privacy in pervasive systems, approaches from language-based security may also be fruitfully employed. We can see some developments for example in the emergence of theoretical programming models, such as ambient calculi or mereotopologicial context models, that are intended to describe the semantics of mobile and context-aware systems. There is also a a need for suitable toolkits for application developers, such as the Context Toolkit and the Java Context Awareness Framework. Programming abstractions such as virtual walls have been proposed specifically to cope with the challenges of security and privacy in such environments. Drawing on these and other examples, we may now be able to distill useful software architectures, design patterns, APIs and domain-specific language designs that can form the foundation for the next generation of pervasive systems.
The aim of this workshop is to bring together researchers in programming languages, software architecture and design, and pervasive systems to present and discuss results and approaches to the development of mobile and pervasive systems. The goal is to begin the process of developing the software design and development tools necessary for the next generation of services in dynamic environments, including mobile and pervasive computing, wireless sensor networks, and adaptive devices.
Potential workshop participants are asked to submit a paper on topics relevant to programming models for mobile and pervasive systems. We are primarily seeking short position papers (2–4 pages), although full papers that have not been published and are not under consideration elsewhere will also be considered (a maximum of 10 pages). Position papers that lay out some of the challenges to programming mobile and pervasive systems, including past failures, are welcome. Papers longer than 10 pages may be automatically rejected by the chairs or the programme committee. From the submissions, the programme committee will strive to balance participation between academia and industry and across topics. Selected papers will appear on the workshop web site; PMMPS has no formal published proceedings. Authors of selected papers will be invited to submit extended versions for publication in an appropriate journal (under negotiation).