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



Similar documents
Service Discovery with the Google Android Mobile Platform

ITG Software Engineering

Introduction to Android Development. Jeff Avery CS349, Mar 2013

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Running a Program on an AVD

Creating Web Services in NetBeans

How To Write A Train Control System

Here to take you beyond Mobile Application development using Android Course details

An Introduction to Android

Introduction to Android

Introduction to Android Android Architecture Software Development Purpose of the project Location Based Service (LBS) Android. Location class Google

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Introduction to Android

Android Developer Fundamental 1

Web Services Development In a Java Environment

Practical Android Projects Lucas Jordan Pieter Greyling

Android Application Development

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

Lecture 1 Introduction to Android

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

OSGi Remote Management

1 What Are Web Services?

Android (Basic + Advance) Application Development

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

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

1 What Are Web Services?

Android Development. Marc Mc Loughlin

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

A standards-based approach to application integration

Introduction to Android Programming (CS5248 Fall 2015)

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

VOL. 2, NO. 1, January 2012 ISSN ARPN Journal of Science and Technology ARPN Journals. All rights reserved

Overview of CS 282 & Android

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

Mobilize Your ERP with ADF Mobile

Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial

Service Oriented Architectures

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Module Title: Software Development A: Mobile Application Development

ANDROID INTRODUCTION TO ANDROID

ANDROID A Workshop on Android Application Development Organized by Computer Science & Engg Dept Lingaya s University

The webmethods ESB. The Foundation of your SOA. Jean-Michel Ghyoot, Principal Solution Architect, March 28, 2013

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

ebay : How is it a hit

COURSE CONTENT. GETTING STARTED Select Android Version Create RUN Configuration Create Your First Android Activity List of basic sample programs

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Introduction to Oracle WebLogic. Presented by: Fatna Belqasmi, PhD, Researcher at Ericsson

Workshop on Android and Applications Development

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

1. Introduction to Android

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

A Comparison of Open Source Application Development Frameworks for the Enterprise

Introduction to Service-Oriented Architecture for Business Analysts

Oracle Business Activity Monitoring 11g New Features

Creating and Using Databases for Android Applications

Performance Testing and Optimization in Web-Service Based Applications

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Introduction into Web Services (WS)

l What is Android? l Getting Started l The Emulator l Hello World l ADB l Text to Speech l Other APIs (camera, bitmap, etc)

Jitterbit Technical Overview : Microsoft Dynamics CRM

What You Need to Know About Transitioning to SOA

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Middleware- Driven Mobile Applications

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

How To Develop Android On Your Computer Or Tablet Or Phone

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

DESIGNING AN M-LEARNING APPLICATION FOR A UBIQUITOUS LEARNING ENVIRONMENT IN THE ANDROID BASED MOBILE DEVICES USING WEB SERVICES

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

JVA-561. Developing SOAP Web Services in Java

Using mobile phones to access Web Services in a secure way. Dan Marinescu

Deep Inside Android. OpenExpo Zurich September 25 th, Gilles Printemps - Senior Architect. Copyright 2007 Esmertec AG.

Admin. Mobile Software Development Framework: Android Activity, View/ViewGroup, External Resources. Recap: TinyOS. Recap: J2ME Framework

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

Web Services: Usage and challenges in mobile phones (computers)

David Pilling Director of Applications and Development

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

Wireless Java Programming for Enterprise Applications

A Modular Approach to Teaching Mobile APPS Development

Simplifying Processes Interoperability with a Service Oriented Architecture

AquaLogic Service Bus

MD Link Integration MDI Solutions Limited

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

Sybase Unwired Platform 2.0

Transcription:

tesi di laurea Developing Google Android Mobile Clients for Web Services: a Case Study Anno Accademico 2007/2008 relatore Ch.mo prof. Stefano Russo correlatore Ing. Marcello Cinque candidato Vito Daniele Cuccaro Matr. 885/83

Main issue Is the new Google Android platform mature for developing mobile clients for Web Services? Goal of the Thesis Evaluating the Android platform through a case study (porting of a J2ME client for accessing Wireless Sensor Networks). Contributions Pros and Cons of Android for WS mobile clients. Fitting and Testing of the KSOAP solution for WS on Android. Proposal of a new Android-specific design pattern (AVA) for translating the popular MVC pattern.

