1.Play Framework

Play framework , java ve sacala da kullanılan bir web frameworküdür. Play framework biz geliştiricilere MVC (Model - View - Controller) yapısı kolayca uygulamamızı sağlıyor ve bunun için modüller sunuyor.

Play Framework Dosya Yapısı

  • app/ : Bu klasörün altında 3 tane daha alt klasörü bulunur: controllers,models ve views. Bunlar bizim Java ve Scala kaynak kodlarımızın bulunduğu kısımdır

  • public/ : Css, Js ve diğer dosyaların olduğu webserver gibi kullanılan alandır

  • conf/ : Konfigürasyon dosyalarının bulunduğu klasördür. Bu dosya altında dosya yapısı daha vardır. Bunlar application.conf/ proje ayarlarının olduğu kısımdır , routes/ proje de controllera http isteklerinin (GET , POST , PUT , DELETE) yapıldığı kısımdır.

  • public.sbt/ : Projenin ana tanımlamaları bu kısımda yapılır.

  • target/ : Projeyi deploy ettikten sonra oluşan tüm build dosyaları bu kısımda tutulur.

Java da maven yapısının karşılığı scala da sbt olarak geçmektedir.

2.Akka

Akka, scala da eşzamanlı haberleşmeyi sağlayan bir JVM toolkitidir. Bu yapıların hepsi JVM üzerinde koştuğu için sadece scala ya özgü değil java ile de kullanılabilir. Çünkü scala da yazdığınız kodlar java bytecode a çevriliyor. Akka bir framework değildir herhangi bir scala projesine kolayca adapte edebilirsiniz. Neden Akka diye sorarsanız çünkü Akka actor model ile birlikte tüm haberleşme(sistemler/threadler/uygulamalar) altyapısını soyutlayarak çok basite indirger. Yaptığı soyutlama ile concurrent uygulamalar, paralel hesaplamalar vb bir çok aslında zor olan modellemeler oldukça kolaylaşmakta.

2.1.Actors

Akka, concurrent’i saglayabilmek için Actor Model’ini gerçekler. Yaptığı soyutlama ile Thread’lerin olusturulamsı, schedule edilmesi, Thread’ler arası haberleşme, mesajlaşma, senkronize olma durumları basite indirgenir. Actor model’de her şey bir actor’dur. Actor, kendisine gelen bir uyarı/event/message için local decision yapabilir(hesaplama, persist, ws call vs), farklı actor’ler olusturabilir, geri mesaj gönderebilir, mesajı ignore edebilir. Actor based bir sistem içerisinde tüm soyutlamalar yapılır. Actor based sistemde her şey bir actor’dur, object-oriented bir dilde herşeyin bir obje olması gibi.

Herhangi bir Actor bilinen bir objeden farksız degildir. Kabaca mesaj alır/verir. Bunu yaparken ise actor ile sistem arasında bir katman oluşturulur, bu katman ile birlikte tüm kompleks karmasıklık Akka toolkit tarafından soyutlanır. İlerde görecegiz ne kadar basite indirgedigini.

Örnek Chat Uygulaması

Scala da play framework kullanarak akka mimarisinde basit bir chat uygulaması. Uygulamanın ekran görüntüleri iki farklı tarayıcıdan alınmıştır.

Proje Kaynağı

results matching ""

    No results matching ""