Kickstart Project: Android+Restlet+Hibernate+PostgreSQL

Vlad Petre
Vlad PetreEntrepreneur
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
1 de 24

Recomendados

[Curs Android] C10 - Threaduri & Servicii (IPW 2011) por
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)[Curs Android] C10 - Threaduri & Servicii (IPW 2011)
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)Vlad Petre
1.1K vistas41 diapositivas
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare por
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareDiploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
528 vistas16 diapositivas
Voicenger - Software Architecture Document por
Voicenger - Software Architecture DocumentVoicenger - Software Architecture Document
Voicenger - Software Architecture DocumentVlad Petre
629 vistas17 diapositivas
[SCS]Friloc - Scientific Paper por
[SCS]Friloc - Scientific Paper[SCS]Friloc - Scientific Paper
[SCS]Friloc - Scientific PaperVlad Petre
347 vistas5 diapositivas
The Bluetooth Protocol por
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth ProtocolVlad Petre
748 vistas20 diapositivas
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA por
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAOptimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAVlad Petre
604 vistas14 diapositivas

Más contenido relacionado

Destacado

Carta tés Última Actualización a julio 2014 por
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
370 vistas8 diapositivas
[IPW]FriLoc - Your Friends Locations por
[IPW]FriLoc - Your Friends Locations[IPW]FriLoc - Your Friends Locations
[IPW]FriLoc - Your Friends LocationsVlad Petre
304 vistas14 diapositivas
[Curs Android] C07 - Liste (IPW 2011) por
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)Vlad Petre
568 vistas34 diapositivas
Carta de productos final solo te por
Carta de productos final solo teCarta de productos final solo te
Carta de productos final solo temdelabarraserey
199 vistas7 diapositivas
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real por
[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
485 vistas17 diapositivas
[Curs Android] C02 - Aplicatii (IPW 2011) por
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)Vlad Petre
1.1K vistas24 diapositivas

Destacado(8)

Carta tés Última Actualización a julio 2014 por mdelabarraserey
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
mdelabarraserey370 vistas
[IPW]FriLoc - Your Friends Locations por Vlad Petre
[IPW]FriLoc - Your Friends Locations[IPW]FriLoc - Your Friends Locations
[IPW]FriLoc - Your Friends Locations
Vlad Petre304 vistas
[Curs Android] C07 - Liste (IPW 2011) por Vlad Petre
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)
Vlad Petre568 vistas
Carta de productos final solo te por mdelabarraserey
Carta de productos final solo teCarta de productos final solo te
Carta de productos final solo te
mdelabarraserey199 vistas
[SCS]Friloc: Retea de socializare bazata pe geolocalizare in timp real por Vlad Petre
[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
Vlad Petre485 vistas
[Curs Android] C02 - Aplicatii (IPW 2011) por Vlad Petre
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)
Vlad Petre1.1K vistas
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare por Vlad Petre
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
Vlad Petre3.7K vistas
SSD pe intelesul tuturor! por Vlad Petre
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!
Vlad Petre1.3K vistas

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

J boss seam framework por
J boss seam frameworkJ boss seam framework
J boss seam frameworkbeatrisrusu
84 vistas6 diapositivas
J boss seam framework por
J boss seam frameworkJ boss seam framework
J boss seam frameworkbeatrisrusu
112 vistas5 diapositivas
Programarea aplicațiilor distribuite por
Programarea aplicațiilor distribuiteProgramarea aplicațiilor distribuite
Programarea aplicațiilor distribuite Dumitru Maros
253 vistas24 diapositivas
Dezvoltarea Aplicatiilor Web por
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
1.3K vistas19 diapositivas
Webappdev por
WebappdevWebappdev
WebappdevGeorge Alexandru Vlad
333 vistas9 diapositivas
Programare Web - De la CGI la servere de aplicatii por
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
2.3K vistas32 diapositivas

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

