Java EE 5 Teknolojileri Jboss Seam Hakan Uygun [email protected] Uygun Teknoloji İçerik Kurumsal Uygulama Nedir? Java Teknolojileri Web Uygulaması Java EE Bileşenleri JBoss Seam [email protected] Uygun Teknoloji Yazılım İhtiyaçları Bireysel Kullanıcı Kurumsal Kullanıcı Eğitim İş Çözümleri Eğlence Güvenlik İletişim Veri İşleme Farklı İhtiyaçlar Farklı ölçekler [email protected] Uygun Teknoloji Kurumsal Uygulama Kullanıcı sayısı Süreklilik Ağ Güvenlik Veri yoğunluğu Tekrar kullanılabilirlik Entegrasyon olanakları / Birlikte çalışabilirlik [email protected] Uygun Teknoloji Kurumsal Uygulama Uzaktan Erişim Yük dengeleme / Kümeleme Otomatik hata giderme Veri bütünlüğü Sistem yönetimi Güvenlik Entegrasyon sistemi [email protected] Uygun Teknoloji 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 Apache, java.net Seçim Özgürlüğü [email protected] Uygun Teknoloji Java EE Katmanlı Uygulama Mimarisi Sunum Katmanı Uygulama Katmanı Kalıcılık Katmanı Haberleşme Katmanı Bileşen Tabanlı Uygulama Ağ Uygulamaları [email protected] Uygun Teknoloji MVC – Model View Control DRY – Don't Repeat Yourself %80-%20 oranı [email protected] Uygun Teknoloji Java EE Sunum Katmanı Kalıcılık Katmanı Tarayıcı Masaüstü Uygulama (Java) Web Suncu Uygulama Sunucu İş Kuralları Masaüstü Uygulama [email protected] Uygun Teknoloji Sunum Katmanı Masaüstü AWT / JFC ( Swing ) / SWT Web Teknolojileri Applet Servlet JSP [email protected] Uygun Teknoloji JSP - Servlet Nesne yönelim API JSP Bileşen tabanlı uygulama Servlet.java Tanımlama tabanlı Sorumluluk zinciri Servlet [email protected] Etiket tanımlama ( TagLib ) Uygun Teknoloji Web Uygulama Çatıları Strust WebWorks Wicket Tapestry Spring MVC JSF [email protected] Uygun Teknoloji 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 ) [email protected] Uygun Teknoloji JSF - Facelet Tek bir servlet ( Facelet-servlet ) xhtml tabanlı - şablon sistemi Gerçek kod yalıtımı [email protected] Uygun Teknoloji JSF Görsel Bileşenleri Standart JSF bileşenleri ( RI ve MyFaces ) Trinidad Woodstock Richfaces IceFaces ... [email protected] Uygun Teknoloji 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 Nesne Yönelimli Programlama [email protected] Uygun Teknoloji JPA ORM : Nesne – Veri Tabanı Eşleme CRUD işlemleri JPA – Gerçeklemeleri Hibernete Toplink OpenJPA [email protected] Uygun Teknoloji 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; @Column( name="INFO" ) private String info; [email protected] Uygun Teknoloji EJB Session Bean Stateless - Durumsuz Statefull - Durumlu Message Bean Entity Bean [email protected] Uygun Teknoloji EJB İş kurallarını merkezileştirir Ağ dağıtık bileşenler Transaction Güvenlik Süreklilik [email protected] Uygun Teknoloji EJB3 XML tanımları yok @Stateless @Statefull @Local @Remote POJO tabanlı Uygulama sunucuları arasında taşınabilirlik artışı [email protected] Uygun Teknoloji Mevcut Gerçeklemeler Özgür Yazılım Glasfish Jboss AS Geronimo Ticari Yazılımlar WAS WebLogic OC4J [email protected] Uygun Teknoloji 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 [email protected] Uygun Teknoloji Seam Nedir ? Yeni bir tane daha uygulama çerçevesi mi? Gavin King / Jboss / RedHat LGPL Java EE 5 [email protected] Uygun Teknoloji Java EE 5 Teknolojileri Annotation / Bijection JSF EJB3 / JPA Facelet Ajax TestNG [email protected] Uygun Teknoloji Seam Uygulaması JSP EJB Facelet Portal [email protected] JSF Seam ORM Uygun Teknoloji Seam Bileşenleri @Name EJB3 Entity Bean EJB3 Session Bean EJB Message Bean POJO Spring Bean [email protected] Uygun Teknoloji Seam Süreçleri @Scope Event Page Conversation Session Application [email protected] Uygun Teknoloji Seam Navigasyonu Standart JSF yöntemleri Page.xml View.page.xml JBPL Seam Event Mekanizması [email protected] Uygun Teknoloji Kullanıcı Hak Yönetimi Basit Denetleyici tanımı Login Formu Gelişmiş JAAS Drools SSL Captcha [email protected] Uygun Teknoloji Genel Kullanım Login Formu Login Forma Yönlendirme Exception Login Requried @Restrict s:hasRole s:hasPermission [email protected] Uygun Teknoloji Varsayılan Bileşenler Log Session EntityManager Debug Locale, TimeZone, Theme v.b. [email protected] Uygun Teknoloji Ajax Ajax ve Javascript desteği ( Seam Remoting ) Ajax4Jsf RichFaces IceFaces Trinitad Woodstock [email protected] Uygun Teknoloji Seam-gen ve IDE Desteği seam-gen ve seam framework seam new-project seam new-action ... Eclipse NetBeans Exadel / JBoss Developer Studio [email protected] Uygun Teknoloji Java EE İçin araçlar JBoss AS Hibernate NetBeans Ant TestNG Hudson Sun JDK JBoss Seam [email protected] Uygun Teknoloji Örnek Kod www.tekir.com.tr JBoss Seam Örnekleri SourceForge Projeleri Google Code Search [email protected] Uygun Teknoloji Teşekkürler [email protected] Uygun Teknoloji