İleti Kuyrukları İle Daha Etkin ve Performanslı Programlama

0
malkocoglu
Programlararası bilgi göndermeğe yardımcı olan ileti kuyrukları (message queue) bilgi işlemcilerin elindeki önemli silahlardan biridir. Özellikle bilgi alışverişi yapan sistemler farklı amaçlarla, zamanlarda, ve programcılar tarafından kurulmuş sistemler olunca, bağlantıyı kurmak için ileti kuyrukları daha uygun oluyor. IBM MQ Series üzerinden anlattığımız bu konunun yararlı olacağını umuyoruz.

MQ Series - İleti Kuyruğu

MQ Series Nasıl Kurulur

Görüşler

0
mturker
Bu tür araçlardan birkaç tane kullandım, çalıştığım şirkette farklı gruplarda MQ Series in de kullanıldığını gördüm. Bunlardaki en büyük eksik process management olmaması. Yani siz satın aldığınız queue sağlayıcı toolun size verdiği kütüphaneleri kullanarak processlerinizi oluşturuyorsunuz , ayrıca processlerinizin kullanacağı queue ları tanımlıyorsunuz. Bir process ötekine mesaj gönderirken toolun main processi 1. programın out kuyruğundan alıp 2. programın in kuyruğuna yazıyor (veya benzer şeyler) Ama karşı taraftaki program ayaktamı , mesajımı aldımı falan yok. (Tabi bunu kendiniz mesajları timeout a düşürerek yapabilirsiniz). Ayrıca toolun kendi kuyruklarını kullanan programlardan haberi yok, bunları kendisi start/stop edemiyor (Normalde edebilmeli) veya bir süreliğine frozen yapabilmeli. Bir çoğunun (ben olanı hiç görmedim) standart bir hata gözlemleme toolu yok, hatalardan sadece kuyruğu kullanan programların haberi oluyor. Reply mantığı yok , yani A kuyruğunu kullanan programlardan biri başka bir programa mesaj yolladığında , eğer hedef program bir reply mesajı dönerse A kuyruğunu o an okuyan programlardan herhangi biri bu reply mesajını okuyabilir. (bunu da kendiniz mesajlara key koyarak yapabilirsiniz ama kendisi yapmalıydı). Aynı zamanda mesala aynı process serisinden birçok instance çalıştırabilmeli (bunu hiçbiri yapmıyor-zaten process management yok demiştim). Mesaj yoğunluğuna göre dynamic process yaratabilmeli ve yoğunluk azaldığında bunları kapatabilmeli.
Neyse daha bir sürü şey var ama bunların hepsini ve daha fazlasını yapan birtek pathway var. O da bildiğimiz işletim sistemlerinde çalışmıyor. Kendisi Tandem Himalaya Server'lar üzerinde NSK (Non Stop Kernel) işletim sisteminde çalışıyor. Aynısından unixlerde olsaydı muhteşem olurdu. Benzer birşey için kendi kişisel çabalarım var ama fazla yol alamadım. Bu söylediğim özellikleri birileri bu toollara kazandırsa iyi olurdu.

Mehmet Türker
http://www.turker.name.tr
0
malkocoglu
Biz MQ Series'i web sayfalarindan gelen tiklama verilerini arka plan servislere ulastirmak icin kullandik. Ihtiyacimiz olan e$zamansiz bir sekilde bu veriyi gondermekti ve MQ Series isimizi gordu. Otomatik cevap verme (reply) gibi ozellikler MQ 'da var. Eger bir kuyruk uzerinde yuk fazla ise, her uygulama servisi basina bir kuyruk, vs gibi mimari duzenlemeler yapabilirsiniz. Ileti kuyruklari ile satin aldiginiz, e$zamansiz mesaj yollamak ve bu mesajin _kaybolmamasidir_. Bu baz uzerine envai araclar yazilabilir, siz galiba biraz daha gorsel, tiklamali drag-drop bir arac istiyorsunuz.
0
mturker
Yo hayır, ben daha görsel, drag-drop bir araç istemiyordum yanlış anlattım heralde. Daha işlevsel birşey diyordum, daha çok uygulama sunucusu ve ileti kuyruklarının birleşimi gibi. Otomatik cevap vermeden kastım da o değildi aslında. A program serisinin herhangi bir kopyası B programına mesaj gönderirse ve B programı da mesaja reply yaparsa MS Series veya BEA Message Q bu reply mesajını A program serisinin o processine vermiyor, o anda kuyruğu kim okuyorsa ona veriyor. Siz de gerçek hedefe ulaşmasını sağlamak için o processing pid + sid gibi değerleriyle filtreleme yapmak zorundasınız. Eğer yük fazla binerse deyişimden kastım da aslında uygulama sunucularının yaptığı gibi aynı kuyruğun ihtiyaç duyduğu processlerden bir tane daha ayağa kaldırmaktı.


