A Forrás s rendszer SOA-sítása sa Dr. Dányi D GáborG GriffSoft Zrt. 2008. 05. 21.
Mi a Forrás? Ügyviteli operáci ciós s rendszer Szabványos és s specifikus üzleti modulok Intézm zményi felhasználók Oktatási Min., Közl. K és s Vízügyi V Min., Belügymin., Igazságügyi gyi Min., MNV, Pécs, P Székesfeh kesfehérvár, r, Vállalati felhasználók Lombard Lízing, L Tisza Volán, Galicoop, Erdért, rt, Albacomp, Pécsi P Sör, S Csemege-MATCH,
Miről l lesz szó? A Forrás s rendszer eredeti architektúrája Forrás s SOA felhasználói i követelmk vetelmények Forrás s SOA megvalósítása sa Üzemeltetési tapasztalatok
Az eredeti Forrás s architektúra ra Klasszikus kliens-szerver szerver architektúra ra Visual C++ / MFC SQL Server Saját t nyelv (Forrás-SQL), futtató Az üzleti logika nagyrészt ebben, kisebb részt r T-SQL T tárolt eljárásokban Felhasználói i felület let kezelése és üzleti logika nincs elkülönítve A futtató és s a Forrás-SQL programok nincsenek felkész szítve többszt bbszálú működésre
Az eredeti Forrás s architektúra ra Zárt rendszer Nincs programozható,, csak interaktív v felület let Interaktív v felhasználó azonosítás és s szerepválaszt lasztás Futtató környezet inicializálása felhasználó szerepe és s jogosultságai gai alapján n (nagy erőforr forrásigény!) Hosszú futásidej sidejű - akár r 20 percen túli t funkciók k ( kávész( szünet )
Az eredeti Forrás s architektúra ra Forrás futtató Forrás adatbázis
SOA követelmk vetelmények Üzleti logikai funkciók k legyenek elérhet rhetőek ek webszolgáltat ltatáson keresztül l IS Egy funkció csak egyszer legyen implementálva lva A korábbi kódok k a lehető legkevesebb módosm dosítással ssal (és újrateszteléssel!) ssel!) felhasználhat lhatók k legyenek SSO (Single Sign-On) támogatt mogatása Felhasználói i felületek letek célzott c elérése workflow feladatkosárb rból
SOA követelmk vetelmények A webszolgáltat ltatás s felülete lete legyen szabványos, de maradjon a Forrás-SQL nyelv RAD előnye Új j funkció felvétel teléhez ne legyen szüks kség g bináris modulok publikálására (és( s tesztelésére!) Legyen behatárolhat rolható egy módosm dosítás s hatása (mit kell újratesztelni?) Legyen mód m d aszinkron végrehajtv grehajtásra A szolgáltat ltatás s oldalra jól j l skálázhat zható legyen Mindezt olcsón, gyorsan, kevés s kockázattal
Felhasználói i igény Forrás SOA kiszolgáló SOA kliens Forrás futtató Forrás futtató Forrás adatbázis
Megvalósítás Forrás-SQL futtató out-process COM kiszolgálóvá alakítása Interaktívan és s alkalmazásb sból l is vezérelhet relhető: : eredeti felhasználásra sra tramszparens Azonosítás s COM hívással h is: SSO támogatt mogatása Futtatás s COM hívással: h webszolgáltat ltatásból és workflow kliensből l is elérhet rhető Minőségbiztos gbiztosítás: : Columbus C++
Megvalósítás Üzleti funkciók k felkész szítésese T-SQL általában nem gond Modularizálás s a kiajánland nlandó funkciók k szerint Forrás-SQL gond (korábban 2 rétegr tegű tervezés) Modularizálás s a kiajánland nlandó funkciók k szerint Felhasználói i felület let és üzleti logika szétv tválasztásasa Állapotmentes llapotmentesítés Minőségbiztos gbiztosítás: : Columbus T-SQL Forrás-SQL
Megvalósítás Forrás s webszolgáltat ltatás s (ForrasWS) Standard eszközök k alkalmazása.net Framework 2.0, WSE 3.0, Enterprise Library Forrás-SQL futtató COM kiszolgálóként Minden kéréshez k külön k n példp ldány: többszt bbszálúsítás s megúszva Performancia: nem használt futtatópéld ldányok gyorsítótára ra RAD funkcióbővítési lehetőség Általános végrehajtv grehajtó metódus sorosítási si szabállyal Funkciók k sémái s i adatbázisban tárolvat Aszinkron végrehajtv grehajtás Feladatsor, Windows service alapú ügynök Minőségbiztos gbiztosítás: s: Columbus C#, OO Design Metrics, Best Practices
Forrás s SOA Forrás SOA felület (web service) Forrás SOA adatbázis Forrás SOA ügynök (Windows service) COM felület Forrás futtató Forrás adatbázis
Tapasztalatok A webszolgáltat ltatás s lazán n csatolt Ha egy hívásra h nincs válasz, v nem tudhatjuk mi az állapot a másik m oldalon A sorrendérz rzékeny folyamatokra jobban kell figyelni, különösen aszinkron végrehajtv grehajtáskor Hibakeresés, s, nyomkövet vetés új j módszereket m igényel Csak rövid r futásidej sidejű funkciókat kat szabad szinkron módon m elérhet rhetővé tenni Az aszinkron feladatsorban hangolhatóvá kell tenni a prioritásokat és s a sikertelen végrehajtv grehajtások ismétl tlését