Bulut Bilişim Uygulamalarında Amazon Web Servisleri Hizmetlerinin 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 2 Dumlupınar Üniversitesi, Bilgisayar Mühendisliği Bölümü, Kütahya hasan.armutlu@usak.edu.tr, muammer.akcay@dpu.edu.tr Özet: Günümüzün en gözde bilişim platformu durumundaki Bulut Bilişim Teknolojileri, internetin hızlı gelişimi sayesinde teknoloji dünyasına adım atmıştır. Bulut bilişim teknolojileri donanım kaynaklarını ve yazılım imkânlarının geniş kitleler tarafından kolayca ve ucuz şekilde kullanılmasını amaçlamaktadır. En karmaşık problemlerin çözümü, büyük miktarda verilerin işlenmesi, bilgi ve belgelerin yönetim ve paylaşılması bulut bilişim sayesinde kolaylaşmıştır. Yalnızca bir internet bağlantısına sahip olmak, bulut bilişimin getirdiği tüm kaynaklardan yararlanmak için yeterlidir. Bulut teknolojilerin yararlanılabileceği önemli bir alan ise web sitesi uygulamalarıdır. 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. JavaScript programlama dili web platformu için bir temel oluşturan HTML dili ile birlikte uyumlu şekilde yıllardır kullanılan bir teknolojidir. Nesne tabanlı çalışan JavaScript programlama dili istemci tabanlı (client based) çalıştığı için yükü sunucudan alarak kullanıcılara dağıtmaktadır. Bu bildiride, bir bulut bilişim altyapısı olan Amazon Web Servisleri (AWS) ve JavaScript dilinin birlikte kullanımı anlatılmaktadır. Bu ortak kullanım sayesinde web sitelerinde ne gibi faydalar ve yenilikler oluşabileceği ve maliyet analizleri ortaya konulacaktır. Anahtar Sözcükler: Bulut bilişim, Amazon web servisleri, JavaScript. Abstract: In the case of today's most popular computing platform Cloud Computing Technology, thanks to the rapid development of Internet technology has stepped into the world. Cloud computing technology aims to be used easily and cheap hardware and software resources by the broad masses of opportunities. The most complex problem solving, processing of large amounts of data, information and documents management and sharing has become easier by using cloud computing. Only to have an internet connection, to take advantage of all the resources of cloud computing is enough to bring. Cloud technology is an important area of the web site can be utilized in applications. Web site applications for dynamic programming languages such as server based usage ASP, PHP,.NET, and JSP are often used. However, there are many general problems such as server based usage of these languages, the slow opening of the website, overloaded servers, use of sophisticated and expensive server. JavaScript is a programming language for the web platform in a manner consistent with the underlying HTML language is a technology used for decades. Objectoriented JavaScript programming language runs client based. It distribues the workload by taking the load server to the client. In this study, Amazon Web Services (AWS) such as a cloud computing infrastructure and the combined use of the JavaScript language are explained. Through common use of this website in what kind of benefits and innovation can occur and cost analysis will be presented. Key Words: Cloud computing, Amazon web services, JavaScript.
1. Giriş Bulut bilişim, bilgi ve donanım paylaşımı temelinde gelişen, verilerin çevrimiçi olarak saklandığı ve yayınlandığı, donanımın ise uzaktan erişim veya dağıtık sistemler şeklinde kontrol edilebildiği bilgi teknolojileridir. Bulut bilişim hızlı sonuçlar alınmasını sağlayan, esnek ve düşük maliyetli yapısıyla bilişim imkânlarını geliştiren bir teknolojidir. Bulut bilişim ihtiyaç duyulduğunda yeni teknolojilerin sisteme dahil edilmesine izin verirken; ihtiyaç azaldığında atıl durumdaki teknolojileri farklı sistemlere yönlendirerek kullandığın kadar öde (pay as you go) yöntemiyle maliyetleri de düşürmektedir [1]. Ancak kaynak paylaşımının pratik kullanımdaki en büyük avantajı, kişisel bilgisayarın donanım özellikleri ne olursa olsun en basitinden en zoruna tüm uygulamaları bir web tarayıcı aracılığıyla çalıştırabiliyor olmaktır. Elinizdeki eski bir bilgisayarla dahi 3B nesne modellemesi veya en karmaşık genetik algoritma çözümlemesi yapılabilmektedir. Gerekli olan tek şey hızlı bir internet bağlantısı aracılığıyla bulut servislerine bağlanmaktır [2]. Bulut bilişim çeşitli platformları, sistemleri ve uygulamaları destekleyen, her yerden ve yaygın bir şekilde verileri yönetmek için işlevsellik sağlayan bir dağıtık sistemdir [3]. Amazon Web Servisleri, Amazon firması tarafından verilen bir "Bulut Bilişim" hizmetidir. Sunucu hizmetleri, veritabanı hizmetleri, depolama hizmetleri, e-posta yönetimi hizmetleri, hesaplama hizmetleri, uygulama hizmetleri, ödeme hizmetleri gibi 36 farklı hizmet sunar. Bulut bilişimin sağladığı teknolojik altyapı; yazılım, donanım ve ağ hizmetleri gibi birçok alanda kullanılmaktadır. Bu alanlardan biride internet programcılığı ve web yazılımlarıdır. Web yazılım sistemleri bulut bilişimi çeşitli alanlarda kullanmaktadırlar. Sunucu hizmetleri, veritabanı hizmetleri, depolama hizmetleri ve istatistik işlemleri bu alanlardan bazılarıdır. Web sayfaları hazırlanırken temelde HTML (Hyper Text Markup Language - Zengin Metin İşaret Dili) dilini, görsel tasarım için CSS (Cascading Style Sheets - Basamaklı Stil Şablonları) kodlarını, veri tabanı erişimi, dosya yüklemesi ve hesaplama işlemleri gibi diğer hizmetler için Dinamik Web Programlama Dilleri kullanılmaktadır. Bu çalışmanın ikinci bölümünde, dinamik web programlama amacıyla kullanılan yazılım dilleri incelenmiştir. Bu programlama dilleri sunucu tabanlı (server based) veyaz istemci tabanlı (client based) oluşlarına göre gruplanmış; bu grupların özellikleri tartışılmıştır. Bu diller arasında karşılaştırmalar yapılarak istemci tabanlı JavaScript dilinin üstünlükleri açıklanmıştır. Çalışmanın üçüncü bölümünde ise, bir bulut bilişim servisi olan Amazon AWS hizmetleri açıklanmış; klasik bilişim teknolojileri ve bulut bilişim teknolojileri, Amazon AWS hizmetleri üzerinden karşılaştırılmıştır. Çalışmanın dördüncü bölümünde istemci, tabanlı JavaScript dilinin ve bir bulut teknolojisi olan Amazon AWS hizmetlerinin birlikte ve uyum içinde nasıl kullanılabileceği örnekleriyle incelenmiştir. Örneklemeler içerisine uygulamaya yönelik çalışmalar da eklenmiştir. Son bölümde ise bulut bilişim teknolojilerinin ve istemci tabanlı programlama dilinin birlikte kullanımından doğan faydalar ve riskler açıklanmış; bulut bilişim teknolojilerinin web site projelerinde kullanılmasıyla oluşacak durumlar değerlendirilmiştir. 2. Web Programlama Dilleri Bir web sayfası yazılımı kodlanırken kullanılan yazılım dilleridir. Bu dillerden HTML ve CSS sitenin temel kodlamasını oluştururlar ve site üzerindeki görsel ve yazınsal nesneleri tanımlarlar. Bu diller yalnızca tarayıcı tarafından yorumlanan ve görsel öğelere dönüştürülen kodlar içerirler, herhangi bir programlama özelliği taşımazlar. Aritmetik ve mantıksal işlemler, hesaplamalar, veri tabanı bağlantıları, dosya yüklemeler vb. işlemler için ise dinamik web programlama dilleri kullanılmaktadır. Bu diller HTML dilinin altında çalışır ve elde ettikleri sonucu HTML içerisine gömerek tarayıcıya ulaştırırlar. 2.1. Sunucu Tabanlı Web Programlama Dilleri Bu diller web siteleri içerisindeki dinamik programlama işlemleri, aritmetik ve mantık sınamaları, veritabanı bağlantıları vb. işlemleri gerçekleştirirler. Bu dillerden bazıları şunlardır; ASP: Microsoft firmasının oluşturduğu ilk dinamik web programlama dili olan ASP (Active Server Pages - Etkin Sunucu Sayfaları), tamamen sunucu tabanlı olarak çalışmaktadır. MsSQL, MsAccess ve XML gibi veritabanlarını kullanabilir ve MsWindows sunucularda çalışmaktadır. PHP: 1995 yılında Rasmus Lerdorf tarafından oluşturulan PHP (Personal Home Page Kişisel Ana Sayfa) sunucu tabanlı çalışan bir başka web programlama dilidir. MySQL veri tabanı ve Linux sunucularda daha performanslı çalışmaktadır
ASP.NET: Microsoft tarafından hazırlanan bir başka web programlama dilidir. ASP dilinin devamı niteliğinde hazırlanmıştır. JSP: Java dilinin dinamik web programlama için kullanılması amacıyla oluşturulmuştur. Açılımı JavaServer Pages (Java Sunucu Sayfaları) olan bu dil sunucu tabanlı çalışmaktadır. Web sitesi çalıştırıldığında ilk olarak bu dinamik kodlar sunucu içerisinde çalıştırılır ve oluşturulan cevap HTML kodların içerisine gömülerek tarayıcıya gönderilir. Tarayıcı bu cevapları HTML ile birlikte yorumlayarak kullanıcıya gösterir. En önemli özellikleri sunucu tarafından çalıştırılıyor olmalarıdır ve kullanıcı ile direkt etkileşim halinde olmayışlarıdır. 2.2. İstemci Tabanlı Web Programlama Dilleri Bu diller web siteleri içerisinde görsel öğelerin düzenlenmesi, kullanıcı ile site etkileşiminin artırılması, site içerisindeki nesnelerin özelleştirilmesi gibi amaçlarla kullanılırlar. Bu diller sunucu yerine istemcinin yani kullanıcının bilgisayarında, internet tarayıcı tarafından çalıştırılırlar. Bu dillerin en bilineni ve en çok kullanılanı JavaScript programlama dilidir. JavaScript web sayfalarına dinamik içerik sağlamak için hazırlanmış ve 1995 yılında kullanıma sunulmuş bir programlama dilidir. C programlama dilinin basitleştirilmiş hali olarak tanımlanabilir ancak isim benzerliği bulunan Java programlama diliyle herhangi bir bağlantısı yoktur. JavaScript, HTML dili üzerinde çalışan ve HTML içerisindeki nesnelerle etkileşime geçebilen nesne tabanlı bir yapıya sahiptir. Bu dil HTML dilinin içerisine gömülerek yazılır ve tarayıcı tarafından yorumlanır. Tarayıcı tarafıncan yorumlandığı için tamamen istemci tabanlı (client based) bir dildir. Bu dilin kullanıldığı web siteleri sunucu için yük oluşturmazlar. Yeni geliştirilen AJAX teknolojilerine temel oluşturmuş olan bu dil, diğer programlama dillerinin yapabildiği hemen her işlemi başarıyla gerçekleştirebilir. Ayrıca diğer dillerin aksine kullanıcı ile iletişime geçerek büyük bir kullanım kolaylığı ve etkileşim sağlar. Bu sayede de kullanıcı dostu siteler hazırlanabilir. 2.3. JavasScript ve Diğer Dillerin Karşılaştırılması Sunucu tabanlı çalışan web programlama dillerinde tüm dinamik hesaplamalar, tüm veritabanı sorguları ve tüm dosya yükleme işlemleri sunucunun sorumluluğunda ve sunucuya fazladan işlem yükü çıkartacak şekilde çalışmakta ve istemcinin ekranına yalnızca sonuçlar gönderilmektedir. Bu nedenle bir tek sunucu binlerce kullanıcıya aynı anda cevap verebilmek için yüksek performans harcamak durumundadır. Bu nedenle sunucu performans yüksek, kaynakları geniş ve güçlü olmalıdır ve tabi ki bu sunucular yüksek maliyetlidirler. İstemci tabanlı çalışan JavaScript dilinde ise tüm dinamik hesaplamalar ve veritabanı bağlantı istekleri tamamen istemcinin bilgisayarı üzerinde yapılmaktadır. Veritabanı sorguları ve dosya yükleme işlemleri ise bu işlemler için oluşturulmuş farklı hizmetler üzerinde yapılmaktadır. Bundan dolayı siteyi kullanan kullanıcıların işlem yükü tek bir sunucuda değil, istemcilerin bilgisayarlarına ve diğer bulut hizmetlere yüklenmekte; böylece sunucunun işlem yoğunluğu ve yavaşlaması engellenmekte ve web sitesini daha hızlı hizmet vermesi sağlanmaktadır. Bu nedenle performansı ve donanımsal kaynakları daha düşük, daha maliyetsiz sunucular kullanlabilirr. Aynı zamanda AWS hizmetlerinde kullandığın kadar öde mantığı ile ücretlendirme yapıldığı için, sunucuya daha az iş yükü bindikçe maliyetlerde de düşüş yaşanacaktır. JavaScript dilinin bir diğer özelliği bu dilin gerçek zamanlı (real time) çalışabilmesidir. Diğer tüm diller sunucuda yorumlandığı için sayfanın önce dinamik kodları çalışmakta, sonra HTML kodlaması yorumlanmaktadır. Bu da kullanıcının dinamik işlemlere müdahalesini, kodlarla etkileşimini engellemektedir. Ancak JavaScript dili HTML dili ile birlikte eş zamanlı olarak istemci tarafından yorumlandığı için kullanıcı istediği anda işlemi durdurabilir veya sayfanın herhangi bir bölümünü yeniden yorumlatabilir. Böylelikle yorumlama işlemi gerçek zamanlı ve kullanıcının isteğine uygun hale getirilebilir. 3. Amazon AWS Amazon Web Servisleri (AWS), Amazon firması tarafından verilen bir "Bulut Bilişim" hizmetidir. Sunucu hizmetleri, veritabanı hizmetleri, depolama hizmetleri, e-posta yönetimi hizmetleri, hesaplama hizmetleri, uygulama hizmetleri, ödeme hizmetleri gibi 36 farklı hizmet sunar. Diğer bazı bulut bilişim teknolojileri (Azure, IBM Cloud vb.) sadece uzman geliştiricilere, bazıları (Google Apps, IBM Cloud vb.) sadece yazılım geliştiricilere ve bazılarıysa (EyeOs, Goggle Drive, icloud vb.) sadece son kullanıcıya hitap etmektedir. Ancak Amazon AWS, diğer bulut hizmetlerinden farklı olarak her sorun için farklı hizmetler sunmaktadır. Amazon AWS hizmetleri hali hazırda 36 farklı hizmetten oluşmakta ve bu hizmetler birbirleriyle aktif şekilde haberleşerek uyumlu bir biçimde çalışmaktadırlar. Her sorun için farklı hizmetlerin kullanılması geliştiriciler için daha esnek bir yapı
oluşturmaktadır. Bu esnek yapı ister manüel isterse otomatik olarak kolayca ölçeklendirilebilmekte ve ihtiyaçlara daha hızlı şekilde cevap vermektedir. Her düzeydeki geliştiriciler ister altyapı sistemi, ister uygulama platformu ve isterse son kullanıcı arayüzüyle bu hizmetlerden yararlanabilmektedir. Bir web sitenin klasik teknolojiler kullanılarak yayınlanması için gerekli üç bileşeni vardır; Hosting: sitenin kodlama dosyalarının bulunduğu ve internetten kullanıcılara yayınlandığı web sunucusu (hosting) hizmetidir. Bu sunucuda HTML kodlamalar ve diğer dinamik kodlamaların bulunduğu dosyalar kullanıcılara sunulur ve kullanıcılar kendi bilgisayarlarında bulunan tarayıcılar sayesinde bu dosyalar ulaşarak web sitesini görüntülerler. Veritabanı: Web sitesi içerisinde yapılan tüm işlemlere ait, site kullanıcılarına ait ve site içeriğine ait tüm veriler bu hizmette tutulur. Web sitesinin bilgi kaynağıdır. Çoğunlukla sunucu üzerinde bulunurlar. Depolama Alanı: Web sitesi tasarımında kullanılan resimler, görsel işitsel öğeler, site içerisinde depolanan tüm dokümanlar bu alanda tutulurlar. Bu hizmet de sunucu üzerinde sabit disklerde tutulurlar. Amazon AWS hizmetleriyle bulut bilişim teknolojileri kullanarak bir web sitesi yayınlamak için ise şu üç bileşen eşzamanlı şekilde kullanılmalıdır; Amazon AWS EC2: Amazon EC2 hizmeti, internet üzerinden bir sanal makine hizmeti sunarak, bu sanal makinenin web sunucu (hosting) olarak kullanılmasına izin vermektedir. Amazon AWS DynamoDb: Amazon DynamoDb hizmeti NoSql özellikli bir veritabanıdır. NoSql özellikli olduğundan dolayı standart T-Sql komutları yerine özel komutlar kullanmaktadır. Amazon AWS S3: Amazon S3 hizmeti bir bulut depolama hizmetidir. Sunucudan bağımsız çalışan bu hizmete internet üzerinden kolayca dosya gönderilip alınabilir. Bu hizmetler birlikte kullanılarak bir web sitesi yayınlanabilir. Klasik teknolojiler yerine bulut teknolojilerin kullanılmasıyla oluşturulacak web siteleri daha ucuz, daha performanslı, daha esnek bileşenlere sahip ve daha rahat güncellenebilir durumdadırlar. Klasik teknolojiler kullanılarak hazırlanan bir web sitesinde tüm bileşenler Şekil 1 de görüldüğü üzere aynı fiziksel sunucuda bulunmaktadır. Bu sunucu üzerinde bir güncelleme yapılmak istendiğinde, örneğin sunucu işlemci hızı artırılmak istendiğinde veya depolama alanı yükseltilmek istendiğinde tüm sunucu durdurulacaktır. Bu güncellemeler, donanımsal bileşenlerin değiştirilmesi şeklinde olduğu için vakit alan ve zor işlemlerdir. Ayrıca güncelleme sonrasında çıkan parçalar (işlemci, sabit disk vb.) tekrar kullanılamayacak veya iade edilemeyecek parçalar olduğu için atıl kullanılmayan kaynaklara dönüşecektir. Bu nedenle maliyetler artacaktır. Şekil 1: Klasik Teknolojiler Sunucu Bileşenleri ve Çalışma Prensibi. Aynı güncellemeler bulut teknolojilerin kullanıldığı Şekil 2 de de görüldüğü gibi, sunucuda yani Amazon EC2 hizmetinde yapılmak istendiğinde, bu sunucu sanal makinelerden oluştuğu için yönetim paneli kullanılarak, işlemci veya depolama alanı değişimi saniyeler içerisinde ve kolayca yapılacaktır. Ayrıca atıl kullanılmayan parçalar çıkmayacağı için maliyetler ortadan kalkacaktır. Şekil 2: AWS Hizmet Bileşenleri ve Çalışma Prensibi. Hemen hemen her uygulamada verilerin bir SQL veritabanında saklanması gerekir ve birçok durumda, bir
veritabanı doğru seçimdir. Fakat sabit bir veritabanı şeması kolayca yeni şartlara uyum sağlama yeteneğini sınırlar ve SQL destekleyen bu ilişkisel veri tabanları arasında yatay olarak büyütmek zordur. İnternet ölçekli uygulamalar için, geleneksel ilişkisel veri tabanları genellikle iyi bir seçim değildir. Bu nedenlerden dolayı Amazon DynamoDb veri tabanı NoSQL bulut uygulamalar için çok popüler olmuştur [5]. Amazon AWS hizmetlerinin bir başka faydası da tüm hizmetlerde kullandığın kadar öde (pay as you go) ödeme planının olmasıdır. Bu ödeme planına göre tüm hizmetlerde sabit açılış fiyatları yoktur. Bunun yerine kullandığınız hizmet başına saatlik veya işlemlik ücretlendirme yapılır. Örneğin; EC2 hizmeti sunucusu saatlik kullanım başına $0,12 ücret almaktadır ve web sitesi kullanılmadığı saatlerde bu ücret alınmamaktadır. Amazon DnamoDb hizmeti ise veritabanında depolanan veri başına değil, verileri okuma-yazma adedine göre ücretlendirmektedir. Amazon DynamoDb hizmetinde her 50 adet okuma işlemi 0,0065$ ve her 10 adet yazma işlemi 0,0065$ olarak ücretlendirilmektedir [6]. 4. AWS ve JavaScript Kullanımı Bu hizmetlerin kullanılabilmesi için öncelikle web sitesi tasarımının, HTML ve CSS kodlamasının yapılmış olması gerekmektedir. Daha sonra Amazon AWS üzerinden kullanılacak Amazon EC2 sunucusunun, Amazon S3 depolama alanının ve Amazon DynamoDb veritabanının hizmet olarak satın alınmış olması gerekmektedir. Bu hizmetler Amazon web sitesi üzerinden üye olunarak ve site içerisindeki Yönetim Paneli (Management Console) kullanılarak yapılabilir [6]. AWS hizmetlerinin JavaScript ile kullanılabilmesi için JavaScript Yazılım Geliştirme Kiti (SDK) hazırlanan web sitesinin kodlarına eklenmelidir. Bu yazılım geliştirme kiti Amozon web sitesi üzerinden temin edilebilir [7]. Site kodlaması içerisine eklenmesi, herhangi bir javascript kütüphanesinin eklenmesi gibidir ve Şekil 3 de gösterildiği şekilde gayet basittir. Şekil 3: JavaScript SDK nın Web Sitesine Eklenmesi. Bu işlemden sonra SDK içerisinde, AWS kullanıcı hesabı (accesskeyid), şifresi (secretaccesskey), hizmet bölgesi (region) gibi yapılandırma ayarları Şekil 4 de gösterildiği gibi yapılmalıdır. Bu ayarlamalar bizzat AWS konsolu tarafından oluşturulan bilgiler ve şifreler kullanılmalıdır. Şekil 4: JavaScript SDK Ayarlarının Yapılışı. Bu işlemler tamamlandıktan sonra bulut bilişim hizmetleri JavaScript kodlar tarafından kullanıma hazır hale gelmiş olacaktır. Örneğin; web sayfasından DynamoDb veritabanına bağlanmak için aşağıdaki JavaScript kodları kullanılabilir; var baglanti = new AWS.DynamoDB(); var param = { "TableName":"TBL_HABER","Limit":1000, "AttributesToGet":["sira","ad"] } Bu kodlarla oluşturulan baglanti değişkeni veritabanı bağlantısını sağlamakta; param değişkeni ise tablo adı, alan adları gibi bağlantı parametrelerini belirtmektedir. Bu bağlantı ve parametreler kullanılarak aşağıdaki gibi veri çekme işlemleri yapılabilir. baglanti.scan(param,function(hata,veri){ }); if(hata){ alert(hata); }else{ for(i=0;i<veri.count;i++){ document.write(veri.items[i].ad.s); } } Yukarıda görülen JavaScript kodda veritabanı üzerinde veri çekme (scan) işlemi yapılmaktadır. Bu işlem için oluşturulan fonksiyonda hata ve veri isminde iki değişken bulunmaktadır. hata değişkeni bağlantı esnasında oluşabilecek olumsuzlukları denetlemek için kullanılmaktadır. Eğer bir hata oluşmuşsa sayfaya uyarı (alert) olarak bu değişken üzerinden bildirilmektedir. Herhangi bir hata oluşmadığında ise veriler veri değişkeni üzerinden alınmaktadır. Bu değişken veritabanından dönen tüm bilgileri bir dizi halinde kendi üzerinde taşımaktadır. Bu nedenle veri değişkenine bir sayaç (count) ayanarak
tün veri dizisi taranabilir ve ekrana yazdırma komutu ile web sitesine gönderilebilir. Bu komutlar dışında veritabanı kontrolü için veri listeleme, veri ekleme, veri güncelleme ve veri silme için de şu komutlar kullanılabilir; baglanti.getitem(param){} *Listele baglanti.putitem(param){} *Ekleme baglanti.updateitem(param){} *Güncelleme baglanti.deleteitem(param){} *Silme 5. Sonuçlar 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 [8]. Web sitesi kodlamasında JavaScript dilinin kullanılmasıyla, dinamik programlamanın hesap yükü, veritabanı kayıt işlemlerin ve dosya yükleme işlem yoğunluğu sunucuya yük olmaktan kalkmıştır. JavaScript dili sayesinde tüm bu yoğun işlemler istemcinin yani kullanıcının bilgisayarına yüklenmiştir. Yoğun kullanılan bir web sitesinde yüzlerce kullanıcının yükü tek sunucuya binmek yerine kullanıcı bilgisayarlara dağıtılmakta, böylece sunucuda yaşanacak performans kayıpları önlenmektedir. Hatta normalde kullanılacak yüksek performans sahibi bir sunucuya binlerce lira harcamak yerine, daha düşük performanslı bir sunucu daha düşük maliyetlere alınabilecektir. Ayrıca JavaScrip kullanılarak kullanıcıların web sitesi ile daha çok etkileşime girmesi sağlanabilir, interaktif uygulamalar hazırlanabilir. JavaScript dili HTML dili ile birlikte aynı anda istemci tarafından yorumlandığı için kullanıcı istediği anda işlemi durdurabilir veya sayfanın herhangi bir bölümünü yeniden yorumlatabilir. Böylelikle yorumlama işlemi gerçek zamanlı ve kullanıcının isteğine uygun hale getirilebilir. Örneğin; sayfanın tamamı yüklenmeden web sitesindeki yalnızca haberler bölümü yüklenebilir veya sayfa açık durumdayken sadece fotoğrafların yenilenmesi sağlanabilir. Bu sayede web sitelerinde kullanıcı memnuniyeti artırılmış olur ve sayfada geçirecekleri süre uzatılmış olur. Tüm bu istemci tabanlı kodlamanın yapılması bulut bilişim teknolojileri kullanan Amazon AWS hizmetleri sayesinde olmuştur. Klasik teknolojiler kullanıldığında JavaScrip dili, veritabanına doğrudan bağlanamaz ve istemci tarafı hesaplama olayı var olamaz. Ancak bulut bilişim teknolojilerinin, daha doğrusu Amazon AWS hizmetlerinin başka faydaları da bulunmaktadır. Amazon EC2 hizmeti sayesinde daha düşük performanslı bir sunucuya daha ucuza sahip olunabilir. Site kullanım yoğunluğu artığında sunucunun işlemci veya bellek değerlerini artırmak Amazon EC2 sayesinde saniyeler içerisinde yapılabilir. 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 artırabilir. 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. 6. Kaynaklar [1] Armutlu, H., & Akçay, M. Uzaktan Eğitim Sistemlerinde Bulut Bilişimin Kullanımı. 7th International Computer & Instructional Technologies Symposium (ICITS'13), 2013, ERZURUM. [2] Armutlu, H., & Akçay, M. Bulut Bilişim Ve Uygulamaları. 29. Ulusal Bilişim Kurultayı, 2012, ANKARA. [3] Doukas, C., Pliakas, T., & Maglogiannis, I. Mobile Healthcare Information Management Utilizing Cloud Computing and Android OS. In Engineering in Medicine and Biology Society (EMBC), 2010 Annual International Conference of the IEEE (pp. 1037-1040). [4] Krause, S. Tutorial: Hands on Introduction to Amazon Web Services. In Proceedings of the 2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing (p. xxx). [5] http://aws.amazon.com/ (Erişim Tarihi: 18.07.2014 16:21) [6] http://aws.amazon.com/sdkforbrowser/ (Erişim Tarihi: 18.07.2014 16:36) [7] http://www.bulutokulu.com/ana_sayfa/ (Erişim Tarihi: 21.07.2014 17:29)