SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Örnek Uygulama:
Mobil Eğitim
Uzaktan Tablet Kontrolü
CENK DERİNÖZLÜ
Sunum İçeriği
 Google Bulut Mesajlaşma Teknolojisi Kavramlar
 Google Bulut Mesajlaşma Yaşam Döngüsü
 Google Bulut Mesajlaşma Mimarisi
 Uygulama Sunucusu
 Gcm Sunucusu
 Android Uygulama
 Örnek Uygulama
Google Bulut Mesajlaşma
Teknolojisi Nedir?
 Google bulut mesajlaşma teknolojisi sunucu
bilgisayarlardan gönderilen verilerin android tabanlı
cihazlardan alınmasını sağlayan servistir.
 Bulut Mesajlaşma teknolojisi kullanılarak android
uygulamalarına veri gönderilebilmektedir.
Google Bulut Mesajlaşma
Teknolojisi Kullanım Alanları
 Mobil uygulamaların güncelleme denetimleri
 Anlık Veri Takibi Yapılan Uygulamalar
(Borsa ,Döviz, Maç Sonuçları vb. )
 Android merkezli her türlü otomasyon projesi için
cihazların uzaktan kontrol edilmesi
Bulut Mesajlaşma Servisinin
Avantajları Nelerdir?
 Bulut Mesajlaşma servisi sayesinde sunucu üzerindeki
veri güncellendiğinde android cihaza sunucu verisinin
güncellendiği bilgisi iletilir.
 Bu servis sayesinde android cihaz, sunucuda güncel bir
veri varmı diye sunucuyla sürekli bağlantı kurmak
yerine sadece güncelleme olduğu anlarda bağlantı
kuracağı için pil kullanım oranı düşmektedir.
Bulut Mesajlaşma Servisi (GCM)
Temel Karakteristikleri
GCM Teknolojisi;
 3. parti uygulama sunucularının Android
uygulamalarına mesaj göndermesine izin verir.
 Android cihaz üzerinde çalışan Android
uygulamasının sürekli mesaj dinlemesine gerek yoktur.
Sistem android uygulamasını yeni mesaj geldiğinde
haberdar edecektir.
 Android Bulut mesajlaşma Android 2.2 ve üstü tüm
işletim sistemi versiyonları ile derlenmiş android
uygulamalarını desteklemektedir.
GCM Nasıl Çalışır?
GCM Mimarisi Bileşenler ve Tanımlama Bilgileri olmak
üzere iki kategoride incelenebilir.
1-Bileşenler
Mobil Cihaz:
 GCM kullanan android uygulamasının yüklü olduğu
cihazdır.
 Mobil Cihaz üzerinde en az android 2.2 versiyonu
android işletim sistemi kurulu olmalıdr.
 Andorid 4.04 den düşük versiyonlar için cihaz en az bir
Google hesabına sahip olmalıdır.
Bileşenler
 3rd Parti Uygulama Sunucusu:
Uygulama sunucusu GCM sunucu vasıtasıyla android
uygulamasına mesaj göndermekten sorumludur.
Bileşenler
 GCM Sunucular
3rd Parti uygulama sunuculardan gelen mesajları alıp
ilgili mobil cihaza ileten Google sunucularıdır.
2-Tanımlama Bilgileri
 Sender Id:
Google API console üzerinden oluşturulan proje
numarasıdır.
Android uygulamasının gcm sunucuya kayıt işlemi
sırasında kullanılır.
Tanımlama Bilgileri
 Application Id:
Android uygulamasının gcm sunucuya kayıt
edilmesinde kullanılan uygulama numarasıdır.
Tanımlama Bilgileri
RegistrationID:
 GCM sunucular tarafından Android uygulamasına
atanan id ‘dir.
 GCM Sunucusu kayıt işlemi başarılı olan her mobil
cihaza registration Id gönderir.
Tanımlama Bilgileri
Google Kullanıcı Hesabı:
 GCM sistemin çalışması için android 4.0.4 den daha
düşük versiyonlu mobil cihazlar için en az bir Google
hesabı tanımlanmalıdır.
Tanımlama Bilgileri
Sender Auth Token:
 Uygulama sunucusu üzerinde kayıtlı olarak tutulan
API anahtarı uygulama sunucusunun Google
servislerine erişiminde kullanılır.
GCM Yaşam Döngüsü:
Bulut mesajlaşmada 3 temel işlem vardır.
 Mobil cihaz üzerinde çalışan android uygulamasının
