Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
-
Upload
vlad-petre -
Category
Documents
-
view
725 -
download
0
description
Transcript of Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
1 23.07.2010
Vlad-Ştefan PETRE
331CB
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?