Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı Hasan ARMUTLU 1 Muammer AKÇAY 2 1 Uşak Üniversitesi, Karahallı MYO, Bilgisayar Teknolojileri Bölümü, Uşak hasan.armutlu@usak.edu.tr 2 Dumlupınar Üniversitesi, Bilgisayar Mühendisliği Bölümü, Kütahya muammer.akcay@dpu.edu.tr
Web Uygulama Teknolojileri Web sitesi uygulamalarının dinamik programlanması için sunucu tabanlı çalışan ASP, PHP, .NET, JSP gibi yazılım dilleri sıklıkla kullanılmaktadır. Ancak sunucu tabanlı (server based) çalışan bu dillerin kullanımı, web sitelerin yavaş açılması, sunuculara aşırı yük binmesi, gelişmiş ve pahalı sunucuların kullanılması gibi birçok genel sorun oluşturmaktadır.
Web Uygulama Teknolojileri JavaScript programlama dili web platformu için bir temel oluşturan HTML dili ile birlikte uyumlu şekilde yıllardır kullanılan bir teknolojidir. JavaScript programlama dili istemci tabanlı (client based) çalıştığı için yükü sunucudan alarak kullanıcılara dağıtmaktadır.
Web Uygulamasının Temel Bileşenleri İstemci (Client) : Web uygulamasını kullanan, hesaplama, veritabanı sorgusu vb. istekler gönderip cevaplar yayınlar. Yayıncı (Host) : Web uygulamasını internet üzerinden yayınlayarak istemcilerin kullanımına açar. Veritabanı (Database) : Web uygulamasının kullanımına sunulan ham verileri ve işlenmiş bilgileri depolar. Depolama Alanı (Storage) : Web uygulamasında yayınlanacak görselleri ve dökümanları depolar.
Sunucu Tabanlı Dillerin Çalışması Veritabanı Db Sorguları Cevapları Hesaplama, Db Sorgusu, Dosya Yükleme-İndirme İstekleri Sunucu Kullanıcı Hesaplama ve İsteklerin İşlenmesi Hesaplama, Db Sorgusu, Dosya Yükleme-İndirme Cevapları Dosya Yükleme İndirme İşlemleri Depolama Birimi
İstemci Tabanlı Dillerin Çalışması Veritabanı (AWS DynamoDB) Db Sorguları Cevapları Yayıncı (AWS EC2) Kullanıcı HTML ve JavaScript Dosyalarının Yayını Basit Hesaplama İşlemleri Dosya Yükleme İndirme İşlemleri Depolama (AWS S3)
Sunucu ve İstemci Tabanlı Dillerin Karşılaştırılması Sunucu tabanlı dillerde dinamik programlamanın hesap yükü, veritabanı kayıt işlemlerin ve dosya yükleme işlem yoğunluğu sunucuya yüklenmiştir. JavaScript dili sayesinde tüm bu yoğun işlemler istemcinin yani kullanıcının bilgisayarına yüklenmiştir. Sunucu tabanlı dillerde, Yoğun kullanılan bir web sitesinde yüzlerce kullanıcının yükü tek sunucuya bindiği için performans düşümleri ve bağlantı hataları oluşabilir. JavaScript dili sayesinde yük kullanıcı bilgisayarlara dağıtılmakta, böylece sunucuda yaşanacak performans kayıpları önlenmektedir. Sunucu tabanlı dillerde, yüksek performans sahibi bir sunucu yüksek maliyetler doğuracaktır. JavaScript dili sayesinde daha düşük performanslı bir sunucu daha düşük maliyetlere alınabilecektir.
Sunucu ve İstemci Tabanlı Dillerin Karşılaştırılması Site kullanım yoğunluğu artığında sunucu bileşenleri (işlemci, bellek vb.) yüksek maliyetler ödenerek iyileştirilebilir. Bu iyileştirme fiziksel iş yükü doğuracağı gibi, site kullanımını geçici olarak aksatacaktır. Site kullanım yoğunluğu artığında sunucu bileşenlerini iyileştirmek Amazon EC2 hizmeti sayesinde saniyeler içerisinde, sanal olarak yapılabilir. Kullandığın kadar öde mantığıyla maliyetler düşük olacaktır. Ayrıca Amazon AWS hizmetleri bu gibi yoğun kullanım durumlarını otomatik olarak algılayabilir ve yoğunluk geçene kadar donanım değerlerini iyileştirebilir. Yoğunluk normal düzeye düştüğünde bu donanım değerleri yine otomatik olarak geri alınmış olur. Yapılan bu kaynak artırımı ise kullanıldığı saat kadar ücretlendirilir, gereksiz maliyetler önlenmiş olur.
SONUÇ Bu bildiride bulut bilişim sistemleri kullanılarak oluşturulan web uygulamalarında Amazon AWS hizmetlerinin ve JavaScript kodlama dilinin birlikte kullanımı anlatılmış, bulut hizmetlerin faydalarından ve istemci tabanlı JavaScript dilinin kolaylıklarından bahsedilmiştir. Bildiride bahsedilen bu tasarım “Bulut Okulu” isimli uzaktan eğitim web portalında başarıyla uygulanmıştır.
Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı Hasan ARMUTLU 1 Muammer AKÇAY 2 1 Uşak Üniversitesi, Karahallı MYO, Bilgisayar Teknolojileri Bölümü, Uşak hasan.armutlu@usak.edu.tr 2 Dumlupınar Üniversitesi, Bilgisayar Mühendisliği Bölümü, Kütahya muammer.akcay@dpu.edu.tr