How To Develop An Open Play Context Framework For Android (For Android)

Similar documents
Prof. Dr.-Ing. Andreas Schrader

SmartAssist - Wireless Sensor Networks for Unobtrusive Health Monitoring

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

SAP Mobile Platform Intro

White Paper: OSGi-based E-Health / Assisted Living

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Smart Shopping- An Android Based Shopping Application

Developing and deploying mobile apps

OSGi Remote Management

Sybase Unwired Platform 2.0

Safe Harbor Statement

Horizontal IoT Application Development using Semantic Web Technologies

Time series IoT data ingestion into Cassandra using Kaa

SmartCart Design Description

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

Building a Continuous Integration Pipeline with Docker

M 2 M IWG. Eclipse, M2M and the Internet of Things. Overview. M 2 M Industry WorkGroup! M2M?

Meister Going Beyond Maven

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Junos Space for Android: Manage Your Network on the Go

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Extending Tizen Native Framework with Node.js

Cross-domain Identity Management System for Cloud Environment

Hudson configuration manual

Building a Mobile App Security Risk Management Program. Copyright 2012, Security Risk Advisors, Inc. All Rights Reserved

Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.

A UNIVERSAL MACHINE FOR THE INDUSTRIAL INTERNET OF THINGS. MultiConnect Conduit

THE ENTERPRISE INTERNET OF THINGS PLATFORM 2015 FEATURES GUIDE

Mobile Solutions in ArcGIS. Justin Fan

WIND RIVER INTELLIGENT DEVICE PLATFORM XT

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper

Getting Started Android + Linux. February 27 th, 2014

Collaborative Open Market to Place Objects at your Service

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

ADF Mobile Overview and Frequently Asked Questions

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

Paper Robert Bonham, Gregory A. Smith, SAS Institute Inc., Cary NC

Introduction to IBM Worklight Mobile Platform

Jordan Jozwiak November 13, 2011

SOFTWARE TESTING TRAINING COURSES CONTENTS

Cisco Enterprise Mobility Services Platform

HEAT DSM Release Overview. Andreas Fuchs Product Management November 16th, 2015

IBM Proof of Technology Discovering business application services, featuring IBM WebSphere Application Server Network Deployment V8

KURA M2M/IoT Gateway. reducing the distance between embedded and enterprise technologies. Tiziano Modotti, October 28 th, 2014

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Dynamic M2M Event Processing Complex Event Processing and OSGi on Java Embedded

Retool your HTML/JavaScript to go Mobile

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Practical Android Projects Lucas Jordan Pieter Greyling

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

A Comparison of Open Source Application Development Frameworks for the Enterprise

Middleware- Driven Mobile Applications

ORACLE MOBILE SUITE. Complete Mobile Development Solution. Cross Device Solution. Shared Services Infrastructure for Mobility

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi

Developing Google Android Mobile Clients for Web Services: a Case Study

SCA & SDO Implementations Open Source and Vendor Products

Programming IoT Gateways With macchina.io

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems

Nuxeo, an open source platform for content-centric business applications. Stéfane Fermigier, Nuxeo Laurent Doguin, Nuxeo

Resource Utilization of Middleware Components in Embedded Systems

QML and JavaScript for Native App Development

Bridging the Gap: from a Web App to a Mobile Device App

Dr. Dimitar Valtchev. 24 June 2010, Stuttgart, Eclipse Embedded Day

Digital Asset Management Beyond CMIS

PEGA MOBILITY A PEGA PLATFORM WHITEPAPER

Building the next generation of Mobile Apps with Facebook. Bo Zhang Head of Platform Partner Engineering, APAC

Open Source building blocks for the Internet of Things. Benjamin Cabé JFokus 2013

Software Development In the Cloud Cloud management and ALM

ArcGIS Web Mapping. Sam Berg, esri

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Apache Karaf in real life ApacheCon NA 2014

Jitterbit Technical Overview : Salesforce

Introduction to Android

Jitterbit Technical Overview : Microsoft Dynamics CRM

Cloud Computing with Windows Azure using your Preferred Technology

Module Title: Software Development A: Mobile Application Development

