SlideShare a Scribd company logo
1 of 24
Android + Restlet + Hibernate + PostgreSQL
                 KICKSTART PROJECT


                              Vlad-Ştefan PETRE
                                      331CB
                              vlad@vladpetre.com
                         http://twitter.com/vladpetre88
                   http://www.linkedin.com/in/vladpetre88

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


2   23.07.2010
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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>


17   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>




18   23.07.2010
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
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
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
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
Referinţe
ā€¢ ā€œProfessional Android 2 Application Developmentā€,
  Reto Meier

ā€¢    http://www.randombugs.com/linux/mysql-postgresql-benchm
ā€¢    http://developer.android.com/index.html
ā€¢    http://www.restlet.org/documentation/
ā€¢    http://www.hibernate.org/docs.html
ā€¢    http://www.postgresql.org/docs/



23   23.07.2010
Vă mulţumesc!

                    Ǝntrebări?




24   23.07.2010

More Related Content

Viewers also liked

Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014
Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014
Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014mdelabarraserey
Ā 
[IPW]FriLoc - Your Friends Locations
[IPW]FriLoc - Your Friends Locations[IPW]FriLoc - Your Friends Locations
[IPW]FriLoc - Your Friends LocationsVlad Petre
Ā 
[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)Vlad Petre
Ā 
Carta de productos final solo te
Carta de productos final solo teCarta de productos final solo te
Carta de productos final solo temdelabarraserey
Ā 
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp realVlad Petre
Ā 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)Vlad Petre
Ā 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
Ā 
SSD pe intelesul tuturor!
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!Vlad Petre
Ā 

Viewers also liked (8)

Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014
Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014
Carta tĆ©s ƚltima ActualizaciĆ³n a julio 2014
Ā 
[IPW]FriLoc - Your Friends Locations
[IPW]FriLoc - Your Friends Locations[IPW]FriLoc - Your Friends Locations
[IPW]FriLoc - Your Friends Locations
Ā 
[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)
Ā 
Carta de productos final solo te
Carta de productos final solo teCarta de productos final solo te
Carta de productos final solo te
Ā 
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real
Ā 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)
Ā 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Ā 
SSD pe intelesul tuturor!
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!
Ā 

Similar to Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam frameworkbeatrisrusu
Ā 
J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam frameworkbeatrisrusu
Ā 
Programarea aplicațiilor distribuite
Programarea aplicațiilor distribuiteProgramarea aplicațiilor distribuite
Programarea aplicațiilor distribuite Dumitru Maros
Ā 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
Ā 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiSabin Buraga
Ā 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxCostea112
Ā 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Codecamp Romania
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked datamikaela200987
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked datamikaela200987
Ā 
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2Diana Tataran
Ā 
Hotel booking Programare Web
Hotel booking Programare WebHotel booking Programare Web
Hotel booking Programare WebAlexandru Cristian
Ā 
Cautaera multilingva
Cautaera multilingvaCautaera multilingva
Cautaera multilingvabringiton
Ā 
Cu codul Ʈn "nori"
Cu codul Ʈn "nori"Cu codul Ʈn "nori"
Cu codul Ʈn "nori"Sabin Buraga
Ā 
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebSabin Buraga
Ā 
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebSabin Buraga
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked datamikaela200987
Ā 

Similar to Kickstart Project: Android+Restlet+Hibernate+PostgreSQL (20)

J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam framework
Ā 
J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam framework
Ā 
Programarea aplicațiilor distribuite
Programarea aplicațiilor distribuiteProgramarea aplicațiilor distribuite
Programarea aplicațiilor distribuite
Ā 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
Ā 
Webappdev
WebappdevWebappdev
Webappdev
Ā 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatii
Ā 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptx
Ā 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Ā 
Irina Cureraru
Irina CureraruIrina Cureraru
Irina Cureraru
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked data
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked data
Ā 
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
Ā 
Hotel booking Programare Web
Hotel booking Programare WebHotel booking Programare Web
Hotel booking Programare Web
Ā 
Cautaera multilingva
Cautaera multilingvaCautaera multilingva
Cautaera multilingva
Ā 
Cu codul Ʈn "nori"
Cu codul Ʈn "nori"Cu codul Ʈn "nori"
Cu codul Ʈn "nori"
Ā 
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
Ā 
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked data
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked data
Ā 
Fii linked data
Fii linked dataFii linked data
Fii linked data
Ā 

More from Vlad Petre

The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure ProtocolVlad Petre
Ā 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Vlad Petre
Ā 
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)Vlad Petre
Ā 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)Vlad Petre
Ā 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
Ā 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)Vlad Petre
Ā 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy EconomyVlad Petre
Ā 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingVlad Petre
Ā 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeVlad Petre
Ā 
Aplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiVlad Petre
Ā 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design DocumentVlad Petre
Ā 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVlad Petre
Ā 
SIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking ToolSIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking ToolVlad Petre
Ā 
Nvidia Tegra
Nvidia TegraNvidia Tegra
Nvidia TegraVlad Petre
Ā 

More from Vlad Petre (14)

The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure Protocol
Ā 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.
Ā 
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
Ā 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
Ā 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)
Ā 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)
Ā 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy Economy
Ā 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive Computing
Ā 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor Vinge
Ā 
Aplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe Imagini
Ā 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design Document
Ā 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements Specification
Ā 
SIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking ToolSIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking Tool
Ā 
Nvidia Tegra
Nvidia TegraNvidia Tegra
Nvidia Tegra
Ā 

Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

  • 1. Android + Restlet + Hibernate + PostgreSQL KICKSTART PROJECT Vlad-Ştefan PETRE 331CB vlad@vladpetre.com http://twitter.com/vladpetre88 http://www.linkedin.com/in/vladpetre88 1 23.07.2010
  • 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
  • 17. 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> 17 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
  • 23. ReferinÅ£e ā€¢ ā€œProfessional Android 2 Application Developmentā€, Reto Meier ā€¢ http://www.randombugs.com/linux/mysql-postgresql-benchm ā€¢ http://developer.android.com/index.html ā€¢ http://www.restlet.org/documentation/ ā€¢ http://www.hibernate.org/docs.html ā€¢ http://www.postgresql.org/docs/ 23 23.07.2010
  • 24. Vă mulÅ£umesc! Ǝntrebări? 24 23.07.2010