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.
http://aysenlik.blogspot.com.tr/2012/09/...malar.html
Topluluk mopluluk yok :/
Cevapla
#3
(28-08-2017, Saat: 17:53)boreas Adlı Kullanıcıdan Alıntı: Ben en güzel açıklamayı ve örneği ayşen hanımın yazısında görmüştüm.
http://aysenlik.blogspot.com.tr/2012/09/...malar.html

Teşekkür ederim.
Cevapla
#4
(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.
WWW
Cevapla
#5
(29-08-2017, Saat: 18:11)csunguray Adlı Kullanıcıdan Alıntı:
(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.

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
Topluluk mopluluk yok :/
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..
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..
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
https://yadi.sk/d/qqmnbi3u3MXMxu

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 Volkan Bey 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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  4 İşlem - PDF Çalışma Sayfası Hazırlama Frrst 0 223 25-08-2023, Saat: 09:58
Son Yorum: Frrst
  XML Json dosyaları ile Çalışma masteryoda 10 8.690 10-08-2022, Saat: 23:21
Son Yorum: varyemez
  Thread pool mantığı nasıl kurulmalı ? mrmarman 12 3.106 16-12-2021, Saat: 20:45
Son Yorum: Tuğrul HELVACI
  DataSnap Rest Server Mimari Seçimi Hakkında LastCoder 3 1.057 31-08-2021, Saat: 00:11
Son Yorum: barutali
  Datasnap rest service türkçe karakter sorunu hakkında yanniosman 2 1.355 01-04-2021, Saat: 01:11
Son Yorum: yanniosman



Konuyu Okuyanlar: 1 Ziyaretçi