21
Table of Contents 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

Project Presentation - First Spring

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Project Presentation - First Spring

2

Introduction and Schedule 1

Page 3: Project Presentation - First Spring

» 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

Page 4: Project Presentation - First Spring

» 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

Page 5: Project Presentation - First Spring

» 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

Page 6: Project Presentation - First Spring

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.

Page 7: Project Presentation - First Spring

7

General Diagrams

Page 8: Project Presentation - First Spring

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

Page 9: Project Presentation - First Spring

Entity-Relationship Diagram 9

Page 10: Project Presentation - First Spring

10

Tasks

Page 11: Project Presentation - First Spring

11 Tasks done: Scaling

» Scaling (average algorithm) Fix Output = Screen resolution

Page 12: Project Presentation - First Spring

12 Tasks done: Optimization

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

Page 13: Project Presentation - First Spring

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).

Page 14: Project Presentation - First Spring

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

Page 15: Project Presentation - First Spring

? Questions?

15

Page 16: Project Presentation - First Spring

16

Technologies used 1

Page 17: Project Presentation - First Spring

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

Page 18: Project Presentation - First Spring

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

Page 19: Project Presentation - First Spring

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

Page 20: Project Presentation - First Spring

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.

Page 21: Project Presentation - First Spring

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; }

}