MyFaces Özgür JSF Uyarlaması. Bora Güngören Portakal Teknoloji bora@portakalteknoloji.com



Benzer belgeler
Üst Düzey Programlama

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Client Server Database

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

Üst Düzey Programlama

ÖZGÜR YAZILIMLAR İLE J2EE

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Java EE 5 Teknolojileri Jboss Seam

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

Veri Tabanı Yönetim Sistemleri Bölüm - 02

Üst Düzey Programlama

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Spring Giriş Eğitimi

Mobil Cihazlardan Web Servis Sunumu

.com. Özcan Acar 2009 Kurumsal Java.com

PHP 1. Hafta 1. Sunum

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Microsoft Office Access Ders İçeriği 25 Saat. Access Temel 10 saat

Java. Hakkımızda. Java Eğitimi

Öğr. Gör. Serkan AKSU 1

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

Veritabanı Uygulamaları Tasarımı

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Nagios XI Günümüzün talep gören kurumsal gereksinimleri için en güçlü BT altyapısı gözetim ve uyarı çözümüdür.

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Q-Biz İş Zekası Versiyon Yenilikleri Ekim 2014

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

Woom Woom dünyasına hoşgeldiniz.

NovaFortis Yazılım Danışmanlık. E-dönüşüm adaptörü

Kurulum ve Başlangıç Kılavuzu. DataPage için

HSE RADAR. İş Sağlığı ve Güvenliği Yönetimi Uygulama, Denetim, Eğitim ve Takip HSE GLOBAL YAZILIM A.Ş. 11 Mart 2016

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Kurulum ve Başlangıç Kılavuzu. DataPage için

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

21.YY Üniversitelerinde Ders Yönetim Sistemleri ve. Üniversitemizdeki Uygulamaları: ESOGÜ Enformatik Ders Yönetim Sistemi Kullanımı

Asp.Net Veritabanı İşlemleri

1 MİCROSOFT FRONTPAGE 2003 E GİRİŞ

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

Üst Düzey Programlama

1 MİCROSOFT FRONTPAGE 2003 E GİRİŞ

SDD Dökümantasyonu Versࠀyon 1.0. Movࠀe Predࠀctࠀon Orhan Özgün Ergen Ahmet Saday Berkay Erken

Web Tabanlı J2EE Uygulamalarında Struts Framework & Hibernate Desteği

Yükleme kılavuzu Fiery Extended Applications 4.2 ile Command WorkStation 5.6

1.Mailbox Server Role:

WINDOWS SERVER 2008 R2-SERVER 2012 DE IP SANALLAŞTIRMA

Akademik Özgeçmiş Tabanlı Fakülte Bilgi Sistemi

Neden Linux ve Java Birlikte İyi Gidiyor? Bora Güngören Portakal Teknoloji Akademik Bilişim 07, Kütahya


EDM SAP Business One

Cluster i Linux'ta Kümeleme Özgür Yazılım ve Açık Kaynak G 2006 Ali Erdinç Köroğlu

EDI MIGROS (Sipariş) LOGO ENTEGRASYONU

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Linux Kurulumu (Sürüm 1.52) İçindekiler

Rugila Classification

.com. Kurumsal Java. Özcan Acar com

IOT NEDİR? Bölüm 1. Internet of Things ekosistemi altında donanım, programlama, veri tabanı, veri analizi gibi alt yapılar yer almaktadır.

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

ORSOFT 5.22 AMERİKAN KÜLTÜR DERNEĞİ DİL OKULLARI YÖNETİM BİLGİ SİSTEMİ KURULUMU

LKD Kendi İlacını Kullanıyor

BIR ERP E-FATURA MODÜLÜ [BIR YAZILIM LTD ]

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

BSOFTefat E-FATURA ÇÖZÜMÜ

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

WorldWide Telescope Kullanım Kılavuzu

1.1. Referans Kodu: TBTK.KAMU-SM / AR-GE Personeli: Kamu Sertifikasyon Merkezinde yürütülen projelerde;

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Selçuk Akyıldız. Kişisel Bilgiler. Eğitim Bilgileri 1 / 5. Adres Bilgileri

Web Uygulama Güvenliği Kontrol Listesi 2010

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

TÜBİTAK ULAKBİM ELEKTRONİK İMZA ENTEGRASYONU HİZMET ALIMI TEKNİK ŞARTNAMESİ

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

OMOPHORUS Kalite Yönetim Sistemi Yazılımı ULUDAĞ ÜNİVERSİTESİ TEKNOLOJİ GELİŞTİRME BÖLGESİ ULUTEK AR-GE PROJESİ

