İçeriğe geç
Teklif al

Hizmet · Özel yazılım

Gerçek zamanlı uygulama yaptırma

Mutfaktaki ekranın yeni siparişi göstermesi için birinin sayfayı yenilemesi, operasyon panosunda kuryenin konumunun bir dakika geriden gelmesi ya da iki kişinin aynı kaydı düzenleyip birinin değişikliğinin sessizce kaybolması; hepsi aynı mimari tercihten doğar. Uygulama sunucuya belirli aralıklarla yeni bir şey var mı diye sorar. Kullanıcı sayısı arttıkça bu sorular sunucuyu yorar, aralık kısaltıldığında maliyet artar, uzatıldığında ekran güncelliğini kaybeder.

Kategori
Özel yazılım
Çalışma modeli
Proje bazlı · Bakım ve destek
Hizmet bölgesi
Türkiye geneli, uzaktan ve yerinde

Gerçek zamanlı uygulama geliştirmede sunucu, bir olay olduğu anda bunu ilgili kullanıcılara kendisi iletir. Burada asıl iş bağlantıyı açmak değil, bağlantının koptuğu anı yönetmektir: tünelden geçen bir kuryenin telefonu ya da uyku moduna giren bir tablet yeniden bağlandığında kaçırdığı olayları doğru sırayla almalıdır. Mimarimizi bu senaryodan başlayarak kuruyoruz.

Gerçek zamanlı uygulama kimler için gerekli

Bilginin birkaç saniye gecikmesi bile karar ya da para kaybına yol açıyorsa gerçek zamanlı mimari değerlendirilmelidir.

  • Siparişlerin mutfak, kasa ve kurye ekranlarına anında düşmesi gereken restoran zincirleri ve bulut mutfaklar
  • Araç, kurye ya da saha ekibinin konumunu ve görev durumunu canlı izleyen lojistik ve servis firmaları
  • Canlı açık artırma, teklif toplama ya da anlık stok gösterimi yapan ticaret platformları
  • Müşteriyle uygulama içinden yazışan ya da temsilciler arasında anlık görev dağıtan destek ekipleri
  • Birden fazla kullanıcının aynı belge, plan ya da tablo üzerinde eşzamanlı çalıştığı iş uygulamaları

Anlık veri akışında karşılaşılan teknik sorunlar

Gerçek zamanlı özelliklerin çoğu demoda sorunsuz çalışır; zorluk gerçek ağ koşullarında başlar.

  • 01

    Kopan ve yeniden kurulan bağlantılar

    Mobil cihazlar sürekli ağ değiştirir. İstemcinin hangi olaya kadar aldığını bildirip eksikleri istemesi, sunucunun da bu olayları kısa bir süre saklaması gerekir; aksi hâlde bağlantı geri geldiğinde ekran eksik kalır.

  • 02

    Olay sırasının korunması

    Bir siparişin önce “hazırlanıyor” sonra “iptal edildi” olarak görünmesi ile tersi aynı şey değildir. Olaylara sıra numarası verilir, istemci sırası bozuk gelen mesajı bekletir ya da yeniden ister.

  • 03

    Eşzamanlı düzenlemede çakışma

    İki kullanıcı aynı alanı aynı anda değiştirdiğinde son yazanın kazanması her senaryoya uymaz. Ortak düzenleme gerektiren ekranlarda CRDT gibi çakışmasız birleştirme yöntemleri, diğerlerinde ise alan düzeyinde kilit kullanılır.

  • 04

    Yetkinin her mesajda korunması

    Bir şubenin siparişleri yalnızca o şubenin ekranına gitmelidir. Kullanıcının hangi kanala abone olabileceği bağlantı açılırken ve yetkisi değiştiğinde sunucuda yeniden denetlenir.

Gerçek zamanlı uygulamalarda geliştirdiğimiz yapılar

