320 likes | 464 Views
DATAKON 2007. Rozširovateľný model bankovníctva. Ľubor Šešera SOFTEC, Bratislava FIIT STU, Bratislava. Úvod. Bankovníctvo Atraktívna, ale aj konzervatívna oblasť Konzervatívnosť Charakteristika domény (úvery a pod.) Aj ohraničenia softvérových systémov
E N D
DATAKON 2007 Rozširovateľný model bankovníctva Ľubor Šešera SOFTEC, Bratislava FIIT STU, Bratislava
Úvod • Bankovníctvo • Atraktívna, ale aj konzervatívna oblasť • Konzervatívnosť • Charakteristika domény (úvery a pod.) • Aj ohraničenia softvérových systémov • Core banking systémy boli vyvinuté v starých technológiách (COBOL, RPG,...) • Na počítačoch typu mainframe, AS/400,... • Ťažko sa rozširuje • Avšak • Rozšíriteľnosť bankového systému je nielen záležitosť implementačných technológií • Začína už na úrovni konceptuálnych modelov • Konceptuálne modely core banking systémov sú rigidné
Úvod • Navyše • Banka zvyčajne nemáva iba jeden systém, ale má niekoľko systémov • Hlavná kniha (CBS), správa hotovosti, platobné karty, úvery, cenné papiere • Problém ich prepájania opäť nie je iba záležitosť technológií, ale aj dobrého konceptuálneho návrhu • V tomto príspevku • Návrh generalizovaného a rozširovateľného konceptuálneho dátového modelu • Pre jednu časť bankovníctva
Základný model • Súčasné bankové systémy • Klasický relačný dátový model • Konceptuálny model bežného účtu • Operácie: • Vklad na účet, výber z účtu, prevod na účet, ... • Zjednodušený: • Iba 1 majiteľ účtu; nie všetky operácie • Ale viac transakčných poplatkov, napr. • Poplatok za účtovnú položku • Poplatok, ktorý znáša vkladateľ • Poplatok za zmenárenskú operáciu • Poplatok za nadlimitné množstvo mincí
Ďalšie typy účtov • Úloha: • Ako reprezentovať atribúty ďalších typov účtov? • Príklady: • Termínované účty, vkladné knižky, sporiace účty,... • Problém: • Rozširovanie tabuľky Účet klienta je náročné • Riešenie: • Generalizácia typov účtov • Podtrieda dopĺňa špecifické atribúty pre typ účtu • Možno implementovať pomocou delegácie
Zložitejšie produkty • Úloha: • Reprezentácia zložitejších produktov • Príklady: • Platobné karty, úvery, prenájmy bezpečnostných schránok • Problém: • Pridávanie atribútov do podtried účtu spája „jablká s hruškami“ • Vedie k denormalizovaným modelom • Riešenie: • Normalizácia • Rozdelenie účtu na finančnú časť (účet) a zmluvu
Účet k zmluve Napr. Platobné karty • Bežný účet / Úverový účet klienta • Zmluva o platobnej karte (limity a pod.) • Platobná karta (predmet zmluvy) • Typ platobnej karty (typ predmetu zmluvy) Napr. Bezpečnostné schránky • Bezp. schránka je Predmet zmluvy
Balíky produktov • Úloha: • Balíky produktov • Príklady: • Balík: bežný účet s platobnou kartou • Problém: • Balík produktov sa skladá z dielčích produktov (aj rekurzívne) • Jedna zmluva • Riešenie: • Návrhový vzor Kompozit
Rozšíriteľnosť operácií • Úloha: • Operácie so zložitými produktmi • Príklady: • Operácia s platobnou kartou • Operácia platby prenájmu bezp. schránky • Problém: • Podobný ako v účtoch: rozširovanie tabuľky operácií je náročné • Riešenie • Podtriedy operácie s účtom • Možno riešiť formou delegácie
Rozšíriteľnosť poplatkov • Úloha: • Reprezentovať viacero spôsobov výpočtu poplatkov • Príklady: • Fixný poplatok, percent. poplatok, vrstvový poplatok • Problém: • Jeden spôsob výpočtu pre viac typov poplatkov • Spôsoby výpočtu sa môžu meniť • Riešenie: • Návrhový vzor Strategy
II. SPRÁVA HOTOVOSTI • Koncept pokladnice • Príručná pokladnica pokladníka • Uschovacie miesto / trezor pobočky • Automatická pokladnica (cash dispenser) • Pokladnica centrálnej pokladne, ... • Pokladnica môže obsahovať viacero mien • Zjednodušenie • Vynecháme evidenciu zostatkov po nomináloch
Hotovostné operácie • Úloha: • Reprezentovať hotovostné operácie • Príklady: • Zámena hotovosti v cudzej mene za hotovosť v domácej mene • Dotácia pokladnice z uschovacieho miesta • Problém: • Údaje sú špecializované • Riešenie • Rozdelenie operácie na hlavičku a špecializované detaily
III. ZOVŠEOBECNENIE • Účty klientov a správa hotovosti zvyčajne dva samostatné systémy • Systémy však úzko súvisia • Napr. vklad hotovosti na účet klienta • Je operáciou systému Účty klientov • Aj hotovostnou operáciou s pokladnicou • Ak ich dokážeme spojiť, prinesie aj ďalšiu výhodu • Parametrizovateľnosť systému
Zovšeobecnenie účtov • Úloha: • Generalizácia objektov účtov a pokladníc • Problém: • Takýto pojem v bankovníctve neexistuje • Riešenie: • Vytvorenie umelého generalizovaného konceptu: Peňažné miesto
Zovšeobecnenie operácií • Úloha: • Generalizácia operácií účtov a pokladníc • Riešenie: • Vytvorenie umelého generalizovaného konceptu: Peňažná operácia
Metaúroveň peňažných miest • Úloha: • Definovanie pravidiel pre peňažné miesta • Príklady: • Bežný účet je pre klienta banky • Pokladnica sa neviaže na klienta banky • Sporiaci účet predpokladá existenciu bežného účtu • Riešenie: • Vytvorenie metaúrovne peňažných miest
Metaúroveň peňažných operácií • Úloha: • Definovanie pravidiel pre peňažné operácie • Príklady: • Operácia výberu z bežného účtu sa týka bežného účtu a pokladnice • Dotácia pokladnice sa viaže na pokladnicu a uschovacie miesto • Operácia Nákup cestovných šekov za hotovosť sa týka zámeny hotovosti za cestovné šeky • Riešenie: • Vytvorenie metaúrovne peňažných operácií
Riešenie (podrobnejšie) Transformácia v 3-dimenzionálnom priestore: • Transformácia medzi Typmi peňažných miest • napríklad dotácia pokladnice z uschovacieho miesta, výber hotovosti na pokladnici z účtu klienta a iné. • Transformácia Formy peňazí • napríklad elektronických peňazí z účtu na hotovosť, hotovosti na cestovné šeky a iné. • Transformácia Meny • napríklad cudzej meny na domácu menu alebo krížová transformácia dvoch cudzích mien • transformácia mien je okrem druhu meny špecifikovaná tiež Typom kurzu (valuty, devízy) a Smerom kurzu (nákup, predaj, stred).
Záver • Ukázali sme 1 príklad rozširovateľného systému pre bankovníctvo • Dosiahli sme kombináciou generalizácie a metamodelovania • Hl. výsledok je jadro metamodelu peňažných operácií • Rozširovanie • Podtriedami Typu peňažnej operácie • Návrhové vzory: Template method, Strategy • Namiesto univerzálneho interpretátora rozdelenie na komponenty • Otázka efektívnosti • Rozdelenie systému na statické a flexibilné časti • Možná kompilácia modelu namiesto interpretácia