Towards a home application server Clément Escoffier, Johann Bourcier, Philippe Lalanda, Jianqi Yu Grenoble University - Laboratoire LIG-IMAG, 220 rue de la Chimie Domaine Universitaire, BP 53 F-38041 Grenoble, Cedex 9, France {firstname.name}@imag.fr

Abstract — The emergence of smart devices, especially in the home context, will change the way we interact with our environment. However, implementing and maintaining homecontrol applications is still far from easy. This paper discusses the difficulties encountered during the development of a home gateway. It then introduces a framework that sets the basics of a home application server and allows an easy development of home applications. An implementation is subsequently presented to validate the approach and its benefits. Service oriented computing, home applications, residential gateway, service platform, OSGi™, iPOJO .

I.

INTRODUCTION

We are today living in environments filled with electronic devices that are getting increasingly smarter and smaller. This is especially true in our homes [1]. Clearly, the mere existence of all these communicating devices has changed the way we interact with our environment [2][3]. We believe that this is only the beginning: devices will have more and more capabilities and will cooperate in order to provide new, higherlevel services. However, before fulfilling this vision, many scientific and technical challenges have to be tackled. The development of high level services using heterogeneous, distributed and possibly dynamic devices is especially complex. Dynamism, in particular, is a hard and important issue in pervasive computing. The application execution context is constantly evolving: the user is alone or not, he moves from one location to another, and so on. Dynamism exists also in the availability of electronic devices, such as mobile phones or PDAs. Moreover, to complicate even more the developments of such applications, users want to be able to use the pervasive environment in order to access remote services such as Video on Demand or Weather forecast. To deal with this complex environment, we have presented in our past work an approach consisting in building a residential gateway on top of a service platform [4]. This work was carried out within the ANSO1 project which brings together major European actors interested in the development of pervasive home services. The goal of this gateway is to build residential applications able to access to dynamic devices and 1 ANSO is partially supported by the French Ministry of Industry under the European ITEA program.

external services. However, the development of home applications is still far from easy. Many questions need to be answered: what are the precise requirements to be met, what are the communication facilities that are needed (internally and externally speaking), what are the needed technical services, etc. In this paper, we present an innovative home application server. It is organized as it follows. First, we describe our experience with residential gateways and the difficulties encountered during the prototyping. This is followed by a proposition of a home application server and its implementation. This paper ends with a comparison with others works and a description of some envisaged perspectives. II.

HOME GATEWAY EXPERIENCE REPORT

In [4] and [5], we have investigated how to implement home context applications on a service platform. Domain experts had established that dynamism and heterogeneity were unsolved issues in home-control applications. To tackle these problems, we have proposed to use service-oriented computing concepts [6] [7] to implement home-control applications. The contributions of these papers were twofold: •

An architectural model to implement homecontrol applications,



A technical framework for the development of home service-oriented applications including communication bridges to dynamically integrate disparate service technologies.

The proposed solution (Figure 1) is based on a service platform providing a uniform view of the computing environment: devices and remote facilities are all seen as services. The platform contains a distribution layer managing the interaction with dynamic devices (Device Manager) and with external services (Remote Service Manager). Applications use these devices and remote services as local services. Dynamism and heterogeneity are managed by the gateway. This solution is based on OSGi™ [8] to deal with stringent dynamic deployment requirements. Indeed, application can be installed, uninstalled or updated dynamically without influencing the execution of others applications. The service management is based on iPOJO [9] to automate service bindings and dynamism management. Using iPOJO on the gateway allows developers to implement applications in terms

of Home-Control concepts without mechanisms and dynamism issues.

App1

App2

SOC

Device Manager

Remote Remote Service Manager

Internet

managing

Home gateway

Figure 1. Service Platform to build home application

The resulting infrastructure has been successfully used in the ANSO ITEA European research project in order to build realistic home applications. Several interesting, and recurrent, issues however emerged during this realization. In particular, it appeared that it was still hard and time-consuming to deal with non-functional requirements related to persistence, event-based communication, security, configuration, management and so on. Software experts were needed to tackle these technical issues as opposed to home control experts. By analyzing this situation, we realized that a richer computing framework was needed on top of OSGi and iPOJO in order to really facilitate the development of complex home applications. Such a framework, that we call a home application server, has to transparently manage non-functional properties at run time. This relieves application developers from a very technical task, allowing them to concentrate on the application business code. The rest of the paper describes home application non-functional requirements encountered in our developments and presents an application server helping developers implement complex home applications. III.

