Oracle ADF Essential paketi ile Web Uygulama Geliştirme

By in Blog on 16/12/2014

ADF platformunda lisans ücretine takılmadan web uygulaması geliştirebilmek için Essentials paketi mevcut. Bu paketi kullanarak Eclipse yada Jdeveloper IDE si ile proje geliştirilebilmektedir. ADF ten en önemli farkı bu pakette Oracle ADF ‘in native security feature i yok. Geliştirdiğiniz uygulamayı Tomcat web server yada Glassfish application server gibi bedava sunucularda host edebilirsiniz. Ben de bu imkanları kullanarak örnek temel bir adf projesi geliştirdim.
Uygulamanın veritabanı bağımsız olabilmesi için, Hibernate ORM ile birlikte EJB teknolojilerini kullandım.
Geliştirme kaynağı JDev 11.1.2.4 versiyonu ve JDK 1.6.0_39 ile oluşturulmuştur. Hosting için belli bir (gear olarak ifade ediliyor) kaynak gereksinimine kadar 1yıl bedava kullanıma imkan veren bulut teknolojisi üzerine konumlandırılmış AWS(Amazon Web Services) platformunu kullandım. MYSQL veritabanı kullanarak Glassfish üzerine deployment gerçekleştirdim. ADF Business model yerine code first e imkan sağlayan Java EE teknolojileri kullandığım için Java Developer ların hızlıca uyum sağlayabileceği bir proje ortamı oluşmuştur. Projede ADF mimarisi view tarafında (ADFFaces ve taskflow lar) kullanılmıştır.
Proje, Restoran Otomasyonu düşünülerek basic bir hale getirilmiştir. Ayrıca mobilde çalışması beklenen end-user sayfalarının ADF Mobile Browser ile geliştirilebilir yapıdadır.

Projede öne çıkanlar:

Çok katmanlı mimari kullanılmıştır. Persistence katmanında DAO Layer ları kullanan stateles sessionbean ler üzerine MBean class lar üzerinde business logic bulunmaktadır.
Java Reflection kullanılarak Filter class ların kullanımı standart hale getirilerek veritabanı sorgularının bulunduğu geliştirmelerin rahat okunabilmesi sağlanmıştır.
Ön yüz geliştirmesinde Template sayfa kullanımı sağlanmıştır.
Exception Handling mekanizması, Exception class ların yakalanıp uygun mesajlar ile patlatılması için bir çatı kurulmuştur.
Supplier yapısı ile çok kullanılan combobox lar ın selectItem listeleri için cache mekanizmasi kullanilmistir.
ADFUtils ve JSFUtils gibi birçok utility class hazır hale getirilmiştir.
AOP ye uygun olarak implemente edilmiş PerformanceMonitor ve ProfileInterceptor class ları yazılmıştır.
Restoran otomasyonu business requirementlar baz alınarak entity model yapısı basic olarak hazır hale getirilmiştir.
Java EE annotation lar kullanıldığı ve method isimlendirmelerinde kısaltma kullanılmayarak özen gösterildiği için kod okunabilirliği yüksektir.
Çoklu dil desteği ResourceBundle class lari ile sağlanabilmektedir.

Geliştirilmesi gereken yönleri

JAAS kullanılarak authentication ve authorization tarafı handle edilmeli. Örnek çözüm imlementasyonu için tıklayınız. 
En önemli konu ön yüz geliştirmesinin performanslı çalışması ve kullanılan kütüphanelerinin konsolidaysonu ile ear paketinin boyutunun küçültülmesi diyebilirim.

Developer Help için lütfen tıklayınız.

(Visited 151 times, 1 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *