cobol rulez! websphere ilog rules for cobol

24
1 COBOL Rulez! COBOL Rulez! WebSphere ILOG Rules for WebSphere ILOG Rules for COBOL COBOL Maciej Zrobek Maciej Zrobek

Upload: ibm-software-polska

Post on 22-May-2015

861 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: COBOL Rulez! WebSphere ILOG Rules for COBOL

1

COBOL Rulez!COBOL Rulez!WebSphere ILOG Rules for WebSphere ILOG Rules for COBOLCOBOLMaciej ZrobekMaciej Zrobek

Page 2: COBOL Rulez! WebSphere ILOG Rules for COBOL

2

Agenda

• Zarządzanie regułami biznesowymi za pomocą WebSphere ILOG dla System z:– Dostępne opcje

• ILOG Rules for COBOL:– Realizacja przykładowego projektu za pomocą Rule Studio– Co dalej z wygenerowanym kodem?

Page 3: COBOL Rulez! WebSphere ILOG Rules for COBOL

Biznesowe uzasadnienie dla wykorzystania ILOG BRMS dla System z

• Dostęp do logiki decyzyjnej rezydującej w systemach mainframe – ekstrakcja i automatyzacja zasobów decyzyjnych

• Redukcja kosztów utrzymania aplikacji• Zwiększenie innowacyjności i produktywności• Wydzielenie reguł biznesowych może być częścią projektu

modernizacji aplikacji na mainframe

Page 4: COBOL Rulez! WebSphere ILOG Rules for COBOL

ILOG BRMS dla System z JRules BRMS

Reguły są definiowane,

dnalizowane i utrzymywane

Reguły są składowane i

współdzielone

Narzędzia użytkownika

Repozytorium reguł

Rules +

Metadata

Reguły są generowane jako

kod w COBOLU i

wykonywane w programach

batchowych, CICS i IMS

Reguły są wdrażane,

wykonywane i

monitorowane jako usługi

J2EE

Rule Server

Decision

Services

OPCJA 1:

Wykorzystanie Rules for COBOL

OPCJA 2:

JRules wykorzystujące Rule

Execution Server

IDENTIFICATION DIVISION.

PROGRAM-ID. BLANK-SCREEN.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

SOURCE-COMPUTER. INTEL.

OBJECT-COMPUTER. INTEL.

DATA DIVISION.

WORKING-STORAGE SECTION.

77 HIT PIC X.

77 OPEN-STOCK PIC 9(7) VALUE ZEROES.

77 BILLS-REC PIC 9(7) VALUE ZEROES.

77 MACHINERY PIC 9(7) VALUE ZEROES.

77 FURNITURE PIC 9(7) VALUE ZEROES.

77 BUILDING PIC 9(7) VALUE ZEROES.

77 DEBTORS PIC 9(7) VALUE ZEROES.

77 CASH-IN-OFFICE PIC 9(7) VALUE ZEROES.

77 CASH-AT-BANK PIC 9(7) VALUE ZEROES.

77 77 77

IDENTIFICATION DIVISION.

PROGRAM-ID. BLANK-SCREEN.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

SOURCE-COMPUTER. INTEL.

OBJECT-COMPUTER. INTEL.

DATA DIVISION.

WORKING-STORAGE SECTION.

77 HIT PIC X.

77 OPEN-STOCK PIC 9(7) VALUE ZEROES.

77 BILLS-REC PIC 9(7) VALUE ZEROES.

77 MACHINERY PIC 9(7) VALUE ZEROES.

77 FURNITURE PIC 9(7) VALUE ZEROES.

77 BUILDING PIC 9(7) VALUE ZEROES.

77 DEBTORS PIC 9(7) VALUE ZEROES.

77 CASH-IN-OFFICE PIC 9(7) VALUE ZEROES.

77 CASH-AT-BANK PIC 9(7) VALUE ZEROES.

77 77 77

IDENTIFICATION DIVISION.

PROGRAM-ID. BLANK-SCREEN.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

SOURCE-COMPUTER. INTEL.

OBJECT-COMPUTER. INTEL.

DATA DIVISION.

