Bu işlerin back-end tarafı nasıl oluyor?

  • Konuyu başlatan Konuyu başlatan ruz
  • Başlangıç tarihi Başlangıç tarihi

ruz

Asistan
Katılım
12 Mayıs 2013
Mesajlar
135
Reaksiyon puanı
0
Puanları
0
Arkadaşlar merhaba,

Bilgisayar mühendisliği 3. sınıf öğrencisiyim. Benim aklıma takılan konu şu: en basitinden bir anlık mesaj uygulaması yazmak istesem mobil için android veya ios, arkaplanda çalışacak olan veritabanlarını felan nasıl ayarlamam gerekiyor. Mesela webhosting tutup yazdığım servisleri ordamı host etmeliyim, veya ne bileyim bu işin arkaplanıyla şu zamana kadar hiç ilgilenmedim. Nasıl hallediliyor arkaplanda işler neleri öğrenmem gerek.

Arkaplandan kastım sql bilgisi felan değil, bu yazdığımız yazılımları birbirine nasıl koordineli hale getiririz. Ben uygulamada "mesajı gönder" e bastığımda bundan sonra çağıralacak işlemler neler olmalı bunları merak ediyorum.
 
S

SDN Okuru

SDN Okuru
Telefondaki gibi. Sen birisini aradığını sanıyorsun, ama Telekoma bağlanıyorsun. Telekom senin bağlama isteğini aktarıyor.
 

OnLT

Müdavim
Müdavim
Katılım
22 Ocak 2008
Mesajlar
8,429
Reaksiyon puanı
149
Puanları
1,243
Konuyu takipteyim.

Sanırım söyle işliyor: mesajı gönder dediğin anda mesaj ilk önce sunucuya iletiyor. Mesajla birlikte yanında kime gideceği bilgisi, gidecek kişinin IDsini falan da içeriyor her mesaj. Sunucu mesaji aldığı anda gönderen kişiye iletildi bilgisine gönderiyor. (şu whatsapp deki tek tick işareti) Ardından server bu mesajı o ID ye gönderiyor. Bu arada yazarken düşündüm çok basit benim düşündüğüm daha teknik bilgidir olan varsa cidden çok iyi olur.
 

ruz

Asistan
Katılım
12 Mayıs 2013
Mesajlar
135
Reaksiyon puanı
0
Puanları
0
Konuyu takipteyim.

Sanırım söyle işliyor: mesajı gönder dediğin anda mesaj ilk önce sunucuya iletiyor. Mesajla birlikte yanında kime gideceği bilgisi, gidecek kişinin IDsini falan da içeriyor her mesaj. Sunucu mesaji aldığı anda gönderen kişiye iletildi bilgisine gönderiyor. (şu whatsapp deki tek tick işareti) Ardından server bu mesajı o ID ye gönderiyor. Bu arada yazarken düşündüm çok basit benim düşündüğüm daha teknik bilgidir olan varsa cidden çok iyi olur.

Hocam bende aynısını düşünüyorum da, server'a o mesaj neyin aracılığıyla işleniyor mesela aradaki iletişim nasıl sağlanıyor bu kısımlar açık bende. Sunucu mesajı aldığında gönderen kişiye iletildi bilgisini kendisi nasıl gönderiyo mesela. Cron job'ta bi task ayarlayıp belli aralıklarla mysql 'imi kontrol ediyorlar. Nedir bu olay çözemedim.
 

OnLT

Müdavim
Müdavim
Katılım
22 Ocak 2008
Mesajlar
8,429
Reaksiyon puanı
149
Puanları
1,243
Hocam bende aynısını düşünüyorum da, server'a o mesaj neyin aracılığıyla işleniyor mesela aradaki iletişim nasıl sağlanıyor bu kısımlar açık bende. Sunucu mesajı aldığında gönderen kişiye iletildi bilgisini kendisi nasıl gönderiyo mesela. Cron job'ta bi task ayarlayıp belli aralıklarla mysql 'imi kontrol ediyorlar. Nedir bu olay çözemedim.

Basit bi if döngüsüyle yapılabilir sanırım. Gerçekten öğrenmek isterim ama arkplanını.
 
S

SDN Okuru

SDN Okuru
tr-wikipedia-org da TCP/IP Protakolleri ile ilgili bir yazı mevcut.
 

mjsamet

