• Sonuç bulunamadı

4. DSML4BDI 2.0

4.3 Dönüşümsel Semantik

DSML4BDI 2.0 görsel sözdizimi kullanılarak BDI etmenleri ve bunların dahil olduğu MAS’ların ve çevrelerinin modellerini oluşturmak mümkündür.

Ancak tasarlanan sistemlerin uygulamaya geçirilmesi için bu görsel modellerin yazılım kodu, etmen plan dosyası, yetenek tanımları, vb. işletilebilir çıktılara dönüştürülmeleri gerekmektedir. DSML4BDI 2.0 için modelden metne dönüşüm kurallarına bağlı bir semantik söz konusu işletilebilir çıktıların otomatik olarak elde edilmesi için tanımlanmıştır.

. Object Management Group tarafından ortaya çıkarılan M2T standarlarına uygun bir kod dönüşüm yeteneğine sahip olan Acceleo (Acceleo, 2019) teknolojisi DSML4BDI 2.0 dönüşüm semantiğini oluşturmak için kullanılmıştır.

Acceleo, EMF standarlarına uygun bir veri kaynağından istenilen herhangi bir kaynak koda dönüşüm imkânı sağlar. Acceleo kendine özgü kurallardan oluşan bir dil yapısına sahiptir. DSML4BDI 2.0’in sahip olduğu üstmodel elemanları üzerinden dönüşüm kuralları oluşturularak geliştiricinin tasarladığı modelin hedef kodlara dönüşümü sağlanmıştır. DSML’i kullanan bir geliştiricinin arka planda yer alan ve örnek modeller üzerinde işletilen bu kuralların yapısını ve işletilme mekanizmasını bilmesine gerek yoktur ve tüm bu dönüşüm yapısı dilin kullancılarından soyutlanmıştır. Bir MAS geliştirici DSML4BDI 2.0 IDE’sinin sunduğu modelleme ortamında bir önceki bölümde tanıtılan grafiksel somut sözdizimi kullanarak uygulamaya geçirmek istediği MAS’ı modelledikten sonra bu modelden kod üretimi için tek yapması gereken yine IDE üzerinden bu isteğini belirtmesidir. Hazırlanan modelin statik semantik kontrolleri yapıldıktan ve model

geçerlendikten sonra bu model örneği üzerinde Acceleo’da yazılan kurallara göre gezinme ve kod üretimi yapılarak gerekli işletilebilir dosyalar otomatik olarak oluşturulur. Mevut kod dönüşümleri tasarlanan bir MAS’ın JaCaMo (Boisser et al., 2013) platformu altında çalıştırılması için gerekli kod ve konfigürasyon dosyalarını üretmektedir.

Bu noktada DSML4BDI 2.0 modellerinin işletilmesi için neden JaCaMo’nun hedef platform olarak seçildiğini vurgulamakta yarar vardır. Tez çalışması ile özellikle BDI modeline uyan tüm MAS’ları uygulamaya geçirmeyi sağlayacak bir DSML’in geliştirilmesi amaçlanmıştır. DSML4BDI 2.0 sözdizimi, etmenlerin iç yapılarının ve ortak kullanılabilecek MAS ortamlarının tasarlanması yanısıra MAS organizasyon yapısının da kolayca kurgulanmasını sağlayacak şekilde oluşturulmuştur. Dil ile modellenen MAS’lara ait yazılımların da bu özellikleri sunan bir teknolojik altyapıya uygun olarak üretilmesi gerekmektedir.

Tezin önceki bölümlerinde de değinildiği üzere JaCaMo sahip olduğu üç farklı alt platform teknolojiisi ile etkili bir MAS kurgusu için yukarıda belirtilen etmen içsel yapı ve MAS genel organizasyon yapısına dair programlama bileşenlerini sunmaktadır. Bunlardan Jason otonom etmenlerin BDI mimarisi ile uygulanmasını sağlar. CArtAgO etmenlerin ortak olarak kullanabileceği ortamların oluşturulmasını Java dil desteği ile gerçekleştirir. Organizasyon yapısının oluşturulması Moise teknolojisi ile desteklenir. Ayrıca Jason’ın diğer iki teknoloji ile köprü oluştubilecek yapılara sahip olması sayesinde etmenler bu ortamları rahatlıkla kullanabileceklerdir. CArtAgO’nun sunduğu ortak çalışma alanları ile geliştirciler Java dilinin tüm imkanlarını kullanarak etmenlere gelişmiş özellikler kazandırabilirler. MAS içerisinde tüm etmenlerin ulaşıp kullanabileceği gelişmiş içeriklere sahip servisler ve fonksiyonlar oluşturulabilir. Yukarıda belirtilen tüm bu JaCaMo bütünleşik platform yapısı DSML4BDI 2.0’ın sahip olması istenilen özellikler ile örtüştüğünden MDA’ye göre bir PSM konumunda olan JaCaMo bu çalışmada DSML4BDI 2.0 modellerinin işletim platformu olarak belirlenmiştir ve bu doğrultuda kod dönüşümleri sağlanmıştır.

