Server Client Mimari de hangi bileşenleri kullanmak daha doğ

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

Server Client Mimari de hangi bileşenleri kullanmak daha doğ

Mesaj gönderen delphist »

Server Client mimaride socket programlama ile mi bağlantıyı kurmak en çok kullanılan yöntem ve doğrusu yoksa indy bileşen seti ile bunu yapmak mantıklı arkadaşlar...Doğrusunu ve açıklamasını yaparsanız sevinirim...Bu kafama takılan 1. nokta.....

Ayrıca Server Client mimaride kullanıcının gireceğine vs. alacağı bilgileri yine datamodule kullanarak database ulaşıp verileri getireceğiz ama kayıt işlemi herhangi bir şekilde serverla mesajlaşarak olacak yani yine client tarafında database den gerekli menü ve bilgiler için çekeceğiz heralde ben burda biraz mantık karışıklığı yapıyorum....Bu kısmı açıklarsanız çok memnun olacağım....Tabi burada takılmakla birlikte client tarfında örneğin edit1 ve edit2 de ki bilgiler server a gönderilip yazdırılacak peki server tarafındaki programda clienttan gelen mesaja göre bu kayıt yapılacak ama bu editleri nasıl göstereceğim verileri nasıl alacağım client tarafındaki editlerden....Yani hep örnekler var ama chat mesaj gönderiliyor sadece.....Tam anlayamadım....
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Yok MIDAS ile yapacaksın n-tier mimariyi. Örnekler: Delphi Demo'ları -> MIDAS.
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Hocam Midas N-tier olayına baktım ama ben tam çözemedim Ben sadece Server Client şeklinde çalışan bir mimari kurmar istiyorum...Burdaki sorunum ve anlamadığım nokta şu ....Client taki örneğin combobaxa serverda bulunan a tablosundaki verileri doldurmak istiyorum bunu client tarafında database bağlanıp doldurup sonra verilerin kayıt boyutunda server a mı mesaj göndererek yapacağım yoksa...Bu doldurma işlemleride örneğin combo click olayını yazılan bi kodla yine mesaj gönderilip servera server tarafında kodla mı bu comboboxa veri dolduracağım burada kafam karıştı benim...Yardım ederseniz çok sevineceğim...Teşekkürler
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

n-tier mimaride ben de tecrübeli değilim. Ancak anladığım kadarını söyleyeyim. Bu mimari client UI mantığın ile iş yapış mantığını ayırmak için kullanılıyor. Yani sen client UI'nde server'ın gönderdiği veri paketlerini görüntülüyorsun sadece. Server'da iş mantığına göre bu veriler database'den nasıl çekilecek onu belirliyor.

Yani bir combobox'u doldurmak için client tarafında gene bir MIDAS dataseti kullanıyorsun. (Dataset dediğime bakma) Bu dataset server'dan veriyi çekiyor. Server'a veri isteği gönderdiğinde server veritabanından bu bilgiyi çekiyor. Uygun şekilde formatlıyor. Sana geri gönderiyor. Sen gene combo'nun içini doldurmak için client'a kod yazıyorsun tabi. "while not EOF do" tarzı.

Özetle olay şu. Mesela senin veri çektiğin tablo fiziksel olarak değişti. Adı, sanı veya yapısı. Bütün dataset'ler client tarafta olsa bunları düzeltip bütün client'larına vermen gerekecekti. Ama burada sadece server'da değiştiriyorsun. Client bunu hissetmiyor bile. Sen client tarafına sadece datayı gösteren kodu yazıyorsun. Butona basınca şöyle olsun vs.., kodlarını yazıyorsun.

Umarım açıklayabilmişimdir.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

SAP R/3'ü duydun mu bilmiyorum. Dünyanın en hayvani ERP yazılımıdır. Burada da n-tier mimari kullanılır. Adamlar burada kullanıcı gui'sini de bir server'dan yönetir.