Asistan
Katılım
22 Aralık 2009
Mesajlar
149
Reaksiyon puanı
1
Puanları
0
Dostlar, burdaki olay tamamiyle sizin kuracağınız sisteme göre değişiklik gösterir (Her yiğidin yoğurt yiyişi farklıdır misali). Ama örnek olarak;
a kişisi mesajını servera bunu b kişisine yolla komutuyla yolladı. Server mesajı aldı ve a kişisine ben bu mesajı aldım diye cevap verdi. ve a kişisinin programı ben bunu yolladım diye işaretledi. Sonra server bu mesajı b kişisine yolladı ve b kişisi ben bu mesajı aldım diye cevap yolladı. Server bu mesajı b kişisine iletildi olarak işaretleyip a kişisine bu mesaj b kişisine gitti diye mesaj yolladı. a kişisindeki programda bu mesaj b kişisine ulaştı diye işaretledi.
Yüzeysel olarak böyle örnek verilebilir. Ama mesajları nasıl ayırt eder (Id yapar her mesaj için mesela), a kişisinin mesaj yolladığı anda b kişisi çevrim içi değilse server bu mesajı nerde saklar da sonra b kişisi çevrim içi olunca yollar gibi ayrıntı kısımları tamamiyle seçilecek veritabanı sistemlerine, dillere vs. göre değişir. Yani senin elindedir. Ve sen az çok bu konulara hakimsen seçimini yapar, yolunu seçersin...
 

ruz

Asistan
Katılım
12 Mayıs 2013
Mesajlar
135
Reaksiyon puanı
0
Puanları
0
Dostlar, burdaki olay tamamiyle sizin kuracağınız sisteme göre değişiklik gösterir (Her yiğidin yoğurt yiyişi farklıdır misali). Ama örnek olarak;
a kişisi mesajını servera bunu b kişisine yolla komutuyla yolladı. Server mesajı aldı ve a kişisine ben bu mesajı aldım diye cevap verdi. ve a kişisinin programı ben bunu yolladım diye işaretledi. Sonra server bu mesajı b kişisine yolladı ve b kişisi ben bu mesajı aldım diye cevap yolladı. Server bu mesajı b kişisine iletildi olarak işaretleyip a kişisine bu mesaj b kişisine gitti diye mesaj yolladı. a kişisindeki programda bu mesaj b kişisine ulaştı diye işaretledi.
Yüzeysel olarak böyle örnek verilebilir. Ama mesajları nasıl ayırt eder (Id yapar her mesaj için mesela), a kişisinin mesaj yolladığı anda b kişisi çevrim içi değilse server bu mesajı nerde saklar da sonra b kişisi çevrim içi olunca yollar gibi ayrıntı kısımları tamamiyle seçilecek veritabanı sistemlerine, dillere vs. göre değişir. Yani senin elindedir. Ve sen az çok bu konulara hakimsen seçimini yapar, yolunu seçersin...

Hocam bu kısım tamam zaten, şu şöyle olmalı bu böyle olmalı diye bizde diyoruz. Mantıkda sorun yok. Sorun implementasyon kısmında. Bana işte o veritabanı sistemi ve diller ile ilgili bilgi lazım. Bende onu diyorum hakim değilim, neleri öğrenmeliyim diye.
 

Toughwolf

Asistan
Katılım
1 Ekim 2009
Mesajlar
139
Reaksiyon puanı
2
Puanları
18
Senin sordugun bilgi sanirim socket programlama. Mesajlasma yazilimlari 2 sekilde kurulabilir. Ilk sistemde clientlar servera online olduklarini bildirir. Clientlar birbirlerine baglanmak istedikleride soket acarlar. Soketler uzerinden mesajlasirlar. 2. sistemde clientlar soket ile servera baglanirlar. Serverda degisiklik olup olmadigini kontrol ederler. Skype gibi buyuk sistemlerde bu ikisi birden kullanilabilir. Ayrica boyle buyuk bir sistemde tek sunucu yoktur. Sunucular daginik sistem mimarisi ile birbirleriyle haberlesirler. Ses socket uzerinden UDP ile, yazi TCP ile gonderilir.

Ayrica AJAX ile de mesajlasma sistemi kurabilirsin. Clienler bilgiyi POST ederler data sonra belli araliklarla GET ederler. Ama bu soket programlama gibi anlik degildir.

Soket programlama farkli dillerin kutuphaneleri ile yapilabilir. Ayrica farkli network hiyerarsileri ile de bu sistem kurulabilir.
 

