Kural Motorları Bora Güngören Portakal Teknoloji AB 2007 01.02.2007.

Slides:



Advertisements
Benzer bir sunumlar
Java Programlama Koleksiyon(Collection) Sınıfları
Advertisements

Ders İçeriği Liste Soyut veri yapısı (ADT)
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Müşteri memnuniyetinin artırılmasına yönelik olarak kalite yönetim sisteminin kurulması ve geliştirilmesi konusunda rehberlik eden ve ISO tarafından yayınlanmış.
LINQ { C# 3.0 ve Language Integrated Query } MEHMET MECİT GÖK NO:
ERASMUS+ GENÇL İ K KA2 İ L SOSYAL ETÜT VE PROJE MÜDÜRLÜ Ğ Ü.
Proje Entegrasyon Yönetimi
 Türkiye’de Fırsatları Artırma ve Teknolojiyi İyileştirme Hareketi (FATİH) projesi ile okul ortamlarının teknoloji ile bütünleşmesini sağlayacak olan.
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
NETWORK YÖNETIMI Ş. Bü ş ra Güngör NETWORK YÖNETIMI NEDIR? Network, sunucu, yazıcı, bilgisayar ve modem gibi veri ileti ş im araçlarının güncel.
E- İş.
APP INVENTOR Emre ANLAR.
BİLGİSAYAR PROGRAMLAMA DERSİ
Üretim teknolojisi ve bilişim teknolojisindeki değişim
3. DEĞİŞKENLER Değişkenlerin kullanım ve tanımlanma şekli, o dilde program yapmayı ve programların anlaşılırlığını etkileyen önemli faktörlerden biridir.
JDK(Java  Development  Kit):  Java  kodlarını  derlemek  için gerekli  geliştirme  ortamını.
Proje Dosyası - Belgeleme - Raporlama
BİLİMSEL ARAŞTIRMA YÖNTEMLERİ ÜNİTE 3
Kategorik Veri İki Bağımlı Grup
7.SINIFLAR TEKNOLOJİ TASARIM
Parametrik Olmayan İstatistik
Vize Sorusu Klavyeden girilen N adet sayıyı List1 nesnesinde gösteren ve bu sayıların toplamını ve ortalamasını Text1 ve Text2 nesnesinde yazdıran.
Rasyonel Beklentiler: Para Politikası
END-335 Tedarİk Zİncİrİ Yönetİmİ Tedarİkçİ Seçİmİ
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
BİLİŞİM TEKNOLOJİLERİ ALANI
Fluvyal Jeomorfoloji Yrd. Doç. Dr. Levent Uncu.
WEB PROJE YÖNETİMİ Ahmet TAŞTAN.
GELECEK PİYASASI İŞLEMLERİ
STORAGE BÜŞRA KARADENİZ
İnsan Kaynakları ve Kalite Yönetimi
TETİKLEYİCİLER ve HATA KONTROLÜ
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
Yönetimin Tanımı ve Unsurları
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Futbol Yetenek Avcısı AOFScout.
Yazılım Mühendisliği Ders 1: Giriş.
SÜREÇ ODAKLILIK.
Mobil uygulama geliştirme pelin yıldırım Fatma bozyiğit
3.hafta METODLAR.
Bilgisayar Yazılımları
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
Fragment.
UZAKTAN EĞİTİM.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Doğrusal Mantık Yapısı İle Problem Çözme
Nesneye Dayalı Programlama 1
Kurucular(Yapıcılar), Yıkıcılar
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
Stored Procedure Öğr.Gör.Metin Akbulut.
Fonksiyonlar ve Alt Programlar
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
Bilgisayar Bilimi Programlama Yapısı.
Hikaye tahtası.
Bölüm 1 Giriş. Bölüm 1 Giriş Teknolojik Yeniliğin Önemi Teknolojik yenilik günümüzde birçok endüstrideki rekabet başarısının en önemli tek itici gücüdür.
BORULARDA YERSEL YÜK KAYIPLARI
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
Dönem 2 Biyoistatistik Uygulama
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Bilgehan Arslan, Süreyya Gülnar
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Ortam-Bağımsız Gramerler (OBG)
Sunum transkripti:

Kural Motorları Bora Güngören Portakal Teknoloji AB

2 Kural Motorları Tasarı m TestYazılımAnaliz Ürün Geleneksel (doğrusal) yazılım geliştirme süreci varsayımı:

3 Kural Motorları Problem Tanımı : ● İş kuralları sürekli değişir: –Teslim edilmesi planlanan ürün güncelliğini yitirir. –Teslimat süresi uzar. –Yeteri kadar test edilemez. –Ürün kalitesiz olur. Çözüm Önerisi : ● Kural motorları

4 Kural Motorları ● Kural motorlarının kullanımı ne zaman yararlı? –İş akışları kod seviyesinde yönetilemeyecek kadar karışıksa –İş yapış şekli sürekli değişiyorsa –Değişikliklerin hemen uygulamaya konması gerekiyorsa

5 Kural Motorları ● Kural motoru kullanılması sonucunda –İş yapış şekli tanımları kolayca anlaşılır –İş yapış şekli programlama dillerinden bağımsız olur –İş yapış şekli bilgisini kodlama mantığından ayırır –Kaynak kod değiştirilmeden değiştirilebilir –İş yapış şeklindeki değişiklikler hızlıca uygulamaya konur

6 Kural Motorları ● Kural motorları –Common Knowledge –NxBRE –Portellus –Tris –Haley –Jess –Drools –Microsoft Business Rules Engine –......

7 Kural Motorları ● Her kural motorunun için farklı API tanımlanmıştır. ● Birinden diğerine geçmek zordur ● Kural motoru sağlayıcısına bağımlılık yaratır. ● Java Community Process (JCP) iş kuralı motorları standart. –JSR94 – Java Standards For Rule Engines –

8 Kural Motorları ● JSR94, Kural motoruna Java SE veya Java EE istemcisinden erişim için bir standart sağlar. –Kurallara kaydolmak ve kayıt silmek (register/unregister) –Kuralları incelemek (parse) –Kural meta-datasını incelemek –Kural çalıştırmak –Sonuçları elde etmek –Sonuçları filtrelemek

9 Kural Motorları ● JSR94, aşağıdaki konular için bir standart sağlamaz. –Kural motoru –Kuralların akışı –Kuralların tanımlanması için kullanılan dil –Java teknolojisinin kurulumu

10 Kural Motorları Jess kural motoru için örnek kural tanımı (defrule rule-1 (yagmur) = > (semsiye-getir)) (defrule rule-2 (kaygan-yol) => (dikkatli-araba-kullan)) (defrule rule-3 (yagmur) => (assert kaygan-yol)) (kaygan-yol) (yagmur)

11 Kural Motorları Drools kural motoru için örnek kural tanımı rule "reddedilmediyse onayla" salience -100 when not Rejection() p : Policy(approved == false, policyState:status) exists Surucu(age > 25) Process(status == policyState) then log("ONAYLI: reddedilmemis"); p.setApproved(true); end

12 Kural Motorları Drools xml kural motoru için örnek kural tanımı UserRole.equals(“Admin”) System.out.println( "Sistem Yöneticinizle Görü ş ün" );

13 Kural Motorları Kural Motoruna ba ğ lantı: public class OrnekKural { private static final String KURAL_SAGLAYICISI = "org.jcp.jsr94.jess"; public static void main(String[] args) { try { // Kural servisi sa ğ layıcısını yükle Class.forName("org.jcp.jsr94.jess.RuleServiceProviderImpl"); RuleServiceProvider servis =RuleServiceProviderManager. getRuleServiceProvider(KURAL_SAGLAYICISI); // Get the rule administrator. RuleAdministrator ruleAdministrator =servis.getRuleAdministrator();

14 Kural Motorları InputStream inStream = org.jcp.jsr94.tck.model.Customer.class.getResourceAsStream( "/org/jcp/jsr94/tck/tck_res_1.xml"); RuleExecutionSet res1 =ruleAdministrator. getLocalRuleExecutionSetProvider(null). createRuleExecutionSet( inStream, null ); inStream.close(); String uri = res1.getName(); ruleAdministrator.registerRuleExecutionSet(uri, res1, null); RuleRuntime ruleRuntime = servis.getRuleRuntime(); StatelessRuleSession statelessRuleSession = (StatelessRuleSession) ruleRuntime.createRuleSession(uri,

15 Kural Motorları new HashMap(), RuleRuntime.STATELESS_SESSION_TYPE); Customer inputCustomer = new Customer("test"); inputCustomer.setCreditLimit(5000); Invoice inputInvoice = new Invoice("Invoice 1"); inputInvoice.setAmount(2000); List input = new ArrayList(); input.add(inputCustomer); input.add(inputInvoice); inputCustomer.getCreditLimit()); // Release the statefulRuleSession. statefulRuleSession.release(); System.out.println();

16 Kural Motorları } catch (NoClassDefFoundError e) { if (e.getMessage().indexOf("JessException") != -1) { System.err.println("Error: The RI Jess could not be found."); } else { System.err.println("Error: " + e.getMessage()); } } catch (Exception e) { e.printStackTrace(); }

17 Kural Motorları Standart : JSR94 Java Rule Engine API uyumlu motorlar –Drools –Fair Isaac Blaze Advisor –ILOG JRules –Jess

18 Kural Motorları Standart : JSR94 Java Rule Engine API uyumlu motorlar –Drools –Jess (Jess in Action) –Fair Isaac Blaze Advisor –ILOG Jrules

19 Sorular?