JSF Melih Sakarya. Java Server Faces Facelet

e-fatura Başvuru Açıklamalar

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Internet ve Bilgi Teknolojileri (BİL 309) Dersi

One ASP.NET. 5 bileşen barındırmaktadır. Web Forms Model View Controller (MVC) Web Pages Web API SignalR

Basit bir web uygulaması

Plaka Tanıma. Plaka. Tanıma Sistemi. Sistemi

MİLLİ EĞİTİM BAKANLIĞI YENİ EPOSTA SİSTEMİ HAKKINDA MEB

VERİ TABANI UYGULAMALARI

2016/1 PERSONEL ALIMINDA AVUKAT, MÜHENDİS, MİMAR, TEKNİKER, GİŞE VE BÜRO GÖREVLİSİ, DAĞITICI POZİSYONLARI İÇİN SÖZLÜ SINAV KONU BAŞLIKLARI

MaestroPanel Kurulum

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

Kültür Varlıklarının Web Otomasyonu

Java Dersi. Altuğ Bilgin Altıntaş

Kullanıcı Merkezli kütüphane Web Siteleri: İYTE Örneği. Gültekin Gürdal Hakan Yanaz Engin Şentürk

Programlama Yazılımı ile Web Sitesi Oluşturma

1.1 Web Kavramlar URL terimini tanımlayınız ve anlayınız.

Transkript:

MyFaces Özgür JSF Uyarlaması Bora Güngören Portakal Teknoloji bora@portakalteknoloji.com

Sunum Bilgisi ve Lisans Bu sunum 22 Mayıs 2005 günü Linux Kullanıcıları Derneği adına verilmiştir. Sunum içeriği GPL ile lisanslıdır. Lisans detaylarını öğrenmek yada sunumu elde etmek için LKD'ye başvurabilir yada bora@portakalteknoloji.com adresine eposta yollayabilirsiniz.

Sunum İçeriği Web Uygulaması Kavramı Model Görünüm Denetleyici Java Server Faces (JSF) Mimarisi Sun Referans Uyarlaması MyFaces Özgür Uyarlaması

Web Uygulaması Kavramı Temel olarak bakarsak HTTP üzerinden çalışan bütün uygulamalar bir Web Uygulaması olarak adlandırılabilir. Sun Microsystems, J2EE kapsamında bir web uygulamasını herhangi bir J2EE uygulamasına HTTP tabanlı bir önyüz sağlayan uygulama olarak tanımlamaktadır. Java ile yazılan yada Java sistemlerine önyüz oluşturan uygulamalara da kısaca Java web uygulaması diyebiliriz.

Web Uygulaması Kavramı Web uygulamaları HTTP üzerinden çalışmak durumunda olduklarından çeşitli HTTP kavramları ile karşılaşmak kaçınılmazdır. İstemci ve sunucu kavramları uygulamanın nasıl çalışacağına kadar her yerde kullanılacaktır. İstemci tarafında işlevsellik (JavaScript, Applet, vs.) sunulması veya veri saklanması ile aynı işlerin sunucu tarafında yapılması çok farklıdır. HTTP nedeni ile istek/yanıt çevrimlerine mahkum oluruz. Kullanıcının çoğu girdisi, zorunlu olarak bir istek/yanıt çevrimine yol açar. Bu yazılımın tasarımını zorlaştırır.

Web Uygulaması Kavramı Web uygulamaları HTTP üzerinden çalışmak durumunda olduklarından çeşitli HTTP kavramları ile karşılaşmak kaçınılmazdır. HTTP bir uygulama sözleşmesi olarak durumsuz (stateless) bir sözleşmedir. Bunun sonuçları çok önemlidir. Bir noktaya (sayfa) nereden geldiğimizin sözleşme için bir farkı yoktur. Yola bağımlı davranışı planlamak için ileri düzeyde oturum yönetimi tasarımları gerekir. Bir görünümü (sayfayı) yenilediğimiz zaman bir çok işlem yeniden yapılır.

Web Uygulaması Kavramı Bu sorunlar elbette çözülebilir ancak web uygulamalarının boyutu büyüdüğünde bu sorunların çözümü için harcanan çaba, esas uygulama için harcananın üzerine çıkar. Bir çok görev kritik uygulamanın web uygulaması haline dönüşmesindeki gecikme biraz da bu nedenledir. Finans uygulamaları ERP uygulamaları Askeri uygulamalar

