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

Uygulama Sunucuları

Bundan önceki yazımda, J2EE'ye sistem mimarileri açısından yaklaşmaya çalıştım. Yazılım mimarilerinin gelişimini ve J2EE'nin hangi tip bir mimari seçtiğini hep beraber gördük. Bu yazımda, J2EE'nin kabul görmesinde en büyük rolü oynayan uygulama sunucularından bahsedeceğim. Teorik bir bölümden sonra 3 değişik uygulama sunucusunu sizlere kısaca tanıtmaya çalışacağım: open source yazılım olan JBoss ve uygulama sunucusu pazarından en büyük payı alan iki ürün: BEA WebLogic ve IBM WebSphere. Aşağıda bilgi verdiğim ürünler ve teknolojiler hakkında Web bağlatılarını, yazının sonundaki kaynaklar bölümünde bulabilirsiniz.

Uygulama Sunucusu Nedir?

J2EE kapsamında ele alınınca, uygulama sunucusu, J2EE teknolojilerini kullanarak geliştirilen uygulamaları, standartlara (J2EE belirtimine) uygun olarak çalıştıran yazılımlardır. Kullanıcı arayüzü ile veri tabanı (veya bu görevi gören sistemler) arasında yer alırlar. Çok katlı bir mimari düşünülürse, uygulama sunucusu, mimarinin orta katlarını içinde bulundurur. İşte bu yüzden, uygulama sunucuları, ortakat yazılımı (Middleware) sayılırlar ve ortakat yazılım teknolojilerini kullanırlar. Genellikle, kullanıcı arayüzüyle bilgiişlem servisleri arasında veya veriişlem katıyla veri tabani arasında ya da dağıtık neslerle ölçeklenirlik servisleri arasında bu teknojilerden yararlanırlar.

Ortakat Yazılımları (Middleware)

Ortakat yazılımları, farklı ortamlarda ve farklı bilgisayarlarda çalışan, değişik dillerde geliştirilmiş ve değişik veri çeşitleri kullanan uygulamaların birbirleriyle anlaşabilmesini sağlar. Buna örnek olarak, son zamanlarda şirketlerin en çok rağbet ettiği uygulama modernleştirmelerini gösterebiliriz. Eski tip uygulamaları tamamen yeniden geliştirmek yerine, varolanın tamamını ya da bir kısmını alt yapı olarak tutup, üzerine Java ve/ve ya İnternet teknolojilerini kullanan bir kat koymak şu anda çok istek gören bir mimarı. Örneğin, böyle bir sistemde, yeni geliştirdiğiniz Java Applet ya da Java Web Start kullanan bölüm, yıllardır kullanılan ve modernleştirilmek istenen COBOL uygulamarıyla iletişim kurup, beraber çalışabilir.

Ortakat yazılımları, genellikle karmaşık ve ileri derecede teknik bilgi gerektiren bir düzenleşim süreci gerektirirler. Bunun en büyük sebebi, iletişim sağlanan uygulamaların farklı ortamlar, farklı yazılım dilleri, farklı veri çeşitleri kullanıyor olmaları ve iletilerin bir çeviri safhasından geçmesi gereksinimidir. Genellikle, ortakat yazılımları satan şirketler bu servisi de sağlarlar. Coğunlukla, bu tür şirketler, kendi mühendisleri aracılığıyla, kuruluş ve düzenleşimi ücretsiz ya da ekstra bir servis olarak sunarlar. Eğer, böyle bir sisteme yatırım yapmayı düşünüyorsanız, bu bölümü hafife almamanızda yarar var. Bu hizmetleri bir başka şirketin sağlaması halinde bile, şirketinizden bir ya da birkaç kişinin bu konuda eğitim görmesi, uzun vadede çok daha avantajlı olacaktır.

Bu periyot başarıyla tamamlandıktan sonra, yazılımın geliştirilmesi ve farklı sistemlerin iletişimi şeffaf olarak sürdürülür. Genellikle, yazılımcılar, bu farkları göz önüne almadan, standart bir şekilde bilgiişlem mantığını uygulama şansı bulurlar.