Asynchronous events are useful to inform other parts of the application that something has happened without explicitly interrupting the execution flow. This is frequently the case in home-control applications where different services evolve independently. For instance, in an alarm application, when an abnormal behavior is detected, an asynchronous message is sent to the user. The data flow communication type is often used in application collecting data from sensors. This mechanism allows the emission of data in an asynchronous mode. In home control application, it is used to collect data from sensors. For example heartbeat sensors on a patient produce continuous data, which are collected by a service analyzing them to detect abnormal behavior. B. Administration The computing framework has also to provide administration facilities to allow the management of the framework itself and of the hosted applications. Since home gateways are installed in private houses, administration has to be done remotely and dynamically. Administration of an application includes application deployment and monitoring. Deployment consists in installing, uninstalling and updating applications in order to fix bugs and provide new features. It appears that updates are frequently needed: for instance, alarm management applications need to be reconfigured whenever security conditions change. As the gateway can host critical applications, administration actions must not interrupt the gateway. Consequently, the application server needs to provide a dynamic deployment platform offering these facilities. It is to be noted that providing administration facilities at the application level can be especially complex. Application developers have to design specific mechanisms for dynamic data collection and reconfiguration through a network connection. In addition, this mechanism must be secure in order to avoid unexpected modifications.

FRAMEWORK REQUIREMENTS

The main goal of home applications is to coordinate home devices and external services in order to provide higher-level services. To achieve this, a computing framework must provide simple mechanisms to deal with the dynamic behavior of devices and services that can appear, disappear or evolve in an unconstrained fashion. The framework has also to favor the meeting of non-functional requirements specific to home control applications. In this section, we present these requirements in more detail and we will see that these aspects are orthogonal and need an expertise that is rarely shared by a single person or even a single team. A. Communication The computing framework has to provide facilities to allow various communication modes between services. In our developments, we have identified three needed communication modes: synchronous calls, asynchronous events and data flows. The synchronous call is not detailed here since it is a natural way of interaction included in our initial service oriented computing framework [9].

C. Persistence Persistence is the ability to store information and to retrieve it on demand. We found that such a facility, allowing developers to save and retrieve information in an easy way, was needed in many occasions when developing home control applications. Persistence is required to save application-related information but also to save service-related information. An example of application is a home cinema application. This application closes all shutters of the living room to provide optimal movie watching conditions. At the end of the movie, the application has to put back the shutters in their original state. Another way to use persistency in home control application concerns stateful services. Indeed, as services can be updated or reconfigured dynamically and remotely, their state as to be restored before any use. This behavior is particularly useful when an administrator updates a device driver. The device driver stores its state before the update. Then, it restores the stored state.

D. Scheduling One issue encountered during the development of home applications was the need to postpone a task, or to repeat a task periodically. This is very useful in an application to enable repeated calls of a service. An example of such application is a healthcare application which produces periodically a report about the patient health. This application has to call periodically the report service.

container injects required objects inside the business logic, or notifies the application as depicted on the (Figure 3).

This behavior is very hard to implement as developers have to deal with the time complexity which generally involves the use complex programming features (namely threads in many cases). IV.

Persistence Service

In order to transparently deal with the technical services presented in section III, the home application server provides a message oriented middleware for asynchronous communication, offers application management facilities, embeds a lightweight database to support persistence and provides a scheduling service managing delayed or periodical actions (Figure 2). All these technical services are published inside the server service registry. App 1

Admin. Service

Figure 3. Application Container

AN APPLICATION SERVER FOR HOME APPLICATIONS

As previously said, our proposed solution is a home application server based on our work on OSGi and iPOJO. It naturally tackles issues related to dynamic deployment, heterogeneity and dynamism [4]. In addition, it provides technical services related to communication, persistence and administration and automates their use.

Application Business Logic

Application Container

First, interactions with other application, devices and remote services need to be managed by the container. As application interactions use service mechanism, the framework has to manage bindings between applications. Moreover, as the dynamism is a stringent issue for home context application, the container manages this dynamism instead of the application implementation. Then, interactions with technical services are managed by the container separating clearly the application logic of the technical services. The container is configured by the application description. For example, an application requiring persistency and remote administration (as the Application 2 on figure 2) must describe required services, persistent and configurable properties inside a descriptor. Then the container manages interactions between the applications and theses services. It injects data or notifies the application business code when required. The resulting application code is as simple as possible. Only the business logic is contained in the code, all non functional requirements are externalized and managed by the container.

App2

V.

Remote Service Manager

