İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Sistem Mimarileri

Java, 5 yaşında, genç bir teknoloji. Fakat, bu beş yıl içerisinde, İnternet tarayıcılarında çalışan küçük appletler yapmak için kullanılan bir yazılım dilinden, bugünün şirket bazındaki programlarını çalıştıran güçlü bir yazılım platformu haline gelmesi gerçekten olağanüstü.

Kullanılmaya başladığı günden beri, Sun Microsystems'in kontrolü altında, biz yazılım mühendislerinin büyük desteğiyle, yazılım endüstrisinin değişik taleplerine aynı model içerisinde cevap vermek için hızlı standartlaşma yaşayan Java, şu anda kullanıldığı sektörler açısından çok geniş bir kapsama sahip. Grafikten telefona, şifrelemeden Web yazılımlarına kadar birçok alanda kabul gören bu genç teknoloji, bu geniş çerçeve içerisinde, hiç kuşkusuz en başarılı atılımlarından birini büyük şirket yazılımları alanında yaptı.

Bu ve bundan sonraki birkaç yazımda, Java şirket yazılım platformu olan J2EE (Java 2 Enterprise Edition)'den bahsedeceğim. Kısaca özetlemek gerekirse, J2EE'nin neden bu kadar hızlı kabul gördüğünü, hangi alanlarda başarılı olduğunu, bu başarıyı etkileyen sebepleri, neden ve hangi şartlar altında J2EE'ye güvenmeniz gerektiğini, mimarisini ve J2EE kapsamına giren çeşitli teknolojileri beraber inceleyeceğiz.

Sistem Mimarileri

Bundan birkaç sene öncesine kadar, şirket bazındaki yazılımlarda en çok kullanılan teknolojiler istemci-sunucu alanındaydı. Bu eğilim, her geçen gün, dağıtık sistemlerin sundukları avantajlar sebebiyle çok katlı (n-tier ya da multi-tier) mimarilere doğru kayıyor.

2 Katlı Mimari

Klasik istemci-sunucu sistemler 2 katlı (2-tier) mimariler üzerine kurulmuşlardır. Bu tür sistemlerde, uygulama direk olarak veritabanı sunucusuyla ilişkidedir.Genel olarak, üretilen işin büyük bir bölümü istemci tarafından yapılırken, çoğu zaman sunucu sadece veritabanı sunucusu görevi görür. Bu, uygulamanın kabul edilebilir bir hızla çalışması için güçlü bir istemci donanım gereksinimini ve bilgisayar ağı olanaklarının gereğinden fazla kullanımını doğurur. Bunun nedeni, iş mantığının işlenmesinin büyük bir bölümünün istemci tarafından yapılıyor olması ve uygulamanın, her gerekli veri parçası için, veritabanına bağlanıyor olmasıdır. Deneyimli okuyucular, şu anda mutlaka "bilgi işlemenin bir bölümü veritabanı sunucusuna kaydırılabilir" diyorlardır: İş mantığının istemci yerine veritabanına kaydırılması ise veritabanına özel, yeniden kullanılması çok zor olan bir uygulama yaratır (Genelde Stored procedurelar kullanarak).

şema 1 - 2 katlı mimari

2 katlı sistemlerde ortaya sıkça çıkan başka bir problem de uygulamanın bakımı ve yapılan değişikliklerdir. İstemcilerin iş matığının bir bölümünü içlerinde bulunduruyor olmaları sebebiyle, iş mantığında yapılmak istenenen küçük bir değişiklik bile tüm istemci bilgisayarlara yeniden yükleme yapılmasına neden olur. Bu işlemin otomatik hale getirilmesi bile her bilgisayarın güncelleştirilmesi gerçeğini ve bir takım şirket içi kullanıcı problemlerini ortadan kaldırmaz (Genelde kullanıcılar yeni gelen uygulama değişikliklerini hoş karşılamazlar veya işleri gereği buna hazır olmayabilirler, v.b.).

İstemci-sunucu sistemlerinin büyük bir dezavantajı da, uygulamanın kullanımının artması halinde (kullanıcı sayısının artması halinde), sistemin ölçeklenirliğinin (scalability) artamamasıdır. Veritabanı sunucusunun donanım kapasitesi dolduğu anda tek çözüm, onu daha güçlü bir bir sunucuyla değiştirmektir. Bu da pahalı bir operasyondur. Daha sonra da göreceğimiz gibi, dağıtık bir mimaride aynı gereksinme doğduğu takdirde, sisteme yeni bir bilgisayar eklemek yeterli ve daha ucuz bir çare olur.

3 Katlı Mimari

2 katlı mimarilerin sık karşılaşılan problemleri karşısında, yazılım endüstrisi 3 katlı mimari kavramını geliştirdi.

şema 2 - 3 katlı mimari

Yukarıdaki şemada görüldüğü gibi, 3 katlı mimarilerde, uygulama, görevleri ve sorumlulukları açısından birbirinden farklı 3 bölüme ayrılır. Genellikle bu ayırım fiziksel, somut bir ayırımdır. İlk bölüm, sunuş katı (presentation tier), genel olarak herhangi bir tip grafik kullanıcı arayüzünden oluşur. İkinci bölüm, iş katı (business tier) ya da uygulama katı (application tier), uygulamanın işlem mantığını içerir. Son bölüm, veri katı (data tier), uygulamanın ihtiyacı olan veriyi sunan kattır.