En çok kullanılan middleware dağıtık nesne teknolojileri CORBA (Common Object Request Broker Architecture), Java RMI (Remote Method Invocation) ve DCOM (Microsoft Distributed COM). Son zamanlarda SOAP (Simple Object Access Protocol) da adından sıkca bahsettiren XML bazında bir teknoloji. Kullanımının daha da artacağına inanıyorum.

Bu teknolojileri burada tek tek açıklamak çok uzun sürer. J2EE hakkında bilmeniz gereken, "Java RMI over IIOP" üzerine kurulu olduğudur. IIOP (Internet InterORB Protocol) CORBA'nın kullandığı protokoldür. Java RMI'nin IIOP üzerinden uygulanması, dağıtık Java neslelerinin CORBA nesneleriyle beraber çalışmasına olanak sağlar. Bundan sonraki yazılarımda bu teknojilere de değinmeye çalışacağım.

Ortakat Yazılım Servisleri

Bunlarla sınırlı olmamakla beraber en çok kullanılan ortakat yazılım servisleri şunlardır:

Standartlaşma

Burada bir parantez açmakta yarar var. Uygulama sunucuları orta katı oluşturdukları için, ortakat yazılımı kabul edilirler ve diğer ortakat yazılımlarıyla beraber çalışırlar. J2EE geliştikçe, içerdiği teknolojilerin sayısı da artıyor. Piyasadaki yazılım sunucuları, daha da cazip hale gelmek için, standartların ötesinde hizmet sunmaya çabalıyorlar. Bunun sonucunda da kapsamları genişliyor. Bugün, sunuculara ek olarak kabul edilen ürünler ya da teknolojiler, ileride J2EE kapsamına girebilirler.

J2EE Connector mimarisi buna güzel bir örnek. Bugüne kadar, uygulama sunucusu geliştiren şirketler, sunucularının varolan anaçatı bilgisayarlarla bağlantılarını kendi geliştirdikleri protokollere göre yapıyorlardı. İlk önce kendi ürünleri arasındaki bağlantıları sağlıyorlar daha sonra da diğer ürünlerle bağlanti sunuyorlardı. Bu bağlatıları standart bir hale getirebilmek için, J2EE Connector mimarisi geliştirildi. Şimdi, J2EE'ye uygun olarak geliştirdiğiniz uygulamalarınız, J2EE Connector mimarisinin'in standart arayüzünü kullanarak bu bağlantıyı sağlayabilecekler. Bu da, her yeni ürün ve teknoloji için yapılan eğitimden tasarruf sağlayacak. Yazılımlarınız, birden fazla sistemle, herhangi bir değişiklik yapılmadan çalışabilecek.

