Upload
phamquynh
View
230
Download
0
Embed Size (px)
Citation preview
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
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
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ı
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
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
Java RMI (2)
RMI basit bir kavram üzerinde yükselir:''Davranışın tanımı ve davranışın geliştirilmesi ayrı kavramlardır.''
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.
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ı
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.)
Sistem - Genel yapı
İstemci & Sunucu
İstemciArayüzYerel veri işlemeRMI çağrıları
SunucuUzak nesnelerin yönetimiTüm veritabanı işlemleri
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
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)
GenericDAO (2)
İstemciden veritabanı erişimiDoğrudan veritabanı bağlantısıSorunlar
Hibernate cep bellekDüşük performansMimari
Çözüm : RemoteGenericDAO
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ı
Kullanıcı Arayüzü
Java SwingArayüz KalıtımıDinamik menu elemanları
GenişlitilebilirlikErişim denetimi
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ı
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ü
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
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
Stok Analiz
Geçmiş satışlar üzerinden analiz hesaplamaROP(adet) = (Birim zamandaki talep) * (temin süresi)
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
Sonuçlar & Yorumlar
Hibernate kullanımıUygun şartlar & doğru kullanım
Web Servis RMIPerformansGeliştirme kolaylığıBirlikte işlerlik (interoperability)
Teşekkürler
Demo ve sorular