Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Delphi => Konuyu başlatan: ByTEK - 28 Ocak 2016, 09:39:22

Başlık: Proje Hakkında Öneriler
Gönderen: ByTEK - 28 Ocak 2016, 09:39:22
Merhaba,

Log center yazılımı yazacağım. 2 adet yöntem var aklımda bu konuda fikrinizi almak istiyorum.

Yazılımda 2 adet exe var. biri yönetim amaçlı kontrol paneli, diğeri ise asıl işi yapan exe.

1.yöntem : yönetim exesi gerekli parametreleri alıp ini olarak diğer exeye verip çalıştıyor. 2.exe verilen parametrelere göre işlemleri yapıyor. Bu yöntemde farklı portlardan dataları alıp gerekli filtre işlemlerini yapıp arşivliyor. işin güzel tarafı her lokasyonu farklı porttan alıp farklı exeler ile işliyorum.

Bu yöntemi kullanırsam yönetim yazılımı ve arkada çalışan exeler ile iletişimi nasıl gerçekleştirebilirim. ?

2.yöntem : yönetim exesi ve bir adet exem var yönetim exesi parametreleri ini olarak diğer exeye veriyorum. bu sefer port bazında değilde hostname bazında arşivliyor. fakat yükü bir yazılım çekecek işlem gücü artacak. yoğun data akışında donmalar olabilir ?

şimdilik aklımdakiler bunlar aklıma başka birşey gelince yazacağım. fikrinizi alamak istiyorum.
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: boreas - 28 Ocak 2016, 09:48:07
Farklı makinelerden bilgileri alıp toplayacaksın gibi düşünüyorum. Anladığım kadarıyla. Ini fikri bana şahsen kötü geliyor eğer iki yazılımın iletişimine uğraşıyorsan ve aynı makinelerdeyseler, dde, post message tarzı yöntemler öneririm. Diğer bir yöntemde şu bir tane DB. kurarsın firebird gibi. ana makina bir ayar ya da veri işlediği zaman tabloya bir event oluşur. Event'deki mesaj hangi istemciyi ilgilendirdiğini içerir o istemcide bilgiyle işi ne ise onu yapar. Ya da ağ üzerinden her istemciyle sunucu birebir iletişim kurar. (Konuyu biraz daha açman gerekiyor gibi :) )
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: ByTEK - 28 Ocak 2016, 10:00:25
Tamam konuyu açalım ☺

Firewalllar internet erişim loglarini verdiğim adrese ilgili porta UDP protokolünde basıyor.

Yazdığım yazılı portu dinleyerek alıp işliyor ve arsivliyor.

1 firewall olunca sorun yok fakat 50 - 100 olunca tek yazılım ile yogun gelen loglarini işlemek sıkıntı.

Bende düşündüm yönetim için bir yazılım yazıp sadece exenin ihtiyacı olduğu parametreleri ini yapıp bu iniyi exeye verip ona göre işlem sağlamak daha uygun olur diye.

DB kullanmadan çözüm arıyorum bundan ötürü ini dedim.

Yönetim yazılımdan diğer exeyi kontrol etmem gerek durdur başlat durum ney gibi
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: boreas - 28 Ocak 2016, 10:10:02
Açıkcası DB.den kaçma derim. Firebird.de yeterli gelir diye düşünüyorum.  O kadar bilgiyi diske yazmak okumak vs. başka bir işlem gücü / yavaşlık bilgi kaybı getirecek. Bu kez gelen bilgilerin işlenmesi başına dert olacak. DB. ile bilginin kayıt olup olmadığını hatta bazı işlemleri procedureler ile direk db.de bile çözebilirsin.
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: ByTEK - 28 Ocak 2016, 10:51:49
Hocam txt olarak olması gerek. çünkü bakanlık yazılımı ile imzalanıyor. her günün logları gün adında txt olarak yazılıyor. Yani hep yokuş :D

mesaj birleştirme:: 29 Ocak 2016, 12:51:30

1.yönteme karar verdim.

şimdi yönetim exesi ile arkada çalışan diğer exeleri nasıl haberleştirebilirim. dur,çalıştır, veya hata varsa sonuçları gibi. programı kapat vs komut göndermem gerek. servis olarak çalışan exeler aynı isim altında olduğu için isimden gidemem. çözüm arıyorum.

mesaj birleştirme:: 28 Ocak 2016, 12:56:11

yok Thread kullanmaya karar verdim. en azından aynı exe içinde istediğimi yaparım.
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: peko - 28 Ocak 2016, 15:39:06
Alıntı YapHocam txt olarak olması gerek. çünkü bakanlık yazılımı ile imzalanıyor. her günün logları gün adında txt olarak yazılıyor. Yani hep yokuş :D

Txt olmasına gerek yok.
Store and forward yapı kur.
UDP'yi dinle, sinyal geldiğinde paketi hiçbir müdahalede bulunmadan (raw) db'ye yaz. (Db'ye yazma esnasında diğer gelen paketleri aradan kaçırma, oluşturacağın diğer thread'ler ile onları da yakala ve işleme al..)
Buraya kadar paketler sağlıklı bir şekilde db'ye yazılmış olur.. bu katmanda işin biter..
Sonra;
Windows Servis yaz, kaydettiğin paketleri arka planda işle ve txt formatına nereye nasıl istiyorsan yaz veya gönder..

Böyle işlemleri birbirinde izole etmiş olursun. Paket geliş hızı, db yazma hızı, txt yazma hızı vb işlemler fıstık gibi çalışır.

Çalışmazsa geri alırım. :)

Kolay gelsin...
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: peko - 11 Şubat 2016, 08:22:22
@SercanTEK

Sonuç yada gelişme var mı ?
Başlık: Ynt: Proje Hakkında Öneriler
Gönderen: ByTEK - 11 Şubat 2016, 11:36:49
@peko

hocam şuanda yok sahada başka işler ile uğraşıyorum. gelişme olunca bilgi veririm.