Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

Post on 29-Nov-2014

725 views 0 download

description

 

Transcript of Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

1 23.07.2010

Vlad-Ştefan PETRE

331CB

vlad@vladpetre.com

http://twitter.com/vladpetre88

http://www.linkedin.com/in/vladpetre88

Android + Restlet + Hibernate + PostgreSQL K I C K S T A R T P R O J E C T

2 23.07.2010

Scopul Proiectului

• Familiarizarea cu procesul de dezvoltare a unei aplicaţii pentru sistemul de operare Android de la Google.

• Utilizarea bibliotecii Restlet pe partea de comunicare client-server.

• Utilizarea bibliotecii Hibernate pe partea de comunicare server-bază de date.

• Utilizarea PostgreSQL ca bază de date.

• Ca instrument pentru dezvoltare, am folosit Eclipse 3.5 Galileo for Java Developers.

3 23.07.2010

Vedere de Ansamblu

Aplicaţia din

Android (clientul)

Aplicaţia din

Android (clientul)

Serverul(scris în Java SE)

Serverul(scris în Java SE)

RestletFramework

RestletFramework

Baza de datePostgreSQL

Baza de datePostgreSQL

HibernateFrameworkHibernate

Framework

Browserul WebBrowserul Web

4 23.07.2010

Vedere de Ansamblu

Aplicaţia din

Android (clientul)

Aplicaţia din

Android (clientul)

Serverul(scris în Java SE)

Serverul(scris în Java SE)

RestletFramework

RestletFramework

Baza de datePostgreSQL

Baza de datePostgreSQL

HibernateFrameworkHibernate

Framework

Browserul WebBrowserul Web

5 23.07.2010

Ce este Android?

• Sistem de operare destinat dispozitivelor mobile bazat pe nucleul Linux.

• Dezvoltat iniţial de Google, iar ulterior de către consorţiul Open Handset Alliance ce include 48 de companii de hardware, software şi de telecomunicaţii.

6 23.07.2010

De ce Android?

• Oferă suport pentru multitasking (şi copy-paste ).

• Pune la dispoziţie un API puternic şi are o documentaţie vastă.

• Popularitatea sa este într-o continuă creştere.

• Aplicaţiile fiind scrise în Java, dezvoltarea lor se realizează facil.

7 23.07.2010

Aplicaţia MyWorld (I)

• Aplicaţia reprezintă o agendă telefonică electronică, având ca feature principal stocarea contactelor pe un server extern.

• Aplicaţia permite vizualizarea contactelor într-o listă, în pagini a câte 10 contacte.

8 23.07.2010

Aplicaţia MyWorld (II)

• Pentru fiecare contact în parte, pot fi consultate (sau schimbate) detalii precum nume, varsta, telefon, etc.

• De asemenea, aplicaţia permite crearea şi stergerea de noi contacte, prin folosirea tastei Menu.

9 23.07.2010

Vedere de Ansamblu

Aplicaţia din

Android (clientul)

Aplicaţia din

Android (clientul)

Serverul(scris în Java SE)

Serverul(scris în Java SE)

RestletFramework

RestletFramework

Baza de datePostgreSQL

Baza de datePostgreSQL

HibernateFrameworkHibernate

Framework

Browserul WebBrowserul Web

10 23.07.2010

Ce înseamnă REST?

• REST = Representational State Transfer

• Reprezintă o arhitectură de tip CRUD în care:– Datele sunt accesate în mod stateless.– Orice reprezintă o resursă.– Identificarea se face printr-un URI

(Uniform Resource Identifier).– O dată poate avea mai multe reprezentări.– Datele pot fi legate între ele.

11 23.07.2010

Ce inseamna CRUD?

• CRUD = Create, Read, Update şi Delete.

• CRUD reprezintă cele patru operaţii de bază ale unui storage persistent:

– Crează sau adaugă entităţi.– Citeşte, preia sau caută entităţi existente.– Modifică entităţi existente.– Şterge entităţi existente.

12 23.07.2010

Să ne amintim de HTTP

Verb AcţiuneGET Preia o entitate

POST Crează o entitate.PUT Modifică o entitate.

DELETE Şterge o entitate.HEAD Preia meta-informaţii despre o entiate.

OPTIONS Preia lista de metode acceptate de către server.

13 23.07.2010

Exemplu de cerere GET HTTP

GET /index HTTP/1.1