mesaj alabilmesi için mobil cihazın gcm sunucuya
kayıt olması
 3rd parti uygulama sunucusunun android yüklü cihaza
mesaj göndermesi
 Android uygulamasının GCM sunucu üzerinden mesaj
almasıdır.
GCM Yaşam Döngüsü:
GCM Yaşam Döngüsü:
 Android uygulaması gcm sunucusuna kayıt olabilmek
için «application id» ve «sender id» bilgilerini gcm
sunucularına gönderir.
 Gcm Sunucusu kayıt işlemi başarılı olan her mobil
cihaza «registrationId» bilgisini gönderir.
 «registration id» bilgisini alan mobil cihaz bu bilgiyi
uygulama sunucusuna gönderir.
GCM Yaşam Döngüsü:
 Uygulama sunucusu gcm sunucu – android
uygulamasını eşleştiren id numarasını mesajlaşmada
kullanmak için veritabanına kayıt eder.
 Uygulama Sunucusu mesaj ilgili mobil cihaza mesaj
iletmek istediğinde mesajla birlikte veritabanında
kayıtlı olan «registration id» bilgisini gcm
sunucularına gönderir.
 Gcm sunucusu da ilgili mesajı «registration id»
bilgisine karşılık gelen mobil cihaza iletir.
GCM Yaşam Döngüsü:
 Uygulama sunucusu üzerinden android tabanlı mobil
cihaza iletilen mesaj gcm tabanlı android uygulaması
tarafından alınır.
 Uygulama aktif değilse bile mesaj geldiğinde aktif
olacaktır.
Google Bulut Mesajlaşma
Teknolojisi Performans Ölçütü
 GCM-JSON-HTTP kullanarak aynı anda 1000 cihaza
mesaj gönderebilir.
 GCM –XMPP kullanarak
Uygulama sunucusu –Google sunucu arasındaki her
bağlantı için saniyede 4000 mesaj gönderilebilir.
Örnek : 10 bağlantıya izin verildiğinde saniyede
10x4000=40.000 mesaj
GCM Örnek Proje:
Google Mesajlaşma Mimarisi Uygulama sunucusu ve
mobil cihaz üzerinde çalışacak örnek android uygulama
geliştirilmesi;
İhtiyaçlar:
1. Uygulama Sunucu Yazılımı
2. Mobil Tabanlı Android Yazılımı
Uygulama Sunucusu
İşletim Sistemi : Linux
Veritabanı: MYSQL
Programlama Dili: PHP ,CURL
Uygulama Sunucusu - MYSQL
Uygulama sunucusu üzerinde gcm sunucuya kayıt olan
mobil cihazların sahip olduğu «registrationId»
uygulama sunucusu üzerinde oluşturulmuş olan
MYSQL veri tabanında tutulacaktır.
Sunucu Arayüz Yazılımı İşlevi
Mobil cihaz üzerindeki android tabanlı uygulama gcm
sunucuya bağlandıktan sonra gcm sunucudan almış
olduğu “registrationId “parametresinin uygulama
sunucuna kaydedilmesi
Uygulama sunucusu üzerinden kayıtlı mobil cihazlara
mesaj gönderilebilmesi amaçlanmaktadır.
GCM Sunucularına Nasıl Mesaj
Gönderilir?
Uygulama Sunucusu ,GCM sunuculara mesaj
göndermek için «Google API Key» parametresini
kullanmaktadır.
Uygulama sunucunuzu GCM sunucularla
haberleştirmek için projeniz için «Google API Key»
oluşturmanız gereklidir.
Google API Key Nasıl Oluşturulur?
 Tarayıcı penceresinden
https://code.google.com/apis/console adresinden
yeni proje oluşturulur.
Google API Key Nasıl Oluşturulur?
 Yeni Proje Oluşturulduktan sonra Servisler
sekmesinden “Google Cloud Messaging for Android”
servisi aktif edilir.
Google API Key Nasıl Oluşturulur?
 Son adım olarak «API Access» sekmesi tıklanır ve
açılan sayfada görülen «API key» değeri elde edilir.
Uygulama Sunucu Yazılımı?
 https://code.google.com/apis/console adresinden elde
edilen “GOOGLE_API_KEY ” vasıtasıyla uygulama
sunucumuz üzerindeki web uygulamamız ile gcm
sunucudaki servislere erişilebilmektedir..
 PHP- CURL ikilisi kullanılarak uygulama sunucusu
