Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi - Inet-tr

advertisement
Google Web Toolkit ile Öğretim Elemanı
Otomasyon Sistemi
Mehmet Karakoç
Akdeniz Üniversitesi
Bilgi İşlem Daire Başkanlığı
28.11.2014
inet-tr'14 : GWT AUFaculty Project
1
İçerik
• Giriş
• Mevcut Sistem
• Özgür Web Teknolojisi olarak Google Web Toolkit (GWT)
• Geliştirilen Sistem
– Mevcut Detaylar
– Kullanılan Teknolojiler
– Gerçekleştirilen Modüller
– Gerçekleştirilecek Modüller
• Sonuç
28.11.2014
inet-tr'14 : GWT AUFaculty Project
2
Mevcut Sistem
28.11.2014
inet-tr'14 : GWT AUFaculty Project
3
Genel Olarak GWT
• GWT kodunuzu optimize edilmiş JavaScript‟e (JS) derler.
• Sonuç kod HTML + CSS + JS olduğundan konuşlandırma işlemi
(deployment) kolaydır. (statik içerik için HTML, görsel tasarım (styling)
için CSS ve dinamik içerik için JS [1])
• Grafiksel kullanıcı arayüzü bileşenleri olarak kendi Widget‟ları vardır.
• Temel amaç, farklı alanlardan Java geliştiricilerini web uygulamaları
geliştirme dünyasına kolayca dâhil etmek
28.11.2014
inet-tr'14 : GWT AUFaculty Project
4
Geliştirilmekte Olan Sistem (AUFaculty Projesi)
• Projede, GWT Widget‟larını kullanmak yerine, Bootstrap karşılıkları ile
arayüzler tasarlanmaktadır (mobil için). Bu amaçla, „LoginView‟ ve
„NavbarView‟ gibi görünüm örnekleri oluşturulmuştur.
• Katkı: JS bilgisi gerektirmeksizin sadece Java programlama dili ile esnek
ve verimli, web tabanlı ve mobil uyumlu uygulama geliştirebilme
28.11.2014
inet-tr'14 : GWT AUFaculty Project
5
Öğretim Elemanları için Bilgi Yönetim Sistemi
•
Geliştirme Ortamı [Ubuntu 14.04]
– JDK 1.7u55
– Eclipse 4.3.2
– Maven 3.2.1 (External)
– m2e 1.4.0
– Subversive SVN 1.1.3 (SVN Kit 1.6)
– Google Plugin for Eclipse 3.5.1
•
Altyapı Bileşenleri
– ​UiBinder
– ​GWT-Bootstrap
– ​Google Guava EventBus
– ​MyBatis
28.11.2014
inet-tr'14 : GWT AUFaculty Project
6
Öğretim Elemanları için Bilgi Yönetim Sistemi
• Proje Yaşam Döngüsü
– Proje Yönetim Aracı: Trac. (Yapılan değişikliklerin detayları trac üstünden görülebilir.)
– Sürekli Entegrasyon Sunucusu: Jenkins.
• Proje her gece 23:00‟te derlenir.
• JavaDoc oluşturulur ve yayınlanır. *
• Derlemeyi kıran geliştiriciler e-posta ile uyarılır.
• Düzeltildiğinde de bilgilendirilirler.
• Derleme başarılı ise otomatik olarak uygulama sunucusuna konuşlandırılır.
– Geliştirici referans kaynakları: JavaDoc.
– Test uygulama sunucusu: Tomcat.
28.11.2014
inet-tr'14 : GWT AUFaculty Project
7
Genel Noktalar
• GWT uygulaması oldukça modüler bir yapıda geliştirilmekte?
– Sürdürülebilirlik sağlanmalı
– Bakım işlemleri kolaylıkla yapılabilmeli
– Takım büyüyebilir
• Veri Tabanı (VT) Yönetim Sistemi olarak MS SQL Server (eskiden kalan /
mevcut veriler [legacy data] var) kullanılmaktadır.
• Mobil ve Masaüstü erişim söz konusu
• Kullanıcı arayüzü tasarımı önemli
• VT yapısı değişime açık
28.11.2014
inet-tr'14 : GWT AUFaculty Project
8
Teknolojiler
•
UiBinder: Kullanıcı Arayüzü ve İş Mantığı (Business Logic) kodlarını
birbirinden ayrık tutarak modülerliği desteklemek için çözüm. [2]
•
GWT-Bootstrap: GWT Widget‟larının mobil platformlarda performansı kötü,
Bootstrap bu alanda da facto* çözüm. GWT-Bootsrap, Twitter Bootstrap
bileşenlerinin GWT Widget‟ları hâlinde marshall^ edilmiş hâli. [3]
•
MyBatis: VT katmanını ve yapısını uygulamanın diğer katmanlarından ayrık
tutabilmek için bir çözüm. iBatis tabanlı (geliştiricileri de ortak). Diğer ORM
(nesne ilişkisel haritalama) çerçevelerinden farklı olarak, Java nesneleri
tablolara değil yöntemler sorgulara eşlenir. [4]
28.11.2014
inet-tr'14 : GWT AUFaculty Project
9
Detaylar
• Kullanıcı (LoginView) arayüzleri tamamen istemci tarafında (Views)
• Veri Tabanı (FacultyServiceProxy) işlemleri tamamen sunucu tarafında
(Proxy/RPC Services, DAO, Servlets)
• Paylaşılan Kısım
– Ortak işlemler, yordamlar, varlık nesnelerini içeren sınıflar vs.
• Tanımlanan Kontrolör: EventBus (*) kanalı kullanılarak, kullanıcı tarafı
ile veri tabanı tarafı tamamen birbirinden ayrılmaktadır. [5]
* (edu.akdeniz.faculty.shared.Utility.EVENT_BUS)
28.11.2014
inet-tr'14 : GWT AUFaculty Project
10
Web Sayfalarını JAVA‟da Geliştirmek
• Uygulama konuşlandırma (deployment)
• Hata giderme (debugging)
• İyileştirme ve düzenleme
• Sürdürülebilirlik ve bakım
• Öğrenme süreci uzun olabilir; fakat son derece esnek, özelleştirilebilir ve
özellikle büyük ölçekli uygulamalar için uygun
• Sunucu tarafının Java ile kodlanmasında GWT RPC kullanımı uygun
28.11.2014
inet-tr'14 : GWT AUFaculty Project
11
Tamamlanan Modüller
• Genel Tercihler
– Akademik Yıl ve Dönem Seçimi
– Aktif Ders-Şube Belirleme
• Şube İşlemleri
– Ders Programı
– Şube Öğrencileri (+Yoklama Listesi)
• Sınav İşlemleri
– Sınav Oluşturma
– Not Girişi
– Excel‟den Not Yükleme
28.11.2014
inet-tr'14 : GWT AUFaculty Project
12
Geliştirilen GWT Uygulaması
28.11.2014
inet-tr'14 : GWT AUFaculty Project
13
Sonuç
•
Java geliştiricileri için düşük ölçüde öğrenme çabası
•
Geliştiriciler için farklı alanların yetenekleri
•
Geniş bir takımla çalışabilme imkânı
•
Web projelerinde nesne yönelimli programlama
•
Hem HTML ve CSS hem de GWT Widget‟larını kullanabilme imkânı
•
GWT ile Zengin Arayüz Uygulamaları Geliştirebilme
•
Hız ve işlevsellik
•
Mobil Uyumluluk (Responsive)
•
Sürdürülebilirlik ve yönetilebilirlik
28.11.2014
inet-tr'14 : GWT AUFaculty Project
14
Referans
•
“Java
[1]
Web
Application
Frameworks”,
http://www.syger.it/Topics/JavaWebApplicationFrameworks.html
•
[2] “UIBinder”, http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html
•
[3] “GWT-Bootstrap”, http://gwtbootstrap.github.io/
•
[4] “SQL Mapping Framework for JAVA”, https://code.google.com/p/mybatis/
•
[5]
“Event
Bus:
GWT
Tutorial
(Google
Web
Toolkit)”,
http://www.youtube.com/watch?v=2939gdrNymg
28.11.2014
inet-tr'14 : GWT AUFaculty Project
15
Download