Her proje farklı bir karışım ister; en sık kurduğumuz parçalar şunlardır.

  • 01

    Canlı durum panoları

    Sipariş, görev ya da cihaz durumları değiştikçe panoda yer değiştirir; gecikme eşiği aşıldığında kart renklenir ve sorumluya uyarı gider.

  • 02

    Uygulama içi mesajlaşma

    Okundu bilgisi, yazıyor göstergesi, dosya paylaşımı ve mesaj geçmişi; kullanıcı uygulamada değilse mesaj anlık bildirim olarak iletilir.

  • 03

    Çevrimiçi kullanıcı ve varlık bilgisi

    Kimin aynı kaydı incelediği ya da hangi temsilcinin müsait olduğu canlı gösterilir; bağlantısı kopan kullanıcı kısa bir bekleme süresinden sonra çevrimdışı işaretlenir.

  • 04

    Canlı harita takibi

    Araç ve personel konumları haritada akıcı biçimde güncellenir; sık gelen konum verisi sunucuda seyreltilerek hem pil hem bant genişliği korunur.

Gerçek zamanlı uygulama projelerinde kullanılan bağlantılar

Anlık akış çoğu zaman başka sistemlerden gelen olaylarla beslenir.

  • 01

    Yemek siparişi platformları

    Yemeksepeti, Getir ya da Trendyol Yemek gibi platformlardan gelen siparişler, platformların sunduğu entegrasyon yöntemleriyle alınıp mutfak ekranına aynı akışla düşürülür.

  • 02

    Anlık bildirim servisleri

    Uygulama kapalıyken kullanıcıya ulaşmak için Android'de Firebase Cloud Messaging, iOS'ta Apple'ın bildirim servisi kullanılır.

  • 03

    Cihaz ve sensör verisi

    Araç takip cihazları ya da sahadaki sensörler MQTT gibi hafif protokollerle veri gönderir; bu veri işlenip panolara aktarılır.

  • 04

    Sesli ve görüntülü görüşme

    Destek ya da danışmanlık akışlarında tarayıcı ve mobil uygulama içinde WebRTC tabanlı görüşme eklenir; sinyal iletimi aynı gerçek zamanlı altyapı üzerinden yapılır.

Gerçek zamanlı uygulama yaptırmak istiyorum: süreç nasıl işler?

  1. Adım 01

    Analiz

    İş akışınızı, kullanıcılarınızı ve mevcut sistemlerinizi dinleriz; kapsamı, öncelikleri ve kabul ölçütlerini yazılı hâle getiririz.

  2. Adım 02

    Tasarım

    Ekran akışlarını ve veri modelini çıkarırız. Arayüzü sizinle gözden geçirip onay almadan geliştirmeye geçmeyiz.

  3. Adım 03

    Geliştirme

    Kısa döngülerle çalışırız; her döngü sonunda çalışan bir sürümü test ortamında görürsünüz.

  4. Adım 04

    Test

    İşlevsel testler, entegrasyon testleri ve temel güvenlik kontrolleriyle hataları yayından önce yakalarız.

  5. Adım 05

    Yayın

    Sunucu, alan adı, yedekleme ve izleme ayarlarını yaparak canlıya alırız; ekibinize kısa bir kullanım eğitimi veririz.

  6. Adım 06

    Bakım

    İsterseniz bakım ve destek anlaşmasıyla güncellemeleri, izlemeyi ve yeni geliştirmeleri sürdürürüz.

WebSocket, SSE ve yatay ölçeklenme

Çift yönlü ve sık mesajlaşma gereken ekranlarda WebSocket, yalnızca sunucudan istemciye akış gereken panolarda daha sade olan Server-Sent Events tercih edilir. Birden fazla sunucu çalıştığında bir sunucuya bağlı kullanıcıya diğer sunucudaki olayı ulaştırmak için Redis yayın-abone yapısı, NATS ya da Kafka gibi bir mesaj aracısı kullanılır. Yönetilen gerçek zamanlı servisler de kendi sunucunuzu işletmek istemediğiniz durumlarda seçenek olarak değerlendirilir.