Mehmet Türker
http://www.turker.name.tr
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Hackers: Sıradışı Bir Dönemin Sıradışı Hikayesi

FZ

2004 yazının sıcak günlerinden birinde, e-postalarımı kontrol ederken beni şaşırtan şu iletiyi karşımda gördüm: "İstemiş olduğunuz Hackers - Heroes of the Computer Revolution adlı yayın kütüphanemize gelmiştir ve teknik işlemleri yapılmaktadır. İşlemler bittikten sonra yayın kataloğumuzdan görülebilir. Bu durumu online kataloğumuzdan takip edebilirsiniz. -- İTÜ Kütüphane ve Dökümantasyon Daire Başkanlığı"

Bir an için duraksadım ve şaşırdım, ne olduğunu tam olarak kavrayamamıştım. Daha sonra ise hatırlama süreci ile parçalar yavaş yavaş yerine oturmaya başladı...

Steven Levy'nin bir döneme ışık tutan ve GNU/Linux'tan çok daha fazlasına tarihi bir perspektifle yer veren meşhur kitabının Ergin Sevinç tarafından yazılmış eleştirisinin devamını ileriseviye.org adresinde okuyabilirsiniz.

Ruby ile Zamanlı Süreç İşletmek

malkocoglu

İşyerinde şöyle bir probleme çözüm bulmamız gerekti: Her gece çalışan toptan işleyen (batch) programlar var. Bu programlar SQL kullanarak veri tabanından veriyi dışarı, metin dosyasına aktarıyorlar. Ya da veri tabanında yedekleme yapıyorlar.


Fakat bazen bu programlar ya takılıp kalıyor, ya hiç işlemiyor, ya da tam işlerken arıza çıkıyor. Çözüm olarak, Ruby dilinde yeni bir betik tasarladık. Bu betik, "işletici" ve "izleyici" türden bir program olacaktı.

Gerisi icin Süreç İzleyen Ruby Programcığı

Bir programlama dilini bilme ölçüsü nedir ?

anonim

LKD listelerinde bir süredir devam etmekte olan bir konu başlığı bu.

Tartışmanın bir yerinde bir arkadaş "Bir programlama dilini bilmek için hiç bir başvuru kaynağı kullanmaksızın program yazılabilmeli " dedi.

Bunun üzerine eski FM'cilerden, Uludag projesi COMAR projesi baş programcısı Serdar Köylü yeni başlayanlar için kılavuz olabilecek nitelikte, makale tadında bir yanıt gönderdi.

Ben de listelerde yazılan herşeyin gayet GPL olduğunu düşünerek kendisine sormadan buraya haber olarak geçiyorum :)

Ruby ile Ağ Programlama ve Web Servisleri

anonim

Mark Watson tarafından yazılan ve devx.com da yayımlanan bu makale Ruby ile ağ programlama ve web servislerine giriş niteliği taşıyor. En yaygın kullanılan 3 tip web servisinin (CGI, XML-RPC, SOAP) Ruby ile gerçekleştiriminin anlatıldığı bu makaleye buradan ulaşabilirsiniz.

LIDS ile izinsiz girişlerin tespiti

FZ

LIDS (Linux Intrusion Detection System), sistemdeki önemli dosyaları koruyan ve tanımlanan kurallar çerçevesinde süreçleri(process) izleyen bir uygulamadır. Kendisine bir kural tanımlanır ve o kurala göre dosya/dizinleri korur. Örneğin, kendisine eklenen kurallara göre belirlenen süreçler kullanıcıların gözünden saklanabilir. Böylece ps komutunun sonucunda bu süreç, gözlerden saklandığı için ortaya çıkmayacaktır. LIDS bu tür işlemleri yapabilmesi için yazılımla birlikte sunulan kernel yama dosyasını kernele(çekirdek) yamamak gerekmektedir. Kural tanımlama(ekleme/çıkarma) işlemi yazılımın lidstools isimli araçları ile yapılabilmektedir.

Tacettin Karadeniz´in makalesinin devamına ileriseviye.org sitesinden erişebilirsiniz.