Previous
Next

JAVA - Java 2 Enterprise Edition (J2EE)

by Cem Kefeli 5. Ekim 2009 05:20

JavaYıllar önce J2EE teknolojisinin duyurulması ile birlikte klasik web yaşantımız oldukça fazla değişikliğe uğradı. Daha önceleri iki katmanlı olarak hizmet veren uygulamalar daha çok katmana yayılarak performansı, işletilebilirliği ve ölçeklenebilirliği arttırıldı. Daha sağlam ve daha güvenilir sistemler oluşturulmaya başlandı. Bu yazımda başlarda da söylediğim web teknolojisine yeni bir soluk getiren J2EE teknolojisinden kısaca bahsedeceğim.

Öncelikle şunu belirtmeliyim ki J2EE kısaltması içerisinde geçen '2' rakamı J2EE için bir versiyon numarası ifade etmemektedir. Java platformunun kendisi için bir teknoloji numarası belirtmektedir. J2EE için ayrıca versiyon numaraları vardır ve 2001 yılında 1.3 versiyonu ile başlayıp günümüze kadar 6.0'a kadar uzanmıştır. Aynı şekilde J2SE(Java 2 Standard Edition) ve J2ME(Java 2 Micro Edition) için de farklı farklı versiyon numaraları vardır. J2EE 1.4 ten sonra artık Java EE 5.0 olarak anılmaya başlanmıştır ve versiyon isimlendirilmesinde bazı farklılıklar oluşmuştur.

Java EE, uygulama geliştiricilerden fazlasıyla geri besleme almış ve çok fazla yankı bulmuştur. Çünkü sunduğu yapı şimdiye kadar sunulan klasik web teknolojisi yapılarından oldukça farklıdır. Daha önceleri iki, bazen üç, katmanlı olarak gerçekleştirilen uygulamalara çok katmanlı yapı mimarisi oturtulmuştur. Artık web uygulamalarının çok katmandan oluşabilmesi mümkün olmuştur bu teknolojiler ile.

Java 2 Enterprise Edition Multi-Tier ArchitectureÖnceleri sunucu(server)-istemci(client) taraflı, yani iki katmanlı, programlama tekniğini oldukça fazla sevdik. Sunucuda çalışan bir uygulama, ki bu genelde sunucuda host edilen bir veritabanı olacaktır, ve istemcilerde çalışan ve sunuculardan veri toparlayıp işleyen farklı bir uygulama. Bu ikisi bir araya geldiğinde ise uzaktan veritabanı işlemlerini kolaylıkla gerçekleştirebileceğiniz güzel bir uygulama ortaya çıkıyor. Fakat ortada şöyle bir problem var. Asıl işlemleri her zaman istemciler yapıyor ve iş yükünün çok büyük bir bölümü istemcilerin üzerine kalıyor. Acaba bu yük başka platformlar tarafından da paylaşılarak azaltılabilir mi? Evet azaltılabilir, zaten de tüm yapılan mimari değişiklikleri bunu sağlamaya yönelik artık son yıllarda. Bir başka problem ise uygulamanın kullanıcılara sunulmasında ortaya çıkan sorunlar. Bunun nedeni ise masaüstü uygulaması şeklinde dağıtılan ve kullanıcılar tarafından kullanılan yazılımların güncellenebilirliğinin sıkıntılı olması. Siz yaptığınız her bir güncelleme için bir üst versiyonu kullanıcılara dağıtmalı ve herbiri için tekrar kurulum gerçekleştirmelisiniz ki bu problemi aşabilesiniz. Bir diğer problem de uygulamayı kullanan kullanıcı sayısının artması durumunda sunucu makinenin yetersiz kalması. Tek çare ise uygulama sunucusunu daha güçlü bir makine ile değiştirmek. Ya da sisteme başka makineler ekleyerek ana makinenin işlem yükünü paylaştırabilmek.