WORKING-STORAGE SECTION.

77 HIT PIC X.

77 OPEN-STOCK PIC 9(7) VALUE ZEROES.

77 BILLS-REC PIC 9(7) VALUE ZEROES.

77 MACHINERY PIC 9(7) VALUE ZEROES.

77 FURNITURE PIC 9(7) VALUE ZEROES.

77 BUILDING PIC 9(7) VALUE ZEROES.

77 DEBTORS PIC 9(7) VALUE ZEROES.

77 CASH-IN-OFFICE PIC 9(7) VALUE ZEROES.

77 CASH-AT-BANK PIC 9(7) VALUE ZEROES.

77 77 77

z/OS

lub

Linux for System z

Page 5: COBOL Rulez! WebSphere ILOG Rules for COBOL

WebSphere Application Server for z/OS

Transparent

Decision Services

User (RAD)*

Generated

COBOL <-> Java

JRules Rule

Execution Server

WO

LA

CICS

COBOL

Application

CICS

Web Service

Support

WOLA Stub

Rules for COBOL

Generated

COBOL

z/OS Batch

COBOL

Application

WOLA Stub

Rules for COBOL

Generated

COBOL

IMS

COBOL

Application

IMS

Web Service

Support

WOLA Stub

Rules for COBOL

Generated

COBOL

•Rational Application Developer

dostarcza narzedzi do mapowania struktur danych COBOL

na Jave

Opcje wywołania reguł biznesowych z COBOLa

Page 6: COBOL Rulez! WebSphere ILOG Rules for COBOL

Rules for COBOL – jak to działa?

COBOL

App

Repozytorium

Rule Studio

Repozytorium

6. Powtórna generacja kodu w COBOLu

Kod jest generowanyz RTS

Przesłanie na MF

Kompilacja, wykonanie i testy

DB2

Production Application

Mainframe

z/Os

IMS

Deweloper

1. Wstępna konfiguracja

Deweloper dostarcza:

Copybooka w COBOLU oraz

Kod lub dokumenty identyfikujące reguły biznesowe

App Server

Intranet

Rule Team

Server

Stacja robocza

5. Zmiana reguł

Biznes wymaga zmiany reguł

Analityk modyfikuje reguły

3. Generacja kodu w COBOLu

Przesłanie na MF

Kompilacja, wykonanie i testy

4. Publikacja reguł na RTS

W celu umożliwienia wspólnego zarządzania nimi poprzez

interfejs webowy

2. Projektowanie reguł

Import copybooka

Ustalenie języka biznesowego (werbalizacja)

Opracowanie (authoring) reguł

Analityk

Biznesowy

Page 7: COBOL Rulez! WebSphere ILOG Rules for COBOL

Przykładowy projekt - założenia• Bank udziela pożyczek• Reguły dotyczące walidacji wniosków o pożyczkę oraz sprawdzania

zdolności kredytowej klienta „porozrzucane” są w aplikacjach COBOL

• Dokonamy wydzielenia tych reguł biznesowych za pomocą Rule Studio i wygenerujemy je w postaci kodu w COBOLu

Nasze reguły biznesowe:

V1 „Nie udzielamy pożyczek osobom starszym niż 60 lat”

V2 „Kwota pożyczki nie może przekraczać 1.000.000”

E1 „Roczna spłata pożyczki nie może przekraczać 30% rocznych dochodów netto”

E2 „Nie udzielamy pożyczek osobom o scoringu kredytowym niższym niż 200”

E3 „Nie udzielamy pożyczek osobom o rocznych dochodach netto mniejszych niż 2400”

Page 8: COBOL Rulez! WebSphere ILOG Rules for COBOL

Krok 1: nowy projekt w Rule Studio

Reguły

Model obiektów biznesowych (BOM)

Zapytania

Wzorce reguł

Page 9: COBOL Rulez! WebSphere ILOG Rules for COBOL

Krok 2: import copybooka

• Copybook posłuży nam do utworzenia modelu BOM, czyli zestawu klas i metod, na kanwie których będziemy tworzyć reguły biznesowe

