Managing Distributed Networked Appliances in Home Networks Madjid Merabti, Paul Fergus, Omar Abuelma’atti Heather Yu Charlie Judice School of Computing and Mathematical Sciences Panasonic Information and Networking School of Science, Technology Liverpool John Moores University, Liverpool, UK. Technologies Laboratory, and Engineering, Monmouth Email: {M.Merabti, P.Fergus, Princeton, NJ, USA University, NJ, USA O.E.Abuelma’atti}@ljmu.ac.uk Email: heathery@research.panasonic.com Email: cjudice@monmouth.edu Abstract – In recent years, with the growth of home appliance usage and the Internet, networked devices have become more widely used in more diverse applications than ever before. This widespread adoption will require new and novel platforms to abstract the difficulties associated with the exploitation of devices and help overcome the inherent limitations associated with bespoke development. New platforms will need to harness the interactions between devices allowing emergent behaviour to surface, whereby high-level applications are created from lowlevel compositions. Combining the devices we own to create new applications or provide services is challenging and there is a need to reduce the cognitive demands placed on specialists and home users alike. This will allow for better exploitation of devices and provide obvious benefits to the end user. In this paper we present a novel framework for managing devices and their services within home environments. Our approach provides a new perspective and we demonstrate the applicability of our approach using a working prototype to implement an intelligent home environment. off, thus optimising and reducing water consumption and costs. Researchers suggest that this transition mirrors the evolutionary process undertaken within personal computing and wide area communications, where it is now difficult to imagine using a computer without Internet access. Given the success of this transition, home networking platforms aim to achieve the same level of acceptance. Figure 1 illustrates what such an interconnected home environment might look like. Home Appliances Network Keywords: Networked Appliances; Multimedia Services; Interoperability; Dynamic Service Composition, Self-adaptive middleware. I. INTRODUCTION Networked devices have revolutionised the way we access and disseminate information and changed the way we communicate with each other. More and more homes are now Internet-enabled as people from all walks of life embrace this technology because of the benefits it brings. These include shared Internet access; file and peripheral sharing; voice over IP; and online gaming. As this trend continues, we can expect ordinary everyday appliances to become part of these networks, and networked devices will become pervasive and often invisible to users. At the simplest level, this means lights will switch themselves on when someone enters the room. Looking further ahead, home appliances will automatically integrate, configure and manage themselves, to form high-level applications. For example, garden sprinklers may be networked to form close relationships with humidity sensors and real-time weather readings received via the Internet to make decisions on whether sprinklers should be turned on or Fig. 1 Connecting Home Appliances Through the widespread adoption of networked appliances, new and novel platforms will emerge to abstract the difficulties associated with device exploitation. New platforms should overcome the inherent limitations associated with bespoke development and provide mechanisms that allow users to easily create new and innovative applications. Typically, the thought of integrating the devices we own, is somewhat challenging and there is a need to reduce the cognitive demands placed on specialists and home users alike. This will allow for better exploitation of devices and the functions they provide. It will enable users to operate devices without burdening them with management and integration tasks. Increasing the ease with which users are able to operate the devices they own will produce obvious benefits. But this raises some important questions. Most notably, how can users interoperate all the devices they own without incurring management costs or locking them into inflexible proprietary solutions? In the short-term we may choose to outsource the management of our home networks to third party providers. However the long-term challenge is to develop a suitable framework that allows devices to automatically integrate and manage themselves within home networks without third-party registration. We propose a framework whereby heterogeneous devices and services seamlessly interoperate. The framework has a number of advantages over current approaches. First, it allows devices and services to be interconnected and uniformly addressed. Second, it allows the operational capacity of devices to be dispersed and automatically integrated within applications using ontologies. And third, it allows devices to self-adapt to environmental changes. The following will be discussed to demonstrate the applicability of the proposed framework. Current research initiatives within networked appliances and home networking; our proposed framework; an intelligent home environment case study; the prototype used to evaluate the proposed framework; and our conclusions and future work. II. NETWORKED APPLIANCES AND HOME NETWORKING A number of home networking solutions have been developed to try and get devices to seamlessly interoperate. Some approaches adopt an end-to-end solution for personalised value-added audiovisual services. Others take a broader view and try to manage the complexity associated with combining embedded systems with the Internet. As the proliferation of devices and services becomes more ubiquitous and as home networks form part of the Internet, finding and composing devices will become paramount. The trend is to use syntactic descriptions based on attribute-value pairs. However, several approaches are investigating how ontologies could be used to describe and discover devices more accurately. Bringing this all together different management approaches have been adopted. Many utilise the benefits of set-top box technologies whereas ad hoc approaches are used to equip devices with plug and play capabilities. In the remainder of this section some of the most common initiatives are discussed. The ePerSpace project [1] aims to provide an end-to-end solution for value-added audiovisual services. In this framework services are distributed, via open access networks, based on the details defined in personalisation profiles. This allows content and devices to be dynamically adapted to specific users. Using a trusted and interoperable framework devices are interconnected allowing them to be controlled by content creators using rich media object management tools. The approach taken by ePerSpace is somewhat restrictive because the primary focus is on interoperability between audiovisual services. Although, this is important, their solution does not provide mechanisms to address all aspects of device and service interoperability. We address this limitation within our framework by allowing any type of service, including audiovisual services, to be accommodated, using open standards. This is important because it provides a platform on which any service functionality can be deployed and interoperated. Devices are becoming more pervasive and to accommodate this the Reconfigurable Ubiquitous Networked Embedded Systems (RUNES) [2] project is trying to provide a platform that allows a larger number of devices to form part of the Internet. To support such environments it aims to manage this integration, thus providing users, designers and programmers with the flexibility to interact with services, devices and sensors. It promises to deliver a platform to enable the formation of large-scale, distributed, heterogeneous network systems that can interoperate and dynamically self-adapt to environmental changes. This approach is dependent on well-defined languageindependent component metamodels, bound to service interfaces. This allows interoperation and self-management of components through the composition of metamodels. Discovering and composing these metamodels allows underlying services to be executed to provide high-level functionality. Whilst this provides a solution, proprietary metamodel and interface construction is somewhat restrictive because RUNES dictates how applications must be developed. A better alternative would be to allow different device manufacturers to describe metamodels and interfaces using their preferred vocabulary. Although, this approach is highly flexible, it nonetheless provides a basis for increased innovation. This is an approach adopted within our framework where device and service compositions are guided by ontologies. Consequently, ad hoc services can be plugged into our system without constraining how metamodels or interfaces are defined. This improves component discovery, composition, execution and management by reasoning over the “what” part of the composition rather than the “how”. In support of this, advances within the Semantic Web community have been adopted [3], where researchers are trying to use ontologies to describe, infer and better target required content. In this approach ontologies, linked through merging or alignment, are used to formally describe services [4-7]. The Semantic HiFi project [8] has incorporated these advances to try and address the limitations associated with attribute-based audio processing, where interoperability is achieved using libraries, semantic description schemes, specifications and guidelines. Rather than focusing on composing networked appliances, this project uses semantic descriptions to process raw content. This technique could be utilised within our framework to better process multimedia data. Clearly, flexible device management will liberate the user. However, this is only true if all devices are included. The Digital Living Network Alliance (DLNA) [9] suggests that interoperability must be between devices that reside within three domains: the Internet, broadcast and mobile. DLNA advocates that the key to successful integration is to address customer demands where the devices they own work together within and across these domains. From a technical perspective DLNA argues that this requires design choices constrained through industry consensus to enable better interoperability. They state that current open standards are too flexible and consequently interoperability between different vendors fails. As such, standards in conjunction with proprietary manufacturing may reduce the time taken to deliver products to high-street stores. Like ePerSpace, DLNA only addresses basic interoperability. Their approach could be incorporated into a larger framework to provide a base solution, however mechanisms are still required to effectively manage devices. It advocates the use of open standards and its underlying interoperability mechanism is based on Universal Plug and Play (this standard is discussed later in this section). This provides a good foundation. However, it is heavily reliant on IP and as such binds devices to specific addressing schemes. Although IP is seen as a de-facto standard capable of spanning different physical media, its sole use could exclude some devices. To overcome this limitation a unified addressing scheme is used in our framework capable of mapping devices to any underlying communication protocol. This allows devices to interact without having to change their original configurations and provides an additional level of flexibility not provided by DLNA. Some researchers believe that open standards, constrained by proprietary manufacturing, bring products to market much quicker. However, it is difficult to ascertain how successful proprietary solutions will be until products have been released. A product called iReady [10] tries to counteract this uncertainty by interconnecting devices using separate data communication components. iReady provides standards for different network adapters, which are dependent on the data exchanged within and across different networks. They claim their approach is flexible, because device manufacturers do not have to develop, market and sell existing products separately from network-enabled ones. Users that require network connectivity simply buy the associated adapter. Their approach is however restrictive since interoperability is addressed by adapting hardware configurations. It is the user’s responsibility to manage iReady devices because no mechanisms are provided to automatically achieve this. This is not conducive to decreasing the cognitive demands on users. By abstracting this complexity our framework can accommodate iReady products and manage the operational functions they provide with little or no human intervention. Building on the existence of power lines that already exist within the home, the Consumer Electronics Powerline Communication Alliance (CEPCA) [11] have defined a highspeed power line communication (PLC) standard. This provides an interface between different devices using electrical power lines for audio, video and data networking. The alliance is trying to convince consumer electronics manufacturers and the information technology sector to collaborate, with device interoperability over power lines as the driving force. The consortium suggests that bi-directional PLC is a communication channel capable of supporting home networking using existing electrical power lines installed in home environments to enable high-definition video transmissions and IP telephony. This is said to reduce the costs associated with home networking. However, the approach is restrictive since hardware modules need to be implemented on every device before they can be used in a PLC network. Like iReady, our framework can support PLC-based products and provide mechanisms to manage them. This is not the primary concern of CEPCA. Unlike CEPCA, the Open Services Gateway Initiative (OSGI) [12] assumes network-enabled devices and in-home networks already exist. Using set-top box technologies, networked appliances are interconnected and controlled. This approach has considerable industrial and academic backing from device manufacturers and service providers alike. Its mission is to create open specifications that enable the delivery of multiple services over Wide Area Networks (WANs) to home networks. The framework incorporates three entities: the service and network provider, the services gateway, and the inhome network. Service providers enable the provision of value added services to the residential customer via the services gateway. Service operators manage and maintain the services gateway and its services, whilst network providers offer the necessary network infrastructure to enable communications between the services gateway, the gateway operator, and the service provider. OSGi adopts a centralised approach and as such it suffers from the same problems, i.e. central point of failure and scalability. Although our framework can operate under centralised topologies, its core infrastructure uses peer-to-peer technologies. This provides a decentralised scalable approach that allows a greater number of devices and services to redundantly co-exist without forcing them to register with any third-party. Building on the success of file-sharing applications, devices and the functionality they provide are shared between all interconnected devices. This allows devices to form part of a larger network irrespective of where they reside and with global scope in mind. In contrast to centralised approaches, ad hoc networking standards for home networking are beginning to realise the benefits peer-to-peer technologies might bring. In these networks devices are seen as the centre of the information space, where functionality is received from within a device’s immediate vicinity. The AMIDEN [13] project builds on this concept by allowing devices to disperse the functions they provide as independent services. A standard with considerable support that adopts this notion is Universal Plug and Play (UPnP) [14]. Devices are automatically discovered, interconnected and controlled within local area networks, thus extending the auto-configuration features of device Plug and Play (PnP). It achieves interoperability by leveraging existing mature standards currently used by the Internet, such as IP, HTTP and XML. It provides mechanisms that can use existing addressing schemes such as DHCP and AutoIP functions best suited to ad hoc networking. Like many other standards discussed, AMIDEN and UPnP provide mechanism for interconnecting devices. They also address an important requirement, that of exposing device functionality as independent services. However, they both fail to automatically manage devices. This is seen as a key requirement within our framework where devices are not just interconnected but also managed. This section has presented numerous systems trying to address interoperability. However, they are all somewhat restrictive. Despite what these approaches claim, they do not completely solve all interoperability concerns. In the following section we present our proposed framework and discuss how using a flexible middleware solution can address many of the issues introduced. The framework we propose is novel and shows how new perspectives can be applied to device interoperability; function utilisation; ontology usage; and device and service management. III. NETWORKED APPLIANCE SERVICE UTILISATION FRAMEWORK It helps to begin by defining what a networked appliance is. Several definitions exist; consequently it is difficult to provide a clear and decisive description of their key characteristics. Form a hardware perspective, Moyer et al. [15] define networked appliances as “a dedicated function consumer device with an embedded processor and a network connection.” Whilst we agree with this definition, we define networked appliances as devices that disperse their operation capacity as independent services that can be discovered, and used by other networked appliances in the network (LAN or Internet) to control, monitor, manage and extend the functionality they support beyond what they were initially designed to do. Our approach, based on service-oriented computing, builds on this definition. It allows devices to implement a small footprint of code enabling framework and application specific functions to be dispersed within the network. Using framework services, devices can connect to the network using any underlying communication protocol; discover and/or publish and use framework and application specific services locally (on the device itself) or remotely (provided by other devices); perform semantic interoperability between different vocabularies used by device manufacturers; automatically form communication links with other devices in the network; and self-manage their operations based on composite and environmental changes. Application specific services, on the other hand, provide a means of dispersing and utilising device functionality (such as audio and video). Devices connected to the network rely on three key characteristics. First, they provide access to framework and device functionality using services. Second, devices automatically form communication links with other devices in the network based on the functions they provide and the functions they require. Third, devices manage communication links and self-adapt to unforeseen changes that occur within the environment, e.g. increased network traffic. The proposed framework allows high-level applications to be automatically created through device interactions. This reduces the cognitive demands placed on users, who are free to interact with devices without having to define how applications are created beforehand. A. Interconnecting Devices There have been many proposed solutions to interconnect devices. Whilst centralised approaches have become commonplace new research initiatives are trying to utilise ad hoc technologies such as peer-to-peer networks. Building on these approaches devices typically intercommunicate with each other using proprietary communication protocols. These can be somewhat restrictive and alternative approaches suggest that using open standards provides greater flexibility. The proposed framework presented in this paper draws from the successes of these different approaches to ensure that flexibility, scalability, and innovation are firmly embedded within the architecture. Using ad hoc networking principles the framework avoids the inherent limitations associated with centralised approaches. Whilst overcoming the restrictive nature of proprietary solutions is achieved using open standards and ontologies to more accurately describe, discover, and compose devices. The remainder of this paper explains how these techniques have been incorporated within the framework and highlights the novelty of our approach. B. Device Interoperation The networked appliance service utilisation framework we propose provides a middleware that operates between devices and the application layer, as illustrated in Figure 2. All communication between applications and devices, including intercommunication between devices, passes through the framework. When a device is connected to the network it does four things. First, it either publishes the framework services it implements and/or discovers and uses framework services provided by other devices (the reason for this is discussed later). Second, it publishes any application specific functionality it provides (e.g. Audio and Video). Third, it forms relationships with other devices and services within the network (for example, a media player may form a relationship with a speaker because it processes audio data). Forth, it selfadapts to connections between devices and services, including environmental changes that may occur. Services are dynamically discovered by propagating messages within the network using peer-to-peer technologies. As messages pass through the framework they are decomposed to extract two pieces of information. First, the capability model used to describe device capabilities. Second, the service capability model used to describe the functionality the device requires. Application Layer Networked Appliance Service Utilisation Framework Network Layer Network Layer appliances or as simple networked appliances as illustrated in Figure 3. Here a specialised networked appliance has the ability to host services, store and evolve semantic information used to describe and discover services, as well as propagate service requests within the network. A simple networked appliance by definition does not have these capabilities. This type of device joins the network, propagates queries and invokes discovered services. This enables any device irrespective of its capabilities, to effectively choose how it will interact within the network. Figure 3 illustrates two extremes – devices that are highly capable and those that have limited capabilities. However, it is envisaged that there will be a myriad of other possibilities between these extremes. Devices Fig. 2 Proposed Framework Message serialisations are constrained within the framework (this is discussed in more detail later), but not the vocabulary used. Each device uses a local ontology (a means of semantically representing a domain of interest) to describe the device and the functions it provides. Device ontologies are evolved using the framework to understand the vocabularies used by other devices. In this sense, ontologies are used to perform semantic interoperability (a means of linking terms using semantic relationships). When messages are received they are processed in line with descriptions used by devices to describe their capabilities and the functions they provide. Any ambiguities between different vocabularies are resolved using the device’s domain ontology. Devices automatically connect to the network without having to register themselves or the services they provide with any third party. When a device is switched on it has the ability to automatically integrate itself within the network and publish the functions it provides by multicasting service advertisements. Each advertisement has a time-to-live value that expires after a given time period – advertisements have to be periodically re-published to keep the service alive. Devices may remove themselves and the functions they provide from the network at anytime or completely fail in some cases. In these instances service advertisements are no longer republished and are eventually purged from the network. Once an advertisement has been removed from the network the device or service no longer exists. The framework achieves this using the distributed semantic unstructured services manager [16], which is the primary component every device must implement. This is a peer-topeer interface that can be mapped onto any middleware standard, such as JXTA, RUNES, OSGi or UPnP. Devices connect to the network as either specialised networked Fig. 3 Distributed Semantic Unstructured Services The distributed semantic unstructured services manager marshals all communications between applications and devices within the network. It also provides the adaptation functions used to monitor communication links between the device and any relationships it has with other devices. When devices initially join the network they try to discover devices they have relationships with. For example, a multimedia player may try to discover audio and video devices capable of processing the audiovisual streams it generates. By propagating messages describing this required functionality, responses are received and stored on the device. By managing references to external services, devices can adapt to changes that occur. For example, if the user requests the multimedia player to begin playing a movie, it instructs the best audio and video devices it has previously discovered to begin processing the streams it outputs. The collective operation of all devices forms a high-level application. During its execution each device monitors its own interaction within the composition and adapts to any changes that may occur. If the audio speaker for some reason becomes unavailable, the player detects this change and automatically selects an alternative device (a previously discovered device – note devices that provide the same functionality can redundantly co-exist). conditions or composite conflicts. This is achieved using the semantic interoperability and signature matching service [17]. Each candidate device found has a corresponding device capability model that describes how well the device can execute the functions it provides (this is discussed in more detail in the following section). Each candidate device is processed and a comparison is made between the different capability models to ensure that the next best device is selected. For example a mobile phone and a plasma television both have visual capabilities. However, the plasma screen will be selected rather than the mobile phone, ensuring the device that provides the best quality of service is used. Nonetheless, if the mobile phone is the only device available then it will be used. Devices provide one or more services by publishing advertisements within the network. Service ontologies [18] are used to describe each service, which are embedded within these advertisements. Service ontologies are also used to describe service requests, which are matched against service ontologies. Figure 4 illustrates the service ontologies used and describes the relationships that exist between them. The primary component, discussed in the previous section, allows devices to implement and host, or remotely bind to, framework services. These are called secondary services. Secondary services extend the primary component functionality and allow devices to dynamically compose application specific services, such as audio and video; automatically resolve terminology differences between vocabularies; and assess device capabilities. The framework is not limited to these services, but rather has the ability to accommodate any new functionality that may be required as the framework evolves. This is a mechanism that is not supported by any other solution. In the remainder of this section each of the secondary services that comprise the framework is discussed. A. Dynamically Composing Devices Networked appliances require management techniques to automatically integrate and adapt high-level applications. For example, when a networked-enabled media player is connected to the home network, it automatically advertises its services and forms relationships with all visual and audio devices, such as TVs and Speakers, connected to the network. Underpinning the dispersed operational functionality, management services are used to enable devices to react to adverse environmental 1 Process Model Service 1 Supports IV. SECONDARY FRAMEWORK SERVICES 1..* Provides When compositions are executed, devices also monitor the arrival of new devices within the network. For example, if a mobile phone is being used to view a video stream and a plasma television registers itself on the network, the player compares the capability model provided by the plasma television with the capability model for the mobile phone. In this instance the player determines that the plasma television provides a better visual experience and instructs the mobile phone to stop processing the stream. The plasma television is then instructed to take over this processing. This localised detection of changes forms the self-adaptation mechanism within our framework allowing high-level applications to be continually adapted based on composite and environmental changes that occur. This describes a simple example. However, the same principles can be used by any device or application scenario. 1..* Presents 1 Describes 1 1 Device Device Grounding 1..* Profile Fig. 4 Service Ontologies The Service Ontology describes information about the service, such as the service provider. This ontology contains references to the Service Profile, Service Process Model and the Service Grounding, which collectively describe the service’s capabilities [18]. Service descriptions are described at an abstract level in terms of Inputs, Outputs, Preconditions, and Effects (IOPEs) [18]. The IOPEs defined within the ontologies form explicit relationships between the Service Profile, Service Process Model, Service Grounding and the Service Interface. Using ontologies, mapped onto low-level interfaces, helps independent services offered by devices to be accurately matched and dynamically composed without any human intervention. This allows functions provided by networked appliances to be discovered and composed to create high-level functionality as illustrated in Figure 5. For example, by discovering all the audio services in the network, and using a microphone provided by either a laptop or a camcorder, services can be combined to create a virtual intercom system. Devices and services are composed by matching IOPEs defined in the service request with those defined in the service ontologies. A number of techniques can be used to determine whether two IOPEs match using the device’s domain ontology. One possible match occurs when any two IOPEs are equivalent as illustrated in Figure 6. In this example the Precondition ‘Real-time’ in the service request is equal to the Precondition ‘Real-time in the service ontologies. Another possible match can be achieved via subsumption. For example an Input in the service request may be called ‘Movie’ and an Input in the service ontologies may be called ‘Film’ – if ‘Movie’ has a ‘subclass’, ‘superclass’ or ‘equivalent’ relationship with ‘Film’ then a conceptual relationship has been found that links the two terms together. In this instance, Figure 6 shows that the device’s domain ontology contains an equivalentTo relationship that links the two terms together. Consequently, these terms can be used interchangeably. Digital Camcorder DistrES Ontology Thing subClassOf subClassOf equivalentTo Picture subClassOf SVCD Abstract matches are used to find concrete matches. These matches occur if the IOPEs in the service request can be directly mapped onto concrete bindings in the service interface. The Service Profile [18] is processed and the values associated with each IOPE are retrieved. These values specify which ‘Atomic Process’ each IOPE belongs to in the Service Process Model [18]. The IOPEs may have been matched at an abstract level however they could belong to different atomic processes. Therefore, the framework determines if a single atomic process exists, that supports all the IOPEs in the service request. If so, the operation name is extracted from the Service Grounding [18] along with the parameters, parameter order and endpoint address from the service interface. Signatures are created from this information and used to bind to and execute the required service. subClassOf subClassOf MP2 subClassOf MP3 1. SERVICE REQUEST Input: [Movie svcd] Output: [Movie vcd] Precondition: Real-time Effect: converted DV VCD 4. getRelationship(Movie, Film) SISM Manag. Terms that cannot be related are passed to the distributed emergent semantics service [19] (discussed in more detail in the following subsection). This service tries to evolve the device’s domain ontology to include possible relationships that link the terms together, (this does not necessarily mean a relationship exists because in most cases terms will be unrelated). Depending on the result, terms will either be semantically related or marked as unmatched. If all the IOPEs in the service request are matched with IOPEs in the service ontologies this constitutes an abstract match. When abstract matches are found, the device retrieves all the service ontologies [18], along with the service interface and creates a table containing the matched IOPEs from the service request. The matched IOPEs act as keys in the table and have corresponding values, which represent the names of the IOPEs used in the service ontologies. This process is important because the service request and service ontologies may refer to semantically equivalent IOPEs differently – the table of keyvalue pairs creates a semantic mapping between the different terms used. MPEG-1 subClassOf SeCEn Film subClassOf MPEG-2 subClassOf subClassOf DVD Fig. 5 Dynamic Service Compositions between Devices equivalentTo Movie 5. equivalentTo (Movie, Film) 3. Service Request, Service Profile SISM 6. Get Service Ontologies 7. Extended Interface Service Ontologies 2. SERVICE PROFILE Input: [Film svcd], Output: vcd Precondition: Real-time, Effect: Converted DVD Player SeCEn SISM Manag. SISM Profiles DistrES Ontology Picture Service 8. Extended Interface Fig. 6 IOPE Matching Devices can form compositions between devices or services either directly or indirectly. For example in Figure 7 ‘DVD Player 1’ reads the data from an inserted movie disk. The ‘Player’ service discovers that the media format is ‘Xvid’, which it cannot process because it only has an MPEG-2 decoder. ‘DVD Player 1’ tries to resolve this conflict using an intermediary service, which takes as input an ‘Xvid’ data stream and generates an ‘MPEG-2’ output stream. Reformulated service requests are propagated in the network describing the IOPE requirements. ‘DVD Player 1’ finds ‘DVD Player 2’, which can indirectly stream an Xvid movie into an ‘MPEG-2’ media format using a service provided by a Laptop. ‘DVD Player 2’ uses the Laptop to convert the’ Xvid’ format into a ‘DivX’ format, which it can process and convert into an ‘MPEG-2’ stream. ‘DVD Player 1’ is not aware of the composition between ‘DVD Player 2’ and the Laptop and is only concerned that ‘DVD Player 2’ can successfully convert the ‘Xvid’ data into ‘MPEG-2’. This is achieved using an extended interface metadata object. It describes how signatures are constructed and indicates whether the intermediary service itself can be directly invoked or whether it also requires intermediary services. This process allows services to dynamically discover and resolve IO conflicts that may occur and proactively establish compositions with intermediary services. This may result in several candidate services that provide the same functionality. Services that best match the device capability requirements defined in the service request are added to the extended interface metadata object. DVD Player 2 DVD Player 1 DistrES Ontology DistrES Ontology SISM Manag. SISM Profiles EI Table SeCEn SISM Manag. SISM Service Request Profiles SeCEn EI Table CS Metadata CS Metadata 1. Xvid MPEG-2 Codec Player Service 8. MPEG-2 9. MPEG-2 Television 6. Divx EI Service 2. Xvid 10. Binary 5. DivX Laptop 4. DivX EI Service EI Table Profiles SISM Manag. 3. Xvid EI Table CS Metadata DistrES Ontology SISM EI Service Visual Service Service Response DivX to MPEG-2 7. MPEG-2 Xvid to DivX CS Metadata DistrES Ontology SISM Profiles SeCEn SISM Manag. SeCEn Fig. 7 Dynamic Service Composition The extended interface (EI) service, illustrated in Figure 7, is invoked when a service provided by the device does not directly support a method invocation. This service has a fixed operation name called ‘EI’ which takes two parameters – the first parameter is the extended interface metadata object and the second parameter is an array containing all the parameters required to invoke the service. This service processes the extended interface metadata object, which provides information about the operation name for the intermediary service, the parameters it takes, including the associated data type information, and the order in which the parameters appear in the signature. If the connection mode is ‘direct’ the extended interface service uses the metadata for the intermediary service to construct the required signature using the parameters in the array, before binding with it and executing the required method. In this instance ‘direct’ means that device A can directly use a service S1 provided by device B without having to use any intermediary services. If the connection mode is ‘composite’ the extended interface service processes the extended interface metadata object for the intermediary service it needs before connecting to its extended interface service and passing it the metadata and the parameters. In this instance ‘composite’ means that device A indirectly uses a service S1 provided by device B via service S2 provided by device C. This process continues until a ‘direct’ connection with a service in the composition is made. Using these techniques, service interfaces can be evolved over time to accommodate inputs they were not initially designed to process. For example a DVD Player that only implements an MPEG-2 decoder can read a number of different media formats and interact with the ‘Visual’ service using data adaptation services as described above. B. Managing Distributed Device Ontologies Networked appliances provide zero or more functions. For example, a television offers visual and audio functions, as well as terrestrial communication channels. Discovering and utilising these functions within and across different networks presents a significant problem. Although proprietary communication protocols are commonplace, it is clearly becoming apparent that alternative approaches are required to discover resources more accurately. One approach is to use ontologies, often described as a shared understanding of some domain [20]. Formally describing domains within our framework allows devices to achieve better communication and interoperability. Typically, ontologies are managed by centralised consortiums where agreements have to be reached on what information an ontology should contain and how it should be described. This is subjective and difficult to maintain. In order to provide a more efficient approach, the collaborative peer nature of the framework is used, allowing devices to automatically evolve ontologies. This facilitates devices by extending and/or reifying concepts they already have. Furthermore, it allows devices to understand different vocabularies used by other devices. Coupled with peer-to-peer technologies and the principles of general consensus (what the majority believe to be true), our approach moves away from centralised ontology management. It provides a scalable approach that treats each device as a self-contained knowledge node, where, through interactions and self-management algorithms, global ontologies emerge. This is achieved using the distributed emergent semantics service [19]. Devices initially have knowledge to support the vocabularies used to describe their own services. However, over time they are extended to include those used by other devices. Devices propagate queries containing concepts they wish to evolve, within the network. Queries are processed by devices and used to query local ontologies to determine if concepts exist. Any concepts found are extracted along with any dependents and associated relationships and returned to the querying device. This may result in several responses, containing subjective ontological structures that lead to structural and possibly lexical variations between all responses received. To accommodate this, structural patterns (commonalities found within all ontological structures) are extracted and used to produce an optimal structure that captures the general consensus (what most devices believe to be true). Figure 8 illustrates a subset of a device’s ontology (C1) and three responses (R1 – R3). This represents the results the device has received from the network after a query has been propagated. It is clear that although structurally R1 – R3 are different, commonalities exist within all structures. For example, given the nodes “Movie” and “MPEG2”, the framework determines that these nodes are common by calculating the number of times they occur in all structures. In this instance both nodes appear in all four structures, therefore they will appear in the optimal structure. In contrast the nodes “Film”, “VCD”, “DVD” and “MP3” are low scoring nodes because each node appears in one structure only. These are classed as low-scoring nodes and the probability of them appearing in the optimal structure is reduced. Using two fitness functions [19], nodes and relationships are extracted and used to build the optimal structure. The higher the fitness function the more specific the extraction process is. In contrast, the lower the fitness function the more general the optimal structure will be. Setting fitness functions is dependent on a number of factors, such as accuracy, concept size and processing time. For example, a mobile phone, which is processor and memory restrictive, will set its fitness functions high to ensure that less common information is excluded. This is assuming that a mobile device would explicitly implement the distributed emergent semantics service (devices with limited capabilities may choose to use such services remotely). be obtained by specifying that the optimal binary vector must have the top n nodes and the top n relationships. For example, if the nodes and relationships in C1 are used, as illustrated in Figure 8, the following vector, ordered based on fitness, will be produced. [1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0] The first eight bits represent the nodes and the last nine bits represent the relationships. The position of the bit is important because it corresponds to particular word representation. For example, a word version of the above vector may be as follows: [Movie, MPEG-2, MPEG-1, SVCD, Film,VCD, DVD, MP3, Movie|MPEG-2, Movie|MPEG-1, Movie|VCD, Movie|Film, Movie|DVD, Movie|MP3, MPEG-2|SVCD, MPEG-1|SVCD, MPEG-1|MPEG-2] If a value of one is in the third position then this means that the structure has a node called “MPEG-1”. Furthermore, if a value of one is in the fifteenth position this means the structure has a relationship between the node “MPEG-2” and SVCD. For illustrative purposes the “Result” structure in Figure 8 is generated by using the top four nodes within the vector of nodes found and using the top three relationships. This means that the optimal structure, given these rules, would be as follows. [1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0] Fig. 8 Statistical Pattern Extraction Engine The first fitness function places all the unique nodes, found in the device’s current structure (C1), and in the responses received (R1 – R3). These are placed into an array. Each node is given a fitness value based on the number of times it appears within all structures. This is called term frequency. For example, the node “Movie” is given a fitness value of four because it appears in all structures. The second fitness function places all the unique relationships that exist between any two nodes and places them into an array. Again, the fitness value for each relationship is calculated based on the number of times a relationship occurs in all structures. In this paper we have only shown that two fitness functions are used, however the distributed emergent semantics service can accommodate any number of fitness functions to improve the evolution of ontologies. This is the focus of future work. Once a list of ranked nodes and relationships has been created, they are used to produce a binary vector. Each position in the vector represents a node or relationship. The vector is used to convert all the structures where a value of one in the structure is placed in the vector based on the presence of a node or relationship in that structure. Optimal structures can Optimal structures are used to evaluate each individual structure to determine how fit each structure is. For each matching bit in the vector the structure’s fitness value is incremented by one. With the optimal vector illustrated above we can say that an optimal structure has been obtained when a given structure has a fitness value of 17. There are several ways of obtaining the optimal structure. Simple statistics could be used or feedback loops could be used to evaluate how successful compositions are. Our framework currently provides functions for statistical analysis and genetic evolution. However in the latter case the user is required to input the optimal structure required. Future work aims to investigate how this could be automated using device compositions and the feedback loop technique described above. Optimal structures are merged with the device’s local ontology. This process begins by extracting the nodes from the optimal structure and checking whether they exist in the device’s local ontology – any nodes that don’t are added. Once this is complete the process is repeated for all the relationships that exist between nodes in the structure. These principles allow the framework to manage semantic information within and across all devices connected within the network, where the collective knowledge provided by all devices is seen as a distributed ontology. This technique is novel because it utilises peer-to-peer technologies and the principles of general consensus rather than centralised ontology management. However, it is not reasonable to suggest that all aspects of ontology evolution can be addressed. For example we only consider the nodes and the relationships. However, ontologies also consist of properties and instances [19]. Nevertheless, we show that our approach can apply new perspectives to distributed ontology evolution and semantic interoperability. It illustrates how simple taxonomical structures can be constructed and evolved over time to enable basic semantic interoperability [19]. resource the service request deems important and compares it to the device capability model defined in the service request. This is achieved using a technique called the Multi-Attribute Utility Theory (MAUT) [22, 23], which produces an overall capability score for some device D given the attributes defined in the device’s capability model. This formula is defined as, C. Selecting the Best Devices to Compose where DCScore is the overall capability score for device D according to the device capability model DCM, d is the number of capabilities for the type of device, cwi(DCM) is the importance rating of attribute i according to the device’s DCM, and D(vi) is the status rating for attribute i. The importance rating describes how important a given attribute is in relation to all the attributes used, e.g. the CPU attribute may be the second most important attribute with an importance rating of 30, which means that the CPU is considered three times more important than an attribute with an importance rating of 10. The status rating describes how well the device supports a particular attribute, e.g. a device may have “Excellent” for its CPU attribute, which may equate to a value of 75. Home environments may contain many devices that offer the same functionality. For example, a plasma television and a video-enabled mobile phone are both able to process video information. However, the quality of these services will differ, i.e. a plasma television is considered better equipped to process high definition video rather than a mobile phone. Consequently, selecting and composing devices is dependent on quality of service and application specific requirements. To address this, our framework allows devices to be selected based on how well they can execute a service [21]. Metadata models are used and dynamically generated when service requests are received from within the network. Each model contains information about each resource the device manufacturer deems important. Several steps are performed to assess a device’s capabilities. First, the device’s current computational load and the additional load required to execute the required service are calculated. By adapting existing approaches [22, 23] the formula defined in (1) is used to calculate the quality of a required resource, where a resource r offers a service s that requires acs, r units of some total resource value trr. resc s ,r = ac s ,r tr r (1) This formula determines what proportion of some resource will be used given the total value of the resource available. For example, if a service requires 1 megabyte of RAM and the device provides a total of 32 megabytes, then the service is said to require 3.1% of that total. In parallel, the framework determines if a device is overloaded by calculating the amount of a particular resource the device uses. For example, if the device has 75% CPU utilisation the device may struggle to take on the increased computational overhead if the service is executed. Determining what constitutes a device being overloaded is application specific. For example, if the service is a transcoding service, the application may state that CPU utilisation should be no more than 10% because transcoding is processor intensive. Conversely, a service that processes simple commands such as “Light switch on” may require nominal computation thus a device that has 75% CPU utilisation could accommodate the additional computational overhead without any adverse effects. Quality of service may also be affected through shared computation. The framework calculates the overhead for each d DCScore( D, DCM ) = ! cw i ( DCM ) " D(v i ) i =1 (2) Given the two formulas, the device’s operating system calculates the service ratings programmatically by estimating the average attribute values and assigning the appropriate status ratings. For example, if the device uses on average 25% of its CPU when the required service is executed, the operating system may assign the CPU_Load a status assessment of “Excellent” with a status rating of 75. The equation in (3) amends the MAUT formula to take into account the current resource load and the load required to execute a service. In this instance the DCScore and the rescs, r are multiplied to give a combined resource load value, indicating whether the device can effectively execute a service it provides. d DCScore( D, DCM ) = # cw i ( DCM ) " D(v i ) " (1 ! resc s ,r ) i =1 (3) When the formula in (3) is used to calculate the score for the device capability model, it is compared with the score generated for the device capability profile. If the device capability model score is equal to or greater than the score for the device capability profile the device is said to be capable of effectively executing the service, whilst ensuring the quality of service is maintained. In this instance the service details are returned to the service requester. Using this technique provides a rudimentary mechanism that allows devices to proactively select the best devices and functionality that increase the overall quality of high-level applications created. This section has considered all of the secondary services that comprise our framework and the following section demonstrates how they can be used in an intelligent home environment. IV. INTELLIGENT HOME ENVIRONMENT In this section we discuss how our framework can be implemented. Using the architecture described above, we have designed a distributed service-oriented platform for use within an intelligent home environment. In this way we have been able to: (i) test our design decisions and illustrate how the framework addresses the limitations with current approaches; (ii) demonstrate how the operational capacities provided by devices can be dispersed and better utilised; and (iii) underpin interconnected devices with management services for selfadaptation. The demonstration prototype includes four wirelessly connected computers used to simulate two televisions, a Media player and two audio speaker systems. The televisions host video and audio services able to process video and audio data streams. The Media player hosts a player service for outputting MPEG-1 multimedia data, and the audio speaker systems host audio services able to process audio data streams. When devices are initially switched on they perform three tasks. First, they publish the services they provide. Second, they try to discover devices within the environment they have a relationship with (for example the Media player tries to discover devices capable of processing audio and video streams outputted by the player.) Third, they monitor the communication links they have with other devices and selfadapt to changes that occur. Using the simple control interface illustrated in Figure 9, users can discover, use and control any device in the network including the services it provides. Users select device and service capability models to describe the quality of service factors the device must support and the service functionality required. This is achieved using the interface illustrated in Figure 9. These models are serialised as XML and appended to service requests before being propagated within the network using the “Send Query” button. Discovered services are added to the “Services” list box. Any dependency services are added to the “Dependencies” list box. For example the player service discovered in Figure 9 has four dependency services: two audio and two video (these were automatically discovered when the device was initialised.) The dropdown box directly under the “Services” list box contains all the commands that can be sent to the player service. These are extracted via the service ontologies, from the service interface (WSDL file). Any of these commands can be selected and sent to the device using the “Send Command” button. For example, selecting “play” and pressing the “Send Command” button results in the player streaming audio and video data to the “audio” and “video” dependency services. Fig. 9 Framework User Interface The prototype demonstrates how devices self-adapt when exceptions occur within compositions. When the user sends a “play” command, the player instructs the audio speaker system and the television to begin processing the media streams sent from the player. For demonstration purposes the current audio speaker system was removed from the network, whilst a movie was being played. This conflict is detected by the media player and a previously discovered audio service is instructed to begin processing the audio data. The disconnected service was then reconnected to the network. The media player sensed this change and compared the device capability model for this speaker system with the device capability model for the current speaker system being used. It discovered that the newly published speaker system provides a better auditory experience than the speaker system currently in use. The media player instructed the current audio speaker system to stop processing the audio stream and instructed the newly published audio speaker system to begin processing the audio stream. This functionality was also successfully tested on the video services. Rather than using a centralised monitoring service, devices are empowered to monitor the local connections they have between other devices and services they use. This allows management to emerge through low-level changes making our approach highly scalable. A. Technical Details We have adopted a multidisciplinary approach whereby several tools and standards have been combined to implement our framework. This is not simply an integration exercise, but rather a novel approach that provides a new perspective on seamlessly interconnecting devices. The primary component and all secondary services that comprise the framework have been developed using the JXTA protocols [24]. These protocols allow any device to be connected to the network independent of platform, programming language, or transport protocol. Framework services are predetermined and each device understands how to discover and invoke them. Bindings between devices and secondary services are achieved using pipe advertisements. Specific secondary services use the same pipe advertisement. This ensures that devices do not continually create and publish new advertisements each time the device is connected to the network. This minimises discovery overheads and ensures that advertisement caches do not inflate over time. All secondary services have been developed in Java and implemented within the service layer of JXTA. This is a necessary step that extends JXTA and utilises the mechanisms already provided by JXTA to manage how services are dispersed. Application specific services are used to expose device functionality. Many functions may exist, consequently pipe advertisements used are not known by devices beforehand. As discussed in this paper, service ontologies describe device functionality by mapping high-level semantics onto low-level service interfaces. This is achieved using OWL-S [18]. This standard is also used to describe service requests (serialised as Service Profiles). This extends the service discovery mechanisms in JXTA. Using matching algorithms we developed, IOPEs in the service request are matched with IOPEs in the service ontologies. Matches result in service ontologies being returned to the querying device. This provides an effective mechanism to discover required services. Devices propagate messages in peer groups using the JXTA ResolverService protocol. Using ResolverService listeners devices define the type of messages they are able to process. We have extended the ResolverService objects to include additional XML tags relating to device capability models and service behaviour. A device that receives a message retrieves the device capability model and uses it to determine whether the capabilities it supports match or surpass the actual capabilities the device requires. Device capability models are serialised using the CC/PP specification [25]. JXTA service advertisements are used to describe highlevel information about services, such as the provider. These advertisements have been extended to include a Peer ID. The JXTA Peer Advertisement could have been used, however to reduce the number of discovery requests, the Peer ID is placed in the service advertisement. This allows all required information to be discovered in a single request, thus minimising network traffic. Using the Peer ID ensures that, although more than one service may exist of the same type, devices only bind and use the service initially discovered when a connection request to that service is made. This guarantees other pipe listeners will not receive messages destined for others. The decision to adopt this technique was based on a number of undesirable results we encountered within earlier implementations, whereby connection requests could be made to any pipe at the same time irrespective of the initial device or service discovered. The framework is underpinned with semantic annotations. To address ambiguities between the different vocabularies device manufacturers use, mechanisms have been developed to use ontologies as a means of semantic interoperability. Resolving ambiguities between terms that are syntactically distinct but semantically related is achieved using an OWL ontology implemented on the device. The first level of the ontology for a media processing device is illustrated in Figure 10. This ontology is evolved over time to include ontological constructs used by other devices. This ensures devices learn the vocabularies used by different device manufactures. Local device ontologies are processed using the ProtégéOWL API [26]. This API supports OWL-DL serialisations (a formally constrained ontology serialisation that can be used by most reasoners), and is a well developed tool used in a large number of academic and industrial projects. The Protégé-OWL Reasoner API [27] is used with the Racer reasoner [28] to process these serialisations. Jena [29] reasoners were considered, however a number of performance problems were encountered. For example when an inferred model was created using internal and external reasoners, out of memory errors occurred. Nevertheless, Jena is used to perform simple querying on OWL-S serialisations. This is achieved using the ontology models provided by Jena and RDQL [29]. In some instances it is easier to query RDF serialisations using RDQL rather than using an inference engine, which can be computationally more expensive. Furthermore OWL-S serialisations do not conform to description logics so it is difficult to load them into reasoners such as Racer. Fig. 10 First level of Media Processing Device Ontology Audio and video application services were developed using Java. Media streams were broadcast using the Java Media Framework (JMF) and the Real-time Transport Protocol (RTP) [30]. We developed a conversion service to transcode AVI encodings into MPEG-1. The JFFMPEG API [31] was used to perform this transcoding. Devices and services are managed using the Device abstract class. Every device instance subclasses this class. The Device class provides management functions to marshal the relationships between devices. This is a custom management component we have developed in Java that uses caching techniques in conjunction with threaded listeners to monitor incoming messages. Management services have been developed to continually monitor and change compositions to extend and maintain quality of service requirements. This functionality extends the current version of JXTA to support zero-configuration and allows devices to self-manage. Using the tools defined in this section we successfully developed the working prototype that implements the intelligent home environment described above. VI. CONCLUSIONS It is evident that the number of devices that are networkenabled is increasing rapidly. More and more products are offering communication functions in a bid to capture market share. Users require heterogeneous devices to seamlessly work together irrespective of their capabilities or conventional usage scenarios. Whilst this brings considerable benefits, little work is being carried out in parallel to effectively manage how networked appliances will operate. Our proposed framework does however move us closer to this vision. It is novel and shows that we can apply new perspectives to device interoperability; function utilisation; and device and service management. We are still in the early stages of networked appliance development and not every potentially networked device currently enjoys networking capabilities. Nonetheless, the area is expanding and we expect products, such as iReady, to become more widespread. Inevitably networked appliances will become commonplace. Whilst there is considerable scope for research initiatives such as OSGi and UPnP to embrace these new environments, the rudimentary management services provided by such services fall far short of those required to fully benefit from the technology. Our framework is not designed to replace existing approaches but to provide a flexible platform on which different approaches can interoperate. Its real strength relies on the collaborative interactions between ad hoc devices and the functions they provide. A technique that has been successfully applied to other research domains such as peer-to-peer multimedia networks. By describing and processing semantic information in large distributed environments, devices can learn patterns to automatically form explicit relationships with each other. By harnessing this interaction emergent behaviour can surface, whereby high-level applications are created through low-level compositions. Nonetheless, our approach is in the initial stages and we acknowledge that more research is still required. Whilst our working prototype demonstrates it is possible to develop such a framework, its full effectiveness remains to be tested in a real-world situation. In particular there are a number of known issues with our framework. The ontology evolution mechanisms are problematic – only simple serialisations can be processed. Security is an issue. Ad hoc environments raise an important question regarding the trustworthiness of service providers [32]. Service composition mechanisms require further research to include better matching algorithms. Feature interaction [33] is also challenging. Services may operate well when used in isolation or within small compositions however problems arise when trying to interwork a large number of services at the same time. However, the development of a capable middleware framework represents an essential step towards solving these important issues. We believe that we have provided a foundation for much further work beyond that described above. This strand of research will become increasingly important as we see more devices becoming network-enabled. Our goal is to embrace this new interconnected world and provide a viable framework to help manage it. REFERENCES [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] ePerSpace: Towards the era of personal services at home and everywhere. 2005, France Telecom, Accessed: 2006, http://www.isteperspace.org/. C. Koumpis, L. Hanna, M. Anderson, and M. Johansson, Wireless Industrial Control and Monitoring beyond Cable Replacement. 2nd Profibus International Conference, 2005, Warwickshire, UK, p. T. Berners-Lee, J. Hendler, and O. Lassila, The Semantic Web. Scientific America, 2001. 284(5): p. 34-43. A. Maedche and S. Staab, Ontology Learning for the Semantic Web. IEEE Intelligent Systems, 2001. 16(2): p. pp. 72-79. B. Chandrasekaran, J. R. Josephson, and V. R. Benjamins, What are Ontologies and Why Do We Need Them? IEEE Intelligent Systems, 1999. 14(1): p. 20 - 26. A. Doan, J. Madhavan, P. Domingos, and A. Halevy, Learning to Map between Ontologies on the Semantic Web. The Eleventh International World Wide Web Conference (WWW2002), 2002, Honolulu, Hawaii, USA: ACM Press, p. 662--673. L. M. Stephens and M. N. Huhns, Consensus Ontologies Reconciling the Semantics of Web Pages and Agents. IEEE Internet Computing, 2001. 5(5): p. 92-95. M. Jacob, RDF in the Semantic Hifi European project. 1st Italian Workshop on Semantic Web Applications and Perspecitives (SWAP), 2004, Ancona, Italy, p. 50-54. DLNA: Overview and Vision. 2004, DLNA, Accessed: October 2006, http://www.dlna.org/about/DLNA_Overview.pdf. Home Appliances Get Connected. 2004, Y. Miwa, Accessed: 2006, http://www.ipv6style.jp/en/netapplnc/20041022/index.shtml. Consumer Electronics Powerline Communication Alliance (CEPCA). 2005, CEPCA, Accessed: 2006, http://www.cepca.org/home. The OSGi Service Platform - Dynamic services for networked devices. 2005, OSGi Alliance, Accessed: 2006, http://www.osgi.org/. M. Minoh and T. Kamae, Networked Appliances and their Peer-toPeer Architecture AMIDEN. IEEE Communications Magazine, 2001. 39(10): p. 80-84. UPnP Forum. 2005, Microsoft Corp., Accessed: 2006, http://www.upnp.org/. S. Moyer, D. Marples, S. Tsang, and A. Ghosh, Service Portability of Networked Appliances. IEEE Communications Magazine, 2000. 40(1): p. 116-121. P. Fergus, A. Mingkhwan, M. Merabti, and M. Hanneghan, DiSUS: Mobile Ad Hoc Network Unstructured Services. (PWC'2003) Personal Wireless Communications, 2003, Venice, Italy: Springer, p. 484-491. P. Fergus, M. Merabti, M. B. Hanneghan, A. Taleb-Bendiab, and A. Minghwan, A Semantic Framework for Self-Adaptive Networked Appliances. (CCNC'05) IEEE Consumer Communications & Networking Conference, 2005, Las Vegas, Nevada, USA: IEEE Computer Society, p. 229-234. OWL-S 1.0 Release. 2003, DAML, Accessed: 2006, http://www.daml.org/services/owl-s/1.0/. P. Fergus, A. Mingkhwan, M. Merabti, and M. Hanneghan, Distributed Emergent Semantics in P2P Networks. (IKS'2003) Information and Knowledge Sharing, 2003, Scottsdale, Arizona, USA: ACTA Press, p. 75-82. M. Uschold and M. Gruninger, Ontologies: Principles, Methods and Applications. The Knowleddge Engineering Review, 1996. 11(2): p. 93-155. A. Mingkhwan, P. Fergus, O. Abuelma'atti, M. Merabti, B. Askwith, and M. Hanneghan, Dynamic Service Composition in Home [22] [23] [24] [25] [26] [27] Appliance Networks. Multimedia Tools and Applications: A Special Issue on Advances in Consumer Communications and Networking, 2006. 29(3): p. 257 - 284. R. Kumar, V. Poladian, I. Geenberg, A. Messer, and D. Milojicic, Selecting Devices for Aggregation. (WMCSA'03) Fifth IEEE Workshop on Mobile Computing Systems and Applications, 2003, Monterey, California, USA: IEEE Computer Society, p. 150-159. J. Liu and V. Issarny, QoS-Aware Service Location in Mobile AdHoc Networks. (MDM'04) IEEE International Conference on Mobile Data Management, 2004, Berkeley, California, USA: IEEE Computer Society, p. 224-235. L. Gong, JXTA: A Network Programming Environment. IEEE Internet Computing, 2001. 5(3): p. 88-95. Composite Capability/Preference Profiles (CC/PP): Structure and Vocabularies 1.0. 2004, G. Klyne, F. Reynolds, C. Woodrow, H. Ohto, J. Hjelm, M. H. Butler, and L. Tran, Accessed: 2006, http://www.w3.org/TR/2004/REC-CCPP-struct-vocab-20040115/. Protege OWL Plugin API. 2005, Stanford University, Accessed: 2006, http://protege.stanford.edu/plugins/owl/api/index.html. Using the Protege-OWL Reasoning API. 2005, Stanford University, Accessed: 2006, [28] [29] [30] [31] [32] [33] http://protege.stanford.edu/plugins/owl/api/ReasonerAPIExamples.ht ml. V. Haarslev and R. Moller, Description of the RACER System and its Applications. International Workshop on description Logics, 2001, Stanford, USA, p. 131-141. B. McBride, Jena: Implementing the RDF Model and Syntaxn Specification. The Second International Workshop on the Semantic Web - SemWeb'2001, 2001, Hong Kong, China, p. 23 -28. Java Media Framework. 2005, Sun Microsystems Inc., Accessed: 2006, http://java.sun.com/products/java-media/jmf/. Codec pack for the Java Media Framework. 2006, JFFMPEG, Accessed: August, http://jffmpeg.sourceforge.net/index.html. J. Haggerty, Q. Shi, P. Fergus, and M. Merabti, Data Authentication and Trust within Distributed Intrusion Detection System InterComponent Communications. (EC2ND'05) 1st European Conference on Computer Network Defence, 2005, University of Glamorgan, UK: Springer, p. 197-206. M. Kolberg, E. H. Magill, and M. Wilson, Compatibility Issues between Services Supporting Networked Appliances. IEEE Communications Magazine, 2003. 41(11): p. 136 - 147.