JDBC (Java Databaşe Connectivity) ile daha önce çalışmış olanlarınız ne demek istediğimi çok daha kolay anlamışlardır. JDBC kullanan bir uygulama, farklı veritabanlarını aynı şekilde kullanır. Örneğin, Oracle ile çalışan uygulamanız sadece JDBC parametlerinin işletim anında değiştirilmesiyle Sybase ile calışır hale gelir (Bundan sonraki yazılarımdan birinde JDBC'yi detaylı olarak ve programlama örnekleriyle inceleyeceğiz). J2EE Connector'un amacıda bu tür bir standartlaşma sağlamak.

Yazılım Geliştirme Araçları

Yazılım sunucusu seçerken bir diğer önemli nokta da, onunla beraber sunulan ya da kullanılabilen bedava ve ücrete tabi yazılım geliştirme araçlarının sayısı ve çeşitleridir. Kaliteli uygulama sunucularının birçoğu bir IDE (Integrated Development Environment) ile direk bağlantılı olarak çalışabiliyor. Örneğin, VisualAge for Java ve WebSphere Studio kullanarak, WebSphere için hızlı yazılım geliştirmek mümkün. Bunun yanında, hemen hemen tüm uygulama sunucuları, yazılım geliştirme sürecini kolaylaştıracak, çok kullanışlı aletlerle beraber sunuluyorlar. Bunlar, çoğu zaman yerleştirme (deployment), geliştirme ve hata ayıklama alanında çalışıyorlar. Bu araçları göz ardı etmemek lazım çünkü yazılım mühendislerine değerli bir zaman kazandırıyorlar.

En Popüler Uygulama Sunucuları

Teorik ve genel bir bölümden sonra, uygulama sunucularından daha somut bir şekilde bahsetmenin zamanı geldi. Ben sadece özel bulduğum ve en iyi tanıdığım 3 tanesi hakkında kısaca bilgi vermeye çalışacağım. Sizlerden ricam, hiçbir zaman araştırma yapmadan "bu en iyisi" ya da "şu en hızlısı" şeklindeki görüşlere körü körüne inanmamanız.

Uygulama sunucusu pazarı hızla gelişen ve teknik olduğu kadar birçok politik gelişmeye de sahne olan bir arena. Bu durumda sizin en büyük kozunuz seçim yapabilme şansı. Bu pazarın bu kadar karlı olup, bu kadar hızlı ilerlemesinin en büyük nedeni de bu. Size en uygun olanı bulup, onu kullanmanız lazım. Unutmayın ki, parametleri şirketlerden, uygulama sunucularından, farklı versyonlardan, platformlardan, değişik fiyatlardan ve şirkete özel gereksinimlerden oluşan yüzlerce kombinasyonunuz var. Bunu en iyi şekilde değerlendirmeyi bilin. Internet üzerinde, bu konu hakkında muazzam kaynaklar var. Benim tavsiyem, bir şirkete bağlı olmayan siteleri seçmeniz ve tartışma gruplarında ya da forumlarda ilgilendiğiniz ürünlerin kullanıcılarıyla bilgi alışverişinde bulunmaniz. Kendi sitem Erkans.Com'da önemli gördüğüm güncel haberleri ve teknik yazıları topluyorum. J2EE hakkında en severek kullandığım site TheServerSide.Com. Ayrıca TurkTech tartışma gurubunu da bilgi alışverişi için kullanabilirsiniz. "Kaynaklar" bölümünde de bu tür sitelere bağlantıları bulabilirsiniz.

Web sunucuları arasında en çok kullanılanı (%55-%60 arasında), birçoğunuzun da tanıdığı ve open source bir yazılım olan Apache. Uygulama sunucuları arasında da bu ekolü izleyen ve en popüler open source olanı JBoss (Maalesef, kullanımı açısından pazar payı en büyük olan ürün JBoss değil), bu yazımda ilk değineceğim uygulama sunucusu. Daha sonraki iki tanesi ise, bu pazarda en büyük payı elinde bulunduran BEA WebLogic ve onu uzak ara takip eden IBM WebSphere. Ben, son iki uygulama sunucusunu ticari projelerde kullanıyorum. Buna rağmen, JBoss, çok kararlı ve hızlı bir sunucu. Eminim ki, bedava olmasının cazibesi yanında, birçok şirketin ihtiyaçlarını rahat rahat karşılayacak güce sahip ve teknik olarak diğerlerinden aşağı kalır bir yanı yok.

Eğer, siz de şirketinizde bu uygulama sunucularından biriyle çalışmak istiyorsanız ve de yazılım şirketiyseniz, JBoss bedava olduğu için rahat rahat kullanabilirsiniz. Diğer iki ürün için de, BEA ve IBM, yazılım şirketlerine özel bir abonman cerçevesinde (Partner Programs) yazılım gelistirme ürünlerinin tümünü ya da bir bölümünü kullanımınıza sunuyorlar. Bunlar yazılım şirketleri için çok avantajlı kontratlar. Özellikle IBM yıllık $500 gibi bir fiyat karşılığında, profesyonel yazılımlarının birçoğunu yazılımcı şirketlere sunuyor.

JBoss

JBoss 100% Java ile yazılmış ve J2EE'ye uygun olarak geliştirilmiş open source bir uygulama sunucusu. 500'den fazla yazılım mühendisi, dunyanın dört bir köşesinde, JBoss'u en iyi uygulama sunucusu yapmak için çalışıyorlar. Günde, ortalama, 1500 yüklemeyle en hızlı gelişen ve en çok rağbet gören uygulama sunucuları arasında.

Benim gördüğüm kadarıyla JBoss, şimdiye kadar çalıştığım uygulama sunucuları arasında en az hafıza gerektireni. Bu sayede, normal bir bilgisayara JBoss'u yükleyip calışmak mümkün (WebLogic ve WebSphere güçlü sunucular gerektiriyorlar).

BEA WebLogic

J2EE Uygulama Sunucusu pazarında en büyük payı elinde bulunduran şirket hiç kuşkusuz BEA. Çok akıllıca bir strateji ile hareket ederek, uygulama sunucuları yeni yeni tanınmaya başladığı zamanlarda, kullanım haklarını 30 gün ile sınırlayaran versyonlarını piyasaya sürdüler. İki sene önce, ortada çok fazla uygulama sunucusu olmadığı için ve tüm uygulama mühendisleri çalışan bir örnek yaratmaya can attiklari için, WebLogic'in 30 günlük bedava versyonunu yüklediler. Bu da, WebLogic'in kullanımını çok hızlı bir şekilde arttırdı.

Bir diğer faktör de, bu piyasaya çok erken girmiş olmaları. Daha EJB belirtimi beta versyonda iken, BEA'nin bir konferansına katılmıştım. Orada, EJB kullanan bir uygulamanın gösterimini yaptılar. Kullanıcı sayinin artmasi halinde performansın yeterince iyi kaldığından bahsettiler.

Şu anda, JBoss ile beraber, yenilikleri en hızlı takip eden ekip BEA'nın WebLogic ekibi. WebLogic hakkında detaylı dokümanları http://edocs.bea.com'dan bulabilirsiniz. Herhangi bir sorununuz olduğunda http://newsgroups.bea.com adresini kullanıp, sorulanınıza cevap bulmak mümkün. Kullanıcısının çok olması, soruların çabuk cevaplanmasını sağlıyor.

Tabii ki çabuk yazılım geliştirmek bugünün pazarlarının ilk şartı. WebLogic, WebGain Studio ve Visual Studio ile sıkı ilişkide. En çok kullanılan Java editör'u Borland JBuilder de WebLogic'le direkt çalışmayı sağlıyor. Bu ürünleri kullanarak, yazılım geliştirme zamanınızı kısaltabilirsiniz. Zaman alan ve angarya haline gelen birçok küçük görev, bu ürünler sayesinde otamatik oluyor.

IBM WebSphere

Uygulama sunucusu pazarında ikici sırayı bilgisayar devi IBM'in sunucusu WebSphere alıyor. Teknik kalite olarak, bence, diğer bazı sunuculardan daha iyi olmasada, çok geniş müşteri ilişkileri IBM'in bu yere hızla yerleşmesini sağladı. Her ne kadar, WebSphere, J2EE belirtimine uygunlugu bakimindan diğer birçok uygulama sunucusundan daha geri olsada, IBM bu açığı kapatmak için hızlı çalışıyor. Buradaki ticari mazeretleri "teknolojiler yeterince olgunlasmadan, müşterilerimize bunu sunmak istemiyoruz" gibi oluyor. Bu yaziyi yazdigim sirada en yeni versyonlari J2EE 1.2.1'e uygunluğu almış durumda ve EJB 1.1'i tamamen destekliyor ama şimdilik, sadece IBM anaçatı bilgisayarları için bu versyon geçerli. Diğer platformlarda beta versyonu kullanılıyor.

WebSphere Uygulama Sunucusu 3 farklı versyonda geliyor. İlk versyonu standart versyonu (WebSphere Standard Server). Sadece Web Container'i var ve EJB Container'i bulunmuyor. Ortanca versyon ve de en çok kullanılanı WebSphere Advance Server. Zaman zaman bundan WAS diye de bahsediliyor. WAS, Web Container yanında, EJB Container'i da bulunduruyor. Çoğu orta boy şirkete yetecek bir düzenleşime sahip. En gelişmiş versyon işe, WebSphere Enterprise Server. Bu versyon, CORBA ORB gibi daha gelişmiş ve karmaşık şirket ihtiyaçları için çareler üretmeye çalışıyor.

IBM'in yazılım geliştirme ürünlerini kullanarak, WebSphere'de daha hızlı uygulama yaratmak mümkün. WebSphere Studio ve VisualAge For Java, WebSphere sunucularına doğrudan bağlanabilen ürünler. Bunları kullanmak uygulama geliştirme hızınızı arttıracaktır.

WebSphere 3.5.2 ve VisualAge for Java 3.5 hakkında güzel bir incelemeyi ve bu inceleme hakkındaki görüşleri içeren bir sayfaya bağlantıyı "Kaynaklar" bölümünde bulabilirsiniz.

Ve Diğerleri

Burada, sadece, onlarca kaliteli yazılım sunucusundan üç tanesine kısaca değinebildim. Bu demek değil ki, bu üç tanesi en iyileri. Daha önce de belirttiğim gibi, kendi araştırmanızı yapmanız gerekiyor. Şirketinizin ihtiyaçlarına ve boyuna göre karar vermeniz gerekiyor.

Diğer ürünler arasında, Sun/Netscape iPlanet, Oracle 9iAS, Orion Application Server, GemStone/J Application Server ve Sybase Application Server'e dikkat etmekte de yarar var. Bu uygulama sunucuları, yazılım ve sunucu pazarında büyük tecrübesi olan şirketler tarafından üretiliyorlar. Ne gibi hizmetler sunduklarından haberdar olmakta yarar var.

Flashline.Com'un hazırladığı Uygulama Sunuculari Listesinde, uygulama sunucularının güncel teknolojik haberlerini bulabilirsiniz.

Kısaca...

Kısaca özetlemek gerekirse, bu yazımda, uygulama sunucularına yer verdim. Ne olduklarına, ne gibi servisler sunduklarına değindim ve aralarından özel bulduğum ve en iyi tanıdığım üç tanesi hakkında kısa bir bilgi verdim.

JBoss aralarında bedava olup en iyi teknik varlığa sahip olanı. Şirketinizde veya ekibinizde birkaç günlük bir arastırma süresine sahipseniz, bence JBoss'u yükleyip denemekte büyük yarar var.

BEA WebLogic ve IBM WebSphere uygulama sunucusu pazarinda ilk iki sırayı alan güçlü ürünler.

Uygulama sunucularının servislerini kavramak ileri derecede teknik bilgi istiyor. Ama, bu bilgilerin tümüne sahip değilseniz bile, Internet üzerinden burada açıkladığım teknolojiler hakkında ilk izlenimleri edinmek mümkün. Kaynaklar bölümünde gösterdiğim bölümlere bakabilirsiniz. Erkans.Com adresinde günlük haberlere, teknik yazilara yer vermeye calışıyorum. Ve son olarak da, TheServerSide.Com beğenerek kullandığım bir site ve çok değerli bilgilere sahip.

Sorularınızı ve yorumlarınızı bekliyorum. Eğer ilgileneceğimi düşündüğünüz fikirleriniz ya da bilgileriniz varsa lütfen bana bir ileti gönderin. :-) Annemin bana küçükken öğrettiği gibi: Paylaştıkça Eksilmeyen Tek Değer Bilgidir.

Kaynaklar

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