International Journal of Computing & Information Sciences Vol. 13, No. 1, January 2017, On-Line 19 Automated Context-Driven Composition of Pervasive Services to Alleviate Non-Functional Concerns Davy Preuveneers and Yolande Berbers Pages 19 – 28 DOI: http://dx.doi.org/10.21700/ijcis.2017.xxx Automated Context-Driven Composition of Pervasive Services to Alleviate Non-Functional Concerns Author1 and Author2 Department of Computer Science, Katholieke Universiteit Leuven Celestijnenlaan 200A, B-3001 Leuven, BELGIUM [davy.preuveneers, yolande.berbers]@ cs.kuleuven.be Abstract: Service-oriented computing is a new emerging computing paradigm that changes the way applications are designed, implemented and consumed in a ubiquitous computing environment. In such environments computing is pushed away from the traditional desktop to small embedded and networked computing devices around us. However, developing mobile and pervasive services for a broad range of systems with different capabilities and limitations while ensuring its users a minimum quality of service is a daunting task. The core contribution of this paper is a context-driven composition infrastructure to create an instantiation of a pervasive service customized to the preferences of the user and to the capabilities of his device. We implement services as a composition of components. This enables us to compose a service implementation targeted at a specific device while still being able to adapt it at run-time to respond to changing working conditions. Keywords: Ubiquitous Computing, Context, Composition, Adaptation, Component-based Services. Received: July 30, 2016 | Revised: August 10, 2016 | Accepted: August 25, 2016 1. Introduction The third wave of computing is slowly appearing: ubiquitous computing. This new computing paradigm promises an augmented reality that changes the way people interact with computers. It promises continuous human computer interaction with small embedded and networked computing systems around us that provide 24/7 access to information and computational capabilities, and envisions pushing computing away from the traditional desktop system [28]. When Weiser introduced the area of ubiquitous computing [29] in 1991, he put forth a vision of a deployment of devices at varying scales, ranging from handheld personal digital assistants to larger shared devices providing the necessary infrastructure support. He also envisioned a new paradigm of interaction using natural interfaces such as speech, video and sensor inputs, instead of the traditional keyboard and mouse, to facilitate communication between humans and computers. This new way of interaction with computational devices introduces two important non-functional requirements with respect to the development of pervasive services. The first requirement is that services should not be developed from scratch to provide an optimal implementation for each device with different capabilities and limitations. As such, the design and the deployment process of services should offer the software engineer the necessary flexibility to target services to a broad range of systems, ranging from personal handhelds and smart phones to larger set-top boxes. The second requirement is that applications and services need to be less dependent on user-intervention and prevent users from being overwhelmed with intrusive human computer interactions. Therefore, service-oriented architectures must be able to gather information about the user and his physical and digital environment to autonomously adapt the behavior of the provided services according to the current context of the user and the device he is interacting with. It are these two gaps that our infrastructure is trying to fill in. To alleviate the first concern we employ a component-based software engineering methodology [21] for building services to be consumed within ubiquitous computing environments. Componentbased software engineering is being recognized as an important approach for software upgrade and 20 International Journal of Computing & Information Sciences dynamic reconfiguration in dependable resourceconstrained and embedded devices. As such, services are a collection of inter-connected computational building blocks that offer a particular functionality to a network of devices with varying capabilities. The second concern with respect to customization of services is tackled by context-driven composition of components and using context-awareness, including user preferences, to increase the non-intrusiveness of pervasive services. The overall objective is to achieve automatic composition of customized pervasive services using components as building blocks by using contextual information [16] for dealing with the variability of pervasive computing devices and user personalization. In section (2) we discuss several non-functional concerns with respect to services being targeted at ubiquitous computing environments and how a component-based development methodology can be of help for designing and deploying pervasive services. Section (3) discusses how context, including user preferences and resource availability among other information, and components are formally specified in OWL to support automated service composition for optimal deployment on a specific device. The core ideas of automated context-driven composition of components into services are directly illustrated in section (4) and build upon previous work on context modeling [16], pervasive service specification [14] and context management support [15]. In section (5) we evaluate our composition infrastructure. Section (6) provides an overview of related work. We end with conclusions and future work in section (7). 2. Non-functional concerns of pervasive services Pervasive services offer a certain functionality to nearby customers and are accessed in an anytimeanywhere fashion, while being deployed on all kinds of devices. The aspects of user mobility, personalization and context-awareness may activate service adaptation and migration to other devices with different characteristics. In this section we review several nonfunctional concerns with respect to ensuring that all the requirements of the delivery and provisioning of the service to be consumed in a mobile and pervasive setting are met. 2.1 Resource-awareness In the ubiquitous computing setting, available services will approach the user on detection of his presence, while the user wants to have the best deals. However, this multi-user and multi-computer interaction causes a competition of resources on shared devices. Therefore, resource-awareness about the maximum availability and current usage of processing power, memory, Vol. 13, No. 1, January 2017, On-Line network bandwidth, battery lifetime, etc., is a prerequisite to guarantee a minimum quality of service. Due to the black box nature of components, a component's functional properties (interfaces and task description) as well as its non-functional properties (resource requirements and adaptation policies) [30] can be specified more easily to better support resource-awareness. 2.2 Mobility User mobility is a corner stone of the society of tomorrow. Due to possible wireless network disruptions, a user may wish to download and run a service locally. If, on the other hand, the downloaded service does not run within the currently available resources of the device, the user may wish to run the service on a remote more powerful device in the vicinity of the user or to relocate (parts of) an already running service. In both cases the mobile setting of the user triggers service migration to other devices. The encapsulation of the implementation of components and their message-based interaction make it easy to relocate a component for distributed execution of the service by instantiating the component elsewhere [17] and rerouting the messages. 2.3 Adaptation In the face of highly dynamic environments, heterogeneous devices and their changing context, services will need to adapt to changing working conditions. For stateless components, a component can be replaced with a similar component at runtime as long as the syntax and semantics of the interfaces of a component remain the same [27]. Other components may require state transfer first. 2.4 A simple component-based application Our pervasive service design methodology makes use of the SEESCOA component methodology [25] which is targeted at software development for embedded systems. This implies that a pervasive service incorporates components and connectors to fulfill its functional aspects. Components provide the functional building blocks of a service and use Component Ports as communication gateways to other components. Connectors serve as the message channel between these ports. Communication between component ports is managed by sending asynchronous Messages. Contracts [30] define restrictions or requirements on two or more components or ports, for example, to limit or guarantee memory availability or to define timing constraints. Composite Components are prefabricated compositions of component instances and act to the outside as regular components. Their component ports are exported internal component ports. Automated context-driven composition of pervasive services to alleviate non-functional concerns 21 control relay. In the latter case, the user is not able to pause the random number generation. The core of our contribution is that pervasive services are modeled by specifying all the components, including the optional components, and that these components are instantiated by selecting an appropriate implementation, or bypassed depending on the current context of the device or any user requirements. The functional specification of components and runtime support for their nonfunctional concerns in component systems allow the programmer to design services in terms of components and focus on program logic instead of deployment dependencies. With proper middleware support, the programmer does not need to implement resource monitoring, decision making or adaptation of services to respond to changing working conditions. Figure 1. A simple component-based application. The example in Figure 1 shows how three components, Number Generator, Switch and Control Relay, are composed into a new composite component Pausible Number Generator. The number generator repeatedly provides random numbers with a user-defined frequency. If the Switch component is enabled, then the numbers are shown on a screen by the Number Display component. The random number generator interacts with the Scheduler component to get notified of when to send out a new number. The user is able to interact with the application by using the Interactive Shell component. It provides a prompt to send messages to the application, for example, to pause and later continue the random number generation by (de)activating the switch. These messages are intercepted by the Control Relay component, which forwards the messages to the right component. The Timing contract specifies timing constraints for sending messages from the number generator to the switch to ensure that messages are delivered on time, and is only shown here for demonstration purposes. 3. Integrating context-awareness into component-based pervasive services The example in Figure 1 is an extension of an even smaller application that does not include the switch and Two prerequisites for context-aware composition of pervasive services are an explicit model for specifying context and middleware that is able to gather and interpret this contextual information. In the Context Toolkit [4], context is modeled as a set of key-value pairs. The more structured approaches for modeling context that have been proposed in the past use RDF [11], UAProf and CC/PP [10], and CSCP [2]. Ontologies, which allow the definition of more complex context models, have been used in several context modeling approaches [3,7,19]. We have designed a context ontology [16] in OWL based on the concepts of User, Platform, Service and Environment. This ontology is specifically targeted at context-driven adaptation of mobile services [23]. This context ontology is used in our context management system which is discussed in [15]. The context management system, which in itself is also component-based, provides all the necessary information for context-based composition and adaptation of pervasive services. Pervasive services in our methodology are more than just a collection of components with specific responsibilities. In [14] we provide a more detailed specification of pervasive services. In short, pervasive services act as normal composite components but with the following extra dedicated ports: Service Information Interface: the Service Information Interface provides a static description of the semantics and syntax of a service and its service ports, and hence of how the service can be interfaced, so that other components or services can discover and use the service. This information is expressed in OWL-S [24]. This port is used to gather information about resource requirements and adaptation policies. Service Control Interface: The Service Control Interface is a standard dedicated interface for controlling a service. It allows the service to be (re)started, updated, relocated, stopped and 22 International Journal of Computing & Information Sciences uninstalled. By making this an obligatory interface, no knowledge about the other service ports is required for basic service management. This port is used to alleviate the adaptation concern. Context Interface: The Context Interface is responsible for the sending and receiving of the context information available at run-time when the service is active. Among other things, it allows the service to be notified of new resources, and to inform other services or devices about resources currently in use by this service. By modeling services as components, all aspects of composing components into a service apply to services is well, which means that services can be combined to form a new service. <owl:Class rdf:ID="SimpleComponent"> <rdfs:subClassOf> <owl:Restriction> <owl:minCardinality rdf:datatype="&xsd;#int"> 1</owl:minCardinality> <owl:onProperty> <owl:ObjectProperty rdf:ID="hasPort" /> </owl:onProperty> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="CompositeComponent"> <rdfs:subClassOf rdf:resource="#SimpleComponent" /> <rdfs:subClassOf> <owl:Restriction> <owl:minCardinality rdf:datatype="&xsd;#int"> 1 </owl:minCardinality> <owl:onProperty> <owl:ObjectProperty rdf:ID="hasComponentInstance" /> </owl:onProperty> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:ObjectProperty rdf:about="#hasComponentInstance"> <rdfs:domain rdf:resource="#CompositeComponent" /> <rdfs:range rdf:resource="#ComponentInstance" /> </owl:ObjectProperty> <owl:Class rdf:ID="Port"> <rdfs:subClassOf> <owl:Restriction> <owl:cardinality rdf:datatype="&xsd;#int"> 1 </owl:cardinality> <owl:onProperty> <owl:DatatypeProperty rdf:ID="maxInstances" /> </owl:onProperty> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="PortGroup"> <rdfs:subClassOf rdf:resource="#Port" /> </owl:Class> Figure 2. Excerpt of the meta-model specification of a component in OWL. The automated composition of our infrastructure requires that all components are fully specified. We therefore created a component ontology in OWL which serves as a meta-model of all the concepts of the SEESCOA methodology, specifying components, ports, messages, parameters, connectors, contracts, etc. as an OWL Class, ObjectProperty or DatatypeProperty Vol. 13, No. 1, January 2017, On-Line with cardinality restrictions where appropriate. See Figure 2 for a partial meta-model specification of a component in OWL1. It allows the software engineer to validate component descriptions by using a regular OWL validator [1] so that for automated composition the infrastructure can rely on correctly specified components. As components are self-contained and perhaps independently developed, we have to make sure that messages sent out by one component port are well understood by the other component port on the receiving part of the connector. We therefore also declare all message types as concepts in another OWL file. This concept ontology is necessary as messages are not restricted to primitive data types, such as strings and integers, but can also include objects of any kind of which the inheritance properties can be modeled in the concept ontology as well. The component and concept ontology allow us to make sure that alternative implementations of the same blueprint match syntactically and semantically and that connected component ports exchange messages that are understood by both parties. <profile:serviceParameter> <compprofile:RequiredResources rdf:ID="requiredMemory"> <profile:sParameter> <context:Memory> <context:bytes>1048576</context:bytes> </context:Memory> </profile:sParameter> </compprofile:RequiredResources> </profile:serviceParameter> Figure 3. Minimum memory requirement as ServiceParameter in OWL-s. Context-awareness comes into play during the evaluation of the non-functional properties of services and components. The service and each component separately can specify minimum resource requirements, such as the minimum availability of memory, processing power or network bandwidth. These resource requirements are specified by extending the serviceParameter concept in OWL-S of which an example is given in bold in Figure 3. In this example, a minimum memory requirement for the service is specified, but it could have been any contextual requirement with respect to concepts in our context ontology [16]. For example, user preferences in a certain context with respect to a service could be taken into account to increase the non-intrusiveness of the service. Our context-driven composition infrastructure instantiates a pervasive service by connecting a selection of components such that all requirements hold. In the next section, we will describe an example of a service with several optional components that can be activated when possible. These optional components require extra resources, and we therefore 1 The OWL meta-model specification of a component can be found at http://www.cs.kuleuven.be/~davy/owl/Component.owl Automated context-driven composition of pervasive services to alleviate non-functional concerns specify triggers to model QoS requirements and to define adaptation policies. 23 24 International Journal of Computing & Information Sciences Vol. 13, No. 1, January 2017, On-Line Figure 4. Internet Gateway Service and Communication Service. 4. Context-driven composition pervasive services of The core ideas of how our infrastructure supports automated context-driven composition of pervasive services are discussed in this section. The concepts of taking into account the capabilities and limitations of a device, resource awareness and user preferences in a specific context are illustrated by means of an example. We also provide an outline of our algorithm to discuss the steps taken to deploy a customized pervasive service and mention implementation details. Consider the following scenario in a ubiquitous and mobile computing environment where two friends, Jack and Jill, are having a conversation over the Internet: “Jack is heading off to work and using public transport. He is using his advanced smart phone and a shared Internet gateway service on the train. Bandwidth is equally shared by all passengers currently logged on to the Internet gateway service. Jill is at home using her laptop with broadband Internet connection and has no resource limitations. The communication service both Jack and Jill downloaded on their device is able to communicate using text messaging, speech and video, sorted by increasing bandwidth requirements. The speech and video quality (high, medium and low) depends on the compression, the frame rate and the frame size being used. These parameters are chosen dynamically depending on the available bandwidth and processing power on the smart phone or are defined as user preferences in a certain context.” 4.1 The component-based model of the communication service See Figure 4 for a simplified overview of both services. We will now focus on the Communication Service for which a composition will be autoinstantiated depending on the current context of the user and the communication device. The service has the following components: Audio Encoder and Decoder: Adaptable and optional components for (de-)compressing the audio stream with high, medium or low quality encoding. Video Filter: Optional components for reducing the video frame rate or changing the frame size. See Figure 5 for an instantiation of the OWL component meta-model. Video Encoder and Decoder: Adaptable and optional components for (de-)compressing the video stream with high, medium or low quality encoding. Controller: (de-)multiplexes text, speech and video, and sends/receives the combined data stream. Automated context-driven composition of pervasive services to alleviate non-functional concerns <component:SimpleComponent rdf:ID="FrameRateFilter"> <component:hasPort rdf:resource="#FrameRate" /> <component:hasPort rdf:resource="#VideoIn" /> <component:hasPort rdf:resource="#VideoOut" /> <component:PortGroup rdf:ID="FrameRate"> <component:maxInstances rdf:datatype="&xsd;#int"> 1 </component:maxInstances> <component:hasMessage> <component:InMessage rdf:ID="SetFrameRate"> <component:hasParameter> <component:Parameter rdf:ID="FramePerSec"> <component:parameterType rdf:datatype= "&xsd;#anyURI">&xsd;#int </component:parameterType> </component:Parameter> </component:hasParameter> </component:InMessage> </component:hasMessage> </component:PortGroup> <component:PortGroup rdf:ID="VideoIn"> <component:maxInstances rdf:datatype="&xsd;#int"> 1 </component:maxInstances> <component:hasMessage> <component:InMessage rdf:ID="NewFrame"> <component:hasParameter> <component:Parameter rdf:ID="Frame"> <component:parameterType rdf:datatype= "&xsd;#anyURI">&concepts;#VideoFrame </component:parameterType> </component:Parameter> </component:hasParameter> </component:InMessage> </component:hasMessage> </component:PortGroup> <component:MulticastPort rdf:ID="VideoOut" /> <!-- Similar to the video-in port --> ... </component:SimpleComponent> Figure 5. Instantiation of the OWL component metamodel for a video frame rate filter component. The audio and video components in this service model are optional, and can be activated when enough resources are available. These components can have several implementations using different encoding schemes. Both parties would have to agree which encoding schemes can be used on the two communication devices. However, in this example one party, Jill, has no resource restrictions and can instantiate any component she likes. 4.2 Resource requirements for deployment The minimum resource requirements for the service, as shown in bold in Figure 3, specify what is needed to have a text-based conversation. This kind of communication requires the least bandwidth and processing power. If more resources are available, audio and video-based communication can be enabled as well. Information about available resources is provided by our context management system [15]. In this example, the limiting factors are the processing capabilities of the smart phone and the available bandwidth for each passenger. An overview of all resource requirements is given in Table 1. The total bandwidth requirements for video streaming depend on the quality options and the use of other video filters. The processing power requirements are only an estimate as a real device may have hardware support for multimedia applications. Our prototype is 25 implemented in the Java language and makes use of other pure Java libraries. Therefore, the system requirements are a lot higher to process audio and video on demand in real-time. 4.3 User preferences in a certain context A user may have a preference stating that during office hours the high quality option for video encoding should be used. See Figure 6, the preference property and value as well as the time and location conditions are marked in bold. Using this contextual information, an appropriate service is instantiated that takes any user preferences and the current available resources and the limitations and capabilities of the device into account. For example, before deploying the communication service on a PDA or smart phone, we check if the hardware has the necessary support for video communication as, for example, not all devices have a camera on-board. <context:UserPreference rdf:ID="VideoEncoding1"> <context:prefProperty rdf:resource="#VideoQuality" /> <context:prefValue rdf:resource="&concepts;#High" /> <context:prefCondition> <context:Location> <context:where rdf:resource="&concepts;#Office" /> </context:Location> </context:prefCondition> <context:prefCondition> <context:Time> <context:when rdf:resource="&concepts;#NineToFive" /> </context:Time> </context:prefCondition> </context:UserPreference> Figure 6. User preference with respect to video encoding. 4.4 Outline of the context-driven service composition procedure The goal of our context-driven composition infrastructure is an automated instantiation of a service targeted at the capabilities of a specific device that takes into account any user preferences in a specific context. The whole algorithm is entirely based on the processing of OWL and OWL-S specifications and consists of the following steps. (1) Hardware: Process the hardware description of the device to discover resource specifications, such as maximum available memory, processing power, network bandwidth, etc., as well as support for user input and output, such as microphone, camera, speaker, keyboard, display, sensors, etc. This is part of the context specification of a device and is largely static information. (2) Resource awareness: Request the current available resources from the context management system. This is also part of the current context, but mostly dynamic information achieved by monitoring the system. 26 International Journal of Computing & Information Sciences Vol. 13, No. 1, January 2017, On-Line Table 1. Non-functional requirements and restrictions of the communication service. Component Optional User Preference Processing Power Bandwidth Text-based Messenger False ≈ 50 MIPS > 0 bps Audio Encoder/Decoder True High Quality ≈ 200 MIPS 64 kbps Medium Quality 32 kbps Low Quality 8 kbps Video Encoder/Decoder True High Quality ≈ 800 MIPS 10:1 Reduction Medium Quality 20:1 Reduction Low Quality 30:1 Reduction Frame Resizer True ≈ 100 MIPS 4:1 Reduction Frame Rate Filter True ≈ 50 MIPS 2:1 Reduction (3) Service requirements: Check any I/O requirements of the service with the I/O support of the device. Check if the minimal resource requirements can be fulfilled. If deploying is not possible, then stop or propose to run the service on another device in the neighbourhood or relocate already running services. (4) User preferences: Check for all preferences if the context of application is fulfilled and if these preferences can be enforced given the available resources. Checking if the context applies, may require some reasoning steps, for example, to determine that geographical coordinates of a GPS system point to a location known as our office. (5) Component selection: Given the available resources, eliminate all optional components which resource requirements are too demanding. For each obligatory component, retrieve the resource requirements for all of its implementations. (6) Constraint solving: Given the above resource constraints of the device and the requirements for the obligatory components and user preferences, solve the set of equations to find a minimal composition of component instances. Cut down on the user preferences if no solution is found. (7) Adaptation policy: Check which optional components can be enabled for the preliminary minimal service instantiation from the previous step. Given the available resources, these optional components can be enabled immediately, when enough resources are available or when the context changes and other user preferences are to be applied. For the multimedia components of the communication service, we have made use of the IBM Mpeg4 Java toolkit [9] and for the OWL parsing and reasoning the Jena 2 framework [8] is used. The necessary infrastructure support for instantiating a customized service based on the service model was developed on top of Draco [26], an extensible runtime system for components designed to be run on embedded devices. It acts as a component container that instantiates components and manages all connections between components. It has runtime support for non-functional concerns, such as component distribution, live updates, contract monitoring and resource management. This runtime environment with extensions provides a unique test platform for validating the proposed service concepts in a ubiquitous computing context. 5. Evaluation The case study has shown that for varying hardware and resource descriptions the implemented infrastructure is able to compose and instantiate a service while also taking the user preferences into account. Another advantage is that composing the service targeted at a specific device can also be carried out on a more powerful device when composing the service, for example, on a personal handheld would take too long. Something that is currently not implemented is multiparty negotiation of which components to instantiate as there can be dependencies between component deployments on different devices. In the above example, there is no use in instantiating a video encoding component on one device if the other party is not able to process or show the video stream. The two non-functional concerns with respect to resource-awareness and user preferences in a certain context are easily managed using a component-based methodology if all aspects are fully specified. These aspects are specified by hand in OWL using the Protégé [18] tool. We acknowledge that this is not a user friendly way to declare user preferences. However, not all non-functional aspects can be solved that easily using a component-based software engineering methodology. For cross-cutting concerns, such as security or logging, an aspect-oriented software development approach (AOSD) can prove to be more useful. Security concerns, for example, relate to the connection between components and may impose restrictions on how to customize and adapt pervasive services, such as restricting the relocation of parts of a service to another device to avoid interception of sensitive messages sent over a network. The disadvantage of using AOSD techniques is that depending on the tools applied, such as AspectJ [22], the technology can be quite invasive while modifying the component in such a Automated context-driven composition of pervasive services to alleviate non-functional concerns way that other non-functional concerns, such as resource requirements, are no longer guaranteed to be correct. 6. Related work Two very well-known component models are OMG's CORBA Component Model (CCM) [13] and Sun's Enterprise JavaBeans (EJB) [20]. However, both only provide limited support for non-functional concerns, such as persistency, transactions and access control. Neither of them provides support for dynamic selection of component instantiations. The COMQUAD component model [6] provides support for non-functional aspects and describes them orthogonally to the application structure using descriptors. These non-functional aspects are woven into the application using an AOSD approach based on the non-functional properties of components. Additionally, the COMQUAD component model has extensions to provide support for stream-based communication. However, selecting components based on functional properties is not the goal of the authors. In our composition infrastructure, both functional and non-functional properties need to be considered to guarantee interoperability. The authors are working on providing support for adaptable behaviour, as already supported in our infrastructure using composite components. The authors also acknowledge the interference between functional and non-functional aspects and between different non-functional concerns. Additionally, our infrastructure supports automated component selection and composition using a contextdriven approach. Efstratiou et al. [5] propose an architecture with support for context-aware service adaptation. The authors describe the architectural requirements for adaptation control and coordination for mobile applications. The adaptation mechanisms to respond to, for example a change in resource availability, are less flexible than ours as the authors define operational modes of an application together with a contextual trigger that would make the application switch to that mode. This coarse-grained adaptation mechanism allows them to use very simple XML descriptions of a service and operation mode. Our approach does not require the software engineer to define all possible instantiations of a service. Our composition infrastructure takes care of finding an appropriate composition, which additionally supports taking user preferences into account. Our infrastructure allows operation modes that the software developer originally may have not yet foreseen. Lin et al. [12] propose a goal description language for automatic composition of semantic web services. The authors acknowledge that it is hard to adapt to users' requirements in current web service compositions, and 27 propose a goal description language based on the OWL ontology description language to describe the goals that need to be achieved, relationships within goals, constraints for achieving the goals, and a way to detect any inconsistencies in the specified goals. However, this language for automatic composition is targeted at web services and does not consider the non-functional requirements of pervasive services as mentioned in a previous section. 7. Conclusion and future work We have developed infrastructure support for automated context-driven composition of components into pervasive services, while taking into account non-functional concerns such as the capabilities and limitations of a device on which it will be deployed, resource availability and user preferences in a specific context. It lets the software engineer focus on the application logic of smaller building blocks, while optimal deployment of a service on a specific device and adaptation support for responding to changing working conditions is managed by our supporting infrastructure. First, we have identified several non-functional concerns with respect to pervasive services and then discussed how a component-based methodology can alleviate these concerns. We formalized the component methodology by creating a meta-model of all software aspects of components to allow automated processing of the functional and nonfunctional properties of components and services. We discussed how context-awareness can be used for composition of component-based services using our previous work on context modelling [16], specification of pervasive services [14] and context management support [15]. We illustrated the core ideas of our infrastructure support by means of an example, and gave an outline of all the steps in the procedure to achieve a customized service. We evaluated our work and can conclude that for targeting a specific platform and incorporating user preferences, our automated context-driven composition infrastructure is able to provide the necessary support for these non-functional concerns typical for pervasive services. However, more work should be carried out to provide support for cross-cutting non-functional concerns, such as security. Security requirements cannot be derived from component descriptions as is the case for resource requirements. Future work in the short term will focus on how to integrate multi-party negotiation for selecting and instantiating components in the presence of dependencies between component deployments on different devices. 28 International Journal of Computing & Information Sciences References [1] BBN Technologies, OWL Validator 20040716, July 2004. version Vol. 13, No. 1, January 2017, On-Line [11] P. Korpipää, et al., Managing context information in mobile devices, IEEE Pervasive Computing, Mobile and Ubiquitous Systems, vol. 2, no. 3, pp. 42-51, July-September 2003. [2] S. Buchholz, T. Hamann, and G. Hubsch, Comprehensive Structured Context Profiles (CSCP): Design and Experiences, in Proceedings of the Second IEEE Annual Conference on Pervasive Computing and Communications Workshops, March 2004. [12] M. Lin, H. Guo, and J. Yin, Goal description language for semantic web service automatic composition, in SAINT, 2005, pp. 190-196. [3] H. Chen, T. Finin, and A. Joshi, An Ontology For Context-Aware Pervasive Computing Environments, in Special Issue on Ontologies for Distributed Systems, Knowledge Engineering Review, 2003. [14] D. Preuveneers and Y. Berbers, Semantic and syntactic modeling of component-based services for context-aware pervasive systems using OWL-S, in Proceedings of the 1st International Workshop on Managing Context Information in Mobile and Pervasive Environments, Cyprus, May 2005, pp. 30-39. [4] A. K. Dey, D. Salber, and G. D. Abowd, A conceptual framework and a toolkit for supporting the rapid prototyping of contextaware applications, Human-Computer Interaction (HCI) Journal, vol. 16, no. 2-4, pp. 97-166, 2001. [5] C. Efstratiou, K. Cheverst, N. Davies, and A. Friday, An architecture for the effective support of adaptive context-aware applications, in Proceedings of 2nd International Conference in Mobile Data Management, vol. Lecture Notes in Computer Science Volume 1987. Hong Kong: Springer, January 2001, pp. 15-26. [6] S. Göbel, C. Pohl, S. Röttger, and S. Zschaler, The COMQUAD component model: enabling dynamic selection of implementations by weaving non-functional aspects, in AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development. New York, NY, USA: ACM Press, 2004, pp. 74-82. [7] T. Gu, et al., An ontology-based context model in intelligent environments, In Proceedings of Communication Networks and Distributed Systems Modeling and Simulation Conference, San Diego, California, USA, January 2004. [8] HP Labs, Jena 2 - A Semantic Web Framework, 2004. [9] IBM alphaWorks, IBM Toolkit for MPEG-4, 2005. [10] J. Indulska, et al., Experiences in using CC/PP in context-aware systems, in LNCS 2893: Proceedings of 4th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems, ser. Lecture Notes in Computer Science (LNCS), J.-B.Stefani, I. Dameure, and D. Hagimont, Eds., vol. 2893. Springer-Verlag, November 2003, pp. 224-235. [13] Object Management Group, Component Model, v3.0, 2005. CORBA [15] D. Preuveneers and Y. Berbers, Adaptive context management using a component-based approach, in LNCS 3543: Proceedings of 5th IFIP International Conference on Distributed Applications and Interoperable Systems, ser. Lecture Notes in Computer Science (LNCS), L. Merakos, N. Alonistioti, and L. Kutvonen, Eds., vol. 3543. Springer-Verlag, June 2005, pp. 1426. [16] D. Preuveneers, J. Van den Bergh, D. Wagelaar, A. Georges, P. Rigole, T. Clerckx, Y. Berbers, K. Coninx, V. Jonckers, and K. De Bosschere, Towards an extensible context ontology for Ambient Intelligence, in LNCS 3295: Proceedings of the Second European Symposium on Ambient Intelligence, ser. Lecture Notes in Computer Science (LNCS), P. Markopoulos, B. Eggen, E. Aarts and J.L. Crowley, Eds.. vol. 3295. Springer-Verlag, November 2004, pp. 148-159. [17] P. Rigole, Y. Berbers, and T. Holvoet, Mobile adaptive tasks guided by resource contracts, in the 2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing, Canada, October 2004, pp. 117-120. [18] Stanford Medical Informatics, The Protégé Ontology Editor and Knowledge Acquisition System, 2005. [19] T. Strang, et al., CoOL: A Context Ontology Language to enable Contextual Interoperability, in LNCS 2893: Proceedings of 4th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems, ser. Lecture Notes in Computer Science (LNCS), J.-B. Stefani, I. Dameure, and D. Hagimont, Eds., vol. 2893. Springer-Verlag, November 2003, pp. 236-247. Automated context-driven composition of pervasive services to alleviate non-functional concerns [20] Sun Microsystems, The Enterprise JavaBeans 2.1 specification, 2005. [21] C. Szyperski, Component Software: Beyond Object-Oriented Programming, 2nd edition. Addison-Wesley and ACM Press, 2002. [22] The AspectJ project, AspectJ - Crosscutting objects for better modularity, 2005. [23] The DistriNet, EDM, ELIS-PARIS, PROG and SSEL research groups, CoDAMoS: ContextDriven Adaptation of Mobile Services, http://www.cs.kuleuven.ac.be/~distrinet/projects/ CoDAMoS, October 2003. [24] The OWL Services Coalition, OWL-S: Semantic Markup for Web Services, Release 1.1, November 2004. [25] D. Urting, S. Van Baelen, T. Holvoet, and Y. Berbers, Embedded software development: Components and contracts, in Proceedings of the IASTED International Conference Parallel and Distributed Computing and Systems, 2001, pp. 685-690. [26] Y. Vandewoude, Draco: A middleware platform for component-oriented applications, http://www.cs.kuleuven.ac.be/~yvesv/?q=Draco, 2005 [27] Y. Vandewoude and Y. Berbers, Run-time evolution for embedded component-oriented systems, in Proceedings of the International Conference on Software Maintenance, B. Werner, Ed. Canada: IEEE Computer Society, October 2002, pp. 242-245. [28] M. Weiser, The world is not a desktop, Interactions, pp. 7-8, January 1994. [29] M. Weiser, The Computer for the Twenty-First Century, Scientific American, pp. 99-104, September 1991. 29 [30] A. Wils, J. Gorinsek, S. Van Baelen, Y. Berbers, and K. DeVlaminck, Flexible Component Contracts for Local Resource Awareness, in ECOOP 2003 Workshop on resource aware computing, C. Bryce and G. Czajkowski, Eds., July 2003. Davy Preuveneers received his M.S. degree in Computer Science in 2002, and his M.S. in Artificial Intelligence in 2003 from the Katholieke Universiteit Leuven in Belgium. Since 2003, he is working towards his PhD at the Department of Computer Science of the Katholieke Universiteit Leuven. His research is focused on context-aware service interaction and adaptation, in particular in mobile and pervasive computing environments. Prof. Dr. Ir. Yolande Berbers received her PhD degree from the Katholieke Universiteit Leuven in 1987. She is currently a full professor at the Department of Computer Science at the Katholieke Universiteit Leuven and a member of the DistriNet research group. Her research interests include software engineering for embedded and real-time systems, model-driven architecture, context-aware computing, distributed and parallel systems and distributed computing, and multi-agent systems with emergent behaviour. She runs several projects in cooperation with other universities and/or industry. She teaches several courses on programming real-time and embedded systems, and on computer architecture.
© Copyright 2026 Paperzz