Sağlanan kod dönüşümü ile birlikte DSML4BDI 2.0 IDE’nin kurulu olduğu sistemde MAS adında bir klasör oluşturulur ve dönüştürülen kodlar bu klasör altındaki her alan için ayrı ayrı oluşturulan alt klasörlere kaydedilir. Bir sonraki bölümde DMSL4BDI 2.0 kod dönüşüm semantiği Jason, CArtAgO ve Moise platformları özelinde açıklanacaktır.

40

4.3.1 Etmen (Agent) Modellerinin Dönüşüm Semantiği

DSML4BDI 2.0 dönüşüm semantiğinde ilk olarak JaCaMo platformunun ilk parçası olan Jason (Bordini et al., 2007b) yapılarına dönüşüm anlatılacaktır.

Modellenen her bir etmen için Jason’ın sağladığı BDI mimarisine göre bir kod dönüşümü sağlanması gerekmektedir. Bunun için M2T dönüşüm kuralları tanımlanmıştır. Şekil 4.13’de etmenin plan yapısının kod dönüşüm semantiğinin bir parçası gösterilmiştir. İlk olarak “ag” değişkeni ile temsil edilen etmenin bir plan bağlantısı olup olmadığı kontrol edilir. Ardından bir “For” döngüsü ile etmenin sahip olduğu tüm planlar kontrol edilecektir. Bu noktada etmenin tetikleyici olaya sahip olup olmadığı kontrolü yapılır. Etmen tetikleyici olaya sahip değilse modellenen plan koda dönüştürülmeyecektir. Bu kontroller sağlanırsa tetikleyici olayın özellikleri yazıldıktan sonra bağlam kısmı kontrol edilir ve plan bir bağlama ile ilişkilendirilmişse sahip olduğu özellikler yazılır.

Son olarak gövde kısmına geçilir.

Şekil 4.13: Etmen kod dönüşümü semantiğinden bir bölüm

Gövde kısmı etmenin sahip olduğu farklı elemanlardan oluşur. Bu elemanların geliştiricinin istediği şekilde kod içinde uygun sırada oluşturulması gerekmektedir. Bunu sağlamak için getNextTerm adında bir özyinelemeli fonksiyon tasarlanmıştır. Bu özellikte oluşturulan fonksiyon PlanBody bakış açısı içerisinde tanımlanmış tüm elemanları dolaşana dek belirli kurallar çerçevesinde kendi kendini çağırır. Böylece elemanların ekrana eklenme sırasına göre Jason plan yapısına dönüştürülmesi tamamlanır. Şekil 4.14’te üst kısımda oluşturulan özyinelemeli fonksiyon ve hemen altında dönüştürülen örnek Jason plan kodundan bir kısım gösterilmiştir.

Etmen dönüşümü sonucu elde edilen kodlar proje içerisinde MAS klasörü altında bulunan Agent klasörüne her etmen için ayrı ayrı ‘.asl’ uzantılı dosyalar şeklinde kaydedilir.

Şekil 4.14: Etmen özyinelemeli fonksiyon ve örnek kod dönüşüm semantiği

4.3.2 Ortam (Environment) Modellerinin Dönüşüm Semantiği

DSML4BDI 2.0’nin ikinci alt parçası gibi düşünülebilecek Ortam bakış açısına ait model örneklerinden JaCaMo’nun CArtAgO platformu için implementasyonların üretimi Acceleo ile hazırlanan M2T kurallarının işletilmesi ile sağlanmaktadır. CArtAgO, Artifact tabanlı MAS çalışma ortamlarının tasarlanması ve bu ortamın etmen yapıları içerisinde kullanılması imkânı sağlar.

DSML4BDI 2.0 dilinde Ortam tasarımı CArtAgO’nun desteklediği Java dili ile uyumludur. Java dili dışında farklı yazılım dillerine dönüşüm sağlanması da mümkündür. Bu nedenle Ortam dönüşüm semantiğinde sadece Java’nın temel sınıf ve fonksiyon yapıları şablon olarak dönüştürülür. Daha detaylı kod dönüşümü yapılabilmesi için tercih edilen dilin (örneğin Java dili) daha detaylı modellenmesi gerekecektir. Bu durum DSML’in sunduğu soyutlama mantığından uzaklaşılarak kodlamaya doğru yakınlaşmaya sebep olacağından bu çalışmadaki kod dönüşümlerinin uygulanmasında tercih edilmemiştir.

