(28-08-2017, Saat: 15:54)burakb44 Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar,
DataSnap'ın çalışma mantığı ve form yapıları hakkında yerli makale varmı? Birde mobil olmasına gerek yok client server mantığını tane tane anlatan bir video veya kaynak varmı?
Mantığını çözmeye çalışıyorum ama tam başaramadım.
Yardımlarınız için teşekkürler
DataSnap (eski adıyla Midas) Delphi'nin bize sunduğu orta katman teknolojisidir. DataSnap ile bir taraftan Sunucu uygulamaları yazıp diğer taraftan Client ile bu sunucu uygulamalarına bağlanıp bir takım işlemler yaptırabiliriz. Böylece Client tarafında yapmamız gereken bazı işleri Sunucu tarafına yığabiliriz. Buna Distrubuted Computing, (dağıtık bilgi işlem) de denir. DataSnap'i bir veritabanına bağlanmak için kullanabiliriz veya tamamen özel bir fonksiyon yazarak bunu client tarafından çağırabiliriz.
Diyelim ki bir veritabanına bağlanmak için bir DataSnap sunucusu yazdık ve Client programıyla bu veritabanına bağlandık. Doğrudan veritabanına bağlanmaya göre ne gibi avantajlarımız olabilir?
1. Öncelikle güvenlik avantajımız olur. Veritabanı sunucusunun tamamına bağlanmak yerine sadece bize izin verilen objelere bağlanırız. Böyle bir ayarlamayı elbette SQL Server gibi bir veritabanında da yapabiliriz. Ama bu sefer değişik bir uzmanlık türüne ihtiyacımız olur.
2. İş kurallarını Server tarafına yığabiliriz. Örneğin bir fatura kaydettiğimiz zaman bunun cari hesap ve stok entegrasyon kısmını ve diğer veri geçerlilik kodlarını Datasnap Server tarafında yazabiliriz. Böylece elimizde gayet hafif bir client kalır. Aynısını SQL Server trigger ve stored procedure (sp) leri ile de yapabiliriz. Ama o zaman yine sadece Pascal/Delphi kodlama yerine ayrı bir uzmanlığa ihtiyacımız olur. Bu kodların bakımı da (değişiklik, debug vb.) Delphi kodlarına göre daha zordur. Ayrıca trigger/sp kullanımında SQL Server için yazdığımız kodlar sadece SQL Server için geçerli olur. Başka bir veritabanı sunucusu türü kullanmak istediğimizde kodlarımız geçersiz olur.
3. Bant genişliği avantajımız olur. SQL Server a doğrudan bağlandığımızda 1000 kaydı çekmek için kullandığınız network trafiği aynı kaydı Datasnap yoluyla çekerken kullandığımızdan çok daha fazla olacaktır. (Bu konuda rakam veremiyorum.)
4. Briefcase model sayesinde offline çalışabilirsiniz. Yaptığınız değişiklikler client tarafında biriktirilir. Bağlantı kurulduğu zaman değişiklikler yansıtılır. Bu özellik mobil cihazların yaygınlaştığı bu zamanda önem kazanmıştır.
5. SQL Server lisans avantajı sağlayabilirsiniz. Datasnap kullanırsanız her bağlandığınız cihaz için ayrı bir SQL Server CAL lisansı almanıza gerek kalmaz.
Veritabanı bağlantısı haricinde tamamen bağımsız fonksiyonlar yazıp server tarafında bazı işlerin yaptırılmasını sağlayabiliriz. Delphi içerisinde hazır örnek olarak ReverseString fonksiyonu verilmiştir. Bu fonksiyon parametre olarak gönderilen bir stringi ters çevirip sonuç olarak geri döndermektedir. Bu örnekte dikkat etmeniz gereken şey bir stringi tersine çevirmek için kullanılan CPU gücü tamamen server tarafında kullanılmıştır. Bu şekilde daha kapsamlı fonksiyonlar yazıp bazı işlerinizi Server tarafına yığabilirsiniz. Bu özellik mobil cihazların yaygınlaştığı bu zamanda önem kazanmıştır.
Delphi'nin son sürümünde (10.2/Tokyo) yazdığımız sucunu programlarını Linux için derleme ve Linux üzerinde çalıştırma olanağı getirilmiştir. Böylece sunucu tarafına sadece Windows değil Linux kullanmak mümkün hale gelmiştir. Bu da müşterilemize performans ve lisans ücreti anlamında avantajlı çözümler sunmamızı sağlamıştır.