BPEL’de yeni bir süreç açtığınızda karşınıza 3 seçenek çıkar : asynchronous(asenkron), synchronous(senkron) ve empty(boş) project.
Empty proje de bir çeşit asenkron projedir. Senkron ve asenkronun arasındaki en temel fark ise, senkronun geriye cevap döndürmesi ve onu çağıran sürecin o cevabı beklemesi, asenkronu ise çağıran sürecin cevap beklememesi olarak düşünebiliriz.
Bir BPEL süreci oluşturmadan önce süreçlerin tasarlanması, alt süreçlerin dizayn edilmesi ve süreçlerin birbirlerini nerede hangi şekilde(senkron, asenkron) çağıracağını tasarlamak gerekir. BPEL programlama da normal progmramlamadan farksız olarak tasarlanmalıdır. Bir c++ programında nasıl metotlar yapıp onları defalarca ve farklı yerlerde çağırıyorsak, BPEL’de de yine alt süreçler aracılığıyla bu işi yapabiliriz. c++ programlama da geriye değer dönen bir metodun karşılığı BPEL’de senkron, değer dönmeyen sadece bir iş yapan metodun karşılığı ise asenkron olarak düşünebiliriz.
Yeni bir BPEL processi oluştururken bunlara dikkat etmek gerekir.
senkron ve asenkronun kullanıldığı yerleri size basit ama sık karşılaşılabilecek bir örnekle anlatmak istiyorum:
Elimizde bir proje var, bu proje gereği bir yerden veriler dakikada ortalama 1000 tane olarak alınıp, işlenip başka bir yere gönderilmesi gerekiyor. Bu projeyi 2 sürece böldük diyelim. Birincisi verileri alıyor ve alt süreci her veri için tek tek tetikliyor. İkincisi yani alt süreç ise gelen tek veriyi işleyip ilgili yere gönderiyor. Yani ilk süreç dakikada 1 kere çalışırken, alt süreç 1000 kere, her data için ayrı ayrı çalışıyor. Burada önemli olan eğer verilerin alt sürece sırasıyla gönderilmesi gerekiyorsa o zaman alt süreç senkron olmalıdır. Bu sayede bir döngü içinde teker teker çağrılan alt süreç öncekinden cevap geldikten sonra tetiklenir. İşlemler biraz yavaş olur, çünkü seri işleme yapılır. Eğer sıra önemli değilse o zaman alt süreç asenkron olabilir. Bu şekilde olursa döngü içerisinde alt süreçler hemen tetiklenirler ve paralel çalışırlar. Senkrona göre çok hızlı olur ama sıra tabi ki korunmaz.
Umarım senkron ve asenkron arasındaki farkı anlatabilmişimdir.
Ağustos 5, 2009
BPEL’de Senkron ve Asenkron Süreçler
Yorum yapın »
Henüz yorum yapılmamış.
Bu yazıya yapılan yorumlar için RSS beslemeleri. URI'nin geri izlemesini yap.