Background: Web Services The most common implementation of SOA Operational Model Key benefits: Accessible by anyone, anywhere and from any device B2B and EAI support Dynamic location and invocation of services Interoperability among heterogeneous applications Standard protocols and data exchange format Core Standards XML and ebxml WSDL and UDDI SOAP, the de facto standard for invoking Web Services

Background: The Google Android Mobile Platform A software stack for mobile devices including OS, middleware and key applications Key features: Developed within OHA Open source under Apache license Laying on a Linux 2.6 Kernel Applications written in Java Has its own APIs (as well as some of Java) Uses its own VM (Dalvik) Software Stack

Developing an Android Application Main components: Activity Service Broadcast Receiver Content Provider Other key concepts: Intent Intent Filter Notification Manifest XML-defined GUI Application Lifecycle Toolbox: Eclipse (or NetBeans) plugin Full-featured SDK with Debug Monitor Device Emulator Online Doc and Support R.java

Android and Web Services: state of the art No native solutions available yet (SOAP APIs for WS invocation) Main Developers proposals Homemade solution: HTTP connection + manual XML parsing (SAX) kxml-rpc (lightweight solution) KSOAP KSOAP A popular open-source mobile-oriented oriented SOAP implementation Basically a client library for invoking web services Tested on Java-based devices Now in version 2 (1 is deprecated)

Case Study: the ICAAS framework for accessing WSN Software architecture for accessing Wireless Sensor Networks developed at Mobilab within the REMOAM project (by CINI and Strago s.r.l.) The Architecture Non standard implementation of the OGC Sensor Web Enablement specifications Key features: Interoperable & Configurable Extensible Requests optimization (Caching and Filtering) ROA and SOA access

ICAAS Web Services for SOA access: Notification Service Observation Service Collection Service Alert Service Planning Service ICAASMobile: a J2ME test client SOA access to ICAAS through WS Real Time monitoring of WSN Session management Tested with a WSN simulator Technology note: Apache Axis (a Java-based SOAP implementation) used for WS deployment

Case Study: Porting ICAASMobile from J2ME to Android A typical porting process Assessing Migration Feasibility 1. All functions of the original client are achievable on Android (doubts were raised about invoking Web Services) Understanding Initial Application Deciding Target Development Tools 2. Reverse Engineering of ICAASMobile to get SRS and software architecture 3. Eclipse with Android SDK plugin Validating Original Design Plan Deciding about Porting Strategies 4. Decision to keep the same architecture and code base 5. ++ approach: add one function at a time and make it work before going on

Invoking Web Services in Android: the KSOAP2 solution Advantages: Reliable (tested on other mobile platforms) Easy to use Facilitates porting (the original application uses KSOAP1) Disadvantages: Introduces overhead on constrained devices Some effort is needed to port a client from KSOAP1 to KSOAP2 Motivations for the choice: Reusing the original business logic as much as possible Relying on a widely tested solution Implementation Stub restructuring needed The thread responsible for WS invocation (through the stub) can be reused

Porting the MVC Pattern to Android: the AVA solution Model-View-Controller Separating GUI from Business Logic and Data Access Adapter-View-Activity Main issues: Android Views are not Java- coded but xml-defined Who is the Controller? Who is the Model? Answers Activity builds View from xml Activity acts as Controller Adapter plays Model s role Contribution: a reusable design pattern for Android

DroidICAASMobile: a Conceptual Model AVA-based GUI change dataset KSOAP-based WS invocation change dataset Adapter creates notifydatasetchanged Thread creates creates response View user inputs Activity Stub update setcontentview uses invokes response user inputs builds Layout.xml --------- ------- KSOAP Web Services

DroidICAASMobile: example of use

Critical Considerations about the Android Experience Average learning curve (probably slightly steeper than J2ME) Advantages over other mobile platforms: xml-defined GUIs, open philosophy and full portability (at least in principle) Conclusions The KSOAP solution for invoking WS is working on Android Porting from J2ME is possible reusing most of the code The AVA pattern is a good option for designing Android GUIs Future Works Improvement of the developed client (under both functional and graphic aspect) and testing on real Android devices Testing of other solutions for Web Services (e.g. kxml-rpc)