SAP Client'da kullanıcıdaki client üzerinde tanımlı herhangi bir form yapısı yok aslında. Server, client'a diyor ki, (10, 10) koordinatına bir combo çiz, (10,5)'e bir button koy. Button'a basılınca commit yolla. Combo'da seçince şunu yap. vs.. Şeklinde form yapısını yollar. Burada GUI'yi de ayırmış yani. Client'ın tek yaptığı söylenen koordinata button vs.. çizmek, bunların event'lerini server'a geri göndermek.

Yani senin düşündüğün de saçma değil. Server da combo'yu doldurabilir. Ama çok kapsamlı bir çalışma gerektirir. Her projede gerekli mi sence?
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

İşte şu an bana N-tier ağır gelir...Kaldıramam....Ben 35 veya 40 kişinin bağlanacağı bir yapı yapacağım ve Server Client şeklinde bir yapı kurmak istiyorum...Appserver değil....

İlk defa bir Server Client mimari kullanacağım için sürümcemedeyim...Tam olarak mimariyi bilmemekle birlikte en fazla gördüğüm örnek chat örneği başka böle bir adam akıllı örnek bulamadım...

Server tarafında yapacağım kafamdaki blana göre modül modül dll dosyalarını bir exeye bağlamak ve bu exede sadece bir tane form hep açık kalacak olan oda kim girdi kim çıktı ipsini gösteren bi arayüz form....Daha sonra Client tarafında datamodule kullanarak bilgi bakımından comboların doldurulması editlere veri gelmesi falan filan tüm bilgileri client tarafında database ulaşarak çekmek...ve kayıt noktasında servera mesaj gönderip gerekli kaydı yaptırmak yani bilginin görünmesi noktasında client tarafından database direk erişerek bilgileri görüntülemek....Kayıt noktasında serverın yapması.....Benim anladığım Server Client mimari bu....Acaba yanlış nedir benim yaptığım doğru mu olacak...Onu merak ediyorum....Lütfen bu konuda yardımcı olursanız sevinirim.....Takıldım kaldım.... :cry:
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Veriyi de server'dan çekmen daha uygun olur diye düşünüyorum. Sonuçta böyle bir mimari kullanacaksan, sadece veriyi kaydetmek için harcama. Veriyi çekerken de server'dan faydalan. MIDAS demoları cidden çok güzel hazırlanmış. Aslında tam istediğin şeyi hedefliyor.
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Peki hocam midas haricinde ben bu yapıyı serversocket veya indy bileşenleri ile kurmak istiyorum....Böle yapmamdaki sakınca nedir...Acaba problem olur mu yani...? Kafama takılan tabi bir 2. konu örneğin clienttaki bir comboyu doldurmak .....burdaki veriyi nasıl oradaki bileşenlere atayacam ordada çakıldım kaldım ufak bir örnek olsa zaten bu kadar başınızı ağrıtmazdım...Kardeş...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Aradaki fark şu olur. Çok kod yazarsın. Çok vakit harcarsın. Problemlerle boğuşursun. Gene de istediğin gibi olmaz.

Diğer tarafta denenmiş ve kendini kanıtlanmış, bu iş için özelleşmiş bir yapı var ve hemen hemen hiç kod yazmazsın. Sadece öğrenmek için biraz vaktini harcarsın.

Tercih tabii ki senin. Bence en mantıklısı MIDAS.
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

anlıyorum açıklamaların için çok teşekkür ederim peki server ın clienttaki editlere göndereceğim tüm verileri writeln metodu ile ayrı ayrı değişkenlere aktarıp client tarafında readln okutup editlere mi eşitleyeceğim...Yani takıldığım ve kafamda oturup ama yapmadaığım mantığını anlamadığım tek konu bu...yani örneğin 8 tane edit kutusu var ben client tarafında bi combonun clickini veri al dediğim servera gitti mesaj combo doldu ve seçilen öğenin detaili editlerde gösterilecek peki serverdan bu editlere gelecek veriyi client tarafındaki editlere nasıl göndereceğim burada takılmaktayım...
Cevapla