Denk-Uç Mimarisi Tabanlı Bir Süreç Eşleme Ortamı Gerçekleştirimi

Transkript

Denk-Uç Mimarisi Tabanlı Bir Süreç Eşleme Ortamı Gerçekleştirimi
Denk-Uç Mimarisi Tabanlı
Bir Süreç Eşleme Ortamı Gerçekleştirimi
Remzi Çelebi1, İbrahim Cereci2, Hüseyin Ellezer3, Cem Baylam4, Hürevren Kılıç5
1,2,3,5
Bilgisayar Mühendisliği Bölümü
Atılım Üniversitesi, İncek, Gölbaşı, Ankara
{rcelebi,icereci,hellezer,hurevren}@atilim.edu.tr
4
Cybersoft Enformasyon Teknolojileri Ltd.Şti.
Silikon Binaları 1. Kat, ODTÜ Teknokent, Ankara
[email protected]
Özetçe
Tek-girdili geçiş sistemi ve amaç durum kümesi ikilisinden
oluşan süreç (process) tanımlamasını takiben polinom zamanlı
bir süreç eşleme algoritması geliştirilmiştir. Geliştirilen
algoritma kullanılarak denk-uç (peer-to-peer) mimarisi ve
Gnutella protokolü temelli bir süreç eşleme ortamı
gerçekleştirilmiştir. Gerçekleştirimde orta-katman olarak Java
Agent Development Framework (JADE) kullanılmıştır.
Gerçekleştirilmiş ortam basit arayüz değişiklikleri ve ilgili
durum ontololojilerinin tanımlanması yoluyla herhangibir
uygulama alanı için kolaylıkla özelleştirilebilir.
1. Giriş
Denk-uç sistemlerinin (peer-to-peer systems) bireyler ve/veya
kuruluşlar arasındaki internet tabanlı ticareti geliştirme
potansiyeli vardır. Internetin dağıtık ve merkezi olmayan
yapısı denk-uç sistemlerinin şu ana kadar olduğu gibi sadece
içerik paylaşımı amacıyla değil süreç eşleme amacıyla da
kullanabilirliğini akla getirmektedir. Sahip olunan bireysel
veya kurumsal yetenekleri tanımlayan iş süreçlerinin yerel
gösterimi ve geliştirilecek eşleme algoritmaları sayesinde webtabanlı ortamlarda otomatik işbirliği mekanizmalarının
gerçekleştirimi mümkündür [1][2]. Sözkonusu merkezi
olmayan süreç eşleme ortamlarının gerçekleştirimlerinde
dikkate alınması gereken üç temel soru şunlardır:
1) İş yetenek ve hedeflerini süreç formunda nasıl
gösterimleyebiliriz (Gösterim problemi) ?
2) Tanımlanmış süreç ve amaç-durum tanımlamalarının
işbirliğini gerektirdiği ya da gerektirmediği hakkında karar
verecek otomatik eşleme mekanizması (veya algoritması) ne
olmalıdır (Eşleme problemi) ?
3) Süreçlerarası etkileşime olanak tanıyacak etkin mimari
ve protokol ne olabilir (Ortam problemi) ?
İlk sorunun cevabıyla ilgili olarak, UDDI [3] ve WSDL [4]
gibi ham dizgi gösterimi ve eşlemesine dayanan yaklaşımların
süreç durum ve dinamiklerini tanımlamada yetersiz kaldığı
görülmektedir. Alternatif bir gösterim şekli ise durum sistem
bilgisini de dikkate alan kontrol literatüründeki ayrık olay
sistemi tanımlamasına uyduğu düşünülen ayrık sonlu
özdevinir (automaton) gösterimidir. Örneğin, WSCL [5]
yaklaşımında, girdi/çıktı dizileri mesaj tipleri alfabesinin
oluşturduğu ayrık sonlu durum özdeviniri formunda
tanımlanmıştır. [6]’da ise iş süreçleri notlandırılmış
(annotated) ayrık sonlu durum özdeviniri şeklinde
tanımlanmıştır. İkinci soruya cevaben [6]’da, verilen iki Webservisinin eşlenebilirliği karşılık gelen iki özdevinirin
tanımladıkları dillerin kesişim kümesinin boş olup olmadığı ile
ilişkilendirilmiştir. Kesişimin boş küme olması eşlemenin
varolmadığı, boş küme olmaması ise eşlemenin mümkün
olduğu şeklinde yorumlanmıştır. Üçüncü sorunun cevabıyla
ilgili olarak [5] yaklaşımı herhangi bir mimari ya da protokol
önermemekle birlikte [7]’de önerilen mimari istemci/sunumcu
tabanlı sunumcu merkezli, dağıtık olmayan eşleme motoru
niteliğindedir. Bildiğimiz kadarıyla literatürde denk-uç tabanlı
protokol ve mimariye dayanan gerçekleştirilmiş bir süreç
eşleme gerçekleştirimi yoktur.
Bu makalede, [8]’de önerilmiş olan tek-girdili geçiş
sistemi modelini kullanan alternatif bir süreç gösterim şekli
tanımlanmıştır. Önerilen gösterim şeklinde, ayrık sonlu durum
özdeviniri yaklaşımlarından farklı olarak, verilen gösterimin
tam-olmamasına olanak tanınmaktadır. Diğer bir deyişle, süreç
tanımlamasını oluşturan tüm durumların erişilebilir olması şart
değildir. Eşleme operasyonu, verilen süreçlerin durum
düzeyinde bireştirimlerini takiben amaç durumlarının
erişilebilirliği testi şeklinde tanımlanmıştır. Önerilen
yaklaşımda amaç-durumlarının erişilebilirliği süreçler arası
eşlemenin varlığı şeklinde yorumlanmıştır. Makalenin ikinci
orjinal katkısı, sözkonusu süreç eşleme ortamı yazılımının
önerilen algoritma, denk-uç mimarisi ve Gnutella 0.4
protokolü baz alınarak gerçekleştirilmiş olmasıdır. Protokol
gerçekleştiriminde
orta-katman
olarak
Java
Agent
Development Framework (JADE) kullanılmıştır [9]. JADE
erkinleri (agents) farklı durum ontolojilerini kullanabilen ve
Gnutella 0.4 protokolüyle konuşan denk-uçlar şeklinde
tasarlanmışlardır.
Kısım 2’de, önerilen süreç gösterimi ve eşleme
algoritmasına ilişkin formal tanımlamalar verilmiştir. Kısım
3’te geliştirdiğimiz denk-uç mimarisi tabanlı süreç eşleme
sisteminin detayları anlatılmıştır. Son kısım, varılan sonuçları
içermektedir.
2. Süreç Gösterimi ve Eşleme
Tanım 1: Z sonlu sayıda elemandan oluşan durum kümesi; S
Z durum kümesi, V denk-ucun yeteneklerini
ise X