Java 2 Enterprise Edition Multi-Tiered Technologiesİki katmanlı mimarinin yukarıda saydığımız gibi sorunlarından dolayı çok katmanlı mimari fikri ortaya atılmıştır. Bu mimari ile birlikte uygulamalar daha fazla katmana bölünerek daha fazla performans elde edilmesi amaçlanmıştır. Örneğin masaüstünde çalışan bir yazılımınız veri tabanı sunucusu ile doğrudan bağlantı kurabilecek yeteneklere sahip olabilir. Fakat bu sunucunuza bir el bilgisayarınızdan ulaşmaya kalkarsanız neler olacaktır? Bu cihaz hem gerekli yeteneğe, hem de gerekli alt yapıya sahip olmayabilir. İşte böyle bir derde merhem olmak çok katmanlı mimarinin bir işidir. Eğer veri işleme ve veri paylaşımı katmanlarını ayırırsanız ve veri paylaşımı katmanını daha basit seviyelere indirgeyebilirseniz bu sorunun üstesinden gelebildiniz demektir. Tıpkı web servislerinde karşımıza çıkan durum gibi. Yalnızca XML sorguları ile birçok özelleşmiş arabirimden kurtularak istemciler üzerinde veritabanı client'larını kurmamıza gerek kalmadan veritabanı işlemlerimizi kullanmamız mümkündür.

Bize bu güzelliklerin sunulmaya başlaması ise J2EE ile birlikte olmaya başlamıştır. J2EE, çok katmanlı mimari ve çok katmanlı mimari ile birlikte gelen tasarım mimarileri üzerine kurulan teknolojiye verilen genel bir isimdir. J2EE'yi, genel olarak çok katmanlı teknolojilere alt yapı sunan uygulama geliştirme arayüzleri olarak düşünebilirsiniz. Bu çok katmanlı mimari yapısı J2SE içerisinde yer almamaktadır. Zaten J2EE'yi J2SE'den ayıran büyük özellik de budur. Yukarıdaki şekilde J2EE teknolojisi içerisinde yer alan teknolojilerin, J2EE'nin hangi katmanlarında bulunduklarını gösteren güzel bir diyagram veriyorum. J2EE teknolojisi hali hazırda desteklediği başlıca teknolojiler aşağıdaki gibidir;

  • Enterprise JavaBeans (EJB)
  • extensible Markup Language (XML)
  • Servlets
  • Java Server Pages (JSP)
  • Java Messaging Service (JMS)
  • Java Database Connectivity (JDBC)
  • JavaMail
  • JavaIDL
  • Java Naming and Directory Interface (JNDI)
  • Java RMI/IIOP
  • Java Transaction Services (JTS) and Java Transaction API (JTA)

Java 2 Enterprise Edition Multi-Tier ArchitectureYandaki şekil J2EE teknolojisi ile oluşturulan bir uygulama için katmanların yapısını çok güzel özetliyor. Özet olarak geçmek gerekirse;

İstemci Katı (Client Tier):  Geliştirilen uygulamaya ya da sisteme bağlanan diğer uygulamalar ya da cihazlardan oluşur. Örneğin: Internet tarayıcısı, Java applet, WAP telefon...

Sunuş Katı (Presentation Tier): Sistemin istemcileri için gerekli olan her türlü sunuş mantığını içinde bulundurur. Uygulamaya bağlanan istemcilerin taleplerini kaydeder, gerekli iş mantığının uygulanmasını sağlar, talebin işlenmesi sonucu ortaya çıkan veriyi sunulur hale getirip istemciye cevap yollar. J2EE'yi oluşturan teknolojilerden ikisi JSP (JavaServer Pages) ve Java Servlet bu katta bulunur.

Uygulama ya da İş Katı (Applıcation/Business Tier): Uygulamanın hedef aldığı ve gereklerini tatmin etmek için geliştirildiği işe dayalı tüm bilgi işlem bu katta toplanır. Bu görev, J2EE'yi oluşturan bir diğer teknoloji olan EJB (Enterprise JavaBeans)'ler tarafından sağlanır.

Entegrasyon Katı (İntegration Tier): Uygulamanın görevini yerine getirmesi için gerekli olan sistem dışı yazılımlara, sistemlere ya da veri tabanlarına bağlantıları sağlamakla yükümlüdür. J2EE uygulamalarının bu bölümleri, genelde, JDBC (Java DataBase Connectivity), J2EE Connector ya da bağlantı kurulan yazılımlara özel arayüzleri kullanırlar.

Kaynak Katı (Resource Tier): Bilgi işlemek için gerekli veriler ve dış servisler bu katı oluşturur.

Artık siz de takdir edersiniz ki J2EE tek bir sayfalık yazıya sığamayacak kadar büyük bir teknoloji. İçerisinde oldukça fazla teknolojiyi barındırıyor. Genel olarak bu yazı ile J2EE'den bahsetmeye çalıştım. İleryeyen yazılarda daha detaylı olarak ayrı yarı J2EE teknolojilerinden bahsetmey çalışacağım.

Yorum ekle

biuquote
  • Yorum
  • Canlı önizleme
Loading

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General