Admin. MOM Scheduling

Device Manager

Application Server

Figure 2. An application server in the home-context

Executed on the application server, applications can rest on the service registry and on provided technical services. However, it can be still difficult for developers to use available services or to use provided technical services. Indeed, application implementation would mix business logic and the code managing interactions with these services. To avoid this problem, the framework has to automate service and technical service usage. To achieve this, the framework executes application inside an application container. This container manages interactions between the application and devices, remote services, others applications and technical services. Applications describe their requirements and then their

IMPLEMENTATION

The proposed application server has been developed and experimented. This implementation is based on OSGi™ and iPOJO. This section is organized as follows. First we explain our motivation to use OSGi™ and iPOJO. Then we describe technical services and application containers implementations. A. OSGi™ & iPOJO Our application server gateway is implemented on top of the OSGi™ service platform. The OSGi™ service platform defines a framework to dynamically deploy services in a centralized (i.e., non-distributed) environment. The OSGi™ framework automatically manages aspects of local service deployment, such as Java package dependency resolution, but leaves service dependency management as a manual task for component developers. Our application server is built on top of the OSGi™ service platform for three main reasons: •

It is a service-oriented platform,



It meets home context requirements



It is a dynamic platform, which is particularly interesting to manage home environment dynamics.

OSGi™ is a deployment platform. It allows installing, updating, starting, stopping and uninstalling applications at any time. This property is very important in the context of the home-control. Indeed, service providers will install and remove their application dynamically.Moreover OSGi™ defines several useful services. Our application server implementation rests on these services to offer technical services. iPOJO is a service-oriented component framework implemented on the top of OSGi™. iPOJO provides a container, managing service mechanisms (service publishing, discovery and invocation), but also managing other nonfunctional properties like lifecycle, configuration, and so on…iPOJO is based on the concept of “POJO”, where all non functional aspect are managed inside the container, allowing developer to write only the business code of the application. Moreover, iPOJO offers an extensibility mechanism, based on the concept of ‘handler’. It is possible to extend the component model by developing separated handlers. This extensibility mechanism allows adding non supported requirements as persistency, administration, scheduling and event. B. Non functional concerns management By using iPOJO extensibility mechanism, we have extended the iPOJO component model to support home-context application requirement. Our objective was to reuse standardized services. This section describes briefly the implementation of each technical services provided by our application server. 1) Events Management OSGi™ defines two services to support asynchronous communication. The “event admin” service targets event based communication, whereas the “wire admin” service provides a powerful mechanism to manage data streams. These two message-oriented mechanisms meet our requirements, but using these services require to understand these specifications and to deal with complex technologies. To help application developers, we developed two handlers hiding “event admin” and “wire admin” interactions. The application container manages these interactions in the place of the application implementation. 2) Administration Management Administration service aims to provide a configuration and management layer for applications. This layer must be secure and accessible remotely. Administration Handler

App.

Framework

Internet

Admin. Service (JMX)

Figure 4. Using JMX to support application management

We have retained JMX [9] to create this administration layer. JMX rests on a JMX Server hosting MBeans. These

MBeans are remotely administrable, i.e. configurable. Moreover the interaction with this server is able to use secure channel. We have created an administration handler (Figure 4) dealing with an embedded JMX server. Thus the application using this handler becomes configurable and manageable via JMX. The application does not directly depend on JMX; it is transparently manage by the handler. 3) Persistence Management The persistence is not a technical service specified inside the OSGi™ specification. So we have designed our own persistence service. As depicted on the (Figure 5), our application server provides a persistence service using an embedded database. The application container has a persistence handler interacting with this persistence service to store and retrieve application data or state. The application container is configured by describing which members of the application implementation are persistent. Then the handler automatically saves (loads) data to (from) the database. By using this handler the application developer does not have to understand complex persistence mechanisms, all is managed by the handler and the persistence service. Persistence Handler

Framework

Persistence Service

App.

Figure 5. Persistence Management

4) Scheduling Management To allow an application to do a task periodically or at a chosen time, the application server provides a scheduling service. This scheduling service is close to Cron, the Linux task scheduler. The application describes when the task has to be done. A scheduling handler of the application container stores this information inside the scheduling service, which wakes up the handler when needed. The developed service and handler allow externalizing time management from the application. All the thread system and the notification mechanism are managed either by the scheduling service, either by the handler. VI.

VALIDATION

To validate our framework, we have developed a healthcare monitoring application. This application depicted in (Figure 6) aims to send a daily report about the patient health. The creation of this report is based on data collected from sensors and stored during the day. Everyday at 8 pm, the application processes the data stored in the database and sends the report to the hospital.