Model Görünüm Denetleyici Model Görünüm Denetleyici (Model- View-Controller / MVC) tasarım biçimi görsel bileşen tabanlı uygulamalar için tasarlanmıştır.

Model Görünüm Denetleyici Bu biçim 1970'lerde Smalltalk dili içinde zorunlu hale getirilmiş ve 1980'lerden bu yana neredeyse tüm C++ ve ardından tüm Java grafik kullanıcı arabirimi kitaplıklarında yerini bulmuştur. Visual C++ ve MFC'deki CDocument (Model) CView (View) ve CApplication (Controller) sınıfları Java Swing'deki bileşenler ve olay işleme mekanizması

Model Görünüm Denetleyici Web uygulamalarında MGD uygulamak masa üstü uygulamalara göre farklı yaklaşımlar ister. Bir Java web uygulaması düşünelim. Görünüm olarak (CSS yada XSLT ile biçimlendirilen) bir JSP sayfası. Denetleyici olarak bir Servlet sınıfı. Model olarak Servlet sınıfının eriştiği Java nesneleri.

Model Görünüm Denetleyici MGD uygulaması hatalı yapılırsa sadece uygulama mantığında kırılganlık değil güvenlik açıkları da ortaya çıkar. Bu nedenle uygulama çatıları kullanarak geliştirme yapmak son derece yaygın ve mantıklı bir çalışmadır. Web uygulamalarında MGD yapısı için yazılan uygulama çatıları her üç rolü de üstlenen sınıflar için üst sınıflar tanımlar. Bunun dışında tipik bazı uygulama teknikleri için ek sınıflar bulunur.

Model Görünüm Denetleyici Java/J2EE için popüler Struts çatısı ve.net için WebForm yapılarına bakacak olursak, bunlarla yazılan uygulamalar bahsedilen yapıda çalışmaktadır. Ancak bu sistemler hala HTTP' nin belirgin sınırlamalarına göre yazılırlar. Bu nedenle görsel bileşenlere dayanan masa üstü uygulamalarının benzeri biçimde geliştirilemezler. Bu çatıların MGD değil de Model 2 Web Uygulaması olarak adlandırılması daha doğru olur.

Java Server Faces Java Server Faces, yeni nesil bir önyüz teknolojisidir. Aşağıdaki prensipleri uygulamak üzerine kuruludur. Masa üstü uygulamalardaki MGD sistemini ve bileşen modellerini kullanarak geliştirme yapmak. Bu bileşenlerin kurduğu yapıların görünümlerininin seçilen bir önyüz teknolojisine eşlenmesi için gerekli dönüşümün otomatik yapılabilir. Uygulamanın işlemesi için gerekli ek yapı da dönüştürülür. Böylece masaüstü uygulaması gibi çalışan web uygulaması geliştirmiş oluruz.

Java Server Faces Bir JSF uygulaması temel olarak fazla bir değişiklik gerektirmeden farklı önyüz teknolojilerine yönelik olarak yeniden yapılandırılabilir. JSP üzerinden HTML WAP XUL

Java Server Faces JSF uygulamalarında MGD sistematiği, daha önceki teknolojilerde bulunmayan oldukça gelişmiş bir yapı ile sağlanır. ActionForm'lar yada WebForm'lardan farkın ana nedeni JSF uygulamalarında bileşenler için önyüz teknolojisinden bağımsız nesnelerden oluşan ayrı bir görünüm yapısının bulunmasıdır. Görsel bileşenlerin durumları sunucu tarafında saklanır. Bu da HTTP'nin durumsuz olmasından kaynaklanan sorunları ortadan kaldırır. Bu ayrım sayesinde JSF uygulamalarında doğrulama daha gelişmiş biçimde yapılabilir ve daha çok özelliği olan ileri görsel bileşenler tasarlanabilir.

Java Server Faces Bir JSF uygulamasının yaşam çevrimi istek/yanıt çevrimi yerine bir görünüm üzerinde yapılan eylemlere dayanan olayların işlenmesine dayanır. Bu model tamamen masa üstü uygulamalardaki model ile aynıdır. Olay türleri, çeşitli olay işleyiciler, hata durumlarının işlenmesi ile bir JSF uygulaması (sunucu tarafına ulaşınca) pek de bir web uygulaması gibi davranmaz.

