multi tier yapı nedir. Temel Taşları...Nasıl Oluşturulur

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

multi tier yapı nedir. Temel Taşları...Nasıl Oluşturulur

Mesaj gönderen delphist »

S.a. Arkadaşlar Böyle bir yapı nasıl kurulabilir...Mantık nedir kodlama standardı varmıdır. vb. Örnekleri mevcutmudur. Şimdiden Teşekkür ederim cevaplarınız için...
Kullanıcı avatarı
sychorax
Üye
Mesajlar: 206
Kayıt: 20 May 2004 04:29

Mesaj gönderen sychorax »

Pratikte hiç kullanmadım ama bildiğim kadarıyla şöyle.
1-Veritabanı
2-Veritabanındaki işlemler için kullanılan katman.
3-Verilerin kullanıcıya gösterildiği ve kullanıcıların işlem yaptığı bölüm.

Sanırım en büyük avantajı programın değiştirilmesi gereken kısmı sadece orta katmanda değiştirmesiyle tüm kullanıcılara yansıması.Ufak tefek uygulamalar için gereksiz ama mesela 2000-3000 kullanıcılı erp programları için zorunluluk.

Basit bir örnekle
Mesela senin veritabanındaki iki sayıyı toplayan 20.000 kullanıcılı(!) bir programın var.
-Birinci katmandaki veritabanı 2. katmana toplanacak sayıları gönderiyor
-İkinci katman sayıları topluyor.3. katmana gönderiyor
-Üçüncü katmanda o iki sayıyı kullanıcıya gösteriyor.

Ama sen fikir değişitirip sayıları toplamasını yerine çarpmasını istediğin zaman orta katmanda değişikliğini yapıyosun bu 20.000 kullanıcıya yansıyor.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

bu yapının client-servera olan üstünlükleri bir hayli fazladır.

bildiğim kadarıyla client-serverin dezavatajları şunlardır.
-birkaç yüz kullanıcıya kadar sağlıklı çalışabilir.
-her client veritabanına kalıcı bağlantılarla bağlanır bu da veritabanının performansını düşürür ve olası diğer hatalara davetiye çıkarır.
-uygulama mantığının çoğu clinetlarda ki programların içinde barındırılır
-bir değişiklik halinde güncellenmeleri oldukça zordur
-client bilgisayar donanımlarının belli bir düzeyin üstünde olması gerekir. bu da maliyeti artırır.

çok katmanlı yapı ise aşağı yukarı şöyledir.
1-Sunucu Katmanı -> veritabanınn bulunduğu katman
2-Uygulama Katmanı --> iş uygulamalarının bulunduğu katman. Bu katman istemciden gelen isteklere göre veri katmanına bağlanır gerekli verileri alarak tekrar istemciye gönderir.
3-İstemci katmanı --> son kullanıcının etkileşim içinde olduğu arayüzü içeren katman.

multitier (n-tier olarakta geçer) mimaride olay daha farklıdır.
veritabanı ile client arasına bir veya daha fazla katman konularak bazı avantajlar elde edilir. bildiğim kadarıyla bu avantajlar:

-Binlerce kullanıcısı olan sistemleri fazla zorlanmadan tasarlayabilirsiniz.
bu mimaride istemcilerin her biri direkt veritabanına bağlanmaz. Uygulama sunucusuna bağlanır ve isteklerini buraya iletir. bu sayede veritabanına yapılan kalıcı bağlantıların sayısı ciddi oranda azaltılır.

-client-server mimariye göre güncellenmesi daha kolaydır. iş kurallarınız orta katmanda bulunduğu için burda yapacağınız bir değişiklik (büyük oranda) istemci katmanını etkilemeyecektir. Yine duruma göre veritabanı tarafından yapacağınız değişikliklerinde önemli bir kısmı istemci katmanında bir değişiklik yapmanıza ihtiyaç bırakmayacaktır.

şu an aklıma gelenler bunlar ama
http://www.godoro.com/Divisions/Ehil/Ma ... _tree.html bu adresten daha fazla bilgiye ulaşabilirsiniz.

işin delphi tarafına gelince delphi 3. sürümünden beri bu yapıyı desteklemektedir. delphi 6 dan önce bu teknolojinin adı midas (multi tier distrubuted application server olması lazım) idi şimdi ise datasnap adını aldı. bileşen paletinde datasnap adıyla yer alıyor.... bu işi çok iyi yapan 3.parti bileşenlerde mevcut. http://www.remobjects.com/page.asp?id={ ... E2AF8132F4}

bu iş için geliştirilmiş bir çok teknoloji mevcut. com, dcom, javarmi (?), corba vesaire.... .net ile ise .net remoting adlı bir teknoloji geliyor.

şimdiye kadar hiç 3 katlı uygulama geliştirmedim. (eğer asp ile yapılan web sayfaların saymazsak :) ) ama iyi ve gayet kullanışlı bir yapı olduğu su götürmez bir gerçek. yukarıda yazdığım bilgilerin içinde alakasız ve yanlış olan bilgilerde olabilir. ben sadece bugüne kadar edindiğim bilgileri buraya yazdım.

delphi ile 3 katmanlı uygulama geliştirmiş olan arkadaşlar da bilgilerini bizimle paylaşırsa memnun oluruz....
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

s.a. Kardeş cevabın için çok teşekkür ederim...Peki bu konu ile ilgili ben ufak ta olsa bir örnek bulamadım...Acaba sizin blidiğiniz bir örnek vs. var mı...Teşekkür ederim...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

C:\Program Files\Borland\Delphi6\Demos\Midas

http://www-106.ibm.com/developerworks/d ... swart.html

http://www.nldelphi.com/cgi-bin/article ... e?ID=17870
(örneğin kaynak kodu mevcut)
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Şimdi bu n-tier modelinde bir server üzerinde bulunan bir program yazazacağız clientlar bu programla server client mimaride olduğu gibi haberleşekecek daha sonra bu server gibi düşündüğüm clienttan isteği alan arayüz gidecek başka bir makinede kurulu olan database ver iyazacak......Yanlış mı anlamışım...ibm olan linki bende bulmuştum ama dosyayı çekemiyorum...Bunun hakkında bi kitap felan yokmu arkadaşlar...Yani böyle öğrenebilmem baya zor görünüyor...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

doğru anlamışsın
kitap konusunda ise marco cantu nun delphi kitaplarında bir bütün olarak olmasada parça parça bölümler var. delphi 7 kitabında datasnapla ilgili bir bölüm yer alıyor.

sadece, "delphi ile yazılmış 3 katlı uygulamalar" konulu bir kitap bildiğim kadarıyla yok. 3 katlı uygulamalar ile ilgili olarak java kitaplarından da bilgiler bulabilirsin diye tahmin ediyorum.. + internet ve borlandın haber grubu
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Cevapla