J boss seam framework por beatrisrusu
J boss seam frameworkJ boss seam framework
J boss seam framework
beatrisrusu84 vistas
J boss seam framework por beatrisrusu
J boss seam frameworkJ boss seam framework
J boss seam framework
beatrisrusu112 vistas
Programarea aplicațiilor distribuite por Dumitru Maros
Programarea aplicațiilor distribuiteProgramarea aplicațiilor distribuite
Programarea aplicațiilor distribuite
Dumitru Maros253 vistas
Dezvoltarea Aplicatiilor Web por danielnastase
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
danielnastase1.3K vistas
Programare Web - De la CGI la servere de aplicatii por Sabin Buraga
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
Sabin Buraga2.3K vistas
Biblioteci JavaScript pentru Ajax.pptx por Costea112
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptx
Costea1124 vistas
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ... por Codecamp Romania
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 Romania664 vistas
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2 por Diana Tataran
[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
Diana Tataran344 vistas
Cautaera multilingva por bringiton
Cautaera multilingvaCautaera multilingva
Cautaera multilingva
bringiton211 vistas
Cu codul în "nori" por Sabin Buraga
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
Sabin Buraga4.4K vistas
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web por Sabin Buraga
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
Sabin Buraga321 vistas
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web por Sabin Buraga
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
Sabin Buraga452 vistas
Fii linked data por teodora001
Fii linked dataFii linked data
Fii linked data
teodora001221 vistas
Fii linked data por teodora001
Fii linked dataFii linked data
Fii linked data
teodora001174 vistas

Más de Vlad Petre

The 3-D Secure Protocol por
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure ProtocolVlad Petre
10.4K vistas7 diapositivas
Founding a startup. DOs and DON'Ts. por
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Vlad Petre
346 vistas16 diapositivas
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011) por
[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
557 vistas35 diapositivas
[Curs Android] C06 - DDMS & LogCat (IPW 2011) por
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)Vlad Petre
689 vistas15 diapositivas
[Curs Android] C04 - User Interface (IPW 2011) por
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
599 vistas19 diapositivas
[Curs Android] C01 - Introducere (IPW 2011) por
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)Vlad Petre
1.8K vistas24 diapositivas

Más de Vlad Petre(14)

The 3-D Secure Protocol por Vlad Petre
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure Protocol
Vlad Petre10.4K vistas
Founding a startup. DOs and DON'Ts. por Vlad Petre
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.
Vlad Petre346 vistas
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011) por 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)
Vlad Petre557 vistas
[Curs Android] C06 - DDMS & LogCat (IPW 2011) por Vlad Petre
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
Vlad Petre689 vistas
[Curs Android] C04 - User Interface (IPW 2011) por Vlad Petre
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)
Vlad Petre599 vistas
[Curs Android] C01 - Introducere (IPW 2011) por Vlad Petre
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)
Vlad Petre1.8K vistas
Eneco: Energy Economy por Vlad Petre
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy Economy
Vlad Petre249 vistas
Critica asupra lucrarii Proactive Computing por Vlad Petre
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive Computing
Vlad Petre182 vistas
Critica asupra Singularitatii lui Vernor Vinge por Vlad Petre
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor Vinge
Vlad Petre255 vistas
Aplicare Filtre pe Imagini por Vlad Petre
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe Imagini
Vlad Petre797 vistas
Voicenger - Software Design Document por Vlad Petre
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design Document
Vlad Petre1.7K vistas
Voicenger - System Requirements Specification por Vlad Petre
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements Specification
Vlad Petre2.2K vistas
SIM Project: Optimizing a Benchmarking Tool por Vlad Petre
SIM Project: Optimizing a Benchmarking ToolSIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking Tool
Vlad Petre394 vistas
Nvidia Tegra por Vlad Petre
Nvidia TegraNvidia Tegra
Nvidia Tegra
Vlad Petre384 vistas

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