Java EE 5 Teknolojileri Jboss Seam
Hakan Uygun
İçerik
Kurumsal Uygulama Nedir?
Java Teknolojileri Web Uygulaması Java EE Bileşenleri JBoss Seam
Yazılım İhtiyaçları
Bireysel Kullanıcı
Eğitim Eğlence İletişim
Farklı İhtiyaçlar Farklı ölçekler
Kurumsal Kullanıcı
İş Çözümleri Güvenlik
Veri İşleme
Kurumsal Uygulama
Kullanıcı sayısı Süreklilik
Ağ
Güvenlik
Veri yoğunluğu
Tekrar kullanılabilirlik
Kurumsal Uygulama
Uzaktan Erişim
Yük dengeleme / Kümeleme Otomatik hata giderme
Veri bütünlüğü Sistem yönetimi Güvenlik
Entegrasyon sistemi
Java Teknolojileri
Ağ Çözümleri
Donanım ve Platform Bağımsız
Bir kez yaz her yerde çalışsın
Açık Mühendislik ve Standartlar
JCP, JSR
Özgür Yazılım
Java EE
Katmanlı Uygulama Mimarisi
Sunum Katmanı
Uygulama Katmanı Kalıcılık Katmanı
Haberleşme Katmanı
Bileşen Tabanlı Uygulama Ağ Uygulamaları
MVC – Model View Control
DRY – Don't Repeat Yourself
%80-%20 oranı
Java EE
Web Suncu
Uygulama Sunucu
-
İş Kuralları Masaüstü
Uygulama (Java)
Masaüstü Uygulama
Tarayıcı
Sunum Katmanı Kalıcılık Katmanı
Sunum Katmanı
Masaüstü
AWT / JFC ( Swing ) / SWT
Web Teknolojileri
Applet Servlet JSP
JSP - Servlet
Nesne yönelim API Bileşen tabanlı
uygulama
Tanımlama tabanlı Sorumluluk zinciri Etiket tanımlama ( TagLib )
JSP
Servlet.java
Servlet
Web Uygulama Çatıları
Strust
WebWorks Wicket
Tapestry
Spring MVC JSF
JSF
Bileşen Tabanlı
Görsel Yorumlayıcılar Değişebilir Uygulama Akış Yönetimi
MVC ( Model-View-Control ) yalıtımı İyi tanımlanmış yaşam döngüsü
İyi tanımlanmış makro dili ( EL )
JSF - Facelet
Tek bir servlet ( Facelet-servlet ) xhtml tabanlı - şablon sistemi
Gerçek kod yalıtımı
JSF Görsel Bileşenleri
Standart JSF bileşenleri ( RI ve MyFaces ) Trinidad
Woodstock Richfaces IceFaces ...
Kalıcılık Katmanı
Kalıcılık Araçları
Veri Tabanları Dosyalar
Ağ Bileşenleri
Kalıcılık Katmanına Erişim
JDBC
JPA
ORM : Nesne – Veri Tabanı Eşleme CRUD işlemleri
JPA – Gerçeklemeleri
Hibernete Toplink
OpenJPA
JPA
@Entity
@Table(“accounts”)
public class Account extends AuditBase implements Serializable { @Id
@GeneratedValue(strategy = GenerationType.AUTO) private Long id;
@Column( name="CODE", length=20, nullable=false, unique=true ) private String code;
@Column( name="NAME", length=50 ) private String name;
EJB
Session Bean
Stateless - Durumsuz Statefull - Durumlu
Message Bean Entity Bean
EJB
İş kurallarını merkezileştirir Ağ dağıtık bileşenler
Transaction Güvenlik
Süreklilik
EJB3
XML tanımları yok
@Stateless
@Statefull
@Local
@Remote
POJO tabanlı
Uygulama sunucuları arasında taşınabilirlik artışı
Mevcut Gerçeklemeler
Özgür Yazılım
Glasfish Jboss AS Geronimo
Ticari Yazılımlar
WAS
Java EE 5 - Sonuç
Avantajlar
Standartlar ile çalışmak
Kurumsal uygulama geliştirme olanakları Geniş kullanıcı desteği
Geniş kurum desteği
Dezavantajlar
Öğrenim zorluğu Seçim zorluğu
Seam Nedir ?
Yeni bir tane daha uygulama çerçevesi mi?
Gavin King / Jboss / RedHat LGPL
Java EE 5
Java EE 5 Teknolojileri
Annotation / Bijection JSF
EJB3 / JPA Facelet
Ajax
TestNG
Seam Uygulaması
JSP
Facelet JSF
EJB
Seam
Seam Bileşenleri
@Name
EJB3 Entity Bean EJB3 Session Bean EJB Message Bean POJO
Spring Bean
Seam Süreçleri
@Scope Event
Page
Conversation Session
Application
Seam Navigasyonu
Standart JSF yöntemleri Page.xml
View.page.xml JBPL
Seam Event Mekanizması
Kullanıcı Hak Yönetimi
Basit
Denetleyici tanımı Login Formu
Gelişmiş
JAAS Drools
Genel Kullanım
Login Formu
Login Forma Yönlendirme
Exception
Login Requried
@Restrict s:hasRole
s:hasPermission
Varsayılan Bileşenler
Log
Session
EntityManager Debug
Locale, TimeZone, Theme v.b.
Ajax
Ajax ve Javascript desteği ( Seam Remoting )
Ajax4Jsf
RichFaces IceFaces Trinitad
Woodstock
Seam-gen ve IDE Desteği
seam-gen ve seam framework
seam new-project seam new-action ...
Eclipse
NetBeans
Java EE İçin araçlar
JBoss AS Hibernate NetBeans Ant
TestNG Hudson Sun JDK
Örnek Kod
www.tekir.com.tr
JBoss Seam Örnekleri SourceForge Projeleri Google Code Search