HealthCare sensor

HealthCare application

HealthCare sensor

Remote Service Manager

home gateway. Indeed, the dynamism in home applications must be reflected in the implementation of all other non functional needs. Moreover, our technical service implementations try to be the smallest to keep resource consumption as low as possible. VIII. CONCLUSION

Admin. Scheduling MOM

Device Manager

Application Server

Figure 6. Healthcare application

To implement this application, we have used all the technical services provided by our framework. The communication between healthcare sensors and the application is done through the data stream communication mode. The healthcare application stores all this data in an embedded database through the persistence service. Everyday at 8 pm, the scheduler service runs the processing task and sends the report to the hospital. In addition to this, the hospital has the possibility to remotely change the frequency at which reports are processed through the administration facilities of the home application server.

This paper points out the main difficult challenges to build home applications. This work is the continuation of previous ones, reporting that in spite of the management of dynamism and heterogeneity, it remains very hard to implement a home application. Giving this situation, we have proposed to build an application server to execute home applications, taking care of several non-functional aspects relative to the home context. We also described the implementation of this application server. We believe that an application server dedicated to the home will provide in a near future the necessary infrastructure to allow an easy development of home applications, and the corresponding runtime. The application server presented in this paper tackles essential non functional requirements of the home application context. Nevertheless, some non-functional requirements have to be added, such as the security and autonomy of application. REFERENCES

VII. RELATED WORK This work presents a framework allowing easy development and execution of home applications. The concept of residential gateway is a common approach for this problem [11]. The choice of OSGi™ to implement such gateway is also well adopted [11] [12]. There is a lot of research effort in this domain, mainly focusing in enabling interoperability and dynamic support of devices [12]. Other projects focus on implementing and designing specific application with specific needs for example home care [1].All these research projects enable the implementation home application capable of controlling devices or gathering data from these devices. But, the main drawback of these approaches is that it remains very complex to implement and administrate home application.

[1]

The research field of application server has been dealing with this type of issues from a long time. The basic principle is to provide a complete runtime and development model for enterprise applications. By separating business logic from the non-functional code, application servers are very popular for enterprise applications. Non-functional requirements are clearly identified by the application server provider, and are implemented once. An example of such application server is the JEE specification [13].

[7]

One of the main drawbacks of these application servers for our context is the lack of dynamism. In [14], an architecture to design application server taking into account the dynamism of non functional requirements is presented. It is a step forward to fulfill the lack of dynamic in these servers, but it is not enough as the dynamic part is only applied to non-functional requirements and not to applications itself. The other drawback of these approaches is that the non-functional needs do not suit the home control context, and require too many resources for

[12]

[2] [3] [4]

[5]

[6]

[8] [9] [10] [11]

[13] [14]

[15]