• Jednocześnie copybook będzie służył do komunikacji pomiędzy programami aplikacyjnymi i programem wygenerowanym przez Rules for COBOL (R4C)

• Jak widać w niniejszej strukturze danych „szykują się” nam dwie klasy: Borrower i Loan

Page 10: COBOL Rulez! WebSphere ILOG Rules for COBOL

Krok 2: import copybooka

Klasy wygenerowane i

umieszczone w BOM

Werbalizacja parametrów:

Możemy ją wykonać po to, aby

w regułach biznesowych nie

odwoływać się do nazw klas, a

do pojęć wyrażonych w

”ludzkim” języku, np.:

„the borrower”, „the loan”

Page 11: COBOL Rulez! WebSphere ILOG Rules for COBOL

Krok 3: implementacja metod BOM• Oczywiście w BOM możemy tworzyć własne klasy• Klasy możemy grupować w pakiety• Klasy to: atrybuty (dane) + metody (akcje)• Możemy dopisywać do klas własne atrybuty i metody• W COBOL Rules metody mają swoje definicje (sygnatury) zapisane w języku Java, ale są jak najbardziej

implementowane w COBOLu• Metody również podlegają werbalizacji i są używane jako „czasowniki” w języku opisu reguł

biznesowych• Na potrzeby naszego projektu utwórzmy kilka metod pomocniczych:

Klasa Definicja metody Opis

MiniUtil static void addMessage(String) Umieszczenie komunikatu tekstowego na wyjściu z reguł

MiniUtil static void reject() Odrzucenie wniosku o pożyczkę

Borrower int computeIncomeAfterTax() Obliczenie rocznego dochodu netto

Page 12: COBOL Rulez! WebSphere ILOG Rules for COBOL

12

Krok 3: implementacja metod BOM – nowa klasa

Page 13: COBOL Rulez! WebSphere ILOG Rules for COBOL

13

Krok 3: implementacja metod BOM – nowa metoda

Page 14: COBOL Rulez! WebSphere ILOG Rules for COBOL

14

Krok 3: implementacja metod BOM – werbalizacja metod

Metoda Werbalizacja Uwagi

addMessage „add message {0}” {0} oznacza parametr

reject „reject the loan”

computeIncomeAfterTax „the income after tax of {this}”

{this} oznacza obiekt, na rzecz którego wykonujemy metode

Page 15: COBOL Rulez! WebSphere ILOG Rules for COBOL

15

Krok 3: implementacja metod BOM – kod metody w COBOLu

Tutaj wpisujemy fragment kodu w COBOLu, który implementuje

naszą metodę i który będzie użyty przy generacji programu.

Proszę zauważyć, że odwołujemy się tu do parametru metody

poprzez {msg}

Page 16: COBOL Rulez! WebSphere ILOG Rules for COBOL

16

Krok 4: tworzenie reguł biznesowych• Reguły biznesowe możemy tworzyć na kilka sposobów:

– Bezpośrednio w języku Business Action Language (BAL)– Jako tabele decyzyjne– Jako drzewa decyzyjne– W języku IRL, który jest podobny do Javy i jest bezpośrednio wykonywany w Rules Execution Server

• W BAL możemy odwoływać się do werbalizacji metod i parametrów• Reguły możemy grupować w pakiety• Na potrzeby naszego projektu tworzymy następujące reguły zgrupowane w 2

pakietach:

Pakiet Reguła Opis

eligibility MinimumCreditScore Czy klient ma wystarczający wynik scoringu kredytowego?

MinimumAmount Czy pożyczka nie będzie zbytnim obciążeniem dla klienta?

MinimumAmount Czy klient ma wystarczające przychody?

MaximumAgeReq Czy klient nie jest w zbyt podeszłym wieku?

validation MaximumAmount Czy żądana kwota pożyczki nie jest wyższa niż bezwzględne maksimum ustalone przez nasz bank?

Page 17: COBOL Rulez! WebSphere ILOG Rules for COBOL

17

Krok 4: tworzenie reguł biznesowych

Tutaj tworzymy nowy pakiet reguł. Tutaj tworzymy nową regułę w

ramach pakietu.

