Differences

This shows you the differences between two versions of the page.

Link to this comparison view

laboratoare:laborator11 [2016/04/25 18:03]
Andrei Roșu-Cojocaru created
laboratoare:laborator11 [2016/04/26 00:21]
Andrei Roșu-Cojocaru
Line 28: Line 28:
   * **o aplicație Android** rulând pe un dispozitiv mobil cu un sistem de operare Android având o versiune mai mare de 2.2, pe care este instalat Google Play Services.   * **o aplicație Android** rulând pe un dispozitiv mobil cu un sistem de operare Android având o versiune mai mare de 2.2, pe care este instalat Google Play Services.
  
-{{ :​laboratoare:​laborator08:​arhitectura_google_cloud_messaging.png?​nolink&​700 }}+{{ :​laboratoare:​laborator11:​arhitectura_google_cloud_messaging.png?​nolink&​700 }}
  
 De regulă, procesul de proiectare și dezvoltare a sistemului informatic implică următorul flux de lucru: De regulă, procesul de proiectare și dezvoltare a sistemului informatic implică următorul flux de lucru:
Line 64: Line 64:
   * În situația în care nu a fost creat un proiect Google API anterior, se va afișa o fereastră prin care se poate realiza acest lucru, accesându-se opțiunea //Create Project...//:​   * În situația în care nu a fost creat un proiect Google API anterior, se va afișa o fereastră prin care se poate realiza acest lucru, accesându-se opțiunea //Create Project...//:​
  