İlk iki katın birbirinden ayrımı, verinin işlenişini sunuluşundan ayırır. Bu da veriişlem mantığını değiştirmeden uygulamaya değişik kullanıcı arayüzleri eklenebilmesi olanağı sağlar. Buna güncel bir örnek vermek gerekirse, bugünün İnternet kullanımı güzel bir örnek olur. Bundan birkaç sene öncesine kadar sadece bilgisaraylarımızdaki İnternet tarayıcılarıyla ulaşılabilen milyonlarca sayfa değişik bilgi, hızla, taşınabilir küçük elektronik araçlarla ulaşılabilir hale geliyor. Ya da, şirketler, elemanlarının şirket dışı kullanımı için geliştirilen ve genellikle diz üstü bilgisayarlarında çalışan uygulamaların daha önce bahsettiğim elde taşınabilen elektronik araçlarla da ulaşılabilir hale gelmesini istiyorlar. Bu gibi senaryolarda, verinin işlenişinin sunuluşundan ayrı geliştirilmiş olması, varolan uygulamayı değiştirmeden yeni bir kullanıcı arayüzü eklenmesini kolaylaştırır (çoğu zaman olağan kılar). Bundan sonraki yazılarımdan birinde bu ayırımın avantajlarına somut yazılım örnekleri vereceğim.

Aynı tip avantajlar, veri katının uygulama katından ayırımından da elde edilebilir. Bugünün uygulamaları verilerini değişik teknolojiler arayıcılığıyla değişik tip kaynaklardan bulabilirler. Bu bir ilişkisel veritabanı, nesne veritabanı, LDAP (Lightweight Directory Access Protocol) veritabanı ya da XML (eXtensible Markup Language) dosya grubu olabilir. Uygulama geliştirilirken, bu iki kat arasında önceden belirlenmiş, sabit arayüzler kullanılırsa, yeni bir teknoloji kullanmak zahmetsiz hale gelebilir.

Çok Katlı Mimari

Uygulamalarda görev ve sorumluluk ayırımını bir adım daha ileriye götürürsek, çok katlı (n-tier ya da multi-tier) mimari adını verdiğimiz ve bugünün uygulama sunucularının yaygın hale gelmesini sağlayan kavrama varırız. Bu yazı dizisinde inceleyeceğimiz J2EE teknolojisi bu tip mimariler üzerine kurulmuştur. Çok yeni olmayan bu kavram ancak yeni yeni kabul görüyor. Bu hızlı değişimin nedeni, şirket ihtiyaçlarının hem hacim hem de karışıklık olarak artmasıdır. Artık şirketler değişik platformlar ve değişik yazılım dilleri kullanan ve karışık hetorojen ortamlarda çalışan uygulamalardan fazla zaman harcamadan yararlanmak istiyorlar.

Bu tür mimarilerin esnekliklerinin önemli bir avantajı da, farklı teknolojiler ve farklı ortamlardan yararlanan yazılımlar kullanan şirketlerde hissedilir. Bu şirketler, çoğu zaman uygulama sunucularının yardımıyla, varolan uygulamalarını yeni geliştirilenlerle beraber kullanma olanağı bulurlar. Bu da milyarlarca liralık yatırımı ve birçok yıllık deneyimi çöpe atmadan, hızla gelişen haberleşme ve bilgiişlem sektörünün yeni taleplerine "Evet, biz de varız!" diyebilmeyi sağlar.

şema 3 - çok katlı mimari

Çok katlı mimariler birden fazla düzenleşim ortamında varolabilirler. 2 ve 3 katlı mimarilerde katlar genel olarak somut katları gösterirken, çok katlı mimarilerde bu soyut katlar haline gelir ve genelde bu dağılım değişik tip görevlere göre yapılır.

Genel olarak, J2EE uygulama mimarileri 5 ana kattan oluşur:

Unutmamak gerekirki, çok katlı bir uygulamayı oluşturan ve yukarıda saydığım katlar soyut kavramlar. Bu katları, uygulamanın ihtiyaçlarına göre düzenlemek ve daha da detaylı hale getirmek mümkün.

Çok katlı bir mimariyi baz alarak, bir uygulama sunucusu etrafında geliştirilen yazılımların dağıtık görevlerine, uygulama sunucusunun servisleri de katılır. Bu servisleri, J2EE çerçevesinde kalarak sonraki yazılarda daha detaylı inceleyeceğiz.

Kısaca...

Kısaca özetlemek gerekirse, bu yazımda, yazılım alanında kullanılan uygulama mimarilerinin yaygın çeşitlerine ve giderek nasıl geliştiklerine değindim.

J2EE, son olarak açıkladığım "çok katlı" mimari ve onunla beraber gelen tasarımlar üzerine kurulmuş yeni, güçlü ve çabuk kabul gören bir teknoloji. Genç ve kompleks bir teknoloji olması, beraberinde bir takım tehlikeleri de getiriyor. Umarım bu yazı dizisinin sonunda, J2EE'yi oluşturan teknolojileri ve kullanım alanlarını yeterince tanımış olup, öğrendikelerinizi ya da hatırladıklarınızı uygulamaya koyma fırsatı bulursunuz.

Kaynaklar

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır