Supporting Pervasive and Social Communications with FraSCAti Electronic Communications of the EASST Volume 28 (2010) Proceedings of the Third International DisCoTec Workshop on Context-aware Adaptation Mechanisms for Pervasive and Ubiquitous Services (CAMPUS 2010) Supporting Pervasive and Social Communications with FRASCATI Rémi Mélisson, Daniel Romero, Romain Rouvoy, and Lionel Seinturier 13 pages Guest Editors: Sonia Ben Mokhtar, Romain Rouvoy, Michael Wagner Managing Editors: Tiziana Margaria, Julia Padberg, Gabriele Taentzer ECEASST Home Page: http://www.easst.org/eceasst/ ISSN 1863-2122 http://www.easst.org/eceasst/ ECEASST Supporting Pervasive and Social Communications with FRASCATI Rémi Mélisson, Daniel Romero, Romain Rouvoy, and Lionel Seinturier INRIA Lille – Nord Europe, ADAM Project-team, University of Lille 1, LIFL CNRS UMR 8022, 59650 Villeneuve d’Ascq, France firstname.lastname@inria.fr Abstract: In pervasive environments, the runtime adaptation of applications is done considering available event sources and services. To do that, the events have to be collected and processed, and the volatile services identified and accessed. How- ever, although the event flow and service mobility are key issues in the adapta- tion process, existing solutions fail to deal with them in a simple and flexible way. Therefore, in this paper we propose to face these issues by combining the SCA (Service Component Architecture) standard, micro-blogging services and discovery technologies. In particular, we benefit from the SCA extensibility, supported by the binding concept, for introducing two new communication mechanisms: i) so- cial bindings, allowing asynchronous event exchange via Twitter and, ii) pervasive bindings that provide support for discovery using standard protocols such as UPnP. We add support for these bindings in FRASCATI (a platform for SCA) and illustrate their usage with a smart home scenario that requires the integration of heterogeneous technologies. Keywords: social networks, pervasive computing, service-oriented architectures 1 Introduction In pervasive environments, the adaptation of applications requires the collection, filtering and processing of events produced by different kinds of sources (e.g., mobile devices and sensors), to decide the required reconfigurations. The different responsibilities of the adaptation—i.e., mon- itoring, analysis, decision making and execution—can be distributed in several entities, which dynamically join and leave the environment, in order to benefit from the most powerful devices. Therefore, we can consider the adaptation as a process that requires the exchange of events be- tween the different participants—i.e., event sources, decision makers and adaptive applications. However, although the information flow and mobility are key issues in the adaptation process, the existing approaches fail to deal with them in a simple and flexible way. In this paper we propose to extend the SCA (Service Component Architecture) [Ope07] model in order to increase communication capabilities in the changing pervasive environments. In par- ticular, SCA provides the flexibility for adding new kinds of interaction by means of bindings. SCA bindings encapsulate the communication protocols, isolating distribution concerns from the business logic. We take advantage of this concept in order to bring social and pervasive commu- nications into SCA. In this way, we introduce two new bindings: social bindings and pervasive bindings. The formers benefit from micro-blogging services, such as Twitter [Mak09], to build 1 / 13 Volume 28 (2010) mailto:firstname.lastname@inria.fr Supporting Pervasive and Social Communications with FRASCATI social networks for asynchronous event exchanges in pervasive environments. The latter supports mobility of entities in the environment by providing discovery support via the UPnP (Universal Plug and Play) protocol [UPn08]. We choose UPnP because it is a well-accepted standard in the home entertainment industry to create, for example, TVs and Network-Attached Storage (NAS) devices. Furthermore, the Digital Living Network Alliance 1 (DLNA), which ensures interoperability between devices from different manufacturers, supports the usage of the UPnP technology. We integrate the social and pervasive bindings into FRASCATI [SMF+09] (a SOA platform for the SCA standard) and illustrate their use with a smart home scenario exhibiting challenges in terms of protocol heterogeneity and integration. We claim that the encapsulation of the distribution concerns in SCA bindings enables the transparent event exchange and dy- namic service discovery in pervasive environments. We illustrate the usage of our social and pervasive bindings by defining a smart home scenario The rest of this paper is organized as follows. We start by presenting a smart home scenario (cf. Section 2) in order to motive the use of our approach and the foundation of our proposal (cf. Section 3). We continue by describing the integration of our pervasive (cf. Section 4) and social (cf. Section 5) bindings for allowing event distribution. After discussing the state-of-the- art (cf. Section 6), we conclude and give some promising perspectives (cf. Section 7). 2 Motivating Scenario: The DIGIHOME Platform The work presented in this paper is motivated by the DIGIHOME platform, which introduces the challenges for better connecting smart appliances in home environments. As explained in [RHT+10], a DIGIHOME environment is characterized by the diversity of communication protocols supported by the physical equipments deployed in a house. Although, standards like UPnP and more recently ZigBee [Zig10] have emerged and are supported by a growing number of commercial solutions, there is no general agreement on a single protocol for supporting the integration of home appliances. Additionally, the emergence of social networks like Facebook and Twitter have encouraged new means of communication where users can easily share infor- mation with a community of trusted contacts via micro-blogging services. In this context, we describe two scenarios where these technologies are smoothly integrated in a modular platform for implementing advanced context-aware home monitoring situations. Scenario 1. Alice owns two digital frames at home. One of them is able to display pictures from a UPnP media server, via a WiFi connection. The other frame has the ability to subscribe to a Really Simple Syndication (RSS) feed remotely published. However, Alice is not interested in displaying pictures that are randomly or statically selected in a library. She would rather prefer to display pictures according to her personal preferences stored on her smartphone. This feature therefore requires the DIGIHOME system to automatically detect Alice’s smartphone and retrieve her preferences for customizing display for the two frames. Additionally, when Bob joins the room, the DIGIHOME platform should import his preferences, and try to satisfy Bob’s and Alice’s desires to display pictures. 1 Digital Living Network Alliance: http://www.dlna.org/home Proc. CAMPUS 2010 2 / 13 http://www.dlna.org/home ECEASST Scenario 2. Alice plans to leave for holidays with Bob in a few days. Before leaving, Alice contacts her neighbors asking them if they could take care of the house while she is abroad. Neighbors can accept her proposal by following her on Twitter in order to be notified of partic- ular events related to the house. Whenever a movement is detected in the house while Alice is away, the DIGIHOME platform will post a new message on Alice’s Twitter account to notify her friends that something is happening in the house. Furthermore, to ensure the messages reception, the system filters the posts on the Alice’s account and displays them on neighbors’ UPnP TV. Depending on the content of the message, Alice’s neighbors can walk to the house and physi- cally check the status of the house. The DIGIHOME platform detects the neighbor’s smartphone, disables the house monitoring, and logs the presence of the neighbor by posting another message on Twitter. Challenges. The scenarios we describe here exemplify situations where the DIGIHOME plat- form has to integrate different technologies (UPnP, RSS, Twitter) to implement advanced situa- tions combining the house equipments (media server, Frames, Set-Top Box), smartphones, and the Internet. In the remaining of this paper, we introduce a solution that aims to deal with this technology integration. In particular, we build our solution with SCA by defining two features: pervasive bindings and social bindings, which we use to implement scenarios 1 and 2, respec- tively. 3 Background on Service-Oriented Architectures In this section, we present the foundation of our proposal—i.e., the SCA (cf. Subsection 3.1) component model. We also introduce the FRASCATI platform (cf. Subsection 3.2), which we use to implement our approach. 3.1 The Service Component Architecture (SCA) SCA is a set of specifications for building distributed application based on SOA and Component- Based Software Engineering (CBSE) principles [Ope07]. In SCA, the basic construction blocks are the software components, which have services (or provided interfaces), references (or re- quired interfaces) and expose properties. The references and services are connected by means of wires. SCA specifies a hierarchical component model. This means that components can be implemented either by primitive language entities or by subcomponents. In the latter case the components are called composites. Figure 1, from the SCA specifications [Ope07], provides a graphical notation for these concepts as well as a XML-based assembly language to configure and assemble components. SCA is designed to be independent from programming languages, Interface Definition Lan- guages (IDL), communication protocols and non-functional properties. In this way, an SCA- based application can be built, for example, using components in Java, PHP, and COBOL. Fur- thermore, several IDLs are supported, such as WSDL and Java Interfaces. In order to support interaction via different communication protocols, SCA provides the concept of binding. For SCA references, bindings describe the access mechanism used to call a service. In the case of services, the bindings describe the access mechanism that clients have to use to call the service. 3 / 13 Volume 28 (2010) Supporting Pervasive and Social Communications with FRASCATI Application View Controller Legend: Composite ServiceReference Wire Component Property landscape Application.composite Figure 1: SCA graphical notation and assembly language. 3.2 The FRASCATI Platform The FRASCATI platform [SMF+09] allows the development and execution of SCA-based ap- plications. The platform itself is built as an SCA application—i.e., its different subsystems are implemented as SCA components. FRASCATI extends SCA with reflective capabilities at the application level as well as at the platform level. By default, the FRASCATI platform is bundled with various plugins for the components Interface (Java, WSDL), Property (Java, XSD), Com- ponent (Java 5, Java Beans, Scala, Spring, OSGi, FRACTAL, BPEL, script), and Binding (Java RMI, SOAP, HTTP, JSON-RPC, SCA, OSGi, JNA). Furthermore, the platform has a run-time level that instantiates SCA assemblies and components. This run-time is not hard-coded into the architecture description. Rather, the run-time level defines a flexible configuration process, which is inspired by the extender and whiteboard [OSG04] design patterns of OSGi. In particu- lar, both the core platform and various plugins are bundles, which are dynamically composed. 4 Scenario 1: Bindings for Pervasive Communications In pervasive environments, the discovery capabilities enable the use of the available services in a transparent way and provide support for mobility. Therefore, we bring this functionality into SCA by defining pervasive bindings. In this section, we report on the integration of these bindings in the FRASCATI platform, using the UPnP technology (cf. Subsection 4.1 and Subsec- tion 4.2). We also introduce our solution for the automation of service discovery in SCA-based applications (cf. Subsection 4.3). This integration is validated by the implementation of the first scenario (cf. Subsection 4.4). 4.1 UPnP Foundations for Pervasive Integration As an Internet-based technology, Universal Plug and Play (UPnP) is built upon TCP/IP, UDP, HTTP, XML, and SOAP. The recent development of connected devices like Set-top boxes (STB) or smartphones has encouraged the integration of this technology as an industry standard for interacting with these smart appliances. Therefore, we believe that UPnP represents a key tech- nology in pervasive environments for enabling the integration of physical devices with IT sys- Proc. CAMPUS 2010 4 / 13 ECEASST tems. Typically, this integration requires considering four aspects of UPnP: service discovery, description, interaction, and profiles. Service Discovery. The most important feature of UPnP technology for pervasive usage is the discovery capacity. Using the Simple Service Discovery Protocol (SSDP) [UPn08], client and server (called, in UPnP terminology, Control Point [CP] and Device, respectively) can find themselves without any configuration. In order to establish a connection, a CP sends a lookup request (using HTTP over UDP), which includes a device type, a particular service or a specific device. Devices can send a response that contains the URL of their description. In a similar way, when a device joins the network, it sends an advertisement announcing its presence. Finally, the devices multicast bye-bye notifications indicating that they leave the network and therefore the provided services are no more available. Service Description. Like any service-oriented application, UPnP devices have to describe their capabilities. To do that, UPnP devices and CPs are described by means of XML docu- ments. These documents are structured following a collection of schema documents, which are also provided by the standard. For example, the DLNA imposes a particular schema for the de- scription of entertainment devices that are able to share their content with each other across a home network. Service Interaction. To support the remote invocation of services, UPnP exploits Simple Ob- ject Access Protocol (SOAP) as a privileged communication protocol. Thus, the method invoca- tions are described with XML and sent via SOAP over HTTP. Service Profiles. Additionally, UPnP provides a set of profiles representing manufacturer con- tracts and ensuring interoperability between heterogeneous hardware. Actually, the most wide- spread profiles are the Audio Video set (AV) profiles, which enable media-oriented home net- works. However, the use of Web technologies, such as SOAP and XML, makes UPnP inappro- priate for real-time operations including multimedia streaming or any other kind of operation that requires large amount of data transfer. Therefore, the AV profiles face this issue by describing UPnP devices in terms of their remote control and streaming capabilities. The remote control functionality can be considered as a simple service, while the streaming description allows de- vices to specify the stream properties, including transfer protocol (e.g., RTSP/RTP, HTTP) and data format. Thus, the AV specifications split the connection negotiation in two steps: commu- nication description and communication establishment. 4.2 Implementing Pervasive Services using UPnP and SCA As mentioned previously, SCA introduces bindings as an open mechanism supporting commu- nications between components. Bindings can be implemented in order to fulfill the requirements of business applications. In pervasive environments, the UPnP discovery capabilities—enabling spontaneous communications at runtime—can be considered for dealing with services mobility. The comprehensive UPnP communication stack allows the advertisement, discovery, and access of services provided by Java applications. Therefore, we introduce in SCA the element specifying that a service (resp. reference) is advertised (resp. dis- 5 / 13 Volume 28 (2010) Supporting Pervasive and Social Communications with FRASCATI covered) via the UPnP protocol. Thus, UPnP can be used as an SCA binding for autonomous communications applying SOAP as an underlying mechanism for service invocations. On the other hand, benefiting from the UPnP modularity in terms of the spontaneous com- munication process, we can discover services with UPnP and then access them with different communication protocols (not only SOAP), which are described by the others bindings (HTPP, WSDL, etc.) associated with the SCA services. This means that the service descriptions and access mechanisms are only advertised and discovered with UPnP. Then, using this information, the communications are achieved across a suitable protocol, which may be selected depending on QoS attributes. Thus, we restrict the usage of UPnP to the discovery part of the spontaneous communication process. 4.3 BINJIU: Facilitating UPnP integration into FRASCATI In this section we describe BINJIU, our solution to provide the missing elements for implement- ing UPnP bindings in FRASCATI. In particular, this solution provides functionality for UPnP interface compilation and descriptor generation. BINJIU also enables the SCA services adver- tisement as UPnP devices and the casting of SCA references to UPnP control points. Below we describe these functionalities as well as the integration within FRASCATI as a dedicated binding. UPnP Interface Compilation. In order to integrate a standardized UPnP profile into the FRAS- CATI platform, we have to implement an SCA component, which is compliant with the profile description. To do that, BINJIU provides a upnp2java command that parses UPnP descrip- tions, extract UPnP services, and generates the associated Java interfaces. Thus, this upnp2java command makes easier the integration of existing profiles, such as the Content Directory UPnP profile2, described below: public interface ContentDirectory { public int GetSystemUpdateID(); public SearchResponse Search(String ContainerID, String SearchCriteria, String Filter, int StartingIndex, int RequestedCount, String SortCriteria); public String GetSearchCapabilities(); ...} UPnP Descriptor Generation. BINJIU supports also the generation of UPnP descriptions from Java interfaces, according to the UPnP schemas. In this way, we can create devices auto- matically exposing the UPnP descriptions of the underlying Java interfaces. Even if these XML descriptions are not standardized, it is a first step for autonomic bindings of Java native interfaces in distributed software. UPnP Device Integration. The advertisement of an SCA service via UPnP technology re- quires to consider the different aspects discussed in Subsection 4.1. In this way, BINJIU dy- namically encapsulates a Java interface and exposes it as a UPnP service, included into a device. This skeleton is able to follow the SSDP advertisement process and answer to UPnP connection 2 UPnP Content Directory profile: http://www.upnp.org/standardizeddcps/documents/ContentDirectory1.0.pdf Proc. CAMPUS 2010 6 / 13 http://www.upnp.org/standardizeddcps/documents/ContentDirectory1.0.pdf ECEASST requests from control points. The current BINJIU implementation is based on the CyberLink3 UPnP stack for Java. UPnP Control Point Integration. In the client side, BINJIU creates a proxy from a Java interface, which dynamically converts method calls to actions towards a UPnP device, depending on a device type or name. This stub is also implemented using CyberLink for Java. FRASCATI Integration. BINJIU has been built as an autonomous application to make eas- ier the integration of the UPnP technologies in Java-based applications. However, we need to integrate the BINJIU functionalities into the FRASCATI platform in order to enable the use of pervasive bindings (cf. Subsection 4.2) in SCA applications. To do that, we take advantage of the FRASCATI extensibility properties. In particular, FRASCATI already provides various SCA bindings (e.g., RMI, REST, and WebServices), which means that there is an extension mech- anism for integration of new kinds of bindings. Thus, we can add our support for pervasive bindings without impacting the platform functionality. 4.4 Validation The first scenario, introduced in Section 2, illustrates how Alice’s preferences influence the frames displaying pictures at home. In this section, we describe how FRASCATI and perva- sive bindings can be used to realize this scenario. Alice’s home is equipped with different entertainment devices. In order to keep the data separated from the different computing resources, a NAS is available as a standalone device. This NAS broadcasts Alice’s multimedia contents over the network, as a UPnP AudioVideo Profile (DLNA certified) device. Furthermore, we find a Set-top box (STB) as a central element of the environment, which is always available and is able to run FRASCATI applications. The two digital frames (UPnP AV and RSS based) are available in the environment and an Android smartphone is connected to the home network using a wireless connection. Figure 2 depicts the different entities in Alice’s home and how they are associated with the DIGIHOME system. STB- Alice Smartphone Client Application GUI Network Area Storage UPnP Frame Alice-digihome-system AV Control Point Constraint Manager AV Device RSS- based Frame Legend: P Wire (remote) P Reference with PB Service with PB PB Pervasive Binding 1P PP 2 3 4 P P P PP P Figure 2: Using FRASCATI with UPnP bindings. To access the pictures stored in the NAS, we need to generate a Java interface compliant with UPnP AV profile (cf. Figure 2:1) using the upnp2java command provided by BINJIU. Then, we create an SCA implementation of the AV profile with CP capabilities (the AV Control Point component) for communicating with the NAS over UPnP. 3 CYBERLINK FOR JAVA: http://cgupnpjava.sourceforge.net 7 / 13 Volume 28 (2010) http://cgupnpjava.sourceforge.net Supporting Pervasive and Social Communications with FRASCATI In order to filter NAS content according to Alice’s preferences, we define a simple interface, which provides methods for defining constraints on the picture library (cf. Figure 2:2): public interface IConstraintManager { public void addKeywordsConstraint (String[] keywords); public void addDateRangeConstraint (Date date1, Date date2); public void addFolderConstraint (String folderName);} The Constraint Manager component provides this interface. This component is able to filter NAS responses and is advertised over the network as a UPnP device thanks to our UPnP binding (cf. Figure 2:3). By means of a simple control point generated by BINJIU, the Alice’s smart- phone can interact with this service. Finally, the STB exposes the filtered results as a UPnP AV device and a RSS publisher (cf. Figure 2:4), that are used by the digital frames for displaying the content. 5 Scenario 2: Bindings for Social Collaborations The micro-blogging services enable the sharing of information in real-time by reaching a lot of friends in just a few seconds. One of the main advantages of these services is the short and simple nature of the posted messages. Furthermore, there are no restrictions on the subject associated with these messages. In general, this kind of informal communications was conceived for broadcasting simple events in the daily life, such as what people are doing, thinking, and experiencing [ZR09, McF07]. However, nowadays the micro-blogging services are also used for collaborative work in organizations [ZR09], publicity purposes, and even for broadcasting real-time news updates for recent crisis situations. Therefore, the simplicity and flexibility as well as the real-time notification property of micro-blogs make them a suitable option to enable event-based communication between the participants of the DIGIHOME platform. In the rest of this section, we present how we bring micro-blogging-based communications into the SCA component model by defining social bindings (cf. Subsection 5.1) and the archi- tecture of our solution (cf. Subsection 5.2). We finish with the validation of our approach by analyzing the performance overhead of our solution in our smart home scenario (cf. Subsec- tion 5.3). 5.1 Enabling Social Collaborations using Twitter and SCA Following the same idea of pervasive bindings (cf. Section 4), we enable social communications in pervasive environments by introducing a new kind of binding in SCA: the social bindings. These bindings allow the notification of situations identified by the system that may require human intervention, like the detection of an intruder in our smart home scenario (cf. Section 2). To do that, social bindings benefit from a simple but widely used micro-blog service: Twitter. Furthermore of the advantages of any micro-blogging service, the Twitter messages (so called tweets) can be posted using different formats (e.g., JSON, XML, RSS and ATOM) and a simple RESTful API [Mak09]. Figure 3 depicts an example of social binding for the Twitter micro-blogging service. In the service side (right side of Figure 3), we define a service with a Twitter binding that indicates that the information provided by the service can be retrieved from a particular Twitter account. Proc. CAMPUS 2010 8 / 13 ECEASST Service (server-side) Reference (client-side) STB- Alice Legend: alice-digihome-system house-movement- monitoring ... STB- Neighbor neighbor-digihome-system houses-monitoring ... E E E Service with SB Reference with SBE E SB Social Binding Twitter Server E Figure 3: Example of a Social Binding for the Smart Home Scenario We use the user and password attributes to indicate the Twitter user providing the information. As it can be seen, unlike the typical SCA bindings, the SCA services defining Twitter bindings do not require to define specific interfaces. Instead, the services specify the representations and types of the events that can be retrieved from the Twitter accounts. This information will be used for marking the tweets with the event type that contains using Twitter tags. This metadata is useful for filtering the events exchanged on the Twitter account. In the reference side (left side in Figure 3), we use the element to indicate that we want to retrieve events from Twitter. In the references, the element specifies the event rep- resentations. Thus, by encapsulating the event notifications as SCA social bindings, we support asynchronous event notification as well as interaction with people involved in the smart home. 5.2 Architecture of the Containers Supporting Social Bindings We have integrated these social bindings into the FRASCATI platform. To do this, we applied the ContainerComposite architectural pattern promoted by the HULOTTE platform [LSDS10]. This means that we define a container composite that hosts components and implements event notification as tweets. In this way, the social communications are integrated in a transparent way and the event processing logic is not impacted by the technical specificities of Twitter. STB- Alice Alice-digihome-system Container STB- Neighbor Neighbor-digihome-system Container Legend: Container Composite Client Interface Server Interface Twitter Server alice-digihome- system Event Notification Message Handler (POST) Content Type Marshaller Content Type Marshaller Content Type Marshaller publish post marshal Client Notifiable Events Handler (POST) unmarshal Twitter User post E Twitter Followers Manager post post neighbor- digihome-system submit Content Type Marshaller Content Type Marshaller Content Type Marshaller ClientE Figure 4: Social Bindings Service and Reference Architectures 9 / 13 Volume 28 (2010) Supporting Pervasive and Social Communications with FRASCATI Figure 4 depicts the containers implementing the Twitter bindings for the neighbor-digihome- system and alice-digihome-system composites (cf. Figure 3). In this architecture, we benefit from the Twitter RESTful API by building the social bindings upon REST bindings [RRSC10]. Therefore, in the server side (upper part of Figure 4), we observe that the Event Notification Message Handler component serializes events via the Content Type Marshaler . The Event Notification Message Handler posts the events using the Client component, which encap- sulates the communication mechanism (i.e., HTTP in the case of Twitter). The Twitter User component orchestrates the tweets publication process by providing the required information for the Twitter requests, such as user name, password, and event types. On the other hand, the client side (low part of Figure 4) uses a Twitter Followers Manager component to periodically retrieve the recent tweets on the followed Twitter accounts. This com- ponent filters the tweets by using the metadata that includes event type. In this side, we also reuse the REST bindings functionality for communication (via the Client component) and message processing (via the Notifiable Events Handler and Content Type Marshaler components). Thus, the proposed architecture for these components modularizes the Twitter functionalities derived from REST principles [Fie00], which includes the addressing, access, and message rep- resentations. This modularity fosters the component reuse and the flexibility to choose different component implementations. 5.3 Validation Implementation Details. We have integrated our social bindings into the FRASCATI platform (version 1.2). These bindings are based on the COMANCHE web server4. Both, FRASCATI and COMANCHE, are based on the FRACTAL component model and use the JULIA5 implementation of the FRACTAL runtime environment [BCL+06]. Performance Results. To evaluate the social bindings, we implemented the event exchanges described in the scenario 2 (cf. Section 2) using the Twitter bindings. Table 1 summarizes the results we obtained when executing several physical configurations for the scenario 2 using HTTP and Twitter as communication mechanisms for events exchange. Event Providers Configuration Event Provider b) 1 External Provider MacBook Pro Event Representation Object (ms) 221 228N/A 281.7 293.8 300.8 a) 1 Local Provider 965.2 971.44 948.2 951.55 JSON (ms) XML (ms) Interaction HTTP Twitter JSON (ms) XML (ms) 209.8 Table 1: Performances of Twitter Bindings in terms of Latency As it can be seen, the indirection introduced by the micro-blogging service increments the event exchange by approximately 350% compared to the configuration a for the two mecha- 4 COMANCHE web server: http://fractal.ow2.org/tutorials/comanche.html 5 JULIA: http://fractal.ow2.org/julia Proc. CAMPUS 2010 10 / 13 http://fractal.ow2.org/tutorials/comanche.html http://fractal.ow2.org/julia ECEASST nisms with the JSON representation. However, despite of this overhead, the simplicity of this interaction mechanism makes it still a suitable alternative to share events in an asynchronous way. Furthermore, the event notification rests less than a seconds, which is a reasonable overhead to communicate relevant situations in the context of smart homes. 6 Related Work In this section we present two kinds of related work: proposals that benefit from micro-blogging services and approaches dealing with discovery in pervasive environments. Pervasive Communications. In the literature, we find several middleware solutions, such as INDISS [BI05] (INteroperable DIscovery System for network Services) and ReMMoC [GBS05] (Reflective Middleware for Mobile Computing), that provide interoperability for discovery pro- tocols. The problem with some of these solutions is that they are not flexible enough for using different interaction mechanisms when the services are discovered. Furthermore, they have been designed for working on devices with restricted capabilities, thus limiting the range of applica- tions that can use them. Although in our solution we do not support discovery protocol interop- erability, by benefiting from FRASCATI platform extensibility, we can easily add new pervasive bindings when required. Furthermore, by integrating BINJIU as SCA pervasive bindings, we promote its usage in different kinds of applications, not only the mobile ones. Regarding approaches that exploit specifically UPnP, we find some solutions [FT09, MSS+09] in domestic environments (i.e., automated homes) that aim to provide control on home appli- ances. In particular, this kind of approaches uses UPnP-based architectures to enable the simple and transparent access of different resources present in the environment. Some improvements are included in UPnP, such as service configuration persistence and enhanced management options. However, these solutions are difficult to apply in the development of new applications requiring discovery capabilities, while the combination of BINJIU and SCA make easier the incorporation of the UPnP technology when required. Social Collaborations. To the best of our knowledge, there is no proposal dealing with event propagation via micro-blogging services in pervasive environments. However, we benefit from the ideas proposed in some of these approaches in order to improve our solution. For example, TwitterStand [SST+09] and TweetSieve [GGB+09] are systems able to extract relevant news from a noisy medium, such as Twitter. Thanks to the modular architecture of social bindings, we easily incorporate these techniques to support a smarter event selection. Furthermore, these techniques can also be used as a stabilization mechanism to avoid the notification of not relevant events for the system and participants. In [MMC09], the authors propose a social networking middleware that combines social and physical proximity relationships between mobile users in order to suggest them potential people with whom they could perform activities of common interest. The mechanisms proposed in this work for determining the social and physical proximity can be also integrated in the social bindings in order to infer events that could be relevant for the system and home inhabitants. 11 / 13 Volume 28 (2010) Supporting Pervasive and Social Communications with FRASCATI 7 Conclusion In this paper, we reported on the implementation of new bindings for an SCA-based distributed system in a home pervasive environment. In particular, we demonstrated their integration into the FRASCATI platform, an open source implementation of the Service Component Architecture (SCA) standard [SMF+09]. Relying on well-accepted technologies, these new bindings increase capabilities of SCA in two complementary ways. Using UPnP discovery and communication capabilities, pervasive bindings supply sponta- neous communications between SCA components or legacy UPnP devices. On the other hand, social bindings use the Twitter micro-blogging service in order to disseminate applications events to end users. Two scenarios illustrating the integration of these capabilities into the FRASCATI platform have been presented to motivate and validate our proposals. Future work includes to add support for new pervasive (e.g., SLP [GPVD99] and Avahi6) and social bindings (e.g., Facebook and OStatus7 ). We will take advantage of FRASCATI runtime reconfiguration capabilities to dynamically integrate these new bindings in SCA applications. Regarding UPnP, we plan to adapt the UPnP bindings for making them compliant with the An- droid platform. Moreover, we will integrate new UPnP certified profile implementations, in order to easily interact with home appliances. On the other hand, the identity management in a home environment represents an interesting issue. We already have to deal with preferences, private in- formation (like Twitter login), and therefore, we need to provide a mechanism to ensure identity in pervasive environments. Bibliography [BCL+06] E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, J.-B. Stefani. The FRACTAL component model and its support in Java. Software: Practice and Experience – Special issue on Experi- ences with Auto-adaptive and Reconfigurable Systems 36(11-12):1257–1284, Aug. 2006. John Wiley & Sons. [BI05] Y.-D. Bromberg, V. Issarny. INDISS: interoperable discovery system for networked services. In Middleware ’05: Proceedings of the ACM/IFIP/USENIX 2005 International Conference on Middleware. Pp. 164–183. Springer-Verlag New York, Inc., New York, NY, USA, 2005. [Fie00] R. T. Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, 2000. [FT09] G. B. de Freitas, C. A. C. Teixeira. Ubiquitous services in home networks offered through digital TV. In SAC ’09: Proceedings of the 2009 ACM symposium on Applied Computing. Pp. 1834–1838. ACM, New York, NY, USA, 2009. [GBS05] P. Grace, G. S. Blair, S. Samuel. A reflective framework for discovery and interaction in het- erogeneous mobile environments. SIGMOBILE Mob. Comput. Commun. Rev. 9(1):2–14, 2005. [GGB+09] M. Grinev, M. Grineva, A. Boldakov, L. Novak, A. Syssoev, D. Lizorkin. Sifting micro- blogging stream for events of user interest. In SIGIR ’09: Proceedings of the 32nd international ACM SIGIR conference on Research and development in information retrieval. Pp. 837–837. ACM, New York, NY, USA, 2009. 6 AVAHI, a Zeroconf implementation: http://avahi.org 7 OSTATUS standard: http://ostatus.org Proc. CAMPUS 2010 12 / 13 http://avahi.org http://ostatus.org ECEASST [GPVD99] E. Guttman, C. Perkins, J. Veizades, M. Day. Service Location Protocol, Version 2. RFC 2608 (Proposed Standard). http://tools.ietf.org/html/rfc2608, june 1999. [LSDS10] F. Loiret, L. Seinturier, L. Duchien, D. Servat. A Three-Tier Approach for Composition of Real-Time Embedded Software Stacks. In 13th International SIGSOFT Symposium on Component-Based Software Engineering (CBSE). LNCS. Springer, June 2010. [Mak09] K. Makice. Twitter API: Up and Running Learn How to Build Applications with the Twitter API. O’Reilly Media, Inc., 2009. [McF07] P. McFedries. Technically Speaking: All A-Twitter. 44:84–84, 2007. [MMC09] S. B. Mokhtar, L. McNamara, L. Capra. A middleware service for pervasive social networking. In M-PAC ’09: Proceedings of the International Workshop on Middleware for Pervasive Mobile and Embedded Computing. Pp. 1–6. ACM, New York, NY, USA, 2009. [MSS+09] L. F. Maia, D. F. S. Santos, R. S. Souza, A. Perkusich, H. Almeida. Seamless access of home theater personal computers for mobile devices. In SAC ’09: Proceedings of the 2009 ACM symposium on Applied Computing. Pp. 167–171. ACM, New York, NY, USA, 2009. [Ope07] Open SOA. Service Component Architecture Specifications. Nov. 2007. [OSG04] OSGi Alliance. Listeners Considered Harmful: The Whiteboard Pattern. Aug. 2004. [RHT+10] D. Romero, G. Hermosillo, A. Taherkordi, R. Nzekwa, R. Rouvoy, F. Eliassen. RESTful Inte- gration of Heterogeneous Devices in Pervasive Environments. In Proceedings of the 10th IFIP International Conference on Distributed Applications and Interoperable Systems (DAIS’10). LNCS 6115, pp. 1–14. Springer, June 2010. [RRSC10] D. Romero, R. Rouvoy, L. Seinturier, P. Carton. Service Discovery in Ubiquitous Feedback Control Loops. In Proceedings of the 10th IFIP International Conference on Distributed Appli- cations and Interoperable Systems (DAIS’10). LNCS 6115, pp. 113–126. Springer, june 2010. [SMF+09] L. Seinturier, P. Merle, D. Fournier, N. Dolet, V. Schiavoni, J.-B. Stefani. Reconfigurable SCA Applications with the FraSCAti Platform. In Proceedings of the IEEE International Conference on Services Computing (SCC’09). Pp. 268–275. IEEE Computer Society, Sept. 2009. [SST+09] J. Sankaranarayanan, H. Samet, B. E. Teitler, M. D. Lieberman, J. Sperling. TwitterStand: news in tweets. In GIS ’09: Proceedings of the 17th ACM SIGSPATIAL International Confer- ence on Advances in Geographic Information Systems. Pp. 42–51. ACM, New York, NY, USA, 2009. [UPn08] UPnP Forum. UPnP Device Architecture 1.1. http://www.upnp.org/resources/documents.asp, Oct. 2008. [Zig10] ZigBee Alliance. ZigBee Technical Documents. http://www.zigbee.org, 2010. [ZR09] D. Zhao, M. B. Rosson. How and why people Twitter: the role that micro-blogging plays in informal communication at work. In GROUP ’09: Proceedings of the ACM 2009 international conference on Supporting group work. Pp. 243–252. ACM, New York, NY, USA, 2009. 13 / 13 Volume 28 (2010) http://tools.ietf.org/html/rfc2608 http://www.upnp.org/resources/documents.asp http://www.zigbee.org Introduction Motivating Scenario: The DigiHome Platform Background on Service-Oriented Architectures The Service Component Architecture (SCA) The FraSCAti Platform Scenario 1: Bindings for Pervasive Communications UPnP Foundations for Pervasive Integration Implementing Pervasive Services using UPnP and SCA BinJIU: Facilitating UPnP integration into FraSCAti Validation Scenario 2: Bindings for Social Collaborations Enabling Social Collaborations using Twitter and SCA Architecture of the Containers Supporting Social Bindings Validation Related Work Conclusion