-{{ :​laboratoare:​laborator08:​start_using_google_apis_console.png?​nolink }}+{{ :​laboratoare:​laborator11:​start_using_google_apis_console.png?​nolink }}
  
   * Ulterior, vor trebui acceptate [[https://​console.developers.google.com/​tos?​id=UDS|termenii și condițiile utilizării Google API]]:   * Ulterior, vor trebui acceptate [[https://​console.developers.google.com/​tos?​id=UDS|termenii și condițiile utilizării Google API]]:
  
-{{ :​laboratoare:​laborator08:​terms_of_service.png?​nolink }}+{{ :​laboratoare:​laborator11:​terms_of_service.png?​nolink }}
  
   * Se identifică **numărul de proiect** care va fi utilizat de dispozitivul mobil pentru a se înregistra la serverul Google Cloud Messaging for Android (''​SENDER_ID''​),​ acesta putând fi preluat din:   * Se identifică **numărul de proiect** care va fi utilizat de dispozitivul mobil pentru a se înregistra la serverul Google Cloud Messaging for Android (''​SENDER_ID''​),​ acesta putând fi preluat din:
-    * bara de adrese a aplicației de navigare {{ :​laboratoare:​laborator08:​project_number01.png?​nolink }} +    * bara de adrese a aplicației de navigare {{ :​laboratoare:​laborator11:​project_number01.png?​nolink }} 
-    * secțiunea //​Overview//​ a consolei Google API {{ :​laboratoare:​laborator08:​project_number02.png?​nolink&​1000 }}+    * secțiunea //​Overview//​ a consolei Google API {{ :​laboratoare:​laborator11:​project_number02.png?​nolink&​1000 }}
   * Se activează API-ul //Cloud Messaging for Android// din secțiunea //Mobile APIs//, ce poate fi accesată din //APIs & auth// → //APIs// a consolei Google API.   * Se activează API-ul //Cloud Messaging for Android// din secțiunea //Mobile APIs//, ce poate fi accesată din //APIs & auth// → //APIs// a consolei Google API.
  
-{{ :​laboratoare:​laborator08:​enable_google_cloud_messaging_for_android01.png?​nolink&​400 }}+{{ :​laboratoare:​laborator11:​enable_google_cloud_messaging_for_android01.png?​nolink&​400 }}
  
   * Ulterior, vor putea fi vizualizate statistici cu privire la gradul de utilizare al acestui serviciu (număr de cereri realizate, distribuția codurilor de răspuns), precum și informații legate de monetizare.   * Ulterior, vor putea fi vizualizate statistici cu privire la gradul de utilizare al acestui serviciu (număr de cereri realizate, distribuția codurilor de răspuns), precum și informații legate de monetizare.
  
-{{ :​laboratoare:​laborator08:​enable_google_cloud_messaging_for_android02.png?​nolink&​400 }}+{{ :​laboratoare:​laborator11:​enable_google_cloud_messaging_for_android02.png?​nolink&​400 }}
  
   * În secțiunea //APIs & auth// → //​Credentials//​ se creează o **cheie publică** ce va fi utilizată pentru a transmite notificări de la serverul de aplicații la serverul Google Cloud Messaging for Android.   * În secțiunea //APIs & auth// → //​Credentials//​ se creează o **cheie publică** ce va fi utilizată pentru a transmite notificări de la serverul de aplicații la serverul Google Cloud Messaging for Android.
-    * Se selectează butonul //Create New Key// din secțiunea //Public API access//. {{ :​laboratoare:​laborator08:​create_new_key.png?​nolink }}+    * Se selectează butonul //Create New Key// din secțiunea //Public API access//. {{ :​laboratoare:​laborator11:​create_new_key.png?​nolink }}
     * Se specifică **proprietățile cheii publice** ce se dorește a fi generată în funcție de aplicația prin intermediul căreia se vor transmite notificări către dispozitivul Android prin intermediul Google Cloud Messaging.     * Se specifică **proprietățile cheii publice** ce se dorește a fi generată în funcție de aplicația prin intermediul căreia se vor transmite notificări către dispozitivul Android prin intermediul Google Cloud Messaging.
-      * **tipul cheii publice** (variante disponibile:​ //Server Key//, //Browser Key//, //Android Key//, //iOS Key//) - se va selecta cel mai general tip, //Server Key//. {{ :​laboratoare:​laborator08:​key_types.png?​nolink }} +      * **tipul cheii publice** (variante disponibile:​ //Server Key//, //Browser Key//, //Android Key//, //iOS Key//) - se va selecta cel mai general tip, //Server Key//. {{ :​laboratoare:​laborator11:​key_types.png?​nolink }} 
-      * **adresele Internet de la care pot fi acceptate solicitări** (câte o adresă Internet pe un rând): acest câmp poate fi lăsat vid, dacă vor fi acceptate cereri de la mai multe aplicații web, disponibile la diferite locații, sau se poate folosi adresa IP ''​0.0.0.0/​0'',​ în scop de testare. {{ :​laboratoare:​laborator08:​server_key_allowed_IPs.png?​nolink }} +      * **adresele Internet de la care pot fi acceptate solicitări** (câte o adresă Internet pe un rând): acest câmp poate fi lăsat vid, dacă vor fi acceptate cereri de la mai multe aplicații web, disponibile la diferite locații, sau se poate folosi adresa IP ''​0.0.0.0/​0'',​ în scop de testare. {{ :​laboratoare:​laborator11:​server_key_allowed_IPs.png?​nolink }} 
-    * Se identifică valoarea cheii publice care va fi utilizată {{ :​laboratoare:​laborator08:​key_for_server_applications.png?​nolink }}+    * Se identifică valoarea cheii publice care va fi utilizată {{ :​laboratoare:​laborator11:​key_for_server_applications.png?​nolink }}
  
 ==== Configurare client ==== ==== Configurare client ====
Line 92: Line 92:
 **2.** Se instalează SDK-ul Google Play Services, necesară autentificării / deautentificării la Google Cloud Messaging for Android din cadrul aplicației instalată pe dispozitivul mobil. **2.** Se instalează SDK-ul Google Play Services, necesară autentificării / deautentificării la Google Cloud Messaging for Android din cadrul aplicației instalată pe dispozitivul mobil.
   * În Eclipse Luna, se accesează //Android SDK Manager//   * În Eclipse Luna, se accesează //Android SDK Manager//
-    * din bara de unelte\\ {{ :​laboratoare:​laborator08:​eclipse_toolbar.png?​nolink&​900 }}+    * din bara de unelte\\ {{ :​laboratoare:​laborator11:​eclipse_toolbar.png?​nolink&​900 }}
     * din meniul principal, //Window// → //Android SDK Manager//     * din meniul principal, //Window// → //Android SDK Manager//
-  * Se selectează următoarele pachete:\\ {{ :​laboratoare:​laborator08:​android_sdk_manager.png?​nolink&​600 }}+  * Se selectează următoarele pachete:\\ {{ :​laboratoare:​laborator11:​android_sdk_manager.png?​nolink&​600 }}
     * din secțiunea ''​Android 4.1.2 (API 16)'',​ pachetul ''​Google APIs''​     * din secțiunea ''​Android 4.1.2 (API 16)'',​ pachetul ''​Google APIs''​
     * din sețiunea //Extras//, pachetul //Google Play Services//     * din sețiunea //Extras//, pachetul //Google Play Services//
Line 104: Line 104:
  
   * **AVD**   * **AVD**
-    * se creează un dispozitiv virtual pentru care va specifica la secțiunea //Target// valoarea //Google APIs (Google Inc.)//\\ {{ :​laboratoare:​laborator08:​android_virtual_device01.png?​nolink&​400 }} +    * se creează un dispozitiv virtual pentru care va specifica la secțiunea //Target// valoarea //Google APIs (Google Inc.)//\\ {{ :​laboratoare:​laborator11:​android_virtual_device01.png?​nolink&​400 }} 
-    * se asociază datele unui cont Google (nume de utilizator, parola) din //​Settings//​ → //​Accounts//,​ selectându-se opțiunea //Add account//\\ {{ :​laboratoare:​laborator08:​android_virtual_device02.png?​nolink }}+    * se asociază datele unui cont Google (nume de utilizator, parola) din //​Settings//​ → //​Accounts//,​ selectându-se opțiunea //Add account//\\ {{ :​laboratoare:​laborator11:​android_virtual_device02.png?​nolink }}
   * **Genymotion** - vor trebui instalate manual ''​ARM Transalation''​ și ''​Google Apps for Android''​ întrucât suportul pentru acestea nu mai este asigurat începând cu versiunea 2.0   * **Genymotion** - vor trebui instalate manual ''​ARM Transalation''​ și ''​Google Apps for Android''​ întrucât suportul pentru acestea nu mai este asigurat începând cu versiunea 2.0
-    * în //​Settings//​ → //ADB// → //ADB Connection Settings// se indică locația unde se găsește instalat SDK-ul de Android\\ {{ :​laboratoare:​laborator08:​genymotion_settings.png?​nolink&​400 }}+    * în //​Settings//​ → //ADB// → //ADB Connection Settings// se indică locația unde se găsește instalat SDK-ul de Android\\ {{ :​laboratoare:​laborator11:​genymotion_settings.png?​nolink&​400 }}
     * se instalează [[http://​pdsd2014.andreirosucojocaru.ro/​Genymotion-ARM-Translation_v1.1.zip|ARM Translation 1.1]] printr-o operație de tip drag-and-drop în ecranul principal al emulatorului     * se instalează [[http://​pdsd2014.andreirosucojocaru.ro/​Genymotion-ARM-Translation_v1.1.zip|ARM Translation 1.1]] printr-o operație de tip drag-and-drop în ecranul principal al emulatorului
-      * se afișează o fereastră de dialog ce va conține mesajul ''​File transfer in progress...''​\\ {{ :​laboratoare:​laborator08:​file_transfer_in_progress.png?​nolink }} +      * se afișează o fereastră de dialog ce va conține mesajul ''​File transfer in progress...''​\\ {{ :​laboratoare:​laborator11:​file_transfer_in_progress.png?​nolink }} 
-      * odată realizat transferul, se afișează o fereastră de dialog prin care utilizatorul este atenționat de faptul că arhiva ar putea corupe dispozitivul virtual, solicitându-i-se acordul pentru a continua instalarea\\ {{ :​laboratoare:​laborator08:​arm_translation_warning.png?​nolink }} +      * odată realizat transferul, se afișează o fereastră de dialog prin care utilizatorul este atenționat de faptul că arhiva ar putea corupe dispozitivul virtual, solicitându-i-se acordul pentru a continua instalarea\\ {{ :​laboratoare:​laborator11:​arm_translation_warning.png?​nolink }} 
-      * odată realizată instalarea, se afișează o fereastră de dialog ce conține rezultatul operației\\ {{ :​laboratoare:​laborator08:​arm_translation_result.png?​nolink }}  +      * odată realizată instalarea, se afișează o fereastră de dialog ce conține rezultatul operației\\ {{ :​laboratoare:​laborator11:​arm_translation_result.png?​nolink }}  
-    * se repornește emulatorul prin comanda\\ <​code>​adb -s 192.168.56.101:​5555 reboot</​code>​ (sau ''​adb reboot<''​ dacă există un sigur dispozitiv conectat la un moment dat) +    * se repornește emulatorul prin comanda\\ <​code>​adb -s 192.168.56.101:​5555 reboot</​code>​ (sau ''​adb reboot''​ dacă există un sigur dispozitiv conectat la un moment dat) 
-    * se instalează ''​Google Apps for Android''​ corespunzătoare versiunii sistemului de operare existentă pe dispozitivul virtual, printr-o operație de tip drag-and-drop în ecranul principal al emulatorului (sunt parcurse aceleași etape ca anterior)\\ {{ :​laboratoare:​laborator08:​google_play_services_warning.png?​nolink }} \\ {{ :​laboratoare:​laborator08:​google_play_services_result.png?​nolink }} +    * se instalează ''​Google Apps for Android''​ corespunzătoare versiunii sistemului de operare existentă pe dispozitivul virtual, printr-o operație de tip drag-and-drop în ecranul principal al emulatorului (sunt parcurse aceleași etape ca anterior)\\ {{ :​laboratoare:​laborator11:​google_play_services_warning.png?​nolink }} \\ {{ :​laboratoare:​laborator11:​google_play_services_result.png?​nolink }} 
       * [[http://​pdsd2014.andreirosucojocaru.ro/​gapps-kk-20140105-signed.zip|Google Apps for Android 4.4]]       * [[http://​pdsd2014.andreirosucojocaru.ro/​gapps-kk-20140105-signed.zip|Google Apps for Android 4.4]]
       * [[http://​pdsd2014.andreirosucojocaru.ro/​gapps-jb-20130813-signed.zip|Google Apps for Android 4.3]]       * [[http://​pdsd2014.andreirosucojocaru.ro/​gapps-jb-20130813-signed.zip|Google Apps for Android 4.3]]
Line 119: Line 119:
       * [[http://​pdsd2014.andreirosucojocaru.ro/​gapps-jb-20121011-signed.zip|Google Apps for Android 4.1]]       * [[http://​pdsd2014.andreirosucojocaru.ro/​gapps-jb-20121011-signed.zip|Google Apps for Android 4.1]]
     * indiferent de rezultat, se repornește emulatorul prin comanda\\ <​code>​adb -s 192.168.56.101:​5555 reboot</​code>​ (respectiv ''​adb reboot''​)     * indiferent de rezultat, se repornește emulatorul prin comanda\\ <​code>​adb -s 192.168.56.101:​5555 reboot</​code>​ (respectiv ''​adb reboot''​)
-    * se asociază datele unui cont Google (nume de utilizator, parola) din //​Settings//​ → //​Accounts//,​ selectându-se opțiunea //Add account//\\ {{ :​laboratoare:​laborator08:​google_account_setup01.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup02.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup03.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup04.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup05.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup06.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup07.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup08.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator08:​google_account_setup09.png?​nolink&​400 }}  +    * se asociază datele unui cont Google (nume de utilizator, parola) din //​Settings//​ → //​Accounts//,​ selectându-se opțiunea //Add account//\\ {{ :​laboratoare:​laborator11:​google_account_setup01.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup02.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup03.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup04.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup05.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup06.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup07.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup08.png?​nolink&​400 }}\\ {{ :​laboratoare:​laborator11:​google_account_setup09.png?​nolink&​400 }}  
-    * se actualizează //Play Store// prin accesarea opțiunii //​Settings//​ de mai multe ori (procesul de actualizare va fi pornit în fundal, în mod automat)\\ {{ :​laboratoare:​laborator08:​google_account_setup10.png?​nolink&​400 }}+    * se actualizează //Play Store// prin accesarea opțiunii //​Settings//​ de mai multe ori (procesul de actualizare va fi pornit în fundal, în mod automat)\\ {{ :​laboratoare:​laborator11:​google_account_setup10.png?​nolink&​400 }}
  
 **4.** În situația în care se va folosi un server CCS (XMPP), în prezent, nu mai este necesară o înregistrare suplimentară pentru a se obține acceptul Google de a utiliza serviciul de transmitere a mesajelor de pe dispozitivul mobil. Anterior, o astfel de solicitare trebuia transmisă la [[https://​services.google.com/​fb/​forms/​gcm/​|Upstream Google Cloud Messaging and User Notifications Sign-up]]. **4.** În situația în care se va folosi un server CCS (XMPP), în prezent, nu mai este necesară o înregistrare suplimentară pentru a se obține acceptul Google de a utiliza serviciul de transmitere a mesajelor de pe dispozitivul mobil. Anterior, o astfel de solicitare trebuia transmisă la [[https://​services.google.com/​fb/​forms/​gcm/​|Upstream Google Cloud Messaging and User Notifications Sign-up]].
Line 131: Line 131:
  
 **6**. Se descarcă cea mai recentă versiune stabilă a mediului de dezvoltare Eclipse IDE for Java EE Developers (Windows: [[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-win32.zip|32-bit]]|[[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-win32-x86_64.zip|64-bit]],​ Linux: [[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-linux-gtk.tar.gz|32-bit]]|[[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz|64-bit]]) și se integrează cu serverul web Apache Tomcat. **6**. Se descarcă cea mai recentă versiune stabilă a mediului de dezvoltare Eclipse IDE for Java EE Developers (Windows: [[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-win32.zip|32-bit]]|[[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-win32-x86_64.zip|64-bit]],​ Linux: [[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-linux-gtk.tar.gz|32-bit]]|[[http://​www.eclipse.org/​downloads/​download.php?​file=/​technology/​epp/​downloads/​release/​luna/​SR2/​eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz|64-bit]]) și se integrează cu serverul web Apache Tomcat.
-  * //Window// → //​Preferences//​ → //Server// → //Runtime Environments//​ și se accesează butonul //​Add...//​\\ {{ :​laboratoare:​laborator08:​server_configuration01.png?​nolink&​500 }} +  * //Window// → //​Preferences//​ → //Server// → //Runtime Environments//​ și se accesează butonul //​Add...//​\\ {{ :​laboratoare:​laborator11:​server_configuration01.png?​nolink&​500 }} 
-  * se specifică tipul serverului web (''​Apache Tomcat v8.0''​)\\ {{ :​laboratoare:​laborator08:​server_configuration02.png?​nolink&​500 }} +  * se specifică tipul serverului web (''​Apache Tomcat v8.0''​)\\ {{ :​laboratoare:​laborator11:​server_configuration02.png?​nolink&​500 }} 
-  * se precizează locația la care se găsește serverul web (directorul în care a fost dezarhivat, fără alte configurări) și versiunea de Java Runtime Environment\\ {{ :​laboratoare:​laborator08:​server_configuration03.png?​nolink&​500 }}+  * se precizează locația la care se găsește serverul web (directorul în care a fost dezarhivat, fără alte configurări) și versiunea de Java Runtime Environment\\ {{ :​laboratoare:​laborator11:​server_configuration03.png?​nolink&​500 }}
 <note tip>Se oferă și posibilitatea descărcării și instalării unei instanțe a serverului web Apache Tomcat, însă de regulă aceasta nu referă cea mai recentă versiune.</​note>​ <note tip>Se oferă și posibilitatea descărcării și instalării unei instanțe a serverului web Apache Tomcat, însă de regulă aceasta nu referă cea mai recentă versiune.</​note>​
  
-{{ :​laboratoare:​laborator08:​server_configuration04.png?​nolink&​500 }}+{{ :​laboratoare:​laborator11:​server_configuration04.png?​nolink&​500 }}
  
-  * //Window// → //Show View// → //​Other...//​ → //Servers// → //Server// și se accesează legătura //No servers are available. Click this link to create a new server...// sau click pe butonul drept al mouse-ului în spațiul de lucru //Server// → //New// → //​Server//​\\ {{ :​laboratoare:​laborator08:​server_configuration05.png?​nolink }}\\ {{ :​laboratoare:​laborator08:​server_configuration06.png?​nolink&​800 }} +  * //Window// → //Show View// → //​Other...//​ → //Servers// → //Server// și se accesează legătura //No servers are available. Click this link to create a new server...// sau click pe butonul drept al mouse-ului în spațiul de lucru //Server// → //New// → //​Server//​\\ {{ :​laboratoare:​laborator11:​server_configuration05.png?​nolink }}\\ {{ :​laboratoare:​laborator11:​server_configuration06.png?​nolink&​800 }} 
-  * se selectează serverul web definit anterior și se accesează butonul //​Finish//​\\ {{ :​laboratoare:​laborator08:​server_configuration07.png?​nolink&​500 }} +  * se selectează serverul web definit anterior și se accesează butonul //​Finish//​\\ {{ :​laboratoare:​laborator11:​server_configuration07.png?​nolink&​500 }} 
-  * se asociază proiectului un server web pe care va rula: click pe butonul drept al mouse-ului pe denumirea proiectului → //​Properties//​ → //Server// și se selectează serverul web definit anterior\\ {{ :​laboratoare:​laborator08:​server_configuration08.png?​nolink&​500 }}+  * se asociază proiectului un server web pe care va rula: click pe butonul drept al mouse-ului pe denumirea proiectului → //​Properties//​ → //Server// și se selectează serverul web definit anterior\\ {{ :​laboratoare:​laborator11:​server_configuration08.png?​nolink&​500 }}
   * se realizează o referință către biblioteca serverului web, aceasta fiind trecută în classpath: click pe butonul drept al mouse-ului pe denumirea proiectului → //Build Path// → //Add Library//   * se realizează o referință către biblioteca serverului web, aceasta fiind trecută în classpath: click pe butonul drept al mouse-ului pe denumirea proiectului → //Build Path// → //Add Library//
-    * se alege //Server Runtime//\\ {{ :​laboratoare:​laborator08:​server_configuration09.png?​nolink&​500 }} +    * se alege //Server Runtime//\\ {{ :​laboratoare:​laborator11:​server_configuration09.png?​nolink&​500 }} 
-    * se indică serverul web definit anterior și se accesează butonul ''​Finish''​\\ {{ :​laboratoare:​laborator08:​server_configuration10.png?​nolink&​500 }}+    * se indică serverul web definit anterior și se accesează butonul ''​Finish''​\\ {{ :​laboratoare:​laborator11:​server_configuration10.png?​nolink&​500 }}
  
 **7.** Se descarcă și se instalează cea mai recentă versiune stabilă a motorului pentru baze de date MySQL. **7.** Se descarcă și se instalează cea mai recentă versiune stabilă a motorului pentru baze de date MySQL.
   * Windows: se poate folosi [[https://​dev.mysql.com/​get/​Downloads/​MySQLInstaller/​mysql-installer-community-5.7.7.0-rc.msi|MySQL Community Server]].   * Windows: se poate folosi [[https://​dev.mysql.com/​get/​Downloads/​MySQLInstaller/​mysql-installer-community-5.7.7.0-rc.msi|MySQL Community Server]].
-  * Linux: se poate utiliza comanda <​code>​student@pdsd2015:~$ sudo apt-get install mysql-server</​code>​+  * Linux: se poate utiliza comanda <​code>​student@eim2016:~$ sudo apt-get install mysql-server</​code>​
  
 <​note>​Configurarea propriu-zisă nu presupune decât specificarea unei parole de administrare.</​note>​ <​note>​Configurarea propriu-zisă nu presupune decât specificarea unei parole de administrare.</​note>​
Line 153: Line 153:
 Pentru gestiunea propriu-zisă a bazelor de date, poate fi utiliza MySQL Workbench [[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-win32.msi|Windows]]|[[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-1ubu1410-amd64.deb|Ubuntu]]|[[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-1.el7.x86_64.rpm|Fedora Core]]|[[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-1.fc21.x86_64.rpm|Red Hat]], [[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-osx-x86_64.dmg|Mac OS X]]. Pentru gestiunea propriu-zisă a bazelor de date, poate fi utiliza MySQL Workbench [[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-win32.msi|Windows]]|[[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-1ubu1410-amd64.deb|Ubuntu]]|[[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-1.el7.x86_64.rpm|Fedora Core]]|[[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-1.fc21.x86_64.rpm|Red Hat]], [[https://​dev.mysql.com/​get/​Downloads/​MySQLGUITools/​mysql-workbench-community-6.3.3-osx-x86_64.dmg|Mac OS X]].
  
-De asemenea, se poate accesa consola MySQL folosind comanda <​code>​student@pdsd2015:~$ mysql -u root -p</​code>​+De asemenea, se poate accesa consola MySQL folosind comanda <​code>​student@eim2016:~$ mysql -u root -p</​code>​
 Va trebui indicată parola, atunci când aceasta este solicitată. Va trebui indicată parola, atunci când aceasta este solicitată.
  
Line 174: Line 174:
  
 Se realizează o referință către biblioteca pentru accesarea Google Cloud Messaging care este localizată în ''<​android-sdk>/​extras/​google/​google_play_services/​libproject/​google-play-services_lib''​ Se realizează o referință către biblioteca pentru accesarea Google Cloud Messaging care este localizată în ''<​android-sdk>/​extras/​google/​google_play_services/​libproject/​google-play-services_lib''​
-  * se accesează //File// → //Import// → //Android// → //Existing Android Code Into Workspace//​\\ {{ :​laboratoare:​laborator08:​google_cloud_messaging_library_import01.png?​nolink&​500 }} +  * se accesează //File// → //Import// → //Android// → //Existing Android Code Into Workspace//​\\ {{ :​laboratoare:​laborator11:​google_cloud_messaging_library_import01.png?​nolink&​500 }} 
-  * se indică locația unde se găsește instalată biblioteca pentru accesarea Google Cloud Messaging, creându-se o copie a acestuia în spațiul de lucru (se bifează opțiunea //Copy projects into workspace//​)\\ {{ :​laboratoare:​laborator08:​google_cloud_messaging_library_import02.png?​nolink&​800 }} +  * se indică locația unde se găsește instalată biblioteca pentru accesarea Google Cloud Messaging, creându-se o copie a acestuia în spațiul de lucru (se bifează opțiunea //Copy projects into workspace//​)\\ {{ :​laboratoare:​laborator11:​google_cloud_messaging_library_import02.png?​nolink&​800 }} 
-  * în fereastra corespunzătoare proiectului aferent aplicației Android (click dreapta pe denumirea proiectului în //Package Explorer// → //​Properties//​),​ se accesează opțiunea //Android// și se specifică referința către biblioteca respectivă în secțiunea //Library// (accesând butonul //Add//)\\ {{ :​laboratoare:​laborator08:​google_cloud_messaging_library_import03.png?​nolink&​800 }}+  * în fereastra corespunzătoare proiectului aferent aplicației Android (click dreapta pe denumirea proiectului în //Package Explorer// → //​Properties//​),​ se accesează opțiunea //Android// și se specifică referința către biblioteca respectivă în secțiunea //Library// (accesând butonul //Add//)\\ {{ :​laboratoare:​laborator11:​google_cloud_messaging_library_import03.png?​nolink&​800 }}
  
 ==== Structura Proiectului ==== ==== Structura Proiectului ====
Line 188: Line 188:
   - (opțional) un **serviciu** (''​GoogleCloudMessagingIntentService''​) lansat în execuție în momentul în care este livrat mesajul (de către ascultător) în cadrul căruia acesta este procesat propriu-zis;​ utilizarea unui serviciu este necesară doar în situația în care prelucrarea mesajului se realizează într-un interval de timp mai mare, fiind necesar să se asigure faptul că dispozitivul mobil nu devine inactiv între timp.   - (opțional) un **serviciu** (''​GoogleCloudMessagingIntentService''​) lansat în execuție în momentul în care este livrat mesajul (de către ascultător) în cadrul căruia acesta este procesat propriu-zis;​ utilizarea unui serviciu este necesară doar în situația în care prelucrarea mesajului se realizează într-un interval de timp mai mare, fiind necesar să se asigure faptul că dispozitivul mobil nu devine inactiv între timp.
  
-{{ :​laboratoare:​laborator08:​package_explorer.png?​nolink&​500 }}+{{ :​laboratoare:​laborator11:​package_explorer.png?​nolink&​500 }}
  
 === Activitatea GoogleCloudMessagingActivity === === Activitatea GoogleCloudMessagingActivity ===
Line 447: Line 447:
 </​code>​ </​code>​
   * în fișierul ''​AndroidManifest.xml''​ se precizează permisiunile necesare pentru ca aplicația să poată utiliza funcționalitățile oferite de Google Cloud Messaging\\ <code xml>   * în fișierul ''​AndroidManifest.xml''​ se precizează permisiunile necesare pentru ca aplicația să poată utiliza funcționalitățile oferite de Google Cloud Messaging\\ <code xml>
-<​manifest package="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging"​ ...>+<​manifest package="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging"​ ...>
  
   <​uses-permission ​   <​uses-permission ​
Line 459: Line 459:
  
   <​permission ​   <​permission ​
-    android:​name="​ro.pub.systems.pdsd.lab08.googlecloudmessaging.permission.C2D_MESSAGE"​+    android:​name="​ro.pub.systems.eim.lab11.googlecloudmessaging.permission.C2D_MESSAGE"​
     android:​protectionLevel="​signature"​ />     android:​protectionLevel="​signature"​ />
   <​uses-permission ​   <​uses-permission ​
-    android:​name="​ro.pub.systems.pdsd.lab08.googlecloudmessaging.permission.C2D_MESSAGE"​ />+    android:​name="​ro.pub.systems.eim.lab11.googlecloudmessaging.permission.C2D_MESSAGE"​ />
  
   <​application ...>   <​application ...>
Line 469: Line 469:
       android:​value="​@integer/​google_play_services_version"​ />       android:​value="​@integer/​google_play_services_version"​ />
     <​activity     <​activity
-      android:​name="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.view.GoogleCloudMessagingActivity"​+      android:​name="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.view.GoogleCloudMessagingActivity"​
       android:​label="​@string/​app_name"​ >       android:​label="​@string/​app_name"​ >
       <​intent-filter>​       <​intent-filter>​
Line 477: Line 477:
     </​activity>​     </​activity>​
     <​activity     <​activity
-      android:​name="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.view.NotificationHandlerActivity"​ +      android:​name="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.view.NotificationHandlerActivity"​ 
-      android:​parentActivityName="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.view.GoogleCloudMessagingActivity">​+      android:​parentActivityName="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.view.GoogleCloudMessagingActivity">​
       <​meta-data       <​meta-data
         android:​name="​android.support.PARENT_ACTIVITY"​         android:​name="​android.support.PARENT_ACTIVITY"​
-        android:​value="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.view.GoogleCloudMessagingActivity"​ />+        android:​value="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.view.GoogleCloudMessagingActivity"​ />
     </​activity>​     </​activity>​
     <​receiver     <​receiver
-      android:​name="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.controller.GoogleCloudMessagingBroadcastReceiver"​+      android:​name="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.controller.GoogleCloudMessagingBroadcastReceiver"​
       android:​permission="​com.google.android.c2dm.permission.SEND"​ >       android:​permission="​com.google.android.c2dm.permission.SEND"​ >
       <​intent-filter>​       <​intent-filter>​
         <action android:​name="​com.google.android.c2dm.intent.RECEIVE"​ />         <action android:​name="​com.google.android.c2dm.intent.RECEIVE"​ />
-        <​category android:​name="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.controller.GoogleCloudMessagingBroadcastReceiver"​ />+        <​category android:​name="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.controller.GoogleCloudMessagingBroadcastReceiver"​ />
       </​intent-filter>​       </​intent-filter>​
     </​receiver>​     </​receiver>​
-    <service android:​name="​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.controller.GoogleCloudMessagingIntentService"​ />+    <service android:​name="​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.controller.GoogleCloudMessagingIntentService"​ />
   </​application>​   </​application>​
 </​manifest>​ </​manifest>​
Line 871: Line 871:
   * se generează o cheie publică pentru transmiterea de mesaje provenind de la un server, indiferent de adresa Internet la care se găsește acesta.   * se generează o cheie publică pentru transmiterea de mesaje provenind de la un server, indiferent de adresa Internet la care se găsește acesta.
  
-Mai multe detalii pot fi obținute în secțiunea [[:​laboratoare:​laborator08#​configurare|Configurare]].+Mai multe detalii pot fi obținute în secțiunea [[:​laboratoare:​laborator11#​configurare|Configurare]].
  
 <​note>​În cazul în care nu dispuneți de un cont Google, acesta va trebui creat înainte de a implementa aceste cerințe.</​note>​ <​note>​În cazul în care nu dispuneți de un cont Google, acesta va trebui creat înainte de a implementa aceste cerințe.</​note>​
Line 879: Line 879:
 ==== Clientul Android ==== ==== Clientul Android ====
  
-**2.** În contul Github personal, să se creeze un depozit denumit 'Laborator08-Client'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).+**2.** În contul Github personal, să se creeze un depozit denumit 'Laborator11-Client'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).
  
-**3.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​www.github.com/​pdsd2015/Laborator08-Client|]]. ​+**3.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​www.github.com/​eim2016/Laborator11-Client|]]. ​
  
-În urma acestei operații, directorul ​Laborator08-Client va trebui să se conțină directoarele ''​labtasks''​ și ''​solutions''​. ​+În urma acestei operații, directorul ​Laborator11-Client va trebui să se conțină directoarele ''​labtasks''​ și ''​solutions''​. ​
  
 <​code>​ <​code>​
-student@pdsd2015:~$ git clone https://​www.github.com/​pdsd2015/Laborator08-Client+student@eim2016:~$ git clone https://​www.github.com/​eim2016/Laborator11-Client
 </​code>​ </​code>​
  
-**4.** Să se încarce conținutul descărcat în cadrul depozitului 'Laborator08-Client'​ de pe contul Github personal. <​code>​ +**4.** Să se încarce conținutul descărcat în cadrul depozitului 'Laborator11-Client'​ de pe contul Github personal. <​code>​ 
-student@pdsd2015:~$ cd Laborator08-Client +student@eim2016:~$ cd Laborator11-Client 
-student@pdsd2015:~/Laborator08-Client$ git remote add Laborator08-Client_perfectstudent https://​github.com/​perfectstudent/​Laborator08-Client +student@eim2016:~/Laborator11-Client$ git remote add Laborator11-Client_perfectstudent https://​github.com/​perfectstudent/​Laborator11-Client 
-student@pdsd2015:~/Laborator08-Client$ git push Laborator08-Client_perfectstudent master+student@eim2016:~/Laborator11-Client$ git push Laborator11-Client_perfectstudent master
 </​code>​ </​code>​
  
-**5.** Să se importe în mediul integrat de dezvoltare ​Eclipse Luna SR1a (4.4.1) proiectele ''​google-play-service_lib''​ și ''​GoogleCloudMessagingClient''​ din directorul ''​labtasks''​ (în această ordine).+**5.** Să se importe în mediul integrat de dezvoltare ​preferat ​(Android Studio sau Eclipse) proiectele ''​google-play-service_lib''​ și ''​GoogleCloudMessagingClient''​ din directorul ''​labtasks''​ (în această ordine).
  
 Să se configureaze mașina pe care va rula aplicația: Să se configureaze mașina pe care va rula aplicația:
Line 903: Line 903:
 <​note>​În situația în care nu se reușește configurarea unui dispozitiv virtual, se poate folosi [[http://​pdsd2015.andreirosucojocaru.ro/​resources/​Genymobile.tar.gz|o imagine Nexus S (API 16)]] care trebuie plasată în directorul ''​$HOME''​.</​note>​ <​note>​În situația în care nu se reușește configurarea unui dispozitiv virtual, se poate folosi [[http://​pdsd2015.andreirosucojocaru.ro/​resources/​Genymobile.tar.gz|o imagine Nexus S (API 16)]] care trebuie plasată în directorul ''​$HOME''​.</​note>​
  
-Mai multe detalii pot fi obținute în secțiunea [[:​laboratoare:​laborator08#​configurare_client|Configurare client]]+Mai multe detalii pot fi obținute în secțiunea [[:​laboratoare:​laborator11#​configurare_client|Configurare client]]
  
-**6.** În interfața ''​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.general.Constants'',​ trebuie modificate următoarele valori, __**numai în situația în care se folosește un server web Apache Tomcat**__:+**6.** În interfața ''​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.general.Constants'',​ trebuie modificate următoarele valori, __**numai în situația în care se folosește un server web Apache Tomcat**__:
   * ''​PROJECT_NUMBER''​ - cu numărul de proiect generat de consola Google API;   * ''​PROJECT_NUMBER''​ - cu numărul de proiect generat de consola Google API;
   * adresele Internet pentru serviciile care expun funcționalități către dispozitivul mobil:   * adresele Internet pentru serviciile care expun funcționalități către dispozitivul mobil:
Line 916: Line 916:
 **7.** Să se ruleze aplicația Android și să se genereze identificatorul de înregistrare,​ care va fi transmis către serverul de aplicații prin accesarea butonului ''​Send Registration ID''​. **7.** Să se ruleze aplicația Android și să se genereze identificatorul de înregistrare,​ care va fi transmis către serverul de aplicații prin accesarea butonului ''​Send Registration ID''​.
  
-{{ :​laboratoare:​laborator08:​mobile_device_application01.png?​nolink&​400 }}+{{ :​laboratoare:​laborator11:​mobile_device_application01.png?​nolink&​400 }}
  
-{{ :​laboratoare:​laborator08:​mobile_device_application02.png?​nolink&​400 }}+{{ :​laboratoare:​laborator11:​mobile_device_application02.png?​nolink&​400 }}
  
-În fragmentul ''​UnregisteredFragment''​ din pachetul ''​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.view'',​ pe clasa ascultător asociată butonului, să se transmită o cerere HTTP de tip POST către componenta din serverul de aplicații, responsbilă cu înregistrarea dispozitivelor mobile (disponibilă la ''​Constants.DEVICE_REGISTRATION_SERVICE_ADDRESS''​).+În fragmentul ''​UnregisteredFragment''​ din pachetul ''​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.view'',​ pe clasa ascultător asociată butonului, să se transmită o cerere HTTP de tip POST către componenta din serverul de aplicații, responsbilă cu înregistrarea dispozitivelor mobile (disponibilă la ''​Constants.DEVICE_REGISTRATION_SERVICE_ADDRESS''​).
  
 Aceasta va conține următorii parametrii: Aceasta va conține următorii parametrii:
Line 933: Line 933:
 **8.** În situația în care înregistrarea a fost realizată cu succes, interfața grafică a aplicației este modificată în sensul în care se dorește afișarea unei liste cu utilizatorii care au fost înregistrați deja, către care se dorește transmiterea unui mesaj de notificare. **8.** În situația în care înregistrarea a fost realizată cu succes, interfața grafică a aplicației este modificată în sensul în care se dorește afișarea unei liste cu utilizatorii care au fost înregistrați deja, către care se dorește transmiterea unui mesaj de notificare.
  
-{{ :​laboratoare:​laborator08:​mobile_device_application03.png?​nolink&​400 }}+{{ :​laboratoare:​laborator11:​mobile_device_application03.png?​nolink&​400 }}
  
 **a)** Pe firul de execuție ''​RegisteredDevicesFetcher''​ din fragmentul ''​RegisteredFragment'',​ să se transmită o cerere HTTP de tip GET către către componenta din serverul de aplicații, responsbilă cu furnizarea listei dispozitivelor mobile înregistrate,​ în format JSON (disponibilă la ''​Constants.REGISTERED_DEVICES_SERVICE_ADDRESS''​). **a)** Pe firul de execuție ''​RegisteredDevicesFetcher''​ din fragmentul ''​RegisteredFragment'',​ să se transmită o cerere HTTP de tip GET către către componenta din serverul de aplicații, responsbilă cu furnizarea listei dispozitivelor mobile înregistrate,​ în format JSON (disponibilă la ''​Constants.REGISTERED_DEVICES_SERVICE_ADDRESS''​).
Line 985: Line 985:
 **9.** În momentul în care este transmis un mesaj de către expeditor, să se observe notificarea destinatarului și activitatea în care pot fi vizualizați parametrii pachetului furnizat de serverul Google Cloud Messaging. **9.** În momentul în care este transmis un mesaj de către expeditor, să se observe notificarea destinatarului și activitatea în care pot fi vizualizați parametrii pachetului furnizat de serverul Google Cloud Messaging.
  
-{{ :​laboratoare:​laborator08:​mobile_device_application04.png?​nolink&​400 }}+{{ :​laboratoare:​laborator11:​mobile_device_application04.png?​nolink&​400 }}
  
-**10.** ​ Să se încarce modificările realizate în cadrul depozitului 'Laborator08-Client'​ de pe contul Github personal, folosind un mesaj sugestiv. <​code>​ +**10.** ​ Să se încarce modificările realizate în cadrul depozitului 'Laborator11-Client'​ de pe contul Github personal, folosind un mesaj sugestiv. <​code>​ 
-student@pdsd2015:~/Laborator08-Client$ git add * +student@eim2016:~/Laborator11-Client$ git add * 
-student@pdsd2015:~/Laborator08-Client$ git commit -m "​implemented taks for laboratory ​08-Client"​ +student@eim2016:~/Laborator11-Client$ git commit -m "​implemented taks for laboratory ​11-Client"​ 
-student@pdsd2015:~/Laborator08-Client$ git push Laborator08-Client_perfectstudent master+student@eim2016:~/Laborator11-Client$ git push Laborator11-Client_perfectstudent master
 </​code>​ </​code>​
  
 ==== Serverul de Aplicații (Opțional) ==== ==== Serverul de Aplicații (Opțional) ====
  
-<note tip>​Informații referitoare la configurarea serverului de aplicații pot fi obținute la [[:​laboratoare:​laborator08#​configurare_server_optional|Configurare Server]].</​note>​+<note tip>​Informații referitoare la configurarea serverului de aplicații pot fi obținute la [[:​laboratoare:​laborator11#​configurare_server_optional|Configurare Server]].</​note>​
  
 Funcționalitatea corespunzătoare serverului de aplicații este disponibilă în două variante: Funcționalitatea corespunzătoare serverului de aplicații este disponibilă în două variante:
Line 1006: Line 1006:
   * transmiterea unui mesaj sub forma unui notificări către un dispozitiv mobil, prin intermediul serverului Google Cloud Messaging.   * transmiterea unui mesaj sub forma unui notificări către un dispozitiv mobil, prin intermediul serverului Google Cloud Messaging.
  
-**11.** În contul Github personal, să se creeze un depozit denumit 'Laborator08-Server'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).+**11.** În contul Github personal, să se creeze un depozit denumit 'Laborator11-Server'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).
  
-**12.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​www.github.com/​pdsd2015/Laborator08-Server|]]. ​+**12.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​www.github.com/​eim2016/Laborator11-Server|]]. ​
  
-În urma acestei operații, directorul ​Laborator08-Server va trebui să se conțină directoarele ''​PHP''​ și ''​ServletsJSP''​. ​+În urma acestei operații, directorul ​Laborator11-Server va trebui să se conțină directoarele ''​PHP''​ și ''​ServletsJSP''​. ​
  
 <​code>​ <​code>​
-student@pdsd2015:~$ git clone https://​www.github.com/​pdsd2015/Laborator08-Server+student@eim2016:~$ git clone https://​www.github.com/​eim2016/Laborator11-Server
 </​code>​ </​code>​
  
-**13.** Să se încarce conținutul descărcat în cadrul depozitului 'Laborator08-Server'​ de pe contul Github personal. <​code>​ +**13.** Să se încarce conținutul descărcat în cadrul depozitului 'Laborator11-Server'​ de pe contul Github personal. <​code>​ 
-student@pdsd2015:~$ cd Laborator08-Server +student@eim2016:~$ cd Laborator11-Server 
-student@pdsd2015:~/Laborator08-Server$ git remote add Laborator08-Server_perfectstudent https://​github.com/​perfectstudent/​Laborator08-Server +student@eim2016:~/Laborator11-Server$ git remote add Laborator11-Server_perfectstudent https://​github.com/​perfectstudent/​Laborator11-Server 
-student@pdsd2015:~/Laborator08-Server$ git push Laborator08-Server_perfectstudent master+student@eim2016:~/Laborator11-Server$ git push Laborator11-Server_perfectstudent master
 </​code>​ </​code>​
  
Line 1042: Line 1042:
 Rularea acestuia se poate realiza folosind una dintre următoarele variante, presupunând că vă aflați în directorul în care se găsește acest fișier: Rularea acestuia se poate realiza folosind una dintre următoarele variante, presupunând că vă aflați în directorul în care se găsește acest fișier:
   - <​code>​   - <​code>​
-student@pdsd2015:~/Laborator08-Server/​JSPServlets$ mysql -u root -p <​googlecloudmessaging.sql+student@eim2016:~/Laborator11-Server/​JSPServlets$ mysql -u root -p <​googlecloudmessaging.sql
 </​code>​ </​code>​
   - <​code>​   - <​code>​
-student@pdsd2015:~/Laborator08-Server/​JSPServlets$ mysql -u root -p+student@eim2016:~/Laborator11-Server/​JSPServlets$ mysql -u root -p
 Enter password: Enter password:
 </​code>​ </​code>​
Line 1057: Line 1057:
 **16.** Să se importe proiectul ''​GoogleCloudMessagingServer''​ în mediul de dezvoltare Eclipse IDE for Java EE Developers. **16.** Să se importe proiectul ''​GoogleCloudMessagingServer''​ în mediul de dezvoltare Eclipse IDE for Java EE Developers.
  
-**17.** În interfața ''​Constants''​ din pachetul ''​ro.pub.cs.systems.pdsd.lab08.googlecloudmessaging.general'',​ trebuie modificate următoarele valori: ​+**17.** În interfața ''​Constants''​ din pachetul ''​ro.pub.cs.systems.eim.lab11.googlecloudmessaging.general'',​ trebuie modificate următoarele valori: ​
   * ''​DATABASE_PASSWORD''​ - parola de administrare a motorului pentru gestiunea bazei de date MySQL, care a fost introdusă la instalarea acestui produs;   * ''​DATABASE_PASSWORD''​ - parola de administrare a motorului pentru gestiunea bazei de date MySQL, care a fost introdusă la instalarea acestui produs;
   * ''​API_KEY''​ - cheia publică de acces a serverului Google Cloud Messaging de către serverul de aplicații, așa cum a fost generată de Consola Google API.   * ''​API_KEY''​ - cheia publică de acces a serverului Google Cloud Messaging de către serverul de aplicații, așa cum a fost generată de Consola Google API.
Line 1063: Line 1063:
 **18.** În acest moment, se poate realiza comunicația client Android ↔ server de aplicații prin intermediul serviciului Google Cloud Messaging: **18.** În acest moment, se poate realiza comunicația client Android ↔ server de aplicații prin intermediul serviciului Google Cloud Messaging:
   * clientul Android trimite identificatorul de înregistrare către serverul de aplicații;   * clientul Android trimite identificatorul de înregistrare către serverul de aplicații;
-  * se accesează componenta pentru transmiterea unui mesaj prin intermediul unei notificări în aplicația curentă de navigare (//eng.// browser)\\ {{ pdsd:​laboratoare:​laborator08:​message_push.png?​nolink&​800 }}+  * se accesează componenta pentru transmiterea unui mesaj prin intermediul unei notificări în aplicația curentă de navigare (//eng.// browser)\\ {{ pdsd:​laboratoare:​laborator11:​message_push.png?​nolink&​800 }}
     * PHP: http://​pdsd2015.andreirosucojocaru.ro/​exemple/​laboratoare/​laborator08/​googlecloudmessaging/​message_push.php;​     * PHP: http://​pdsd2015.andreirosucojocaru.ro/​exemple/​laboratoare/​laborator08/​googlecloudmessaging/​message_push.php;​
     * JavaServlets / JSP (local): http://​192.168.56.1:​8080/​GoogleCloudMessagingServer/​MessagePushServlet.     * JavaServlets / JSP (local): http://​192.168.56.1:​8080/​GoogleCloudMessagingServer/​MessagePushServlet.
laboratoare/laborator11.txt · Last modified: 2016/04/26 00:21 by Andrei Roșu-Cojocaru
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0