01 - Programacion Cobol- Programacion Estructurada Con Cobol
COBOL Rulez! WebSphere ILOG Rules for COBOL
-
Upload
ibm-software-polska -
Category
Documents
-
view
849 -
download
2
Transcript of COBOL Rulez! WebSphere ILOG Rules for COBOL
1
COBOL Rulez!COBOL Rulez!WebSphere ILOG Rules for WebSphere ILOG Rules for COBOLCOBOLMaciej ZrobekMaciej Zrobek
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?
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
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
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
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
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”
Krok 1: nowy projekt w Rule Studio
Reguły
Model obiektów biznesowych (BOM)
Zapytania
Wzorce reguł
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
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”
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
12
Krok 3: implementacja metod BOM – nowa klasa
13
Krok 3: implementacja metod BOM – nowa metoda
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
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}
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?
17
Krok 4: tworzenie reguł biznesowych
Tutaj tworzymy nowy pakiet reguł. Tutaj tworzymy nową regułę w
ramach pakietu.
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.
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
20
Krok 6: generacja kodu w COBOLU (nareszcie!)
Jedyne, co musimy podać to nazwy programu/ów i ich
docelowe lokalizacje
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
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
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/
THE END