Java Server Faces Bir JSF uygulaması yönetilmiş ortamda çalışır. Modeldeki veri içeren bileşenler görünümdeki görsel bileşenlerin davranışını etkileyen durumu saklar. Bu nedenle bu bileşenlerin yönetilmesi uygulama geliştiren kişiye büyük kolaylık sağlar Dört değişik kapsam vardır. İstek /Oturum / Uygulama / Adsız. Nesneler bir soyut fabrika tarafından yaratılır ve ayar dosyaları aracılığı ile belirtilen ayarlara sahip olurlar. Bu fabrika XML dosyalarından aldığı parametreleri kullanır.

Java Server Faces Bir JSF uygulamasının JSP önyüzü ile çalışması durumunda HTTP istek/yanıt ikilileri oluşmak zorundadır. Bu durumda JSF'in JSP önyüz sınıfları devreye girecektir. Bunların çalışması Struts'ın çalışmasına çok benzer. Bir Ön Denetleyici (Front Controller) görevine sahip olan FacesServlet sınıfı İstekleri değerlendirir. Gerekli olayları oluşturur ve olay işleyicilere yönlendirir. Uygulama akışını seçilen bir görünümün bileşen ağacına yönlendirir.

Java Server Faces Front Controller Görevlendirir Yaratır Application Controller Yaratır Yaratır Context Object View Helper Command Görevlendirir Görevlendirir Business Delegate Görevlendirir

Java Server Faces JSF görsel bileşenleri Bileşke (Composite) tasarım biçiminin bir örneği olan bir bileşen ağacı içinde yer alırlar. Ağacın kökünde UIViewRoot adını verdiğimiz bir sınıfın nesnesi bulunur. JSF uygulaması aslında bir yada birden fazla görünüm (bileşen ağacı) ve bu görünümler üzerinde tanımlanan olayların işlenmesi için gereken mekanizmadan oluşmaktadır. Her bir görsel bileşenin seçilen önyüz teknolojisi (örneğin JSP) için bir sunum dengi bulunur.

Java Server Faces Bir görsel bileşen ağacı üzerinde oluşan olayların çoğunluğu kullanıcı etkileşiminden kaynaklanır. Bu olaylar ilgili olay işleyicilere gönderilip işlendikçe gösterilecek olan görünümde değişiklikler olabilir. Bazı olaylar işlenirken oluşan hatalar yada doğrulamaların sonucu nedeni ile görsel bileşenler üzerinde değer değişiklikleri yapılmayabilir.

Java Server Faces FacesServlet Görünümün Yüklenmesi İstek Değerlerinin Uygulanması Doğrulama Modelin Güncellenmesi Yanıtın Oluşması Uygulamanın Çalışması

Java Server Faces Şu anda JSF uygulaması örnekleri daha çok JSP önyüz teknolojisi üzerine kuruludur. Ancak bunun ileride çok çeşitli yapılara yönelmesi kaçınılmazdır. JSF kullanarak geliştirilebilecek olan önyüzün bir beceri üst sınırı yoktur. JSP önyüzü üzerine kurulu JSF uygulamaları Struts, Spring, Tiles, vb bir çok başka çatı ile entegre edilebilir.

Sun Referans Uyarlaması 2001 yılından bu yana geliştirilen JSF mimarisi 2004 yılı içinde 1.1 sürümüne ulaşn ve 2005 içinde çıkacak 1.2 sürümü ile tam olgunluğa ulaşacak bir referans uyarlamaya sahiptir. Eksiksiz JSP desteği Eksiksiz WAP desteği Kısmi XUL desteği

MyFaces Uyarlaması Özgür bir JSF uyarlaması olarak planlanan ve 2004 sonunda bir Apache projesi haline gelen MyFaces şu anda 1.0.9RC1 (16 Mart 2005) sürümündedir. Eksiksiz JSP desteği Eksiksiz WAP desteği Çok çeşitli ek bileşenler http://myfaces.apache.org/

MyFaces Uyarlaması MyFaces ek bileşenleri Menü Ağaç Görünümü Kaydırma çubuğu Sıralama Başlığı Takvim Dosya Yükleme MyFaces ek doğrulama sınıfları Eposta Kredi kartı Düzgün deyim

MyFaces Uyarlaması Herhangi bir uyarlama ile geliştirilen bir uygulamayı yeniden derlemenize gerek olmadan MyFaces'a çevirebilirsiniz. Uygulamanın /lib dizinlerinde yer alan JAR dosyaları yerine MyFaces'in JAR dosyalarını koyun. Eğer eldeki uyarlama ile gelen ve asgari JSF beklentileri dışında gelen bir bileşen kullanıyorsanız o zaman o bileşenlerin JAR dosyası ayrı bir dosya olmalıdır. Bu dosyayı silmeyin.

Teşekkürler