üzerinden gcm sunucular vasıtasıyla kayıtlı mobil
cihazlara mesaj gönderilebilmektedir.
GCM Tabanlı Android Yazılımı
Geliştirilmesi?
İhtiyaçlar:
 Geliştirme Ortamı : Eclipse
 Google Cloud Messaging for Android Library
kütüphanesi
 Google Hesabı (Android 4.04 dan önceki versiyonlar
için)
GCM Tabanlı Android Yazılımı
Geliştirilmesi?
Kodlamaya başlamadan önce
«Google Cloud Messaging for Android»
isimli kütüphanenin kurulumunun yapılması ve
projemize eklenmesi gerekmektedir.
Kütüphane Kurulumu Yapılması?
Eclipse üzerinde
SDK Manager
butonu tıklanarak
açılan sayfadan
Extras bölümü
altındaki
«Google Cloud
Messaging for
Android Library»
isimli paket seçilerek
yüklenmelidir.
Kütüphanenin Android Projesine
Eklenmesi?
«Google Cloud Messaging for Android Library»
kütüphanesi kurulumu tamamlandıktan sonra
«Android_SDK_Folderextrasgooglegcmgcm-
clientdistgcm.jar»
dosyası geliştirilecek android projesine eklenir.
Mobil Yazılımın Test Edilebilmesi
İçin Emulator Oluşturulması?
Eclipse üzerinde «AVD
manager» vasıtasıyla
yeni «Google API
Emulator» oluşturulur.
Emülatör Hesap Ayarları Yapılması
Emulator
başlatıldıktan sonra
«Menu>>Settings>>
Accounts &Sync» yolu
izlenerek cihaza bir
Google hesabı eklenir.
Android Projesi Oluşturma
Eclipse Geliştirme Ortamı başlatıldıktan sonra File >>New
Project>>Android ApplicationProject yolu izlenerek yeni proje
oluşturulur.
«gcm.jar» dosyasının eklenmesi
«Android_SDK_Folderextrasgooglegcmgcm-clientdist»
klasör yolundaki «gcm.jar» dosyası projeye eklenir.
Proje içerisinde libs
isimli bir klasör
yaratılır.
gcm.jar dosyası bu
klasöre kaydedilir
Proje
Özelliklerinden
Build Path ->
Configure Build Path
yolu izlenerek libs
klasörü eklenir.
Manifest Dosyası Oluşturulması
Android Projemiz yaratıldıktan sonra android uygulaması gcm
fonksiyonlarını yerine getirebilmesi için bazı izinlere ihtiyaç
duymaktadır.
Bu nedenle AndroidManifest.xml dosyasına gerekli izinler
eklenmelidir.
Manifest Dosyası İzinleri 1
 android.permission.INTERNET:
Uygulamanın Internet servislerinin kullanması için gereklidir.
 android.permission.GET_ACCOUNTS
GCM sunucularının ihtiyaç duyduğu Google hesapları için
gereklidir.(Android 4.04 versiyonu öncesi için)
 android.permission.WAKE_LOCK:
Mobil cihazı mesaj geldiğinde uyku modundan çıkarmak gerekliyse
kullanılmalıdır.
Manifest Dosyası İzinleri 2
 com.google.android.c2dm.permission.RECEIVE:
Android uygulamasının GCM sunuculara kayıt olması ve gelen mesajları
alabilmesi için gereklidir.
 com.google.android.c2dm.intent.REGISTRATION:
Android uygulamasının gcm sunuculara kayıt olabilmesi için gereklidir.
 com.google.android.c2dm.SEND:
Alıcı yalnız gcm sunuculardan gelen mesajı alabilir.
GCM Sunucuya Kayıt İşlemi
 Android uygulaması mesaj alabilmek için öncelikle gcm sunuculara
kayıt olmalıdır.
 Uygulamamızda gcm sunucularına kayıt olabilmek için
«com.google.android.c2dm.intent.REGISTER» intent nesnesi ile «app»
ve «sender» parametreleri kullanılmıştır.
 «sender» parametresi Android uygulamasına mesaj gönderebilmek için
gerekli olan google console üzerinden yaratılmış olan proje nin
numarasıdır.
 «app»parametresi ise Kayıt servisinin android uygulamasını tanıması
için gerekli bilgileri içeren numaradır.
GCM Sunucuya Kayıt İşlemi
Intent: com.google.android.c2dm.intent.REGISTER
Örnek Kod:
GCM Sunucuya Kayıt Silme İşlemi
Intent : com.google.android.c2dm.intent.UNREGISTER
Örnek Kod:
GCM Sunucu Kayıt İşlemi
 Gcm Sunucu tarafından android uygulamasına