Considerations for Mobile Application Development

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

Glassfish Architecture.

Developer Guide: Android Object API Applications. SAP Mobile Platform 2.3 SP02

Firenze. Iottly, open source Internet of Things distribution

An Introduction to OSVR

Corporate Bill Analyzer

SAP Mobile Platform rapid-deployment solution

Customer Master Presentation - Contents

Transcription:

Dynamix: An Open Plug-and-Play Context Framework for Android Darren Carlson and Andreas Schrader Ambient Computing Group / Institute of Telematics University of Lübeck, Germany www.ambient.uni-luebeck.de This presentation includes graphics from the Crystal Project, which is released under the LGPL license.

Motivation 1/2: The Explosive Rise of Mobile Computing High Developer Incentives Familiar Languages & Tools Improved Device Capabilities Mobile App Markets Powerful Hardware Basic Context Sensing Inbuilt Comm/Sensors/Media APIs for accessing Location, Orientation, Sensor & User 2

Motivation 2/2: Context-awareness Challenges Remain Advanced Context Sensing and Acting Unproxied Sensor Networks Biotelemetry Data Indoor Positioning User Activity Others Social Proximity and Networks Ad-hoc Interactions External Sensors Sensor Fusion Wide-area Context Infrastructure Instrumentation scalability Multiple administrative domains (physical and virtual) Context sources/actuators not known at design time Lack of adaptive context middleware for mobile scenarios 3

Introducing Ambient Dynamix Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Dynamix is a plug-and-play context framework that helps applications sense and adapt to the user s continuously evolving situation and requirements Dynamix provides simple means for apps to request context support Dynamix adapts the user s device to the environment using plug-ins Includes a scalable infrastructure for sharing plug-ins Plug-ins are provisioned to the device at runtime (network or file system) Domain experts create context plug-ins Community-based approach with 3 rd party API support 4

Overview of the Dynamix Framework Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Context domain expertise is packaged into sharable plug-ins A Dynamix app requests context support Plug-ins are dynamically provisioned at runtime 5

Dynamix Framework Features Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Runs as a lightweight background service on a user s unmodified Android-based device. Apps use simple Facade and Event APIs to request context support and receive context events. Performs context interactions using a tailored set of plug-ins, which are dynamically provisioned to the device during runtime (from the network or local file-system). Supports ad-hoc interactions with discovered resources. Sends context information to apps using plain old Java objects (POJOs) or string-encoded formats. Supports parallel plug-in installations, automatic updating, event caching, and power management. Utilizes an embedded OSGi Framework to manage Dynamix plug-ins internally. Features a Plug-in Security Sandbox, which provides managed access to sensitive services and 6

Open Community Collaboration Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group 1 2 3 Open Plug-in Open App SDK SDK App Context-domain experts use the Open Plug-in SDK to create Dynamix plug-ins Plug-ins can be published using public or private repositories App developers use the Open App SDK to create Dynamix apps Apps can be deployed from any Android market or elsewhere The end-user installs the Dynamix Framework once Users can then download and run Dynamix apps 7

Context Plug-in Development Overview Open Plug-in SDK Context Sensing or Acting Context Representation (POJO or String) Includes base classes for a variety of plug-in types Developers can release custom data-types as standard JAR file, which are used by app developers. Privacy Risk Tagging Context Event Provisioning (includes time-stamp and validity duration metadata) 8

Dynamix App Development Overview Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Open App SDK Apps include a single Dynamix JAR on their build path 9

