A Quality-Attribute-Driven Software Architecture Brokering Mechanism for Intelligent Service Robots

An intelligent service robot is a robot that monitors its surroundings, and then provides a service to meet a user's goal. It is normally impossible for a robot to anticipate all the needs of its user and various situations in the surroundings ahead, and to prepare for all the necessary functions to cope with them. Therefore, it is required to support the self-growing capability by which robots can extend their functionality based on users' needs and external conditions. In this paper, as an enabler of the self-growing capability, we propose a method that allows a robot to select a component-composition pattern represented in an architectural form (called a sub-architecture), and to extend its functionality by obtaining a set of software components that are prescribed in the pattern. Sub-architecture is selected and instantiated not only based on the functionality required but also based on quality requirements of a user and the surrounding environment. To provide this method, we constructed a quality-attributes-in-use ontology and developed a brokering mechanism that matches quality requirements of users and surroundings against quality attributes of sub-architectures. The ontology provides the common vocabularies to represent quality requirements and attributes, and enables the semantically-based reasoning in matching and instantiating appropriate sub-architectures in supporting services to users. This ontology-based approach contributes to provide a great flexibility in extending robot functionality based on available software components, and to narrow the gap between users' Quality requirements and the Quality of the actual services provided by a robot.