ruz

Asistan
Katılım
12 Mayıs 2013
Mesajlar
135
Reaksiyon puanı
0
Puanları
0
Arkadaşlar verdiğiniz bilgiler için gerçekten çok teşekkür ederim, peki mobil bir sosyal ağ kurdum diyelim ondada mı yine aynı şekilde socket'leri kullanıcam veya bir oyun yazdım diyelim yine telefonlar için ve bu oyunda yüksek skor yapanları saklamak istiyorum, burda da mı socket kullanıcam?
 

wasp071

Doçent
Katılım
25 Şubat 2012
Mesajlar
743
Reaksiyon puanı
1
Puanları
18
vaaayy bilgilere bakk,arasan bulamazsın.Acayip bilgilendım :D saolun mıllett
 

keyloger

Rektör
Katılım
4 Ocak 2008
Mesajlar
13,268
Reaksiyon puanı
236
Puanları
243
Arkadaşlar verdiğiniz bilgiler için gerçekten çok teşekkür ederim, peki mobil bir sosyal ağ kurdum diyelim ondada mı yine aynı şekilde socket'leri kullanıcam veya bir oyun yazdım diyelim yine telefonlar için ve bu oyunda yüksek skor yapanları saklamak istiyorum, burda da mı socket kullanıcam?

Chat için socket mantıklı ama yüksek skor için REST web servis tarzı birşey kullanabilirsin.
 

keyloger

Rektör
Katılım
4 Ocak 2008
Mesajlar
13,268
Reaksiyon puanı
236
Puanları
243
Peki hocam web servisleri nasıl host ediyoruz?

Diğer web uygulamalarınızdan hiç bir farkı yok :) Tabi genelde onun view kısmında günümüzde JSON kullanılıyor ama tabi işin o kısmı da tamamen sana kalmış durumda.
 

ruz

Asistan
Katılım
12 Mayıs 2013
Mesajlar
135
Reaksiyon puanı
0
Puanları
0
Diğer web uygulamalarınızdan hiç bir farkı yok :) Tabi genelde onun view kısmında günümüzde JSON kullanılıyor ama tabi işin o kısmı da tamamen sana kalmış durumda.

Sordukça soruyorum ama sizin gibi bilgilisini her zaman bulamadığımdan k.bakmayın, ben php de web servisimi yazdım diyelim bunu normal php sunucuların birinde host ettim, ben bu servisi çağırırken bir domain ismiyle çağıracam bu sefer değil mi? Bu riskli değil mi sizcede. Kablosuz bağlantıdan biri trafiği izlese hangi adrese neyi gönderdiği mi görebilir.
 

keyloger

Rektör
Katılım
4 Ocak 2008
Mesajlar
13,268
Reaksiyon puanı
236
Puanları
243
Sordukça soruyorum ama sizin gibi bilgilisini her zaman bulamadığımdan k.bakmayın, ben php de web servisimi yazdım diyelim bunu normal php sunucuların birinde host ettim, ben bu servisi çağırırken bir domain ismiyle çağıracam bu sefer değil mi? Bu riskli değil mi sizcede. Kablosuz bağlantıdan biri trafiği izlese hangi adrese neyi gönderdiği mi görebilir.

Tabi öyle çağıracaksın, o zaman bağlantıyı https üzerinden kurabilirsin gelen giden izlenmesin istiyorsan. Rest Web Servislerinin güvenliği de genellikle kullanıcıya bir token atıyarak yapılıyor.
 

totleben

Asistan
Katılım
25 Mayıs 2007
Mesajlar
291
Reaksiyon puanı
0
Puanları
16
Yüksek skor olayında https yapsan bile araya birileri girebilir :) Yüksek skoru sunucu tarafında belirlemen yada en azından doğrulayabilmen lazım yoksa istemci tarafından gönderilen her türlü bilgi değiştirilebilir.

Chat gibi anlık iletimlerde socket yapısını kullanmalısın. Websocket'ler çıktı yenilerde onlara da bak. Diğer anlık gerekmeyen işlemlerde rest api'ler fazlasıyla iş görür.
 

ruz

Asistan
Katılım
12 Mayıs 2013
Mesajlar
135
Reaksiyon puanı
0
Puanları
0
keyloger ve totleben cevaplarınız için ayrı ayrı teşekkür ederim. Bu skor doğrulama için nasıl birşey önerirsiniz peki?
 
Üst