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

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
 

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