aşağıdaki parametreler gönderilir.
 RegistrationId
 Error Code
 Unregistered
Örnek Kod:
Android Uygulamadan Mesaj Alınması
 Android uygulamasının uygulama sunucusundan
gönderilen komutları/mesajları alabilmek için
BroadcastReceiver(Yayın Alıcısı) bileşeni
kullanılmaktadır.
Android Uygulamadan Mesaj Alınması
Örnek Kod:
DEMO
TEŞEKKURLER
CENK DERİNÖZLÜ
cenkder@gmail.com

Weitere ähnliche Inhalte

Ähnlich wie Google bulut mesajlaşma teknolojisi (gcm) cenk derinozlu

Android Teknolojileri
Android TeknolojileriAndroid Teknolojileri
Android TeknolojileriMuharrem Tac
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologiesBilal Dursun
 
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeAndroid Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeMuharrem Tac
 
Android Processes, Threads
Android Processes, ThreadsAndroid Processes, Threads
Android Processes, ThreadsHuseyin Ozer
 
Windows Azure ile Cloud Computing Uygulamaları - 4
Windows Azure ile Cloud Computing Uygulamaları - 4Windows Azure ile Cloud Computing Uygulamaları - 4
Windows Azure ile Cloud Computing Uygulamaları - 4İbrahim ATAY
 
Standardization Android Slide
Standardization Android SlideStandardization Android Slide
Standardization Android SlideAsude Sena Ölmez
 
Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Univerist
 
Windows Azure ile Cloud Computing Uygulamaları - 9
Windows Azure ile Cloud Computing Uygulamaları - 9Windows Azure ile Cloud Computing Uygulamaları - 9
Windows Azure ile Cloud Computing Uygulamaları - 9İbrahim ATAY
 
Windows Azure ile Cloud Computing Uygulamaları
Windows Azure ile Cloud Computing UygulamalarıWindows Azure ile Cloud Computing Uygulamaları
Windows Azure ile Cloud Computing Uygulamalarıİbrahim ATAY
 
Developer Tools
Developer ToolsDeveloper Tools
Developer ToolsBurak Erol
 
PPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetups
PPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetupsPPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetups
PPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetupsZeo
 
Android Zararlı Yazılım Analizi
Android Zararlı Yazılım AnaliziAndroid Zararlı Yazılım Analizi
Android Zararlı Yazılım AnaliziBGA Cyber Security
 
Bulum Sistem ve Azure
Bulum Sistem ve AzureBulum Sistem ve Azure
Bulum Sistem ve AzureTalha KILIÇ
 
Bulutbilisim sunum
Bulutbilisim sunumBulutbilisim sunum
Bulutbilisim sunumugurbudak
 
Titanium mobile ile Çapraz Platform Uygulama Geliştirme
Titanium mobile  ile Çapraz Platform Uygulama GeliştirmeTitanium mobile  ile Çapraz Platform Uygulama Geliştirme
Titanium mobile ile Çapraz Platform Uygulama GeliştirmeNazır Dogan
 
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?mobilike
 

Ähnlich wie Google bulut mesajlaşma teknolojisi (gcm) cenk derinozlu (20)

Android Teknolojileri
Android TeknolojileriAndroid Teknolojileri
Android Teknolojileri
 
TÜBİTAK 2209
TÜBİTAK 2209TÜBİTAK 2209
TÜBİTAK 2209
 
Mobi̇l Yazılım Geli̇şti̇rme
Mobi̇l Yazılım Geli̇şti̇rmeMobi̇l Yazılım Geli̇şti̇rme
Mobi̇l Yazılım Geli̇şti̇rme
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologies
 
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeAndroid Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
 
Android Processes, Threads
Android Processes, ThreadsAndroid Processes, Threads
Android Processes, Threads
 
Windows Azure ile Cloud Computing Uygulamaları - 4
Windows Azure ile Cloud Computing Uygulamaları - 4Windows Azure ile Cloud Computing Uygulamaları - 4
Windows Azure ile Cloud Computing Uygulamaları - 4
 
Standardization Android Slide
Standardization Android SlideStandardization Android Slide
Standardization Android Slide
 
Android
AndroidAndroid
Android
 
Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1
 
