İ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

O´Reilly Kitapları Türkiye´de Türkçe

FZ

Efsanevi yayınevlerinden O´Reilly kitapları artık Türkiye´de Türkçe olarak da yayınlanıyor.

Pusula Yayıncılık tarafından Türkçeye kazandırılan ilk iki kitap Pratik C++ Programlama ve .NET Framework.

Özellikle bu kitaplardan birincisi yani Pratik C++ Programlama 600 sayfalık hacimli bir kitap olup bu önemli programlama diline hakim olmak isteyen programcılar için önemli bir kaynak niteliğinde. Kitap sadece C++ dili ile ilgili değil aynı zamanda gcc, gdb gibi önemli programlama araçlarına dair de bilgiler içeriyor.

Ruby Hacking Guide Artık İngilizce

anonim

Ne zamandır Ruby ile ilgilenemiyordum. Ama gelişmeleri takip ediyorum. Bu sabah ruby-doc.org da okuduğum güzel habere göre Ruby Hacking Guide artık İngilizce ( "Bunun neresi güzel Türkçe olsa neyse" diyenler için daha önce Japonca olduğunu belirteyim) WorldLingo yardımıyla çevirilen belgeye tar.gz ve zip formatında erişebilirsiniz.

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.

Aşık Olacağınız Paylaşım Şekli: shfs

pismikrop

shfs için böyle bir başlık koydum çünkü ben aşık oldum. Artık elimdeki tüm sunucuları güvenli bir şekilde klasörlerimin içine bağlayıp eş-zamanlı iş yapabilirim. Ve iptables'ta tek izinli port ile.

Uzaktaki sunucuda ortak çalışma için öncelikle nfs'i denedik. NFS yerel ağda bir harikaydı. Ama uzaktan erişimi oldukça yavaş ve güvensizdi. Daha güvenli bir paylaşım için shfs biçilmiş bir kaftan. portmap, rpc gibi ek hizmetler gerektirmeyen harika bir paylaşım ortamı.

shfs için sunucu tarafındaki malzemelerimizi sayıyorum: bir adet ssh sunucusu :) istemci tarafındaki malzemelerimiz ise güncel çekirdek sürümünüze ait kernel başlıkları, shfs utils, shfs-source, gcc, module-assistant

Şimdi Debian GNU/Linux ile (ki ben Ubuntu kullanıyorum :) kuruluma sıra geldi...

CVS ve Dallar (Branches) İle Karmaşık Yazılım Yönetimi

malkocoglu_2

Yazılım sektöründe anahtar teslim projeler için bir derece, ürün ile uğraşmakta olan takımlar için kesinlikle lazım olacak bir kaynak kod deposu özelliği vardır. Dallar, yâni branch kavramı. Branch kullanımı her kaynak kod idare programında farklıdır, ve tabii ki açık yazılımın favori programı CVS'te de branch desteği mevcuttur fakat bazı konularda dikkatli olmak gerekmektedir. Yazılım sektöründe birçok konuda olduğu gibi elde bir "yapılması uygun olan/olmayan" gibi bir liste, önceki tecrübelere dayanarak mevcuttur, bu yazıda bu tür tavsiyeleri toparlayarak, kendi tecrübelerimiz ışığında sunmaya uğraştık.

Not: Makale, GNU Emacs ve LaTeX ile yazılmıştır.