Abstract
A lot of people are managing multiple computing devices suited for different purposes, like private and work devices. Integrating applications running on different devices is often a problem, because the services provided by those applications are not meant to be integrated. In this demonstration, we present our XDAI-A framework which enables cross-device integration of services provided by Android apps. The framework uses adapters to convert Android-internal service interfaces of existing apps into external services with a platform-independent interface that can be accessed from applications on other devices and even other platforms. Our ready-to-use framework does not require to alter existing Android apps, since the adapters are installed separately. For the convenient specification of adapters, our framework comes with a domain-specific language (DSL). Additionally, we provide an infrastructure to find and integrate devices and their applications’ services.
You have full access to this open access chapter, Download conference paper PDF
Similar content being viewed by others
Keywords
1 Introduction
In our everyday life, we use several different types of computing devices, like desktop computers, smartphones, or tablets. Since those device types have different strengths and weaknesses, we use them for different tasks or in different situations. As a result, our favorite applications and our data are distributed across multiple devices [2]. Integrating the applications running on different devices is often a cumbersome task performed manually by the user. This is due to the fact that most apps only offer a user interface and not a service interface that can be accessed by other applications. As a consequence, users use workarounds to simplify the cross-device integration, e.g., by using tools like Dropbox, to realize some form of data level integration. In contrast, our framework supports integration on a higher level. Instead of working with the data produced by another app, we want to directly integrate the service creating the data. This, however, requires the existence of consumable service interfaces.
The Android platform encourages developers to create apps that offer services which can be integrated by other apps on the same device. For instance, a phonebook app on an Android smartphone can integrate the service to take a picture offered by the camera app. Yet, these services can only be accessed when both apps run on the same device, since Android-specific communication means are used and data is exchanged using local plattform-specific data stores. However, based on this interaction, the framework to be demonstrated is able to provide the integration of services offered by Android apps even across devices.
2 System Overview
In this section, we give an overview of our framework enabling Cross-Device Application Integration of Android apps (XDAI-A). For this purpose, we relate the different buildings blocks of our approach as visualized in Fig. 1 to the steps performed during the cross-device integration at runtime (see Fig. 2).
Infrastructure on the Providing Device: In order to provide services for applications running on other devices, we install two types of apps on the providing Android device: The first is an adapter app that communicates with the existing Android app and is responsible for the adaptation of requests and responses. Secondly, an interface app is responsible for providing the external service interface and receives the request and transmits the responses back to the requestor. External service requests received by an interface app are translated into an intermediate format and delegated to the adapter app. The adapter app interprets adaptation rules defined using a DSL to translate the request (details in [3]). The rules define the local data stores in which data contained in the request shall be stored, e.g., databases or file system, and which local services need to be invoked. Furthermore, these rules define how responses of the local services are translated back into the intermediate format. Within this translation, the data referenced by the local response is embedded into the response for the requestor, since references on device-internal data stores cannot be resolved by external requestors. The interface app again translates the intermediate response to the desired external response format, like JSON, and sends it to the requestor.
The decoupling of interface and adapter apps allows to support different kinds of external interfaces, e.g., a RESTful interface and an XML-RPC interface. Currently, our framework includes an interface app which provides the services of Android apps over a RESTful interface. Moreover, by realizing the adapter as a separate app, our approach can be used without having to change existing Android apps. We have defined adaptation rules for several common Android apps and by providing a DSL, we simplified the specification on further adapters compared to programmatically defining adapters.
Mediator: The mediator is a central entity, implemented as a node.js webserver, that can be compared to a service registry. The interface apps of providing devices register their provided services at the mediator. For this, the mediator has a RESTful API, which also provides different ways for the requestor to select a device which shall provide a service: (i) The mediator can be queried for a list of devices capable of providing a service. This list can be shown on the requesting device in order to select the providing devices. (ii) The mediator can broadcast requests to all devices capable of providing the requested service and the user can claim the request on one of those devices. (iii) A QR or PIN code can be created by the mediator, which is shown on the requesting device and scanned/entered on the providing device to indirectly bind the service. With respect to privacy, options (i) and (ii) are limited to devices of the same owner but option (iii) can be used to in situation where both the providing and requesting device have different owners, e.g., integrate an app running on a private smartphone into an application running on a public internet terminal. The requestor and the provider can communicate directly with each other or indirectly via the mediator. The latter has the advantage that the mediator can translate between different communication protocols or can buffer requests/responses.
Changes to the Requesting Application: External services created using our framework need to be integrated into a requesting application. If a requesting application already has an import interface, the interface of an external service can be directly defined in a way that it can be used by the requesting application. Alternatively, mismatches between the external service’s interface and the import interface can be resolved by using approaches to build adapters on the requestor’s side, i.e., Iyer et al. [1] developed such an approach for the Android platform. If the requesting application has no import interface, it has to be adapted by the application’s developer. For web applications, we provide a JavaScript library that can be used to integrate services running on Android devices.
System in Use: Figure 2 shows an example of an application running on a tablet that uses our framework to integrate the camera app on a smartphone. The upper part of the figure shows what is happening in the background and the lower part shows what is visible to the user. The application on the tablet retrieves a list of devices able to provide the service to take a picture from the mediator. The user selects a device and the request is sent via the mediator to this device. There, the request is received by the interface app and translated into the intermediate format. Thereafter, the corresponding adaptation rules are applied by the adapter app. As a result of this adaptation, the camera app is opened and the user can take a picture. Subsequently, the adapter app receives the response and adapts it for the requestor. The interface app delegates the adapted response back to the requestor, which can further process it, e.g., by embedding the picture. Steps 1–3 look differently if options (ii) or (iii) are used to determine the providing device. Moreover, instead of sending the request/response via the mediator, it might be directly sent to the corresponding device.
3 Demonstration
The demonstration is twofold: In the first part, we demonstrate the user benefits by showing a demo web application that integrates services of different existing Android apps across devices using the XDAI-A frameworkFootnote 1. In addition to the example illustrated in Fig. 2, the demo application integrates various other services, e.g., sharing text and images using a messenger app, selecting an existing picture using the file explorer, adding events to the calendar, and retrieving contact information from the phonebook. The demonstration shows that the adaptation of requests and responses is only noticeable in form of a delay if files have to be up-/downloaded. The different techniques to determine the providing device are demonstrated and we discuss the implications of those techniques with respect to privacy. The second part of our demonstration focuses on the internals of our approach: We explain the specification of adaptation rules using our DSL, provide various specifications for the demonstrated integrations, and discuss how multiple services can be aggregated into a single external service.
Notes
- 1.
A demo video can be found at http://xdai.dwolt.de/.
References
Iyer, A., Roopa, T.: Extending android application programming framework for seamless cloud integration. In: MS 2012, pp. 96–104. IEEE (2012)
Santosa, S., Wigdor, D.: A field study of multi-device workflows in distributed workspaces. In: UbiComp 2013, pp. 63–72. ACM (2013)
Wolters, D., Kirchhoff, J., Gerth, C., Engels, G.: Cross-device integration of android apps. In: Sheng, Q.Z., Stroulia, E., Tata, S., Bhiri, S. (eds.) ICSOC 2016. LNCS, vol. 9936, pp. 171–185. Springer, Cham (2016). doi:10.1007/978-3-319-46295-0_11
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Wolters, D., Kirchhoff, J., Gerth, C., Engels, G. (2017). XDAI-A: Framework for Enabling Cross-Device Integration of Android Apps. In: Drira, K., et al. Service-Oriented Computing – ICSOC 2016 Workshops. ICSOC 2016. Lecture Notes in Computer Science(), vol 10380. Springer, Cham. https://doi.org/10.1007/978-3-319-68136-8_25
Download citation
DOI: https://doi.org/10.1007/978-3-319-68136-8_25
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-68135-1
Online ISBN: 978-3-319-68136-8
eBook Packages: Computer ScienceComputer Science (R0)