Windows Azure ile Cloud Computing Uygulamaları - 9
Windows Azure ile Cloud Computing Uygulamaları - 9Windows Azure ile Cloud Computing Uygulamaları - 9
Windows Azure ile Cloud Computing Uygulamaları - 9
 
Windows Azure ile Cloud Computing Uygulamaları
Windows Azure ile Cloud Computing UygulamalarıWindows Azure ile Cloud Computing Uygulamaları
Windows Azure ile Cloud Computing Uygulamaları
 
A studio
A studioA studio
A studio
 
Developer Tools
Developer ToolsDeveloper Tools
Developer Tools
 
PPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetups
PPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetupsPPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetups
PPC Kampanyalarının SEO Uyumlu Yönetimi - Utku Demirhan @DigitalzoneMeetups
 
Android Zararlı Yazılım Analizi
Android Zararlı Yazılım AnaliziAndroid Zararlı Yazılım Analizi
Android Zararlı Yazılım Analizi
 
Bulum Sistem ve Azure
Bulum Sistem ve AzureBulum Sistem ve Azure
Bulum Sistem ve Azure
 
Bulutbilisim sunum
Bulutbilisim sunumBulutbilisim sunum
Bulutbilisim sunum
 
Titanium mobile ile Çapraz Platform Uygulama Geliştirme
Titanium mobile  ile Çapraz Platform Uygulama GeliştirmeTitanium mobile  ile Çapraz Platform Uygulama Geliştirme
Titanium mobile ile Çapraz Platform Uygulama Geliştirme
 
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
 

Mehr von Cenk Derinozlu

Sosyal Medyanın Siyasi Seçimler Üzerindeki Etkileri
Sosyal Medyanın  Siyasi Seçimler Üzerindeki EtkileriSosyal Medyanın  Siyasi Seçimler Üzerindeki Etkileri
Sosyal Medyanın Siyasi Seçimler Üzerindeki EtkileriCenk Derinozlu
 
Web sitelerindeki yayınlar ile kişilik haklarının i̇hlali
Web sitelerindeki yayınlar ile kişilik haklarının i̇hlaliWeb sitelerindeki yayınlar ile kişilik haklarının i̇hlali
Web sitelerindeki yayınlar ile kişilik haklarının i̇hlaliCenk Derinozlu
 
Bulut Tabanlı Büyük Veri Raporlama Aracı :BIME
Bulut Tabanlı Büyük Veri Raporlama Aracı :BIMEBulut Tabanlı Büyük Veri Raporlama Aracı :BIME
Bulut Tabanlı Büyük Veri Raporlama Aracı :BIMECenk Derinozlu
 
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...Cenk Derinozlu
 
Büyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve HadoopBüyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve HadoopCenk Derinozlu
 
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Cenk Derinozlu
 

Mehr von Cenk Derinozlu (6)

Sosyal Medyanın Siyasi Seçimler Üzerindeki Etkileri
Sosyal Medyanın  Siyasi Seçimler Üzerindeki EtkileriSosyal Medyanın  Siyasi Seçimler Üzerindeki Etkileri
Sosyal Medyanın Siyasi Seçimler Üzerindeki Etkileri
 
Web sitelerindeki yayınlar ile kişilik haklarının i̇hlali
Web sitelerindeki yayınlar ile kişilik haklarının i̇hlaliWeb sitelerindeki yayınlar ile kişilik haklarının i̇hlali
Web sitelerindeki yayınlar ile kişilik haklarının i̇hlali
 
Bulut Tabanlı Büyük Veri Raporlama Aracı :BIME
Bulut Tabanlı Büyük Veri Raporlama Aracı :BIMEBulut Tabanlı Büyük Veri Raporlama Aracı :BIME
Bulut Tabanlı Büyük Veri Raporlama Aracı :BIME
 
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
 
Büyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve HadoopBüyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve Hadoop
 
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
 