S. Helal, W. Mann, H. El-Zabadani, J. King, Y. Kaddoura, E. Jansen, "The Gator Tech Smart House: A Programmable Pervasive Space," Computer, vol. 38, no. 3, pp. 50-60, Mar., 2005. Mark Weiser, “The computer for the 21st century”, Scientific American, 265(3):66-75, September 1991 A. Ferscha, “Pervasive computing and communications”, Beyond The Horizon Thematic Group, IST, 2005 (http://www.cordis.lu/ist/fet/id.htm) J. Bourcier, C. Escoffier, P. Lalanda, “Implementing home-control applications on service platform”, 4th IEEE Consumer Communications and Networking Conference (CCNC’07), January 2007. J. Bourcier, A. Chazalet, M Desertot, C. Escoffier, C. Marin, “A Dynamic-SOA Home Control Gateway”, IEEE International Conference on Service Computing (SCC’06), September 2006. M. P. Papazoglou and D. Georgakopoulos. Service-oriented computing. Commun. ACM, 46(10):24–28, 2003. M. N. Huns and M. P. Singh. Service-Oriented Computing: Key Concepts and Principles. IEEE Internet Computing,vol. 9:pages 75–81, Jan./Feb. 2005. OSGi Alliance. “OSGi Service Platform Core Specification Release 4” http://www.osgi.org, August 2005. C. Escoffier, R. S. Hall, P. Lalanda, “An Extensible Service-Oriented Component Framework”, IEEE Service Computing Conference, 2007 JMX, http://jcp.org/en/jsr/detail?id=160 L. Gong, “A Software Architecture for Open Service Gateways”, IEEE Internet Computing, 2001 A. Wils, F. Matthijs, Y. Berbers, T. Holvoet, K. De Vlaminck, “Device Discovery via Residential Gateways”, IEEE Transaction on Consumer Electronics 2002 JEE http://java.sun.com/javaee/ M. Desertot, D. Donsez, P. Lalanda, “A Dynamic Service-Oriented Implementation for Java EE Servers”, IEEE International Conference on Service Computing, September 2006 A. Bottaro, J. Bourcier, C.Escoffier, P. Lalanda, “Context-Aware Service Composition in a Home Control Gateway”, IEEE International Conference on Pervasive Services, July 2007

Towards a home application server

home application server and allows an easy development of home applications. ..... non-functional code, application servers are very popular for enterprise ...

401KB Sizes 2 Downloads 276 Views

Recommend Documents

Polycom® Proxias™ Application Server and Application Development ...
A key element in Polycom's scalable IMS-compliant architecture, the Proxias application server works in conjunction with the Polycom InnoVox® 4000IP media ...

Polycom® Proxias™ Application Server and Application Development ...
A key element in Polycom's scalable IMS-compliant architecture, the Proxias application server works in conjunction ... modifiable, with automatic detection of new ... Linux® operating system. • JBoss Enterprise Middleware. • JAIN SIP Interface.

Home Automation System Towards Electric Appliance Contro ...
Home Automation System Towards Electric Appliance Contro & Security System.pdf. Home Automation System Towards Electric Appliance Contro & Security ...

Employment Application - The German Home
Please complete this application by typing or printing in ink. ... Do you need an accommodation to participate in the application or interview ... Company Name.

Polycom® Proxias™ Application Server and ... - Live Conferencing
As a resilient platform optimized for call signaling, server clustering, fault tolerance ... ferencing applications and applications for device, network, and conference ...

Polycom® Proxias™ Application Server and ... - Live Conferencing
The IMS-based, SIP platform Proxias application server and Proxias application devel- .... Application Server Software Components. • Linux® operating system.

Oracle Application Server 10g Administration Handbook (McGraw ...
Try one of the apps below to open or edit this item. Oracle Application Server 10g Administration Handbook (McGraw-Hill 2004).pdf. Oracle Application Server ...

websphere application server administration using jython pdf ...
File: Websphere application server. administration using jython pdf. Download now. Click here if your download doesn't start automatically. Page 1 of 1.

HOME Program Development Application - City of Mobile
include estimates/documentation of professional services and soft costs (e.g. ... whom they have family or business ties during their tenure or for two years ...

HOME Program Development Application - City of Mobile
City of Mobile HOME Program Development Application 2017. Page 1. CITY OF MOBILE. COMMUNITY & HOUSING DEVELOPMENT DEPARTMENT.

Towards a clearer image - Nature
thus do not resolve the question of whether humans, like monkeys, have mirror neurons in the parietal lobe. However, there are several differ- ences between the studies that have to be taken into account, including the precise cortical location of th

man-148\lg-home-theater-server-user-manual.pdf
man-148\lg-home-theater-server-user-manual.pdf. man-148\lg-home-theater-server-user-manual.pdf. Open. Extract. Open with. Sign In. Main menu.

windows home server 2011 step by step pdf
windows home server 2011 step by step pdf. windows home server 2011 step by step pdf. Open. Extract. Open with. Sign In. Main menu. Displaying windows ...

pdf-1864\websphere-application-server-administration-using-jython ...
Retrying... Whoops! There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. pdf-1864\websphere-application-server-administration-using-jython.pdf. pdf-1864\webspher

pdf-1882\solarwinds-server-application-monitor-deployment-and ...
Connect more apps... Try one of the apps below to open or edit this item. pdf-1882\solarwinds-server-application-monitor-deployment-and-administration.pdf.

Oracle Application Server 10g J2EE Deployment And Administration.pdf
Manufacturing Manager: Tom Debolski. Page 3 of 537. [Indo-Book.com] Oracle Application Server 10g J2EE Deployment And Administration.pdf. [Indo-Book.com] Oracle Application Server 10g J2EE Deployment And Administration.pdf. Open. Extract. Open with.

Secure Middleware with JBoss Application Server v5.x
Pluggable Access Control Stack for Web and EJB Applications. > Apply spec access control, JACC, XACML (or custom) to web and ejb applications in a ...

websphere application server interview questions pdf
websphere application server interview questions pdf. websphere application server interview questions pdf. Open. Extract. Open with. Sign In. Main menu.