10.07.2015 Views

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Nesneye Dayalı Programlarla Nesne İlişki HaritalanmasıMustafa Cem Kasapbaşı• Kayıtlı yordamların daha iyi performanssağladığı düşünülmektedir.• Her dil için farklı araçlar olması ve getirdikleriyeni kodlama tekniklerinin öğrenilmesi.Buna örnek olarak .Net 3.5 altyapısıiçinde kullanılan Linq (language IntegratedQuery) sorgu dili ve Lamda ifadeleriverilebilir.ORM kullanarak kod yazmak yazılması gerekenkod miktarını azaltır ve daha az hatalı kodyazılamasını sağlar[1].2. ORM Haritalama StratejileriHiç bir strateji yoktur ki tüm durumlar için hepen iyi sonucu versin. Aşağıda belirtilen stratejilertek bir uygulamada da birleştirilebilir [6]:• Hiyerarşi başına bir tablo: Basit ve /veyaderin olamayan sınıf hiyerarşileri içinuygun bir çözüm olur. Sınıf hiyerarşileriiçinde veya veri tiplerinde hiç örtüşme, üstüste binme yok ise.• Somut bir sınıfa bir tablo: Tiplerin farklılığıve/veya tipler arası örtüşme az rastlanıyorise kullanımı uyun olabilir.• Bir sınıfa bir tablo: Tipler arasında belirginbir örtüşme varsa ve tiplerin değiştirilmesiolağan ise kullanılmalıdır.• Tablodaki ilişkilere göre alınacak stratejiler:Dikkat edilmesi gereken diğer bir stratejidetablodaki ilişkilerdir. Bunlar birdenbire, birden çoğa, ve çoktan çoğa olmaküzere tiplendirilebilir. Bu tiplere göre veriekleme ve silmede getirilmesi gereken kısıtlarınORM nesnelerine yansıtılıp yansıtılmayacağıda verilmesi gereken önemlibir karardır.Bu çalışmada stratejiler sadece tanıştırılmıştır.Bir sınıf bir tablo için bir örnek aşağıdaki verilmektedir:252Şekil 1 Bir sınıf başına bir tablostratejisinde kullanılacak tabloŞekil 1 deki Katılımcı adlı tablo için kullanılabilecekORM nesnesi aşağıdaki Şekil 2 de gibitasarlanabilir:Şekil 2 Katılımcı tablosu içinkullanılabilecek nesne kodu2.2 ORM Veri Yükleme TeknikleriAğır yükleme (Lazy Loading) bilgisayar programlamadasıklıkla kullanılan bir tarım örüntüsüdür(design patern). Ne nesnenin oluşturulmasınıihtiyacı duyulana kadar geciktirmesi mantığınadayanır. Uygun bir şekilde kullanılırsaperformansı arttırmaktadır [7]. Bu şekilde tasarlananbir ORM sınıfında nesneler ihtiyaç duyulduğundave istenildiğinde yüklenmektedir.Diğer bir yükleme tipi ise istekli yükleme (EagerLoading) dir. Bu nesne oluşturulur oluşturulmazilgili verinin de yüklenmesi anlamındakullanılır.3.3 katmanlı Mimari ve ORM nin KullanımıŞekil 3 3 katmanlı mimari görünümü [8]3 katmanlı mimari yazılım mühendisliği konularındandırve bu makalede derinlemesine anlatılamayacakkadar kapsamlıdır. Bu sebeptensadece ORM kapsamı içinde kalan kısmı hakkındabilgi verilecektir. Şekil 3 de 3 katmanlıyapıyı oluşturan katmanlar gösterilmektedir.Burada 3 ayrı mantıksal/fiziksel ayrım sözkonusu olabilir. Her bir katman farklı fiziksellokasyonlarda olabileceği gibi, tüm katmanlartek bir fiziksel lokasyonda da toplanabilir. Görevlerikısaca• Veri Katmanı: Verilerin tutulduğu ortamıtemsil etmektedir. Herhangi tipte bir depolamaortamını ifade edebilir. Bu ilişkiselbir veri tabanı olabilir.• İş Katmanı: Bu ORM nesnelerinin içindebulunduğu katmandır. Genellikle iki kısmaayrılır. Veri erişim katmanı, iş mantıkkatmanı (Data Access Layer ve bussineslogic layer) adı verilir.• Sunum Katmanı : Bu verilerin sunum ortamınıifade eder, bir Windows formundan,internet sayfasına kadar herhangi birformda olabilir.<strong>Akademik</strong> Bilişim’<strong>10</strong> - XII. <strong>Akademik</strong> Bilişim Konferansı Bildirileri<strong>10</strong> - <strong>12</strong> Şubat 20<strong>10</strong> Muğla Üniversitesi253ORM nesneleri tam bir köprü olarak orta katmanayerleşmişlerdir. Burada sunum katmanındanveri katmanına doğru tüm iletişim ORMnesneleri üzerinden yapılır.4 ORM UygulamalarıORM Nesneye dayalı programlama dillerindeuygulamaları piyasada para ile satıldığı gibi birbedava olanları da vardır aşağıda bu uygulamalarıbir kaçı kullanıldığı en çok tercih edilen programlamadillerine göre Tablo1 de listelenmiştir [9].JavaCarbonado,Cayenne,EbeanEclipseLink,Enterprise ObjectsFramework,Hibernate,iBATIS,Java Data Objects (JDO)JPOX,MPF/J,Kodo.Object Relational Bridge(Apache OJB),OpenJPA,Torque,JPATablo1.NETADO.NET EntityFrameworkBase One FoundationComponent Library,BootFX,Castle ActiveRecord,DataObjects.NETDevart LINQ to SQLevForce,HabaneroLINQ to SQL,NHibernate,ObjectMapper .NETFark edileceği gibi bir çok platform tercih edilenprogramlama diline göre kullanılabilmektedir.Ticari olarak satılan bazı araçlarda heriki dünyayı tek bir platformda birleştirmeyi devaat etmektedirler.[<strong>10</strong>] da ki yapılan seminer ve buluşmalardajava ve .Net farklı konularda ve platformlardadeğerlendirilmiş karşılaştırılmıştır. Bu etkinliklerdekonusunda uzman kişilerin verdiğikararlara göre .Net teknolojileri (linq ve EntityFrameWork ) java Teknolojilerine göre (JPA vehybernate) daha başarılı olmuştur. Bu sonuçlarbilimsel olmasa okuyucuya konusunda uzman

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!