2. 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.
2 23.07.2010
3. Vedere de Ansamblu
Aplicaţia
Restlet Serverul
din
Framework (scris în Java SE)
Android (clientul)
Hibernate
Framework
Baza de date
Browserul Web
PostgreSQL
3 23.07.2010
4. Vedere de Ansamblu
Aplicaţia
Restlet Serverul
din
Framework (scris în Java SE)
Android (clientul)
Hibernate
Framework
Baza de date
Browserul Web
PostgreSQL
4 23.07.2010
5. 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.
5 23.07.2010
6. 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.
6 23.07.2010
7. 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.
7 23.07.2010
8. 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.
8 23.07.2010
9. Vedere de Ansamblu
Aplicaţia
Restlet Serverul
din
Framework (scris în Java SE)
Android (clientul)
Hibernate
Framework
Baza de date
Browserul Web
PostgreSQL
9 23.07.2010
10. 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.
10 23.07.2010
11. 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.
11 23.07.2010
12. Să ne amintim de HTTP
Verb Acţiune
GET 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.
12 23.07.2010
13. 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
13 23.07.2010
14. 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.
14 23.07.2010
15. 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.
15 23.07.2010
16. Vedere de Ansamblu
Aplicaţia
Restlet Serverul
din
Framework (scris în Java SE)
Android (clientul)
Hibernate
Framework
Baza de date
Browserul Web
PostgreSQL
16 23.07.2010
18. URIs în Browser (II)
http://localhost:8182/contacts/1
<contact>
<contactName>Ion Ionescu</contactName>
<contactPosition>Manager</contactPosition>
<contactAge>31</contactAge>
<contactTelephone>0213306587</contactTelephone>
</contact>
18 23.07.2010
19. Vedere de Ansamblu
Aplicaţia
Restlet Serverul
din
Framework (scris în Java SE)
Android (clientul)
Hibernate
Framework
Baza de date
Browserul Web
PostgreSQL
19 23.07.2010
20. 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.
20 23.07.2010
21. Vedere de Ansamblu
Aplicaţia
Restlet Serverul
din
Framework (scris în Java SE)
Android (clientul)
Hibernate
Framework
Baza de date
Browserul Web
PostgreSQL
21 23.07.2010
22. 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
22 23.07.2010