• Sonuç bulunamadı

Kayıtçı Tarafı

5.4. ABDES Sisteminin Bileşenleri

5.4.3. Agvent Sunucu

ABDES Sistemi Şekil 5.4’te görüldüğü gibi, farklı topolojilerde birleştirilebilen AS’larından oluşur. ABDES Sisteminin temel görevi kendine ulaşan agventin en hızlı şekilde bu agventle ilgilenen Kayıtçılara ulaştırması için uygun çalışma ortamını oluşturmaktır. Bu nedenle AS’larının belirli bir düzen içinde çalışmaları ve kendi aralarında işbirliği yapmaları gerekir. Bir AS’sunun işlevini yerine getirebilmesi için aşağıda gösterilen Int_AgventServer ara yüzünü gerçeklemesi gerekir.

public interface Int_AgventServer extends Remote { public void Yayım(Agvent agv);

public void Kayit_Ol(Kayit sub); public void Kayit_Sil(Kayit sub); public void Duyuru_Yap(Duyuru adv); public void Duyuru_Sil(Duyuru adv);

public Duyuru[] Duyuru_Listesini_Al(String filter) }

Bir Agvent Sunucusunun iç yapısı Şekil 5.8.’de gösterildiği yedi yöneticiden oluşmaktadır. Bu yöneticilerin işlevleri aşağıda sıralanmıştır.

Şekil 5.8 : Bir Agvent Sunucusunun İç Yapısı Duyuru Yöneticisi Kayıt Yöneticisi Agvent Çalışım Platformu * * * * * * Agvent Dağıtıcı Kuyruk Yöneticisi Giden Agvent Kuyruğu Gelen Agvent Kuyruğu

Bilgi Tabanı Yöneticisi

Yayım

Duyuru

Tablosu Tablosu Kayıt Kayıtçı

Tablosu Tablosu Komşu

Yayım Yöneticisi Duyuru Kuyruğu Duyuru_Sil Duyuru_Yap Yayım veya Bildir Kayıt Kuyruğu Agvent Yöneticisi Kayit_Sil Kayit_Ol

Bilgi Tabanı Yöneticisi: Bu birimin görevi AS’sunun çalışması için gerekli olan verilerin saklandığı dört ana tabloya erişimi düzenlemektir24. Bu tablolar ve içeriklerini şu şekilde sıralanabilir:

1. Komşu Tablosu (Neighbour Table); Bir AS’sunun doğrudan bağlı olduğu

diğer komşu AS’suna ait tanımlayıcı, adres gibi bilgilerin yer aldığı veri tabanı tablosudur. Bu tablo özellikle kayıt ve duyuru mesajlarının dağıtımında kullanılır.

2. Duyuru Tablosu (Advertisement Table); Bu tablo sistemde yayımlanan

agventlere ilişkin tanımlayıcı bilgilerini tutar. Bu bilgiler agventin filtrelenebilir özelliklerinin yanı sıra, filtrelenebilir davranışları da içerir (bakınız Şekil 5.12, Şekil 5.13). Kayıtçı bu bilgilere dayanarak kendi belirlediği koşullarda bildirimlerin ulaşmasını sağlayacak ölçütleri hazırlar.

3. Kayıtçı Tablosu (Subscriber Table); Bu tablo Kayıtçılara ait tanımlayıcı,

şifre, adres gibi belirleyici bilgilerin yanında agventin de kendi filtreleme ölçütlerine uygun olarak seçim işlemi yapabilmesi için Kayıtçının makinesinin özellikleri (hard disk kapasitesi, işlemci hızı, işlemci sayısı, bellek miktarı, Internet bağlantı hızı, vs) ve bazı şirketsel bilgileri (sermayesi, kar oranı, güvenirliği, vs) tutmaktadır.

4. Kayıt Tablosu (Subscription Table); En sık erişilen veri yapısıdır. Tabloda

Kayıtçıların bildirdikleri kayıt ölçütleri yer alır. Erişim süresini azaltmak için veri tabanı özellikleri kullanılarak SQL komutları ile erişim sağlanır25. AS’suna ulaşan bir agvent, kendini ilgilendiren bilgileri değerlendirerek tanımlı ölçütlerin doğrulandığı takdirde, kendini hedef düğümlere yönlendirme işlemini yürütür.