Google bulut mesajlaşma teknolojisi (gcm) cenk derinozlu

  • 1. Örnek Uygulama: Mobil Eğitim Uzaktan Tablet Kontrolü CENK DERİNÖZLÜ
  • 2. Sunum İçeriği  Google Bulut Mesajlaşma Teknolojisi Kavramlar  Google Bulut Mesajlaşma Yaşam Döngüsü  Google Bulut Mesajlaşma Mimarisi  Uygulama Sunucusu  Gcm Sunucusu  Android Uygulama  Örnek Uygulama
  • 3. Google Bulut Mesajlaşma Teknolojisi Nedir?  Google bulut mesajlaşma teknolojisi sunucu bilgisayarlardan gönderilen verilerin android tabanlı cihazlardan alınmasını sağlayan servistir.  Bulut Mesajlaşma teknolojisi kullanılarak android uygulamalarına veri gönderilebilmektedir.
  • 4. Google Bulut Mesajlaşma Teknolojisi Kullanım Alanları  Mobil uygulamaların güncelleme denetimleri  Anlık Veri Takibi Yapılan Uygulamalar (Borsa ,Döviz, Maç Sonuçları vb. )  Android merkezli her türlü otomasyon projesi için cihazların uzaktan kontrol edilmesi
  • 5. Bulut Mesajlaşma Servisinin Avantajları Nelerdir?  Bulut Mesajlaşma servisi sayesinde sunucu üzerindeki veri güncellendiğinde android cihaza sunucu verisinin güncellendiği bilgisi iletilir.  Bu servis sayesinde android cihaz, sunucuda güncel bir veri varmı diye sunucuyla sürekli bağlantı kurmak yerine sadece güncelleme olduğu anlarda bağlantı kuracağı için pil kullanım oranı düşmektedir.
  • 6. Bulut Mesajlaşma Servisi (GCM) Temel Karakteristikleri GCM Teknolojisi;  3. parti uygulama sunucularının Android uygulamalarına mesaj göndermesine izin verir.  Android cihaz üzerinde çalışan Android uygulamasının sürekli mesaj dinlemesine gerek yoktur. Sistem android uygulamasını yeni mesaj geldiğinde haberdar edecektir.  Android Bulut mesajlaşma Android 2.2 ve üstü tüm işletim sistemi versiyonları ile derlenmiş android uygulamalarını desteklemektedir.
  • 7. GCM Nasıl Çalışır? GCM Mimarisi Bileşenler ve Tanımlama Bilgileri olmak üzere iki kategoride incelenebilir.
  • 8. 1-Bileşenler Mobil Cihaz:  GCM kullanan android uygulamasının yüklü olduğu cihazdır.  Mobil Cihaz üzerinde en az android 2.2 versiyonu android işletim sistemi kurulu olmalıdr.  Andorid 4.04 den düşük versiyonlar için cihaz en az bir Google hesabına sahip olmalıdır.
  • 9. Bileşenler  3rd Parti Uygulama Sunucusu: Uygulama sunucusu GCM sunucu vasıtasıyla android uygulamasına mesaj göndermekten sorumludur.
  • 10. Bileşenler  GCM Sunucular 3rd Parti uygulama sunuculardan gelen mesajları alıp ilgili mobil cihaza ileten Google sunucularıdır.
  • 11. 2-Tanımlama Bilgileri  Sender Id: Google API console üzerinden oluşturulan proje numarasıdır. Android uygulamasının gcm sunucuya kayıt işlemi sırasında kullanılır.
  • 12. Tanımlama Bilgileri  Application Id: Android uygulamasının gcm sunucuya kayıt edilmesinde kullanılan uygulama numarasıdır.
  • 13. Tanımlama Bilgileri RegistrationID:  GCM sunucular tarafından Android uygulamasına atanan id ‘dir.  GCM Sunucusu kayıt işlemi başarılı olan her mobil cihaza registration Id gönderir.
  • 14. Tanımlama Bilgileri Google Kullanıcı Hesabı:  GCM sistemin çalışması için android 4.0.4 den daha düşük versiyonlu mobil cihazlar için en az bir Google hesabı tanımlanmalıdır.
  • 15. Tanımlama Bilgileri Sender Auth Token:  Uygulama sunucusu üzerinde kayıtlı olarak tutulan API anahtarı uygulama sunucusunun Google servislerine erişiminde kullanılır.
  • 16. GCM Yaşam Döngüsü: Bulut mesajlaşmada 3 temel işlem vardır.  Mobil cihaz üzerinde çalışan android uygulamasının mesaj alabilmesi için mobil cihazın gcm sunucuya kayıt olması  3rd parti uygulama sunucusunun android yüklü cihaza mesaj göndermesi  Android uygulamasının GCM sunucu üzerinden mesaj almasıdır.
  • 18. GCM Yaşam Döngüsü:  Android uygulaması gcm sunucusuna kayıt olabilmek için «application id» ve «sender id» bilgilerini gcm sunucularına gönderir.  Gcm Sunucusu kayıt işlemi başarılı olan her mobil cihaza «registrationId» bilgisini gönderir.  «registration id» bilgisini alan mobil cihaz bu bilgiyi uygulama sunucusuna gönderir.
  • 19. GCM Yaşam Döngüsü:  Uygulama sunucusu gcm sunucu – android uygulamasını eşleştiren id numarasını mesajlaşmada kullanmak için veritabanına kayıt eder.  Uygulama Sunucusu mesaj ilgili mobil cihaza mesaj iletmek istediğinde mesajla birlikte veritabanında kayıtlı olan «registration id» bilgisini gcm sunucularına gönderir.  Gcm sunucusu da ilgili mesajı «registration id» bilgisine karşılık gelen mobil cihaza iletir.
  • 20. GCM Yaşam Döngüsü:  Uygulama sunucusu üzerinden android tabanlı mobil cihaza iletilen mesaj gcm tabanlı android uygulaması tarafından alınır.  Uygulama aktif değilse bile mesaj geldiğinde aktif olacaktır.
  • 21. Google Bulut Mesajlaşma Teknolojisi Performans Ölçütü  GCM-JSON-HTTP kullanarak aynı anda 1000 cihaza mesaj gönderebilir.  GCM –XMPP kullanarak Uygulama sunucusu –Google sunucu arasındaki her bağlantı için saniyede 4000 mesaj gönderilebilir. Örnek : 10 bağlantıya izin verildiğinde saniyede 10x4000=40.000 mesaj
  • 22. GCM Örnek Proje: Google Mesajlaşma Mimarisi Uygulama sunucusu ve mobil cihaz üzerinde çalışacak örnek android uygulama geliştirilmesi; İhtiyaçlar: 1. Uygulama Sunucu Yazılımı 2. Mobil Tabanlı Android Yazılımı
  • 23. Uygulama Sunucusu İşletim Sistemi : Linux Veritabanı: MYSQL Programlama Dili: PHP ,CURL
  • 24. Uygulama Sunucusu - MYSQL Uygulama sunucusu üzerinde gcm sunucuya kayıt olan mobil cihazların sahip olduğu «registrationId» uygulama sunucusu üzerinde oluşturulmuş olan MYSQL veri tabanında tutulacaktır.
  • 25. Sunucu Arayüz Yazılımı İşlevi Mobil cihaz üzerindeki android tabanlı uygulama gcm sunucuya bağlandıktan sonra gcm sunucudan almış olduğu “registrationId “parametresinin uygulama sunucuna kaydedilmesi Uygulama sunucusu üzerinden kayıtlı mobil cihazlara mesaj gönderilebilmesi amaçlanmaktadır.
  • 26. GCM Sunucularına Nasıl Mesaj Gönderilir? Uygulama Sunucusu ,GCM sunuculara mesaj göndermek için «Google API Key» parametresini kullanmaktadır. Uygulama sunucunuzu GCM sunucularla haberleştirmek için projeniz için «Google API Key» oluşturmanız gereklidir.
  • 27. Google API Key Nasıl Oluşturulur?  Tarayıcı penceresinden https://code.google.com/apis/console adresinden yeni proje oluşturulur.
  • 28. Google API Key Nasıl Oluşturulur?  Yeni Proje Oluşturulduktan sonra Servisler sekmesinden “Google Cloud Messaging for Android” servisi aktif edilir.
  • 29. Google API Key Nasıl Oluşturulur?  Son adım olarak «API Access» sekmesi tıklanır ve açılan sayfada görülen «API key» değeri elde edilir.
  • 30. Uygulama Sunucu Yazılımı?  https://code.google.com/apis/console adresinden elde edilen “GOOGLE_API_KEY ” vasıtasıyla uygulama sunucumuz üzerindeki web uygulamamız ile gcm sunucudaki servislere erişilebilmektedir..  PHP- CURL ikilisi kullanılarak uygulama sunucusu üzerinden gcm sunucular vasıtasıyla kayıtlı mobil cihazlara mesaj gönderilebilmektedir.
  • 31. GCM Tabanlı Android Yazılımı Geliştirilmesi? İhtiyaçlar:  Geliştirme Ortamı : Eclipse  Google Cloud Messaging for Android Library kütüphanesi  Google Hesabı (Android 4.04 dan önceki versiyonlar için)
  • 32. GCM Tabanlı Android Yazılımı Geliştirilmesi? Kodlamaya başlamadan önce «Google Cloud Messaging for Android» isimli kütüphanenin kurulumunun yapılması ve projemize eklenmesi gerekmektedir.
  • 33. Kütüphane Kurulumu Yapılması? Eclipse üzerinde SDK Manager butonu tıklanarak açılan sayfadan Extras bölümü altındaki «Google Cloud Messaging for Android Library» isimli paket seçilerek yüklenmelidir.
  • 34. Kütüphanenin Android Projesine Eklenmesi? «Google Cloud Messaging for Android Library» kütüphanesi kurulumu tamamlandıktan sonra «Android_SDK_Folderextrasgooglegcmgcm- clientdistgcm.jar» dosyası geliştirilecek android projesine eklenir.
  • 35. Mobil Yazılımın Test Edilebilmesi İçin Emulator Oluşturulması? Eclipse üzerinde «AVD manager» vasıtasıyla yeni «Google API Emulator» oluşturulur.
  • 36. Emülatör Hesap Ayarları Yapılması Emulator başlatıldıktan sonra «Menu>>Settings>> Accounts &Sync» yolu izlenerek cihaza bir Google hesabı eklenir.
  • 37. Android Projesi Oluşturma Eclipse Geliştirme Ortamı başlatıldıktan sonra File >>New Project>>Android ApplicationProject yolu izlenerek yeni proje oluşturulur.
  • 38. «gcm.jar» dosyasının eklenmesi «Android_SDK_Folderextrasgooglegcmgcm-clientdist» klasör yolundaki «gcm.jar» dosyası projeye eklenir. Proje içerisinde libs isimli bir klasör yaratılır. gcm.jar dosyası bu klasöre kaydedilir Proje Özelliklerinden Build Path -> Configure Build Path yolu izlenerek libs klasörü eklenir.
  • 39. Manifest Dosyası Oluşturulması Android Projemiz yaratıldıktan sonra android uygulaması gcm fonksiyonlarını yerine getirebilmesi için bazı izinlere ihtiyaç duymaktadır. Bu nedenle AndroidManifest.xml dosyasına gerekli izinler eklenmelidir.
  • 40. Manifest Dosyası İzinleri 1  android.permission.INTERNET: Uygulamanın Internet servislerinin kullanması için gereklidir.  android.permission.GET_ACCOUNTS GCM sunucularının ihtiyaç duyduğu Google hesapları için gereklidir.(Android 4.04 versiyonu öncesi için)  android.permission.WAKE_LOCK: Mobil cihazı mesaj geldiğinde uyku modundan çıkarmak gerekliyse kullanılmalıdır.
  • 41. Manifest Dosyası İzinleri 2  com.google.android.c2dm.permission.RECEIVE: Android uygulamasının GCM sunuculara kayıt olması ve gelen mesajları alabilmesi için gereklidir.  com.google.android.c2dm.intent.REGISTRATION: Android uygulamasının gcm sunuculara kayıt olabilmesi için gereklidir.  com.google.android.c2dm.SEND: Alıcı yalnız gcm sunuculardan gelen mesajı alabilir.
  • 42. GCM Sunucuya Kayıt İşlemi  Android uygulaması mesaj alabilmek için öncelikle gcm sunuculara kayıt olmalıdır.  Uygulamamızda gcm sunucularına kayıt olabilmek için «com.google.android.c2dm.intent.REGISTER» intent nesnesi ile «app» ve «sender» parametreleri kullanılmıştır.  «sender» parametresi Android uygulamasına mesaj gönderebilmek için gerekli olan google console üzerinden yaratılmış olan proje nin numarasıdır.  «app»parametresi ise Kayıt servisinin android uygulamasını tanıması için gerekli bilgileri içeren numaradır.
  • 43. GCM Sunucuya Kayıt İşlemi Intent: com.google.android.c2dm.intent.REGISTER Örnek Kod:
  • 44. GCM Sunucuya Kayıt Silme İşlemi Intent : com.google.android.c2dm.intent.UNREGISTER Örnek Kod:
  • 45. GCM Sunucu Kayıt İşlemi  Gcm Sunucu tarafından android uygulamasına aşağıdaki parametreler gönderilir.  RegistrationId  Error Code  Unregistered
  • 47. Android Uygulamadan Mesaj Alınması  Android uygulamasının uygulama sunucusundan gönderilen komutları/mesajları alabilmek için BroadcastReceiver(Yayın Alıcısı) bileşeni kullanılmaktadır.
  • 48. Android Uygulamadan Mesaj Alınması Örnek Kod:
  • 49. DEMO