Şekil 4.15’te Artifact tabanlı bir Java sınıfının dönüşümünü sağlayan Acceleo kod yapısı gösterilmiştir. Geliştiricinin Ortam bakış açısı üzerine eklediği

“Artifact” elemanları için bir “for” döngüsü içeresinde şablon Java sınıfları oluşturulmaktadır. “Artifact” ile oluşturulan sınıflar “extends Artifact” eki ile dönüştürülerek sınıfın CArtAgO’nun sağladığı özelliklerden yararlanacak yapıda tanımlanmasını sağlar. Sınıf yapısı oluşturulduktan sonra “Operasyon” elemanının olup olmadığı kontrol edilir. Sınıf ile bağlantılı operasyonlar tanımlanmış ise sınıf içerisine eklenecektir. Son olarak operasyonların “obsProperty” elemanına sahip olup olmadığı kontrol edilir ve ilişkili elamanlar olması durumunda bunlar kod dönüşümüne eklenecektir. Oluşturulan şablon kodların boş kalan kısmı geliştirici tarafından delta kod olarak eklenecektir.

42

Şekil 4.15: Eser tabanlı Java sınıfı dönüşüm semantiği

Ortam bakış açısının dönüşümü sonucu elde edilen kodlar proje içerisinde MAS → Environment → Workspace klasörü altında, eklenen her sınıf yapısı için

‘.java’ uzantılı dosyalar olarak kaydedilir. Şekil 4.16’da dönüşüm sonucu elde edilen örnek bir sınıf yapısı gösterilmiştir.

Şekil 4.16: Artifact sınıfı kod dönüşüm örneği

4.3.3 Organizasyon (Organization) Modellerinin Dönüşüm Semantiği

Organizasyon dönüşüm semantiği Moise platformu özelliklerine uygun olacak şekilde tasarlanmıştır. Moise platformu XML formatında bir dosya içerisinde oluşturulan kod yapısını destekler. DSML4BDI 2.0 dilinde de Organizasyon bakış açısında modellenen MAS bileşenleri için kod dönüşümü bu formatta oluşturulurur. Şekil 4.17’de Organizasyon yapısının bir parçası olan Şema tanımının oluşturulmasını sağlayan dönüşüm kuralları gösterilmiştir. Model ortamında eklenen her Şema yapısının dönüştürülmesini sağlayacak bir “for”

döngüsü kurulmuştur. “<scheme id= “[SC.ID/]”>” kod parçasında XML etiketleri içerisine Şema özelliğinden gelen “ID” bilgisi eklenerek şemanın adı verilmiştir.

Daha sonra şemanın sahip olduğu Evrensel Hedef sayısına göre hedefler yazılmış;

hedeflerin içerisinde de Evrensel Plan bulunma durumu kontrol edilerek

“getNodeFlow” adındaki özyinelemeli fonksiyon çağrılmıştır. Bunun temel sebebi hedef içinde plan, plan içinde başka hedefler ve bu hedeflerin içerisinde başka planlar olması gibi dallanan bir ağaç yapısı olmasıdır. Bu fonksiyon sayesinde ağaç yapısı istenildiği kadar uzatılarak dilin dönüşüm kabiliyeti arttırılır. Ayrıca her elemanın sahip olduğu farklı özellikler etiketler içine yazılır (örneğin tff değeri).

Şekil 4.17: Organizasyon kod dönüşüm semantiği örneği

Şekil 4.18’de Organizasyon’un rol tanımlarının oluşturulduğu modelden elde edilen örnek kod gösterilmiştir. Organizasyon dönüşüm kodları MAS → Organization klasörü altında “.xml” uzantılı bir dosya olarak kaydedilir.

44

Şekil 4.18: Organizasyon örnek kod dönüşümü

Bu bölümde DSML4BDI 2.0’ın dönüşüm semantiği genel olarak özetlenmiştir.

DSML4BDI 2.0 semantiği toplamda 68 dönüşüm kuralına ve buna karşılık gelen 322 satır koda sahiptir. Modellenen MAS’lara ait kodlar ve konfigürasyonlar bu kurallar sayesinde Etmen, Ortam ve Organizasyon klasörleri altında kendilerine özel uzantılara sahip dosyalar olarak IDE üzerinden kaydedilir. Oluşturulan dosyalar üzerinde yapılacak küçük eklemeler ile sistemler çalıştırılabilir duruma gelir.

Benzer Belgeler