Kuyruk Yöneticisi: Bu birimin görevi eş zamanlı çalışan diğer birimlerin, kendi denetiminde yer alan dört kuyruk yapısına, karşılıklı dışlama koşullarında erişmelerini sağlamaktır. AS’suna gönderilen bu mesajların geriye bir sonuç döndürmeleri gerekmediği için (return değerleri void olan metot çağrıları olduğu için), her gelen mesaja, mesajın gönderildiği çağrı içinde işlem yapmak yerine, gelen mesaj hemen ilgili kuyruğa atanarak, metot çağrısı sonuçlandırılmış olur. O mesajı işlemek ise ilgili yöneticinin (yayım yöneticisi, duyuru yönetici, agvent dağıtıcı, agvent yöneticisi) işidir. Kuyruk Yöneticisinin yönettiği kuyruk yapıları şunlardır:

1. Duyuru Kuyruğu; “Duyuru_Yap” ve “Duyuru_Sil” metotları ile AS’suna gelen

duyuruların işlenmek üzere saklandığı kuyruk yapısıdır.

24 ABDES Sisteminde Bilgi Tabanı Yönetimi konu başlığında detaylandırılmıştır

25 Kayıt Tablosu Java Veri Nesnesi olarak tutulduğu için erişimde JDOQL sorgulaması ile yapılmaktadır.

2. Gelen Agvent Kuyruğu; “Yayım” metodu ile AS’suna ulaşan agventlerin

işlenmek üzere saklandığı kuyruk yapısıdır.

3. Giden Agvent Kuyruğu; AS’sundan diğer AS’larına veya Kayıtçılara

gönderilecek olan agventlerin saklandığı kuyruk yapısıdır. Bir agvent kendisini başka bir AS’ya kopyalamaya/göndermeye karar verdi ise, hedef düğüm adresi ile birlikte kendisini bu kuyruğa ekler.

4. Kayıt Kuyruğu; “Kayit_Ol” ve “Kayit_Sil” metotları ile AS’suna gelen kayıt

mesajlarının işlenmek üzere saklandığı kuyruk yapısıdır.

Kayıt Yöneticisi: Kayıt kuyruğunda bekleyen kayıt mesajlarını alarak bunları AS’nun bilgi tabanına işler. Yönlendirilmesi gereken AS’ları duyuru tablosundan tespit eder ve kayıt mesajlarını buralara yönlendirir.

Agvent Yöneticisi: Gelen Agvent Kuyruğunda bekleyen agventleri inceleyerek bunları aktif hale getirir veya ilgili AS’ya veya Kayıtçıya yönlendirilmek üzere Giden

Agvent Kuyruğuna ekler.

Duyuru Yöneticisi: Duyuru Kuyruğunda bekleyen duyuru mesajlarını alarak bunları AS’nun bilgi tabanındaki duyuru tablosuna işler. Yönlendirilmesi gereken AS’ları komşu tablosundan tespit eder ve kayıt mesajlarını buralara yönlendirir.

Agvent Dağıtıcı: AS’sundan diğer düğümlere gönderilecek olan agventlerin gönderilme işlemlerini yürütür. Giden Agvent Kuyruğunda bekleyen agventler hedef makinelere Agvent Dağıtıcı tarafından gönderilir.

Agvent Yönetici: Gelen Agvent Kuyruğunda bekleyen agventler eğer AS üzerinde aktif hale getirilmesinden ve bu agventlerle ilgili yönetimsel işlerden sorumludur.

5.5. Agventler

Sistemin temel taşı olan Agvent kavramının tam olarak ne olduğunu anlamak çok önemlidir. Bir agvent;

Yayımcılar tarafından üretilen olay verisini Kayıtçılara ulaştırmak üzere ABDES

Sistemi üzerinde göç ederek hareket eden ve bağlantı düğümlerinde26 aktif hale

getirilerek göç edeceği hedef makineyi/makineleri seçip kendini özerk olarak bu makinelere yönlendiren kod ve veri bütünüdür.

Agventler Yayımcılar tarafından üretilerek Kayıtçılara ulaşmaları için herhangi bir topoloji ile birleştirilmiş AS’larından oluşan ABDES Sistemine gönderilirler. Her düğümde yer alan bir AS’su, kendine ulaşan agventlerin çalışması, kendi yaratılma

amacına uygun işlevler yapabilmesi ve ihtiyaç duyulması durumunda kendisini (veya kopyasını) hedef bir makineye göndermesi için uygun bir çalışma platformu oluşturur.