25
JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ Tahsin Barış AKAN Bitirme Projesi 05.06.2006

JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Embed Size (px)

Citation preview

Page 1: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

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

Hakan ALBAĞTahsin Barış AKAN

Bitirme Projesi

05.06.2006

Page 2: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Giriş

Ticari yazılımlarda ortak ihtiyaçlarBirden fazla kullanıcıYoğun veritabanı işlemleriGenişletilebilirlikKullanıcı dostu

Geliştirme süreçleri ve maliyetler

Page 3: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Amaç

Ortak ihtiyaçlara sahip yazılım sistemlerinin geliştirilmesine hizmet edecek bir altyapı

Geliştirme sürecini hızlandırmakBirden fazla kullanıcı tarafından uzaktan erişimVeritabanı erişimleriKullanıcı / grup / yetki yönetimiStandard arayüzlerDinamik modüler yapı

Page 4: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

e-cza

Ecza deposu stok otomasyon yazılımı

Stok takibiİlaç – Firma tanımlama / alım / satım işlemleriGeçmiş satışlara yönelik stok analizi

Page 5: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Java RMI

Dağınık uygulamalarda uzaktaki nesnelerle yerel ortamdaki esneklikte çalışmayı sağlar.Dağınık bir uygulamanın gerçekleştirdikleri:

Uzak nesneleri belirlemekUzak nesnelerle iletişim kurmakNesnelerin derlenmiş kodunun (bytecode) yüklenmesi

Page 6: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Java RMI (2)

RMI basit bir kavram üzerinde yükselir:''Davranışın tanımı ve davranışın geliştirilmesi ayrı kavramlardır.''

Page 7: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Java RMI (3)

RMI Katmanları

Kütük ve iskelet :İstemci çağrılarını keserek RMI servisine yönlendirir.

Uzak referans katmanı:Uzak nesneler yapılan referans istemlerini yönlendirir.

Ulaşım Katmanı:Temel bağlantı özelliklerini sunar.

Page 8: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Hibernate

Java için ORM / Object-Relational Mapping kitaplığı

Veritabanı işlemlerini nesneye dayalı yürütmekTemel işlemler için programcı yükünü azaltmakCep bellek mekanizması

Page 9: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Hibernate (2)

Varlık nesneleri (POJO)XML eşleme dosyaları (.hbm.xml)

Java tipi – SQL tipiJava sınıfı – SQL tablosu1-1,1-n ,m-n ilişkiler

KonfigurasyonSQL diyalekti

JDBC ( mySQL,MS SQL Server,Oracle,vs.)

Page 10: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Sistem - Genel yapı

Page 11: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

İstemci & Sunucu

İstemciArayüzYerel veri işlemeRMI çağrıları

SunucuUzak nesnelerin yönetimiTüm veritabanı işlemleri

Page 12: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Varlık nesneleri

POJO ( Plain old java objects)İlac,Firma,Kampanya gibi temel nesnelerİstemci de Sunucu da ihtiyaç duyar

Veri modelinden nesne modeline geçişEclipse Hibernate Tools

Page 13: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

GenericDAO

DAO – Data Access ObjectŞablon sınıfTüm varlık nesneleri için veri erişimi Standard veritabanı işlemleriSQL

T getByID(Integer ID)List<T> findAll()List<T> findByCriteria(Criterion ... criteria) List findByQuery(String sql)

Page 14: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

GenericDAO (2)

İstemciden veritabanı erişimiDoğrudan veritabanı bağlantısıSorunlar

Hibernate cep bellekDüşük performansMimari

Çözüm : RemoteGenericDAO

Page 15: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

RemoteGenericDAO

Veri tabanı erişiminin tek yerden yapılması

GenericDAO RMI istemcisiRemoteGenericDAO Veritabanı erişimi

Hibernate cep bellek kullanımdaŞablon sınıf ama nesneler açılışta yaratılmalı

Page 16: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Kullanıcı Arayüzü

Java SwingArayüz KalıtımıDinamik menu elemanları

GenişlitilebilirlikErişim denetimi

Page 17: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Arayüz kalıtımı

Ortak görünüm ve işlemlerTablo yapısıEkleme / Silme / Güncelleme

AbstractGridFrame sınıfıTüm tablo yapılı ekranlar için soyutlama sınıfı

Page 18: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ
Page 19: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Dinamik menu ve erişim

Menu elemanları veritabanındaMenu grupları (Modüller)

Menu elemanlar ve çalıştıracakları java sınıfları

1. Yeni modüller eklenebilir2. Kullanıcı erişim kontrolü

Page 20: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Kullanıcı yönetimi

Çekirdek modüle dahil / Sistem menüsü

Kullanıcı ve Grup tanımıHer kullanıcı bir gruba dahil olmak zorundaErişim denetimi gruplar üzerinden yapılır

Page 21: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Stok Modülü

Bir ezca deposu stok yapısına göreİlaç , firma , kampanyaStok hareketleri

Alış hareketleriSatış Hareketleri

Satın alma analizBelirli tarih aralığında tükenmesi beklenen ilaçlar

● Genel● Dönemsel

Page 22: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Stok Analiz

Geçmiş satışlar üzerinden analiz hesaplamaROP(adet) = (Birim zamandaki talep) * (temin süresi)

Page 23: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Stok Analiz (2)

Analiz için gerçeklenen adımlarNormal dağılıma göre veri üretmeİleriye yönelik test verisiDönemsel veri üretme

Page 24: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Sonuçlar & Yorumlar

Hibernate kullanımıUygun şartlar & doğru kullanım

Web Servis RMIPerformansGeliştirme kolaylığıBirlikte işlerlik (interoperability)

Page 25: JAVA RMI ve Hibernate teknolojileri kullanılarak çok ... · JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ

Teşekkürler

Demo ve sorular