RDA ile Mobil Cihazlar Üzerinde Uygulama Geliştirme

Türkiye’de pek bilinmeyen bir şey mobil uygulama geliştirme hadisesi. Bu sebeple sessizliğimi bir süreliğine mobil işlemler için bozacağım.

Ben de herkes gibi mobil cihazlara ilk baktığımda “ulen kim kullanır bunu” demiş ve pek küçümsemiştim. Zira bir bilgisayar gibi rahat gelmemişti, yazı yazmak bile çok zordu bir kere. Hem database olsa bile ne kadar büyüklükte bir boyutu kaldırabilecekti ki? Fakat elbette Microsoft bizim için pek çok şey düşünmüştü.

Mobil işlemler hala sınırlı. Elbette bluetooth, wireless gibi pek çok seçenek gelişti. Fakat bunların yaygınlaşması zaman alacaktır. Biz oldukça eski fakat gerek kullanım kolaylığı gerek pratikliği ile oldukça popüler olmuş RDA hususunda ilerleyeceğiz. Bir de merge replication var ama ona değinmeyeceğiz.

Öncelikle RDA nedir onu bir açıklayalım. RDA yani Remote Data Access, bir ana veritabanı ve buna bağlı local veritabanları arasında yapılan işlemleri sağlayan mimaridir. İyi de ne bu şimdi artist misin demeyin örnekle açıklıyorum hemen.

Bir satış temsilcisi düşünün, bu adam günde 50 firma gezecek diyelim. Firmasının sorumluluğu mümkün olduğunca elemanından verim almaktır. İşte burada mobil cihaz devreye girer. Bu adama bir PDA ya da ne varsa verilir. Adam çıkış noktasındaki servera gelir ve mobil cihazını ana servera bağlar. Sonra cihazındaki RDA ile geliştirilmiş uygulamasını açar ve kullanıcı adı şifresi ile “data alma” kısmına gelir. Bu işlem ile sunucudaki en güncel bilgileri alır ve yola koyulur. Bu bilgiler uygulamanın ihtiyaçlarına göre geliştirilir. Adamın satış rotasını çizelgeleyen, noıtlar alabileceği bir arayüz oluşturulabilir. Neyse adam gezer tozar, işlerini halleder şirketine döner. Elinde pek çok data oluşmuştur. Yine başladığı noktaya döner. Server’a cihazını bağlar, bu sefer “data gönderme” olayının gerçekleştiği ekrandan yaptığı tüm aktiviteleri içeren dataları gönderir. Böylece hem cihazı temizlenmiş, hem en son güncel bilgiler ana makineye gönderilmiş olur.

İşte bizim Mobil işlemlerimizde RDA ana mantıkta bunu yapar. Ne kadar güzel değil mi?

Peki nasıl yapar? Bir kere bizim bir IIS’e ihtiyacımız var. Bu abi cihaz ile server arasındaki local bağlantıyı sağlar. Diğer ihtiyacımız şüphesiz Microsoft Sql Server. Bir ana veritabanımız olacak ki ondan gidip bize özel dataları alalım değil mi? Alalım nereye alacağız? Evet bir de mobil cihazlar için biçilmiş kaftan olan Sql Server Compact Edition’a ihtiyacımız var. Bunu da mobil cihazımıza yükledikten sonra olan “helva yapma” hikayesine dönüyor.

RDA Ne Yapıyor?

Helvayı .net ile yapacağımızı söylemiştim. Bu platform bize üç ana fonksiyon sağlıyor. İlk ikisini yukarıda anlattım, hani data al data gönder. İşte bunları Pull ve Push fonksiyonalrı ile yapıyoruz. Pull veritabanından ilgili dataları çekmeye, push ise elimizdekileri sunucuya göndermemizi sağlar. Diğeri de SubmitSql fonksiyonudur. Bu doğrudan sunucu üstünde değişiklik yapmamızı sağlıyor. Bu pek gerekmez, ama gerekebilir de değil mi?

Konuyla ilgili müthiş bir makale zamanında csharpnedir.com’da yayınlanmış. Ben üstten bir değinmek istedim. Belki vakit bulursam pek benzeri olmayan örnekler de eklemek isterim. En azından güncel olsun. 10 yıllık bilgiler değil de son teknoloji nereye geldi öğrenmek lazım değil mi?

Hadi bakalım, iyi oldu bu yazı.

3 Comments

  1. samil dedi ki:

    yahu etiket zannediyor bir türlü çizemiyorum şemayı, neyse anlaşıldı ama ..

  2. samil dedi ki:

    blog > ve running on Tomcat,GlassFish, etc.
    |
    o – Database Connector
    -database-

    Gerçi servlet karıştırmak istemesek de direkt db’ye bağlanıyorsun
    oluyor ama, asıl işleri servlete yaptırarak,ufacık cihazı yormuyoruz
    sadece sonuçları alıyor ve işliyor 😉

  3. samil dedi ki:

    bunu gel bir de javayla servlet kullanarak yapalım

    CLDC, CDC for suitable device type
    |
    => running on Tomcat,GlassFish, etc.
    |
    o <- Database Connector

    Gerçi servlet karıştırmak istemesek de oluyor ama, asıl işleri servlete yaptırarak,
    ufacık cihazı yormuyoruz sadece sonuçları alıyor ve işliyor 😉

Bir Cevap Yazın