Devamını okuDaha az göster

Açık bağlantı sayısı, istek sayısından farklı bir yük türüdür; her bağlantı sunucuda bellek tutar. Bu yüzden yük testleri beklenen eşzamanlı kullanıcı sayısıyla, bağlantıların aynı anda kopup yeniden bağlandığı senaryo da dahil edilerek yapılır. Yavaş istemcilere mesaj yığılmasını önleyen sınırlar ve ağır yükte daha seyrek güncelleme gönderen bir yedek davranış tasarıma eklenir.

Bu hizmette çalışma modelleri

  • 01

    Proje bazlı

    Sabit kapsam, sabit fiyat ve belirli teslim tarihi

    Kapsamı belli, teslim tarihi olan işler için.

    • Yazılı kapsam ve kabul ölçütleri
    • Sabit fiyat ve belirli teslim tarihi
    • Teslim ve kabul adımları sözleşmede
    Bu modelle teklif alın: Proje bazlı
  • 02

    Bakım ve destek

    Aylık sözleşmeli, SLA'lı bakım, destek ve geliştirme saati

    Yayındaki bir sistemin sürekliliği için.

    • Aylık sözleşme ve SLA
    • İzleme, güncelleme ve hata düzeltme
    • Aylık geliştirme saati
    Bu modelle teklif alın: Bakım ve destek

Gerçek zamanlı uygulama hakkında sık sorulan sorular

WebSocket mi Server-Sent Events mi kullanmalıyız?

Kullanıcı da sık sık sunucuya veri gönderiyorsa, örneğin mesajlaşma ya da ortak düzenlemede, WebSocket uygundur. Yalnızca ekranın güncellenmesi gerekiyorsa SSE daha az altyapı gerektirir ve standart web sunucularıyla rahat çalışır.

Mevcut uygulamamıza sonradan gerçek zamanlı özellik eklenebilir mi?

Çoğu zaman evet. Mevcut sistemde bir kayıt değiştiğinde olay üreten küçük bir katman eklenir ve bu olaylar ayrı bir gerçek zamanlı servis üzerinden ekranlara iletilir. Mevcut veritabanı ve iş kuralları değişmeden kalabilir.

Gerçek zamanlı uygulama yaptırma fiyatları neye göre belirlenir?

Eşzamanlı kullanıcı sayısı, mesaj sıklığı, çevrim dışı ve yeniden bağlanma gereksinimleri, ortak düzenleme olup olmadığı, mobil uygulama ihtiyacı ve barındırma tercihi maliyeti belirler. Yönetilen servis kullanımı kurulum işini azaltırken kullanım bazlı bir işletme gideri getirir.

Bağlantı koptuğunda mesajlar kaybolur mu?

Doğru kurulmuş bir sistemde kaybolmaz. Kalıcı olması gereken her olay önce veritabanına yazılır, sonra yayınlanır; yeniden bağlanan istemci son aldığı sıra numarasını bildirerek eksik olayları ister.

Gerçek zamanlı uygulama için firma seçerken nelere dikkat etmeliyiz?

Bağlantı kopması, sunucu yeniden başlatılması ve yoğun anlarda ne olacağını somut olarak açıklayabilmesine bakın. Yük testinin hangi senaryolarla yapılacağını ve izleme panolarında neyin takip edileceğini sorun.

Uygulama arka plandayken kullanıcıya nasıl haber verilir?

Telefonlar arka plandaki uygulamaların açık bağlantı tutmasını kısıtlar. Bu durumda olay anlık bildirim olarak gönderilir, kullanıcı uygulamayı açtığında canlı bağlantı yeniden kurulur ve ekran güncel duruma getirilir.

İlgili hizmetler ve sayfalar

Gerçek zamanlı uygulama yaptırmak için teklif alın

Kısa bir ön görüşmede ihtiyacınızı dinleyip kapsamı, çalışma modelini ve takvimi yazılı olarak paylaşırız.

+90 552 579 93 21