Dünya’nın İlk AJAX Sunucusu: Jaxer
Web uygulama geliştirme dünyası müthiş bir ivmeyle büyümeye devam ediyor. Neredeyse her gün yeni bir terimle, teknolojiyle veya uygulamayla karşılaşıyoruz. Geliştirenlerden değil de takipçilerden biri olarak kalanlar için, izlenmesi zorlaşan, insanı hayretler içerisinde bırakan bir ivme bu.
Bu ivmeye ulaşılmasında ve bu kadar çok uygulama geliştirme teknolojisinin ortaya çıkmasında Web 2.0 felsefesinin internette büyük kabul görmesini payının büyük olduğunu düşünüyorum. Bütün web sitelerinin birbirleriyle entegre çalışıp, milyonlarca ziyaretçinin el birliğiyle oluşturdukları sitelerin var olduğu internet ortamında, tüm bu entegrasyonun daha kolay, daha performanslı ve daha esnek bir şekilde sağlanabilmesi için bir çok fikir ortaya atılıyor. Tüm bu ihtiyaçlarda, tartışmasız yeri en sağlam olan dil olan Javascript’in, istemci-browser taraflı dil yapısından alınıp, her alanda kullanılmaya başlanması da bu sürecin bir parçası gibi. Ve işte bu sürecin önemli adımlarından biri daha meydana geldi ve Dünya’nın ilk AJAX sunucusu Jaxer, web uygulaması geliştiricilerinin ilgisine sunuldu.
Güçlü ve işlevsel AJAX IDE’si Aptana Studio‘nun üreticileri, muhtemelen bu başarılı IDE’yi yaparken JavaScript’i ve AJAX teknolojisini hatmettikleri için, adı çok söylenmesine rağmen bir türlü kimsenin üretmediği “sunucu taraflı Javascript” teknolojisini üretmek amacıyla kolları sıvadılar ve Jaxer’ı ürettiler.
Jaxer ücretsiz ve açık kaynak kodlu bir AJAX sunucusu. Bir Apache modülü olarak çalışıyor. Web geliştiricilerine client tarafında yazdığı dille sunucu taraflı işlemler de yapma imkanı vermeye çalışan Jaxer geliştiricileri, bu amaçla, sunucu taraflı, client taraflı ve “hem sunucu, hem client taraflı” Javascript kodları yazma imkanı vermişler. Bu demek oluyor ki, HTML ve Javascript biliyorsanız Jaxer uyumlu dinamik web uygulamaları geliştirebilirsiniz demektir.
Jaxer’ın sağlayacağı en önemli imkanlardan biri, AJAX uygulamaları yazarken sunucu taraflı kodlarımızla (örn. PHP, Java, Ruby), istemci taraflı kodlarımız(Javascript) arasında veri alışverişi yaparken gerçekleştirmek zorunda olduğumuz bir dizi işlemden (XMLHTTP nesnesi oluşturmak, veriyi göndermek, sonucu beklemek, sonucu işlemek vs.) bizi kurtarıyor olması. Jaxer uygulamalarında aradaki bu prosedürel işlemlerin hepsini Jaxer kendisi hallediyor. Bu işlemlerin tamamını Jaxer’ın sunucu ve istemci taraflı frameworkleri otomatik olarak yapıyor.
Jaxer’ın adım adım nasıl çalıştığını şu şekilde özetleyebiliriz:
- Talep edilen HTML dokümanı sunucudan istemciye gönderilmek üzere web sunucusu tarafından (Apache) hazırlanır. Bu statik bir HTML dokümanı veya PHP, Java veya Ruby gibi bir dille üretilmiş bir HTML dokümanı olabilir.
- Jaxer oluşturulan HTML dokümanını, istemciye gönderilmeden önce Apache’nin bir çıkış modülü olarak alır, bir browserın yaptığı gibi, onu çözümler ve içindeki sunucu tarafında çalışması istenen Javascript kodlarını çalıştırır.
- Sonuç Jaxer Server Framework ve geliştirici kodlarıyla oluşturulmuş yeni bir HTML dokümanıdır. Fark şudur ki; Jaxer sunucu taraflı javascript kodlarını, istemci tarafından çağrılabilir metodlar haline çevirir, istemci tarafla sunucu tarafının oturum iletişimini sağlayacak bilgi ve metodları üretir.
- Yeniden üretilmiş HTML istemci tarafında gönderilir.
- İstemci dokümanı alır, HTML’den DOM üretilir ve bu sefer istemci taraflı javascrpt kodlarını çalıştırır.
- Eğer sunucu taraflı bir metod çağrılırsa, parametreler otomatik olarak JSON formatına çevrilir ve server tarafındaki gerçek metod tetiklenmek için bir XMLHttpRequest talebi sunucuya gönderilir.
- Sunucu bu özel talebi aldığında parametreler tekrar özgün haline çevrilir, çağrılan fonksion tekrar oluşturulup bu parametrelerle çalıştırılır ve dönen sonuç tekrar JSON verisine çevrilir.
- İstemciye dönen veri yine otomatik olarak JSON türünden özgün veri türüne çevrilir ve işlem bu şekilde tamamlanır.
ASP.NET ile uğraşırken sadece VB.NET kodu yazmamıza rağmen .NET Framework’un bizim için bir sürü Javascript kodu üretmesiyle, bu yapıyı benzer görmek mümkün, ancak tek fark var, bu sefer üretilen dil yazdığınız dilden farklı değil. (Gerçi sizi bilmem ama ben, benim yerime kod üreten yapılara hiç ısınamadığımı itiraf etmeliyim.)
Jaxer’ın şu anda en büyük eksiği henüz Linux versiyonunun olmaması gibi görünüyor. Windows ve Mac versiyonları sitesinden indirilebilen Jaxer’ın Linux versiyonunun da kısa zamanda kullanıma sunulacağı belirtilmiş.
Bir not ile yazıma son vereyim. Daha önceden var olan fakat bu şekilde herkesin kullanımına sunulmamış bir sunucu sunucu taraflı Javascript çalışması olarak AppJet sitesini belirtmek lazım. Bu sitede size verilen web arayüzüne javascript kodları yazarak, AppJet sunucularında çalışan dinamik web uygulamaları üretme şansınız bulunuyor.
Son Yorumlar