Page 18: COBOL Rulez! WebSphere ILOG Rules for COBOL

18

Krok 4: tworzenie reguł biznesowych – kodowanie w BAL

BAL jest prostym językiem, zrozumiałym nie tylko dla

programistów.Proszę zauważyć wykorzystanie

werbalizacji.

Page 19: COBOL Rulez! WebSphere ILOG Rules for COBOL

19

Krok 5: tworzenie przepływu reguł

• Przepływy reguł (Ruleflow) określają kolejność i warunki wykonania reguł

• Przepływy nie muszą być liniowe: mogą zawierać warunkowe rozgałęzienia, selektory (fork), złączenia i wywołania innych przepływów

• W węzłach przepływu wykonywane są pojedyncze reguły lub ich pakiety

– Jeżeli wykonujemy cały pakiet reguł w węźle to możemy wybrać jedną z kilku strategii ich wykonania w ramach tego węzła

• Przepływy konstruujemy w wygodnym edytorze graficznym

Page 20: COBOL Rulez! WebSphere ILOG Rules for COBOL

20

Krok 6: generacja kodu w COBOLU (nareszcie!)

Jedyne, co musimy podać to nazwy programu/ów i ich

docelowe lokalizacje

Page 21: COBOL Rulez! WebSphere ILOG Rules for COBOL

Co dalej z wygenerowanym kodem?

• Wygenerowany kod w COBOLu musimy przenieść w dowolny sposób na z/OS

• Tam dokonujemy jego kompilacji i linkowania– Najlepiej za pomocą Rational Developer for System z!– Team Rules integruje się z RDz

• Następnie musimy zmodyfikować nasze aplikacje tak, aby wywoływały one wygenerowany program Rules w celu ewaluacji reguł biznesowych (niestety, ILOG tego za nas nie zrobi)– Najlepiej użyć dynamicznego CALLa, tak aby zmiana reguł i powtórna generacja

programu Rules nie powodowała konieczności powtórnego linkowania programów, które się do niego odwołują

• Zmodyfikowane aplikacje oczywiście rekompilujemy i nareszcie możemy się cieszyć wydzielonymi regułami biznesowymi

21

Page 22: COBOL Rulez! WebSphere ILOG Rules for COBOL

Wykorzystanie R4C w programach CICS

• Wygenerowany program w COBOLu możemy wywoływać z CICSa „as-is”:– Ale paradoksalnie musimy go kompilować z opcją CICS=NO, ponieważ R4C nie

generuje dla nas COMMAREA

• Możemy również włączyć odpowiednią opcję i oprócz programu zawierającego reguły biznesowe wygenerować również CICS Wrapper:– CICS Wrapper jest wołany przez aplikację biznesową, a sam z kolei woła

program zawierający reguły biznesowe– Komunikacja pomiędzy aplikacją biznesową a wrapperem odbywa się za

pomocą mechanizmu channel-container– Wykorzystanie channel-container umożliwia przesyłanie danych dłuższych niż

32K oraz pozwala na to, aby program wywołujący i wołany znajdowały się w różnych regionach CICS

22

Page 23: COBOL Rulez! WebSphere ILOG Rules for COBOL

Rules for COBOL – podsumowanie korzyści

• Reguły biznesowe bez R4C:• są “zaszyte” w kodzie COBOLowym• są potencjalnie nieudokumentowane• są dostępne tylko dla pracowników IT• podlegają takiemu samemu cyklowi deweloperskiemu, jak kod

• Reguły biznesowe z wykorzystaniem R4C:• są wyrażone i udokumentowane za pomocą pojęć biznesowych• mogą być zespołowo zarządzane za pomocą narzędzi webowych• mogą być zmieniane wraz ze zmianą warunków biznesowych• mogą być współdzielone pomiędzy aplikacjami (a nawet pomiędzy

platformami)

23

Więcej na stronie:

http://www-01.ibm.com/software/integration/business-rule-management/rules-cobol/

Więcej na stronie:

http://www-01.ibm.com/software/integration/business-rule-management/rules-cobol/

Page 24: COBOL Rulez! WebSphere ILOG Rules for COBOL

THE END