Software Architectures for Task-Oriented Computing
Recent advances in ubiquitous computing and artificial intelligence have led to a desire to better support user-oriented tasks by placing more intelligence in the computing infrastructure. This infrastructure helps mediate between computing resources and legacy applications on the one hand, and a user’s high-level goals on the other hand. In this talk I survey recent research in developing software architectures to support these new capabilities. Key features of these architectures are the ability to interface with legacy applications, but still add considerable support for user tasks; the ability to incorporate machine learning so that the system adapts to the user over time; and the ability to cope with resource variability and user mobility. I outline some of the consequent software engineering challenges that arise in this setting.