Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DataSnap Çalışma Mantığı
#1
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
Cevapla
#2
Ben en güzel açıklamayı ve örneği ayşen hanımın yazısında görmüştüm.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#3
(28-08-2017, Saat: 17:53)boreas Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBen en güzel açıklamayı ve örneği ayşen hanımın yazısında görmüştüm.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Teşekkür ederim.
Cevapla
#4
(28-08-2017, Saat: 15:54)burakb44 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba 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.
WWW
Cevapla
#5
(29-08-2017, Saat: 18:11)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(28-08-2017, Saat: 15:54)burakb44 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba 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.

Verdiğiniz bu detaylı bilgiler için teşekkür ederim.


O zaman sizin tecrübelerinizden istifade edelim. 
Şöyle bir senaryo olsa; 
Bir tarafta merkez ana ofis, 
ofis içinde 1-5 arası client, 
en az 15 şehirde uzak client ve 
mobil desteği olan bir program için nasıl bir yapı önerirsiniz?

Ben mobil hariç diğer client db bağlantılarını direk componentler ile yapıp mobil kısmı için datasnap düşünüyordum
Cevapla
#6
Oncelikle butun arama, kayit vb islemleri databasede prosedur olarak yap. Delphide yazdigin program sadece arayuz gb olsun bunlara dikkat et
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#7
Tam benim konum güzel bir makale yazayım demiştim ki c.sunguray ın makalesini gördüm. ben bu kadar detaylı ve açıklayıcı yazamadım. elinize sağlık..
WWW
Cevapla
#8
aslında çalışma mantığı olarak bir nevi webservisdir.. Kullanıcının db ye direk erişim istenmediği zamanlarda kullanılır.. Client <-> DatasnapServer <-> DB sunucusu..

en kısa ve öz bu şekilde anlatılır sanırım..
WWW
Cevapla
#9
Merhaba;

@boreas dediği gibi; Çoklu platformlarda hızlı uygulama geliştirmek için işin tüm yükünü database tarafında halletmeniz yararınıza olacaktır database tarafında kayıt ekleme silme dahil her şeyi Stored Procedure yazarak program tarafında sadece parametre göndermiş olursunuz böylelikle; Win, Web, Mobil tarafında çok hızlı çözümleri benzer zamanlarda çıkarabilirsiniz.

İyi çalışmalar.
Cevapla
#10
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Linkteki sıkıştırılmış dosyada aşağıdaki konu başlıklarında Türkçe kaynaklar mevcut:

DataSnap XE in Action
Delphi 2010 DataSnap
The New DataSnap in Delphi 2009

Yanlış hatırlamıyorsam bir zamanlar Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol paylaşmıştı. Tekrar O'na ve emeği geçenlere teşekkür ederim.
There's no place like 127.0.0.1
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Lisans Key ile web üzerinden lisanslama mantığı? canbir 5 206 31-03-2018, Saat: 15:58
Son Yorum: dicle_gsm
  Datasnap Türkçe karakter sorunu [Çözüldü] hakanharbeli 4 209 11-02-2018, Saat: 03:29
Son Yorum: hakanharbeli
  Çalışma anında form tasarımı boreas 4 318 10-01-2018, Saat: 17:10
Son Yorum: boreas
  DataSnap Invalid Argumant Hatası burakb44 6 254 25-12-2017, Saat: 23:43
Son Yorum: burakb44
  Çalışma anında program kodu yazıp çalıştırmak boreas 9 524 30-10-2017, Saat: 11:17
Son Yorum: engerex



Konuyu Okuyanlar: 1 Ziyaretçi