Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

24
1 23.07.2010 Vlad-Ştefan PETRE 331CB [email protected] 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

description

 

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

Page 1: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

1 23.07.2010

Vlad-Ştefan PETRE

331CB

[email protected]

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

Page 2: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 3: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 4: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 5: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 6: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 7: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 8: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 9: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 10: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 11: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 12: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 13: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 14: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 15: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 16: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 17: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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>

Page 18: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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>

Page 19: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 20: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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.

Page 21: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 22: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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

Page 23: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

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/

Page 24: Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

24 23.07.2010

Vă mulţumesc!

Întrebări?