4GL rendszerek
A Software magazin egyik nemrégi számában jelent meg egy érdekes cikk az
alkalmazás fejlesztő rendszerek fejlődéséről. Ebben olvashatunk egy tanulságos történetet, amely az amerikai Text and
Data Technolgies cégről szól. A cég, amely az 1980-as évek elejé n jött létre, kórházi és bűnügyi adminisztrációs
programokra specializálódott. Induláskor az akkor szokásos utat választva a Pascal nyelvet választották
fejlesztőeszközként. Hamarosan rájöttek azonban, hogy milyen nagy nehézségekbe ütköznek a termékeik má s plattformra
történő átültetésénél, a rendszereik folyamatos bővitésénél. Elsősorban kapacitásproblémával küzdöttek, hiszen
mindössze tizenöt főből állt a fejlesztőgárda. A cégnek egy hatékonyabb eszköz után kellett néznie, hogy
bennmaradhasson a piacon meglévő kemény versenyben.
A kor fejlődési irányait felismerve a hagyományos 3GL
nyelvek (mint pl. a C, Pascal, Fortran,..) után a DB/4GL megoldás felé fordultak. Megvásárolták a Progress 4GL
fejlesztőrendszert, majd négy emberüket öt nap alatt átképezték az új rendszerre. Igen fig yelemre méltó, hogy e
rendkivül kevés idő is elegendő volt az új eszköz alkotó megismeréséhez. Ezután rövid idő alatt átirták minden
alkalmazásukat az új rendszerre. A cég vezetője szerint befektetésük azóta busásan megtérült. Az ő véleménye alapján
a 4GL
fejlesztőeszközök az életbiztositást jelentik a cég számára, hiszen a piac igényei folyamatosan változnak, s e
változások hatékony követése csak a 4GL által biztositott rugalmasság révén teremthető meg.
De mi is ez a
csodaszer, az oly sokat emlegetett 4GL rendszer ?
A 4GL rendszer jelölés szó szerint a negyedik generációs
nyelveket
öleli fel. A negyedik generáció megjelölés utal arra a minőségi ugrásra, ami az alkalmazások fejlesztése terén
elérhető. A 4GL rendszerek ugyanis a hagyományos programozási nyelvektől eltérően nem
igénylik az összes elemi tevékenység aprólékos leirását, megadását. Ehelyett a fejlesztő egy sokkal emberközelibb,
magasabb szintű nyelvet használhat a munkája során. Ez úgy is megfogalmazható, hogy a fejlesztő rendelkezésére
állnak mindazon segédfüggvé nyek, melyekkel az összetettebb funkciók is egyetlen egy hivással megvalósithatók. Igy
például nem szükséges a képernyőkezelés részleteinek szintjén programozni, elegendő például csak a képernyőn
megjelenitendő adatmezőket megadni, s a rendszer ez alapján
már generálni tudja az adatkezelő ablak egy alapértelmezési felépitését, az felhasználóval történő kapcsolat
vezérlésének lépéseit.
Manapság a 4GL rendszerek nemcsak az utasitások absztraakciós szintjében különböznek
a hagyományos nyelvektől, hanem az utasitások megadásának módjában is. Mig a hagyományos nyelveknél az utasitásokat
egy szövegszerkesztő segitségével állitjuk össze, és e gy szöveges formátumban adjuk át a forditónak, addig a 4GL
rendszerekben vagy táblázatok kitöltésével, vagy valamilyen grafikus szerkesztő segitségével könnyitik meg a
fejlesztő munkáját, hiszen nem kell pontosan ismernie a szintaktikát, elegendő csak az értékek pontos megadására
ügyelnie.
Az itt megadott elvek a programfejlesztés különbőző területein is sikerrel alkalmazható és
alkalmazzák is. Mivel azonban ez a technika elsőként az adatbázisokon nyugvó alkalmazások fejlesztésében terjedt el
nagyobb mértékben, ezért 4GL rendszer ma kifej ezetten az adatbázisokra épülő alkalmazásokhoz kapcsolódik.
A 4GL rendszerek alatt igy a relációs adatbázisokra épülő alkalmazások korszerű fejlesztőeszközét értjük.
Manapság a nagyobb rendszereket szinte kizárólag ilyen 4GL környezetben fejlesztik, s a kisebb alkalmazásoknál is
egyre jobban térthódit a 4GL. Az adatbáziskezelés területének ma már szerves része a 4GL rendszerek ismerete, igy nem
árt részletesebben is m egismerni alkalmazásukat, használatukat. Ehhez sorba vesszük előnyeiket, s bemutatjuk
általános felépitésüket, majd ezután a FoxPro-hoz, s az Oracle-hez kapcsolódó korszerű alkalmazás fejlesztő
eszközeket ismertetjük, kitekintést adva néhány más rendszerr e is.
Mindenek előtt tekintsük át a 4GL
rendszerek funkcionális elemeit. A különböző 4GL rendszerek eltérhetnek egymástól a tartalmazott eszközök
tekintetében, azok lehetőségeiben. Nincs egységes definíció, követelmény arra nézve, hogy mit és milyen szinten is
kell tartalmaznia egy 4GL rendszernek. Kiemelhetünk azonban néhány olyan tulajdonságot, amelyek minden korszerű 4GL
rendszertől joggal elvárhatók:
- Az alkalmazás felhasználói felülete, a képernyő program gyorsan és könnyen létrehozható egy képernyő tervező
modul segítségével. A felhasználónak csak ki jelölnie, hogy mely táblákat, azok mely mezőit kívánja megjeleníteni. A
program grafikus elemei ,mint pl. a nyomógombok, listák kiválaszthatók egy eszközkészletből. Az egyes objektumok
attributumai, viselkedése is igen egyszerűen, az objektumokon keresztül megadhatók.
- Gyorsan és egyszerűen elkészíthetők a képernyő felület mellett a nyomtatóra kiküldendő listák definíciói is. A
lsiták formátumát is grafikus szerkesztővel lehet megadni, melyben rögtön látható az eredmény lista formátuma is. A
listák és képernyőprogr amok összekapcsolására egy menü szerkezet tervező segédmodul is a 4GL-ek szokásos része.
- A tevékenységek megadása nem eljárásorientált, azaz rendszerint ninc szükség hagyományos 3GL eljárások
elkészítésére, mivel a tevéknységeket magasabb szinten meghívhatók. A fejlesztőnek csak a tevékenység paramétereit
kell megadnia, s nem a tevékenys ég részletes működését. Ezáltal sokkl könnyebbé válik az esetleges későbbi
módosítások elvégzése is. Néha azonban szükség lehet, egyedi, speciális tevékenységek
elvégzésére 3GL rutinra is, így a 4GL rendszerekhez egy alacsonyabb szintű nyelv is szokott cs atlakozni.
- A felhasználó által emberközeli nyelven megadott, paraméterekként értelmezett adatokból a rendszer generálja a
programot, amelyet futtathatunk. A paraméterlista eszköz és környezetfggetlen alakban készül, így az tetszőlegesen
konvertálható a különbö ző plattformok között. Ezáltal az alkalmazás rugalmasan vihető át az egyes gépek között.
A következő ábra egy teljesnek tekinthető 4GL rendszert mutat be. Mint említettük a piacon megjelenő
egyes 4GL rendszerek ennek csak bizonyos komponenseit tartalmazzák.
A
rendszer főbb komponensei:
- Repository
A rendszer központi eleme. A repository tárolja az
fejlesztőrendszer által készitett alkalmazások adatait, a bennük szereplő objektumok, megkötések, szabályok
definicióit. A repository központi szerepe abban nyilvánul meg, hogy minden komponens ide helyez i le és innen vesz
adatait. Ezáltal a rendszer konzisztenciája könnyebben biztositható.
- Képernyő szerkesztő
A képernyő szerkesztő (screen editor, forms editor,...) segitségével grafikussan
megtervezhető az alkalmazás kezelő felülete, azaz milyen adatok és hol jelenjenek meg a képernyőn, milyen adatokat
kell bekérni a felhasználótól. A grafikus megjelenés mellet t a szerkesztő segitségével lehet megadni az
adatkapcsolat vezérlését is, azaz milyen eseményeket fogadjon a program és hogyan reagáljon az egyes eseményekre. Egy
képernyő egy funkciót megvalósitó programmodulnak feleltethető meg.
- Menü szerkesztő
A menü szerkesztő (menu editor) alkalmas az egyes képernyők és nyomtatási programmodulok
összekapcsolására. A felhasználó a menőszerkezetben mozogva kiválaszthatja a keresett funkciót, illetve tájékozódhat
a rendszerben rendelkezésre álló lehetőségekről.
- Jelentés szerkesztő
A jelentés szerkesztő (report editor) alkalmas arra, hogy listáként, papiron
kinyomtatott jelentések formátumát megadjuk. Természetesen a formai megjelenés mellett itt is lehetőség van,
természetesen szerényebb mértékben, mint a képernyő szerkesztőnél, bi zonyos vezérlési elemek bevonására.
- Adatszerkezet szerkesztő
Az adatszerkesztő modul révén a kapcsolódó adatbázisban létrehozandó vagy
létrehozott adatok, relációk és attributumok, indexek szerkezetét lehet definiálni. Ebben a részben lehet megadni az
adatok forrását, elérési útvonalát is.
- ER modellező
Az alkalmazás adatszerkezetének tervezési munkájának megkönnyitésére az ER tervezővel
grafikusan és szemléletesen elkészithető az adatmodell. Az előállitott modellből a rendszer automatikusan generálja a
megfelelő relációs adatmodellt, s létre is hozza a szükséges táblázatokat, integritási feltételeket.
- CASE kapcsolat
Az alkalmazások fejlesztése az adatmodell mellett más, dinamikus területekre is kiterjed.
Ezek lefedésére, támogatására szolgálnak a CASE eszközök, melyek a fejlesztés teljes vertikumát átölelik. A kapcsolat
révén a CASE rendszerekben előállitott modellbő l a 4GL-ben mind az adatstruktúra, mind pedig az alkalmazások
előállithatók, létrehozhatók.
- Csoport munka támogatás
A nagyobb fejlesztések több ember több hónapos vagy több éves munkáját igényli. A
nagy létszám és a hosszabb fejlesztési idő miatt szükséges a változások pontos nyomonkövetése, az ütemezések
megvalósitása, a feladatkörök pontos kijelölése. Ezen adminisztr ativ tevékenységekben segit e komponens.
- Kész alkalmazások gyüjetménye
Olyan segédprogramok gyüjteménye, mellyel a gyakrabban előforduló
adatkezelési, vagy rendszeradminisztrációs funkciók végezhetők el.
A felhasználó a rendszer külső
elemeiként megjelenő szerkesztőkkel, modellezőkkel hatékony alkalmazás fejlesztési eszközt kap kézhez. A
szemléletesség, emberközeliség mellett a 4GL rendszerek még számos más előnnyel is rendelkeznek a hagyományos
eszközök kel szemben.
A 4GL rendszerek főbb előnyei:
- függetlenség: a megirt program több különböző
platformon is futtatható. A függetlenségnek több különböző szintje, területe létezik:
- adatbázis-kezelő
függetlenség, ugyanaz a program több, egymástól eltérő RDBMS rendszer felett is futhat,
- operációs rendszer
függetlenség,
- hálózat-függetlenség, különböző protokollok alapján működő hálózatok támogatása,
- terminál-függetlenség, különböző termináltípusokon is futtatható az alkalmazás.
- gyors
fejlesztés: a 4GL rendszerek gyors prototípus-készítést tesznek lehetővé, a programok fejlesztése nagyrészt
megvalósítható a megjelenítési, eseménykezelési paraméterek megadásával. Nincs tehát szükség a kulcsszavak
ismeretére, leírására, csak a paraméter-értékek megadására.
- teljesség: a 4GL nyelvek ma már minden olyan opciót magukba foglalnak, melyek az igények széles körét
kielégítik (pl. Windows felület, OLE, DDE).
- szabványosság: a 4GL komponensei a szabványos megoldásokra alapoznak, mivel ezzel a függetlenség, a
portabilítás is jobban biztosítható.
- GUI felület: a mai igényeknek megfelelően az alkalmazói programoknak grafikus, window-alapú kezelő
felületet is
támogatni kell. A karakteres kezelő felület sem felejthető még el, hiszen sok helyen az igényeket a karakteres
terminálok elégítik ki a le gjobban.
- nyílt rendszer: a szabványos, nyílt megoldások támogatása.
- csoportmunka támogatás: adminisztratív eszközök biztosítása a csoportmunka, a munkamegosztás
követelményeinek a biztosítására,
- rugalmasság: a változtatások megvalósítása a szükséges paraméterek átírásával gyorsan megoldható, a
fejlesztőrendszer több különböző platformon futtatható,
- korszerű programozástechnikai eszközök: a 4GL rendszerek igyekeznek a legújabb eredményeket is magukba
foglalni (OOP, kliens/szerver architektúra, ...).
A leírt pozitív vonások megvalósítása a 4GL rendszerek sajátos struktúrája révén biztosítható. A 4GL egy
többrétegű fejlesztőrendszert valósít meg (C31. ábra).
C31. ábra:4GL működési elve
A fejlesztő az utasításait egy környezetfüggetlen, feladatorientált
nyelven fogalmazza
meg. A rendszer az elkészült programot, mint egy adatállományt tárolja. Az adatrendszer továbbra is eszköz és
környezetfüggetlen formában van jelen. Az így elkészült se mleges leírást át kell konvertálni az aktuális
környezetre, hogy futtatható alkalmazást kapjunk. A konverziót úgynevezett gateway-ek, szerverek végzik. Ezek
alakítják át a környezetfüggetlen leírást a kijelölt adatbázis-kezelő, terminál, hálózat formátumá ra. Mivel a
konverzió automatikusan megy végbe, ezért az alkalmazások gyorsan átvihetők a különböző platformokra, a
felhasználónak csak a környezetfüggetlen leírás transzportjáról kell gondoskodni.
A 4GL egy hatékony,
korszerű fejlesztőeszköz az adatbázis-kezelő alkalmazások készítéséhez. Ennek megfelelően jelentősége is növekszik az
adatbázisrendszerek piacán. Az International Data Corporation [4] felmérése szerint a 4GL-ek területén várható a legn
agyobb fejlődési ütem a termékek forgalmát érintően.
C32. ábra:Adatbázis komponensek fejlődési üteme
Az ábrában jelzett növekedési adatok az 1992-97-es időszakra
vonatkoznak. A 4GL rendszerek fontosságát mutatja, hogy egyre több cég jelenik meg saját, általa kifejlesztett 4GL
rendszerrel. E cégek között vannak úgynevezett független cégek, illetve olyanok , melyek adatbázis-kezelő
rendszereket is készítenek. Általános vélemény szerint amíg az adatbázis-kezelők területén létezik egy elfogadott
szint, amit hatékonyság és szolgáltatások tekintetében az RDBMS-eknek biztosítaniuk kell és ezért az RDBMS rendszer
ek igen hasonlóak egymáshoz, addig a 4GL fejlesztő eszközöknél tágabb lehetőség van a kapacitás, funkcionalitás
megvalósítására. A RDBMS-ek homogenizálnak, a 4GL rendszerek differenciálnak. Ezért a nagy RDBMS-forgalmazó cégek is
egyre intenzívebben fordul nak a 4GL rendszerek felé.
Jóllehet, az RDBMS fejlesztőknek az lenne az előnyös,
ha az ő termékük szerepelne a felhasználó által választott RDBMS/4GL rendszerben mindkét komponensként, de a
nyitottság iránti igény a piac részéről olyan erősen jelentkezik, hogy kénytelenek 4GL rends zereikben más RDBMS
típusokat is támogatni. Az Ask Group cég, amely az Ingres RDBMS-t forgalmazza, már termékeinek elnevezésében is utal
a nyitottságra, szabványosságra. Az RDBMS-üket Open Ingres/Intelligent Database néven terjesztik. A
fejlesztőeszköz-cs aládjuk reprezentánsa az 1993-ban beindított Open Road (Open Rapid Object Application
Development), melynek 4GL komponense az ODBC interface-en keresztül más, pl. Oracle, Sybase RDBMS-ekhez is elérést
nyújt. Az Ask cég stratégiai irányvonala, hogy 4GL ren dszerét függetlenül az Ingrestől, önállóan is terjeszti.
A legfontosabb 4GL rendszerek közé az alábbi termékek sorolhatók:
- Informix 4GL
- FOCUS
- Ingres 4GL
- Oracle
- Adabas
- Progress
- Power builder
- Uniface
- Gupta
- Magic
- Visual Object
- Acceus.
A Gartner Group elemzése az egyes 4GL rendszerek összehasonlítását mutatja be a következő
ábrán:
C33. ábra: 4GL rendszerek összehasonlítása
A 4GL
rendszerek előnyei ellenére még bizonyos szempontok hátráltatják gyorsabb elterjedésüket:
-
drágábbak, erőforrás-igényesebbek, mint a hagyományos (3GL) rendszerek,
- a hagyományos megoldások már beváltak,
- nincs mindig szükség a 4GL nyújtotta előnyökre,
- felhasználók lassabban térnek át újabb eszközökre.
E hátráltató tényezők ellenére a 4GL rendszerek elterjedése a jövőben még intenzívebb képet fog mutatni. Ezt
igazolja a legfrissebb statisztikai adat is, amely szerint a PC-s világban 1995-ben a legnagyobb fejlődést, mégpedig
kimagasló mértékben, az adatb ázis-fejlesztő rendszerek területe mutatta.
A 4GL rendszerek átfogóbb
megismeréséhez kissé közelebbről is bemutatjuk az egyik terméket, az Uniface-t, a termékismertető prospektus
legfontosabb információt kiemelve.
Az Uniface rendszer az alábbi ábrában megadott komponensekből épül fel.
Látható, hogy szerkezete lényeges elemeiben megegyezik a korábban felvázolt struktúrával.
A rendszerhez tartozó CASE kapcsolat számos CASE eszköz felől képes az alkalmazás modellt
elfogadni. A CASE eszközökben a feladat leírását segítő ábrák közül programozói szemmel egyiklegfontosabb az ER
modell, amely a feladatban szereplő táblázatokat és a
közöttük lévő kulcsos kapcsolatokat teszi láthatóvá. Az Uniface-ben önállóan is létre lehet hozni ER diagrammokat, s az alkalmazás modell összes definíciós lehetőségeit az ábra objektumain keresztül is el lehet érni. A következő ábra egy mintaképet mutat
be az Uniface ER szerkesztőbjéől, melyben a hagyományos jelölésmódtól eltérő formalizmust valósítottak meg.
Az alkalmazás modellben lehet előírni a táblák, mezők, kulcsok, relációk árnyalt tulajdonságait, ahivatkozási épség fenntartásának módját, az egyes objektumokkal történő különböző események által indított eljárásokat stb. A táblázatokban definiálhatók szá
rmaztatott, nem tárolandó mezők is, melyek procedurálisan kaphatnak értéket, és a memóriában ill. a képernyőn táblázatmezőként viselkednek.
A Uniface alkalmazások grafikus (Windows, Motif) és karakteres üzemmódban változtatás nélkül futtathatók. Minden grafikus objektumnak megvan a karakteres megfelelője is. A képernyőn az egyes táblázatokhoz területeket kell rendelni. A táblázat mezői csak a
megadott területen belül helyezkedhetnek el. Több táblázat összekapcsolása esetén érvényesül a képi beágyazás elve, vagyis a belső táblázatban csak a külksőben aktuális rekordhoz tartozó adatok láthatók. A listadefiníciók ugyanazzal az eszközrendszerrel
készülnek, mint a képernyők, minden képernyő képes nyomtatott kimenetet produkálni. A szerkesztés eszközrendszere emlékezetet az MS-Access (FoxPro) vagy Visual Basic megoldásaira. Lehetőség van csak helyileg érvényes táblázatokat, mezőket létrehozni akár
tárolandó, vagy nem tárolandó formában, de a képernyőkön egyszerű memóriaváltozók is megjelenhetnek. Az egyes képernyő és lista objektumok újabb triggerpontokat, azaz procedurális beavatkozási lehetőségeket adnak az alkalmazás modellben már szerepeltek me
llé.
Az Uniface-ben meglévő lehetőségek árnyaltságára utal, hogy a mintegy 45 féle triggerpont, 77 féle különböző procedurális utasítás használható, valamint 65 féle előre definiált változó ill. állapotjelző segíti a munkát. A rendszer mindkét irányban nyitott
a 3GL nyelvek felé. A futtatórendszer is felhívható 3GL programból és 3GL rutinok (C, Pascal, Cobol, Fortran) is elérhetők az Uniface procedurákból.
Az egyes képernyők tervezésekor azonnal kipróbálható az eredmény.A rendszer mindenben a maximális függetlenségre törekszik. A platfoprm függetlenség (VAX, UNIX, VOS, OS/2, PM, DOS, MS-WINDOWS), hálózat függetlenség (DECNET, TCP/IP, LAN, Novell) és adatbáz
is függetlenség (Sybase, Oracle, Informix, Ingress, Progress, DB2, RMS, C-isam, xBase) egyben a maximális hordozhatóságot is biztosítja.
A nagyobb minkák támogatására lehetőség van az egyes fejlesztők egyedi nyilvántartására, jelszavas védelek beállítására, a tevékenységi, hozzáérési jogosultságok kijelöésére. A verzió követő rendszer segít abban, hogyaz egyes fejlesztők ne zavarják egymás
munkáját globális objektumok módosításakor sem.
Az Uniface használata többfelhasználós környezetben működő kliens-szerver alkalmazások készítésére ajánlott. A különböző adatbázis kezelőkkel való kapcsolattartást saját csatolókon keresztül valósul meg. A Polyserver használata esetén heterogén adatbáziso
k egyidejű konzistens használata is biztosítható akár több szerveren is.
A 4GL rendszer által biztosított hatékonyságnak, függetlenségnek természtesen ára is van, s a 4GL rendszerek rendszerint jóval drágábbak a hagyományos fejlesztő eszközöktől. Így például az Uniface 1995-ben mintegy egy ötször - tízszer drágább volt, mint a
C,Pascal fordítók, vagy éppen a PC-s xBase-es adatbáziskezelők.
A megnövekedett lehetőségek sokakat a meggondolatlan nagyobb száguldásra csábithatnak,hiszen a 4GL segítségével percek-órák alatt elkészíthetünk egy kisebb rendszert. Ez a lehetőség azt is magában hordozza, hogy valóban pár óra alatt próbáljuk meg elkészí
teni a rendszerünket. Ezzel azonban átugorjuk a fejlesztés szokásos, hagyományos lépcsőit, az adatmodell helyes és normalizált megvalósítását. Ezek a lépések azonban nem kerülhetők meg és nem ugorhatók át, ha időtálló és hatékony, korrekt rendszert kívánu
nk létrehozni. A 4GL rendszereknek éppen az a céljuk, hogy több idő jusson a rendszerterv, a logikai struktúra helyes kialakítására, s ne kelljen az unalmas, időtrabló rabszolga munkával fáradoznunk. Csak ennek figyelembe vételével ajánlatos leülni egy 4G
L rendszer elé, mert különben a 4GL hatékony fejlesztő eszköz helyett a világ leggyorsabb selejtgyártójává válik a kezünkben.
A 4GL alapjainak részletes megismerésére két rendszert mutatunk be részletesebben. Az első a PC-s környezetben futó, az xBase-es rendszerekhez kapcsolódó FoxPro rendszer, pontosabban annak FoxPro for Windows 2.6 -os változata. A másik rendszer a nagy RDBM
S-ek közé tartozó Oracle rendszer SQLForms alkalmazás fejlesztő komponense. A rendszerek tárgyalásánál már feltételezzük a dBase és az SQL nyelv és a relációs adatmodell ismeretét.