Project Presentation - First Spring

Post on 26-Jun-2015

240 views 1 download

Tags:

Transcript of Project Presentation - First Spring

Tab

le o

f C

on

ten

ts

1

Introduction and Schedule

General Diagrams

Tasks

1.1. Concept

1.2. App Goals

1.3. General Goals

1.4. Schedule

2.1. Communication Android-Server

2.2. Entity-Relationship

3.1. Tasks done: Scaling

3.2. Tasks done: Optimization

3.3. Remaining tasks: Zoom

3.4. Remaining tasks: Cache

4. Questions

2

Introduction and Schedule 1

» Android App for graphical display of statistical data.

» Diagrams should have zoom and scroll capabilities.

» Different months, different series and different qualities

can be selected.

» Each user can enrich the application adding comments

to the diagrams.

Concept 3

» In any Mobile App, some factors to take into account,

» Computational process is limited Heavier tasks must take place on the server.

» Memory is limited Avoid heavy objects, or keep them in cache and instantiate them only when is strictly necessary.

» Don’t waste bandwidth Avoid unnecessary, heavy or repetitive requests to the server.

» Save battery Don’t make an intense use of the computational processor and of the internet connection.

App Goals 4

» Scale the charts to the Mobile screen resolution.

» Optimize the transmission and the display of the charts.

» Create an optimal mechanism to interact with the server in the zoom-in process.

» Create a cache mechanism for retrieve previous graphs

» Have different users with different access levels (chars, categories).

General Goals 5

Schedule 6

1. Android layouts.

2. SQL Scheme Tables and relationship between them.

3. Web Server with required REST methods (implementation of a Web

Service).

4. Connection between DB & Web Server DB Querys, Mapping

Objects-tables.

5. Connection between Web Server & Android.

6. Android Layouts II Some improvements after the connection with

the Web Server.

7. Chart points downscale and optimization.

8. Zoom implementation & cache mechanism.

9. Migrate Java Web Server to PHP Web Server.

7

General Diagrams

Communication Android-Server 8

Web Server: Handle the request; transform it in a SQL query; process it and creates the JSON representation for the response.

Database: Basic DB behavior, response to the SQL queries.

Client: Performs an HTTP Request; converts the JSON response to Java Object and display the results and/or performs some data processing.

Database W

eb

Se

rve

r

Mo

bile

Ap

p

HTTP/JSON

TCP/IP

REST

Entity-Relationship Diagram 9

10

Tasks

11 Tasks done: Scaling

» Scaling (average algorithm) Fix Output = Screen resolution

12 Tasks done: Optimization

» Optimization (deleting, or nulling the duplications) Variable output

13 Remaining tasks: Zoom

» Choosing between the following procedures,

» Requests on demand Request to the server every time we zoom (slow and intense use of Internet).

» Request when higher resolution needed Request more than you need (higher resolution), but not in each zoom.

» Requests in advance Request in background other resolutions, that can be loaded directly when the user requires them (requires cache implementation).

14 Remaining task: Cache

» Charts cache will be implemented

1. Request the chart, with some downscale and optimization parameters.

2. Save in the SSD the JSON representation (cache).

3. Save in memory the Object (SoftReference HashMap)

» Cache can be implemented with LRU algorithm Persistence == Requests == Battery consumption

? Questions?

15

16

Technologies used 1

17

» Server Side

» Use of Apache Tomcat as a Java Servlet Container

» Use of Jersey Framework for implementing REST.

» Use of Hibernate Framework for implementing ORM.

» Use of MySQL as a Relational Database Management System.

Communication Android-Server

18

REST: The predominant Web Service Model Software system designed to support machine-to-machine interaction over a network.

Clients requests to servers; servers process requests and return responses in a well known format.

» Transport layer is HTTP/MIME.

» The URI defines the resource.

» The operations are defined by the HTTP methods (GET, POST,

PUT, DELETE)

» The response is presented in JSON format (indicated thought

Media-Type).

REST Implementation

REST Implementation 19

Advantages

» Simplifying the communication among independent and foreign systems.

» Organize an application into simple resources .

» No problem with firewalls and proxies (port 80, usually open)

» JSON is a lightweight text-based open standard and the Android parser offers

good performance.

» Possibility of HTTP cache and proxy server to handle high load.

Examples

» GET http://example.com/charts Obtain List of Charts.

» GET http://example.com/charts/1?month=1 Obtain Chart info for January

» PUT http://example.com/charts/1 Modify Chart with id=1

20 ORM Implementation

ORM: Mapping technique for converting DB structure Object structure

Advantages

» Simplify the development of a service.

» Overcomes vendor specific SQL differences - the ORM knows how to write vendor specific SQL so you don't have to.

Disadvantages

» Developers loose understanding of what the code is actually doing the developer is more in control using SQL.

» ORM has a tendency to be slow, if is not used carefully.

21 ORM Implementation

Hibernate

@Entity @Table(name = "categories")

public class Category{

private int id;

private String name;

private String description;

private Set<Chart> charts;

@Id @GeneratedValue @Column(name = "category_id")

public int getId() { return id; }

public void setId(int id) { this.id = id; }

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public String getDescription() { return description; }

public void setDescription(String description) { this.description = description; }

@OneToMany(mappedBy="category", fetch=FetchType.EAGER)

@LazyCollection(LazyCollectionOption.FALSE)

public Set<Chart> getCharts() { return charts;}

public void setCharts(Set<Chart> charts) { this.charts = charts; }

}