Bağlam Örücüler (Apect Weavers)

Yazan : Şadi Evren ŞEKER

Bilgisayar bilimlerinde yazılım geliştirme sürecinde kullanılan yaklaşımlardan birisi de bağlam yönelimli programlamadır (Aspect oriented programming). Bu yaklaşım, yazılım geliştirme yaklaşımları sıralasında nesne yönelimli programlamadan sonra gelmektedir. Yani bir anlamda her bağlam yönelimli programlama yaklaşımı aslında bir nesne yönelimli programlama yaklaşımını kapsar.

Nesne yönelimli programlama yaklaşımından farklı olarak bağlam yönelimli programlama yaklaşımında ilave bağlamlar tutulur. Yani yazılımın modellenmesinde mevcut nesne yönelimli yaklaşım izlenir ancak bunun üzerine yazılımın kod yayılımı (code scattering) ve kestirme fonksiyonellikler (crosscut functions) gibi özelliklerden dolayı ilave olarak bağlamlar (aspects) tutulur.

Bu bağlamların yazılım ile bütünleştirilmesine bağlam örmek (aspect weaving) ismi verilir ve bağlam ile veriler modellemede farklı dururken çalışma sırasında bağlam örülmü (aspect woven) olarak dururlar.

Derleme zamanı örgü (Compile time weaving)

Yazılım modellemesinde kullanılan sınıflar (class) ile bağlamların (aspects) birleştirilemsi işleminin derleme sırasında olması durumudur. Örneğin java üzerinde çalışan aspectj bu gruba girmektedir.

Derleme zamanı örgü de kendi içinde iki gruba ayrılır. Genelde C# ve JAVA gibi nesne yönelimli programlamanın öncü dilleri ara bir kod üretirler (byte code) bu kod kullanılan çerçeve (framework) üzerinde çalışır ve platform bağımsızlığını (platform independence) sağlayan da bu ara kodun farklı ortamlarda çalışmasını sağlayacak ara katmanlar bulunmasıdır. Örneğin .net veya jvm (java virtual machine, java sanal makinesi) gibi.

Dolayısıyla derleme zamanı örgü seçenekleri bu ara kodun (byte code) üretilmesinden önce kaynak kod (source code) üzerinden çalışanlar ve byte kod üzerinden çalışanalr olarak ikye ayrılabilirler.

Byte kod üzerinde işlem yapmak genelde daha yaygındır. Bunun birinci sebebi kolay olmasıdır.  Örneğin java dili, üretilen byte koddan çok daha karmaşıktır. Diğer bir sebep ise bağlam örücülerin (aspect weavers) kaynak koda erişmesinin engellenmesidir. Yani örneğin java dilinde kodlanan bir uygulamanın kaynak kodlarına üçüncü parti bir bağlam örücünün erişmesi genelde istenmez. Son olarak byte kod işlemek kaynak kod işlemeye göre daha hızlıdır (basit olması da bir etken olduğundan) dolayısıyla performans olarak byte kod üzerinden bağlam örmek daha uygundur.

Derleme zamanı örgü sonucunda üretilen kod sabit bir şekilde bağlamları içermektedir. Yani herhangi bir bağlamın değişme şansı yoktur veya değişmesi istenirse yeniden derleme süreci gerekmektedir.

Çalışma zamanı örgü (Run-time weaving)

Derleme zamanından farklı olarak derlenmiş ve çalıştırılmaya başlamış uygulamalar üzerinde örülen bağlamlardır. Bu tip bağlam örme işlemlerinde uygulamanın üretilmiş olan byte kodu ortamda çalıştırılırken uygulama geliştirme sürecinde üretilen bağlamlar uygulamaya örülür.

Çalışma zamanı örgünün en önemli avantajı, uygulamaya müteharrik (dinamik) bir şekilde bağlam eklenebilmesidir. Örneğin web sunucuları veya çoklu ortam sunucuları (ses, video gibi) gibi sürekli erişim altında olan suncuular için bu özellik oldukça önemlidir.

Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


63 views

Leave a Reply


3 + = on

Benzer Yazılar:

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Bağlam Örücüler (Apect Weavers)' isimli yazı 16 Jul 2009 tarihinde, saat: 01:53 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam63 defa okunmuştur.

Benzer yazıları Nesne Yönelimli Programlama, Yazılım Mühendisliği (Software Engineering) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Category: Nesne Yönelimli Programlama, Yazılım Mühendisliği (Software Engineering)