Host: www.google.ro

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: 1.7.12)...

Accept: text/xml, application/xml, application/xhtml, text/html

Accept-Language: us, en

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-15, utf-8;

Keep-Alive: 300

Connection: keep-alive

14 23.07.2010

URIs pentru MyWorld

URI Resursă

http://localhost:8182/contacts Preia lista cu toate contactele, nepaginată.

http://localhost:8182/contacts/page/0 Preia o listă cu primele 10 contacte (prima pagină).

http://localhost:8182/contacts/4 Detalii despre contactul cu IDul 4, în formatul default (la noi este xml).

http://localhost:8182/contacts/4/html Detalii despre contactul cu IDul 4, în format html.

http://localhost:8182/contacts/4/plain Detalii despre contactul cu IDul 4, în format plain text.

http://localhost:8182/contacts/4/xml Detalii despre contactul cu IDul 4, în format xml.

15 23.07.2010

Ce este Restlet?

• Restlet este un framework open-source de tip REST pentru Java.

• Restlet este utilizabil atât pe partea de server, cât şi pe partea de client.

• Restlet suportă majoritatea sandardelor din Internet precum HTTP, HTTPS, SMTP, XML, JSON, Atom şi WADL.

16 23.07.2010

Vedere de Ansamblu

Aplicaţia din

Android (clientul)

Aplicaţia din

Android (clientul)

Serverul(scris în Java SE)

Serverul(scris în Java SE)

RestletFramework

RestletFramework

Baza de datePostgreSQL

Baza de datePostgreSQL

HibernateFrameworkHibernate

Framework

Browserul WebBrowserul Web

17 23.07.2010

URIs în Browser (I)

http://localhost:8182/contacts

<contacts> <contact> <contactName>Ion Ionescu</contactName> <contactId>1</contactId> </contact> <contact> <contactName>Pop Popescu</contactName> <contactId>4</contactId> </contact> ...</contacts>

18 23.07.2010

URIs în Browser (II)

http://localhost:8182/contacts/1

<contact> <contactName>Ion Ionescu</contactName> <contactPosition>Manager</contactPosition> <contactAge>31</contactAge> <contactTelephone>0213306587</contactTelephone></contact>

19 23.07.2010

Vedere de Ansamblu

Aplicaţia din

Android (clientul)

Aplicaţia din

Android (clientul)

Serverul(scris în Java SE)

Serverul(scris în Java SE)

RestletFramework

RestletFramework

Baza de datePostgreSQL

Baza de datePostgreSQL

HibernateFrameworkHibernate

Framework

Browserul WebBrowserul Web

20 23.07.2010

Ce este Hibernate?• Este un framework ORM (Object-Relational Mapping) pentru

Java care mapează clase peste tabele dintr-o bază de date relatională.

• Hibernate generează automat apeluri SQL şi uşurează munca dezvoltatorului (îl scuteşte) de handling-ul manual al datelor şi conversia manuală a datelor la obiecte.

• Hibernate permite ca aplicaţia să fie portată pe foarte multe tipuri de baze de date SQL cu un minim de efort.

• Hibernate pune la dispoziţie propriul limbaj, denumit Hibernate Query Language; limbaj care este similar cu SQL.

21 23.07.2010

Vedere de Ansamblu

Aplicaţia din

Android (clientul)

Aplicaţia din

Android (clientul)

Serverul(scris în Java SE)

Serverul(scris în Java SE)

RestletFramework

RestletFramework

Baza de datePostgreSQL

Baza de datePostgreSQL

HibernateFrameworkHibernate

Framework

Browserul WebBrowserul Web

22 23.07.2010

Ce este PostgreSQL?

• PostgreSQL este un SGBD (sistem de gestiune al bazelor de date) gratuit, similar MySQL, lansat sub o licenţă de tip MIT.

• În materie de performanţă, PostgreSQL este net superior faţă de MySQL, potrivit:

http://www.randombugs.com/linux/mysql-postgresql-benchmarks.html

23 23.07.2010

Referinţe

• “Professional Android 2 Application Development”, Reto Meier

• http://www.randombugs.com/linux/mysql-postgresql-benchmarks.html

• http://developer.android.com/index.html• http://www.restlet.org/documentation/• http://www.hibernate.org/docs.html• http://www.postgresql.org/docs/

24 23.07.2010

Vă mulţumesc!

Întrebări?