gösterimleyen sonlu küme, δ: X
V
→ X durum geçiş
fonksiyonu ve I X başlangıç durumundan oluşan (X, V, δ, I)
X olacak
şeklinde tanımlı tek-girdili geçiş sistemi olsun. PS
şekilde PS kümesi denk-ucun amaç durum kümesi olsun. Buna
göre (S, PS) ikilisine denk-ucun ilgili süreci denir.
Girdi değerinin varlığından dolayı tek-girdili geçiş sistemi
açık bir sistemdir. Şekil-1’de çizge-benzeri gösterim şekliyle
örnek süreç tanımlamaları görülmektedir. Gösterimdeki
X). Kalın
düğümler sistem durumlarını tanımlamaktadır (xi
kenarlı düğümler başlangıç durumu, kesikli düğümler amaç
durumlarıdır. Sürecini icra eden herhangi bir denk-ucun amacı
başlangıç durumundan başlamak üzere kendi amaç
durumlarından herhangi birine erişebilmektir. Şekil-1’i, Z =
{x1, x2, x3, x4}, S = (X, V, δ, I) öyle ki SX = {x1, x2, x3}, SV =
{v1S}, Sδ = {((x1, v1S) → x2)}, SI ={x1} ve PS = {x3} olacak
şekilde tekrar tanımlayabiliriz. Benzer şekilde, Q = (X, V, δ, I)
öyle ki QX = Z, QV = {v1Q, v2Q, v3Q}, Qδ = {((x1, v1Q) → x4),
((x2, v2Q) → x3), ((x3, v3Q) → x4)}, QI ={x3} ve PQ = {x2}’dir.
Şekildeki hem S hem de Q sistemleri için ilgili denk-uçların PS
ve PQ ile tanımlı kendi amaç durumlarına erişmeleri mümkün
değildir. Diğer bir deyişle, tek başına süreç (S, PS)’yi veya
süreç (Q, PQ)’yu icra edebilecek başarılı bir denk-uç yoktur.


v1S
X1
X2
X3
(a) Süreç (S, P S).
X2
X1
X1
v1Q
X4
Tanım 5: (Girdi ile çıkarımlanmış davranış).
S = (X, V, δ, I) sistemi ve ψ
V* girdi dizisi verilmiş olsun.
S sisteminin ψ dizisinin varlığında I’den başlayan davranışı


ξ (ψ) = ξ [0], ξ [1],
X*
şeklinde tanımlanır. Tanımlamada ξ[0] = I’dir ve herbir i indis
değeri için ξ[i+1] = δ(ξ[i], ψ[i])’dir.
Örneğin, Şekil-1(c)’deki sistem için, vlS, v2Q girdi dizisi Xl, X2,
X3 davranışını üretir ve aşağıdaki şekilde gösterimlenir:
v1 S
X1  X2
v2 Q

X3

X3
Aşağıdaki algoritma verilen bir tek-girdili geçiş sistemine
ait erişilebilir durumlar kümesini hesaplar.
v2Q
v3Q
δ(x) gösterimi, x durumunun ardışık takibeden durumları
kümesi olsun. Yani, δ(x) = {x': v δ(x, v) = x'}. Bu gösterim
δ(F) = {(δ(x) : x
F} şeklinde F durumlar kümesi için
genişletilebilir.

(b) Süreç (Q, PQ).
v1S
Bireşim işleminin kapalılık ve birleşme özellikleri vardır
ancak değişme özelliği yoktur. Bireşim işlemi basitçe,
düğümleri aynı tanım kümesinden durumlar olan çizgelerin
örtüşümüdür. Gerçekleştirilen yazılımda farklı tanım
kümeleriyle
tanımlı
durum
ontolojileri
dikkate
alınabilmektedir. Şekil-1(c) S ve Q sistemlerinin bireşimiyle
elde edilen T sistemini göstermektedir.
Tanım 6: (Açık sistemlerde erişilebilirlik).
X verilmiş olsun. Açık
S = (X, V, δ, I) sistemi ve P
sistemlerde erişilebilirlik problemi şu soruyla tanımlanır:
“Öyle bir ψ
V* girdi dizisi var mıdır ki ξ(ψ) davranışı P
durumuna erişsin ?”
v2Q
v3Q
X2
 Qδ ve TI = SI.

X4
v1Q
Tanım 4: Yetenek-ayrışık iki adet tek-girdili geçiş sistemi S ve
Q verilmiş olsun, bireşim(S, Q) işlemi T adlı tek-girdili geçiş
sistemini üretir öyle ki TX = SX  QX, TV = SV  QV, Tδ = Sδ
X3
(c) Süreç (T=Bireşim(S, Q), P S).
Şekil 1. Örnek süreç tanımlamaları ve bireşim işlemi
Tanım 2: İki adet tek girdili geçiş sistemi, S ve Q verilmiş
olsun. S ve Q sistemlerine SV  QV =  olması halinde
yetenek-ayrışık denir.
Tanım 3: Süreç (S, PS) ve süreç (Q, PQ) verilsin. PS = PQ
olması halinde bu süreçlere amaç-denk denir.
Şekil-1’deki S ve Q sistemleri yetenek-ayrışıktır. (S, PS) ve
(Q, PQ) süreçleri ise amaç-denk değildirler. Genel olarak,
herhangi bir tek-girdili geçiş sistemi kendisiyle yetenek-ayrışık
değildir. Herhangi bir süreç ise kendisiyle amaç-denk’tir.
Algoritma Erişilebilenler
Girdi: Tek-girdili geçiş sistemi, S = (X, V, δ, I).
Çıktı: I’den başlayıp erişilebilen tüm durumlar kümesi, F.
F0 := I
tekrarla
Fk+1:=Fk  δ(Fk)
k+1
F = Fk olana dek
F*:=Fk
dön F*
Algoritma polinom zamanlı basit bir çizge tarama
algoritması olup, karmaşıklığı O(|X|.log(|X|)*|V|)’dir [8].
Tarama şekli, herbir Fk kümesi en fazla k adet geçişten sonra
erişilmiş durumları içerecek şekilde enine-öncelikli (breadthfirst) özelliktedir.
Şekil-1’deki sistemler için Erişilebilenler(S), {X1, X2}
kümesini ve Erişilebilenler(Q) ise {X3, X4} kümesini döner.
Benzer şekilde, Erişilebilenler(T)’nin çıktısı {X1, X2, X3,
X4}’dir. Bireşim işlemi ve erişilebilenler algoritmasını
tanımlamamızı takiben her bir denk-uca gömülü olan ve uç
tarafından çalıştırılan eşleme algoritmasını tanımlayabiliriz.
Algoritma Eşleme
Girdi: Yetenek-ayrışık S ve Q sistemlerinden oluşan (S, PS) ve
(Q, PQ) süreçleri.
Çıktı: Eşleme sonucu.
T = bireşim(S, Q);
T’ = bireşim(Q, S);
yönlen eşleme sonucu
0 : ((PS  erişilebilenler(T)) = ) ve
((P Q  erişilebilenler(T’)) = );
1 : ((PS  erişilebilenler(T)) ≠ ) ve
((P Q  erişilebilenler(T’)) = );
2 : ((PS  erişilebilenler(T)) = ) ve
((P Q  erişilebilenler(T’)) ≠ );
3 : ((PS  erişilebilenler(T)) ≠ ) ve
((P Q  erişilebilenler(T’)) ≠ );
sonu;
dön eşleme sonucu;
gönderici (sender), -ile cevapla (reply-with), alıcı (receiver),
yayınla (broadcast) gibi yerleşik öznitelikleri (attribute) veya
kullanıcı tarafından tanımlanabilen özel öznitelikleri içerir.
Eşlenmek istenen süreç tanımları Şekil-3’te görülen genel
amaçlı kullanıcı arayüzü vasıtasıyla girilebilmektedir. Bu
arayüz kullanıcı ilgi alanına göre kolaylıkla amaca uygun
olacak şekle uyarlanabilir. Sistemde bulunan denk-uçların
komşularından haberdar olması Gnutella protokolünün temel
ping ve pong mesajlarını kullanmak suretiyle güncellenen
yerel bir arama (look-up) tablosu kullanılarak sağlanmıştır.
Protokolün sorgu tipindeki mesajları ise süreç tanımlamalarını
eşlenme potansiyeli olan komşu denk-uçlara geçirmek
amacıyla kullanılmıştır. Yukarıda tanımlanan eşleme
algoritması herbir denk-uca gömülmüş ve yerel çalıştırım
sonucuna göre ilgili Gnutella 0.4 eylemi (sorgu veya çarpansorgu) sorguyu alan denk-uç tarafından yerine getirilmektedir.
Aşağıdaki
örnekler
EKD
sözdizimi
kullanılarak
gerçekleştirilmiş mesajları içermektedir.
Ping gerçekleştirimi:
(QUERY-REF
:sender peer2
:receiver peer5
:reply-with ping1154566259531
:X-ttl 5
:X-originator "peer1" )
Algoritmada, denk-uç p tarafından tarafından sahip olunan
süreç (S, PS) ve denk-uç r tarafından tarafından sahip olunan
süreç (Q, PQ) olsun. Buna göre aşağıdaki şekilde kodlanmış
dört farklı eşleme sonucu elde etmek mümkündür.
0 – eşleme yok;
1 – sadece denk-uç p’nin süreci r’ninkiyle eşlenebilir;
2 – sadece denk-uç r’nin süreci p’ninkiyle eşlenebilir;
3 – karşılıklı eşleme, yani hem p hem de r’nin süreçleri
birbirleriyle eşlenebilir.
Şekil-1(c)’deki eşleme örneğinin sonucu eşleme((S,
PS),(Q, PQ)) = 1’dir.
3. Denk-Uç Tabanlı Süreç Eşleme Sistemi
Geliştirilen denk-uç tabanlı sistem JADE orta-katmanı
üzerinde yapılandırılmıştır. JADE kullanımındaki temel sebep
JADE’in denk-uç sisteminin gerçekleştirilmesine olanak
tanıyan zengin mesaj-kotarma altyapısıdır. Ayrıca JADE hem
kablolu hem de kablosuz ortamlarda birlikte-çalışabilirliği
(inter-operability) desteklemektedir. Çok-erkinli sistemlerin
kalıtsal olarak denk-uç sistemleri olduğu ve denk-uç erkin
(peer-to-peer agent) sistemlerindeki erkinlerin denk-uçlar
olarak modellenebileceği bilinmektedir [10]. Çok-erkinli
sistemler perspektifinden bakacak olursak gerçekleştirilen
denk-uç sistemi rekabet içinde olmayıp işbirliği içinde olan bir
erkin sistemidir. Şekil-2’de görüldüğü gibi sistem JADE orta
katmanı üzerine oturan bir yerpaylaşım (overlay) şeklinde
tasarlanmıştır.
Denk-uçlararası etkileşim protokolü olarak Gnutella 0.4
protokolü kullanılmıştır. Gerçekleştirilmiş Gnutella mesajları
ping, pong, sorgu (query) ve çarpan-sorgu (query-hit)’dur ve
bu mesajlar JADE tarafından desteklenen standart FIPA Erkin
Kontrol Dili - EKD (Agent Control Language- ACL)
sözdizimine gömülmüştür. EKD sözdiziminde her mesaj
alıcısı tarafından gerçekleştirilmesi amaçlanan eylemi (action)
tanımlayan performatif ile başlar. Mesajın kalan kısmı
Şekil 2. Gerçekleştirimin sistem-düzeyindeki görünümü
Ping mesajının kullanım amacı bir denk-ucun herhangi bir
andaki denk-uç komşuluk yapısından haberdar olabilmesidir.
Mesaj, mevcut ve hedeflenen denk-uçları tanımlayan gönderici
(sender) ve alıcı (receiver) yerleşik özelliklerinden oluşur.
Ping mesajları, Sorgu-Referans (Query-Ref) performatifinin –
ile cevapla kısmında tutulan bilgi kullanılarak cevaplanır.
Tanımladığımız X-kaynak (X-originator) özniteliği ping
mesajının orjinal kaynağını gösterir. Yine tanımladığımız X-ttl
özniteliği sürecin yaşam süresini belirleyen ve sekme (hop)
birimiyle tanımlı değeri barındırır.
Pong gerçekleştirimi:
(INFORM
:sender peer5
:receiver peer2
:in-reply-to ping1154566259531
:X-ttl 5
:X-originator "peer5"
:X-receiver "peer1")
Pong mesajı ping mesajına cevaptır. Pong mesajı, ping
çekilmiş denk-ucun mesajı gönderen orjinal kaynağa
kendisinin halen sisteme bağlı ve canlı halde olduğu hakkında
bilgi vermesini hedefler. Ayrıca, orjinal ping kimlik bilgisini
de barındırır. Örnekte görülen Alıcı (Receiver) ve X-alıcı (Xreceiver) öznitelikleri arasındaki fark, ilkinin o anki pong
mesajını alacak komşu denk-ucu belirtmesi, ikincisinin ise
mesajın hedeflenen nihai alıcısını tanımlıyor olmasıdır.
Geliştirilen sistemde DS erkini doğrudan denk-uç
sistemlerindeki ÖnYüklemeSunumcusu (BootStrapServer)
olarak kullanılmıştır. ÖnYüklemeSunumcusu’nun temel
görevi mevcut denk-uç ağının bir parçası olmak isteyen yeni
denk-uçlara, ağda bulunan denk-uçların listesini dönmektir.
4.
Sonuçlar
Tam-olmayan süreç tanımlamalarına olanak tanıyan bir süreç
gösterim şekli ve süreç eşleme işlemine olanak tanıyan eşleme
algoritması önerilmiştir. Bunu takiben, merkezi olmayan,
denk-uç tabanlı bir süreç eşleme sistemi geliştirilmiştir. Sistem
istenilen bir uygulama alanına, yapılacak kullanıcı arayüzü
değişiklikleri ve ilgili durum-ontolojilerinin tanımlanması
suretiyle kolaylıkla uyarlanabilir.
İleride, yeteneklere maliyet ve amaçlara fayda değerleri
atamak yoluyla mevcut süreç tanımlaması geliştirilebilir. Bu
sayede denk-uçlar arasında olası müzakere mekanizmaları için
açılım da sağlanabilir.
Sorgu gerçekleştirimi:
(CFP
:sender peer1
:receiver peer5
:content
"((Reachable
owner:peer1
process:a1))"
:language fipa-sl
:ontology Task-description-ontology
:X-ttl 5
:X-orginator "peer1" )
Sorgu mesajı süreç eşleme işleminin başlatıcısı olarak
kullanılmıştır. Öneri Çağrısı (Call For Proposal - CFP)
performatifinin göndericisi sistemde kendi süreç tanımını
eşleyebileceği bir denk-uç bulabilmeyi hedefler. Mesajın içerik
kısmı standart FIPA-SL dilinde yazılmıştır. Örnekteki mesajın
içeriği, a1 sürecinin sahibi olan peer1’in alıcı denk-ucun
süreciyle eşleme yapma amacında olduğunu göstermektedir.
Ontoloji (Ontology) yerleşik özniteliği mevcut sürecin ilgili
durum-ilgi alanı (state-domain)’nı tanımlamaktadır.
Çarpan-sorgu gerçekleştirimi:
(PROPOSE
:sender peer5
:receiver peer1
:content
"((Propose
:proposer
peer5
:matchresult 2 :process a3))"
:in-reply-to query1154566257093
:language fipa-sl
:ontology Task-description-ontology
:X-ttl 5
:X-orginator "peer5"
:X-receiver "peer1")
Çarpan-sorgu mesajı sorgu mesajına cevaptır. İçerik kısmı
bir eşleme olması durumunda önerenin (proposer/owner)
kimlik bilgisini, eşleme tipini ve önerenin süreç tanımını
içerir. Ontoloji özniteliği sorgu örneğinde olduğu gibi mevcut
sürecin ilgili durum-ilgi alanını tanımlamaktadır.
Tipik bir JADE kurulumunda, özel amaçlı bir sistem erkini
olan ve ana içerenin (container) içinde yaşayan Dizin
Sağlayıcı - DS (Directory Facilitator - DF) bulunur.
Şekil 3. Süreç tanımlama giriş ekranı arayüzü.
5. Kaynakça
[1] K. Sycara, J. Lu, M. Klusch, and S. Widoff,
“Matchmaking among heterogeneous agents on the
internet”, in Proceedings of the 1999 AAAI Spring
Symposium on Intelligent Agents in Cyberspace, Stanford
University, USA 22-24 March 1999.
[2] I. Constantinescu, and B. Faltings “Efficient
Matchmaking and Directory Services”, Proceedings of
the IEEE/WIC International Conference on Web
Intelligence, October 2003, pp. 75-81.
[3] I. Ariba, I. Corporation, and M. Corporation, “Universal
description, discovery and integration”, September 2000,
http://www.uddi.org/.
[4] E. Christensen, F. Curbera, G. Meredith, and S.
Weerawarana, “Web services description language
(WSDL) 1.1”, March 2001. http://www.w3.org/TR/wsdl.
[5] A. Banerji, C. Bartolini, D. Beringer, V. Chopella, K.
Govindarajan, A. Karp, H. Kuno, M. Lemon, G.
Pogossiants, S. Sharma, and S. Williams, “Web
services conversation language (WSCL) 1.0”, March
2002. http://www.w3.org/TR/wscl10/.
[6] A. Wombacher, P. Fankhauser, B. Mahleko, and E.
Neuhold, “Matchmaking for Business Processes Based
on Choreographies”, International Journal of Web
Services Research, 1(4), Oct-Dec 2004, pp. 14-32.
[7] A. Wombacher, B. Mahleko, and E. Neuhold, “IPSI-PF:
A business process matchmaking engine based on
annotated finite state automata”, Inf. Syst. E-Business
Management, 3(2), 2005, pp. 127-150.
[8] O. Maler, “Control from Computer Science”, Annual
Reviews in Control, 26, 2002, pp. 175-187.
[9] F. Bellifemine, A. Poggi, G. Rimassa, “JADE: A White
Paper”, 3 September 2003.
[10] O. Shehory, “Robustness challenges in peer-to-peer agent
systems”, Agents and Peer-to-Peer Computing, Second
Intl.Workshop, AP2PC 2003, LNAI 2872, pp. 13-22.