Setting Up Context Support Apps request context support using the Dynamix Service s Façade API. Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group 1 2 Apps add context subscriptions for required context types 3 Dynamix downloads and installs associated plug-ins in the background If necessary, apps trigger context requests (scans or 10

Handling Context Events Context events are sent to apps using the Dynamix Service s Event API. Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Receiving Context Events In the App: 11

Protecting User Privacy with the Context Firewall ContextEvent with embedded privacy risk tags Tap Apps to See their Context Firewall Settings Dynamix UI: Context Firewall Management 12

Apps Can Leverage a Broad Range of Dynamix Plug-ins Context Plug-in Power-aware Location, NFC, Beacon, Orientation, and Photodetector Plugins ArtNet Plug-in (ad-hoc discovery/control of DMX automation equipment) Acoustic Fingerprint Plug-in (Native Code Integration) Speech Recognition Plug-in Sound Pressure Level Plug-in (Ambient Sound Detector) Sleep State Plug-in (Zeo Mobile) Heart-rate Biotelemetry Plug-in (Zephyr Sensors) OpenSocial Profile Data with Sensor-network Monitoring Plug-in (SmartAssist) Barcode Scanner Plug-in (ZXing port) Air Quality Monitor Plug-in (Ozone Levels and Pollen Count) Weight and BMI Measurement Plug-in Many (Supports more plug-ins Withings in Wireless development! Scales) 13

Implementation and Evaluation 1/2 Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Dynamix Framework Comprehensive OSGIbased Android prototype Plug-in and App SDKs Repository architecture Website and documentation Tested on many popular Android device types Plug-in Development 15 initial plug-ins (more soon) Range of context domains and semantics (push vs. pull) Each verified as deployable over-the-air at runtime App Development Six initial prototype apps Additional apps are being developed Dynamix Apps Dynamix Logger Medication reminder system Product information and reviews Bike Wars! Social exercise app Heart rate visualization (Processing graphics engine) Ambient campus information Sound of the City (in development) More soon! AmbientWeb Extension Exposes full Dynamix functionality to browserbased Web clients Drop-in JavaScript libraries Includes Wellness App demo, created for the IoT 2012 Challenge 14

Implementation and Evaluation 2/2 Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Total CPU% for Various Payloads and Call Rates Heap Size for Various Payload Sizes and Call Rates Dynamix exhibits linear performance characteristics (CPU and Heap) for typical context scanning rates and event payload sizes 15

Help Us Make Dynamix Even Better! Dr.-Ing. Darren Carlson Institute of Telematics Ambient Computing Group Dynamix is free, open-source, and looking for contributors! Visit ambientdynamix.org for details and documentation. To access the developer kits, join the public beta! Email: carlson@itm.uni-luebeck.de for access. 16

Thank You! Q&A 17

Context Plug-in Packaging and Deployment Plug-in Code Export Plug-in OSGi Bundle Data-type JAR(s) Custom Data Types Plug-in Metadata Sample Eclipse Project Deploy OSGi Metadata Create Open Repository Architecture Supports public, private and filesystem-based repositories (Including Maven repos) Plug-in Repository Device File System 18

Dynamix from the End-user s Perspective Android Notifications The Home Tab The Context Firewall Plug-in installation Most of the time, Dynamix is invisible to the end-user 19

Context Domain Complexity Example (Biotelemetry) Device control and communication Service discovery End-user Application Zephyr BioHarness Smart Fabric sensors Protocol handling, synchronization, error recovery Data preprocessing, feature extraction, quantization, representation Varying Sensor Hardware Context Processing Heart rate Temperature Breathing rate Extracted Context Data Context acquisition and modeling Business logic 20

Android Integration Dynamix operates as a service within Android. Developers create Dynamix apps using existing skills and tooling. Example app types The Android platform stack 21

Dynamix and OSGi Dynamix uses an embedded OSGi Framework as the foundation of its plug-in architecture (Apache Felix). Context plug-ins are packaged and deployed as OSGi Bundles. The Dynamix OSGIManager supports multi-threaded Bundle installations and updates; progress notifications; Bundle verification; runtime integration; and plug-in lifecycle management. Context Plug-ins The OSGi Framework Architecture 22

How Context Plug-ins Interact with the User Some plug-ins may need to provide user interfaces for configuration or context acquisition (e.g. entering data, pointing a camera, etc.) However, Android s security model requires preregistration of Activities To overcome this problem, Dynamix provides Host Activities that can be dynamically populated with a plug-in s user interfaces. Context Plug-in Dynamix Runtime UI Injection Configuration Host Activity Context Acquisition Host Activity 23

Representing Context Information with IContextInfo Example IContextInfo code snippet from a heart-rate monitor plug-in Developers release custom data-types as a standard JAR file, which are used by app developers. 24