MAGIC üzleti indoklás

Bevezetés

A Magic egy forradalmi programozási elv, amely teljesen megszünteti a fejlesztési ciklus alatt az időpocsékolást és az ismétlődést. A Magic egy körültekintően megtervezett alkalmazásmotor ötletes koncepciójára épül, amely a Magic gyűjtőiben található teljes programot végrehajtja. A Magic szellemesen megtervezett gyűjtője tárolja a teljes alkalmazást - ide értve az adatstruktúrákat, az üzleti szabályokat, a program logikát, és a megjelenítést.

A Magic magasszintű absztrakciója lehetővé teszi, hogy a programozás egyfázisú folyamat legyen, azáltal, hogy teljesen megszünteti a fordítási és a linkelési fázist. Az alapkoncepció az, hogy a fejlesztő által bevitt kódot a Magic alkalmazásmotor hajtja végre, ami a magas termelékenységi szint kulcsa. A gyors és ismétlődő prototípus-készítési lehetőségek maximalizálják a végfelhasználó bevonását a fejlesztés közben, így biztosítva a lehető legnagyobb elégedettséget a kész alkalmazás esetében.

A Magic meghozta a gyors alkalmazásfejlesztés és futtatás (RADD) költségeket erősen csökkentő koncepcióját a vállalkozások számára, így biztosítva versenyképességet a mai, dinamikus üzleti világban. A Magic a fejlesztőknek olyan eszközöket nyújt, amelyek szükségesek egy versenyképes IT infrastruktúra gyors megépítéséhez. Mikor egy szervezet üzleti céljai a stratégiai feladatkritikus rendszerek megvalósításán és szűkre szabott idő-, és költségkeretén múlnak, a Magic biztosítja azokat az eszközöket, amelyek szükségesek a verseny megnyeréséhez.

Egy egységes fejlesztési elv keretében a Magic lehetővé teszi a fejlesztők számára, hogy vállalkozás-szintű alkalmazásokat építsenek, amelyek a számítógépek, operációs rendszerek, és adatbázisok széles skálájára átvihetőek mind a Web-alapú, mind a hagyományos kliens/szerver alkalmazások esetében. A Magic fejlesztői környezet integrálja egy nagyon könnyen hordozható RADD-környezet előnyeit egy skálázható full-featured tranzakciófeldolgozó rendszerével, lehetővé téve a fejlesztők számára hogy leszállítsák a szükséges üzleti funkcionalitást időre és költséghatáron belül, a teljes vállalkozás szintjén.

A Magic egy egyedi elvrendszert biztosít a fejlesztők számára, hogy gyorsan és hatékonyan méretezhessenek alkalmazásokat munkacsoportoktól a vállalati szintig, a kliens/szerver architektúra felől az Internet felé való terjeszkedés lehetőségének a megtartásával. A fejlesztők a Web-alapú alkalmazásokhoz való fejlett JAVA és HTML felületek megépítésére ugyanazt a fejlesztési elvet használják, mint a hagyományos GUI-kliensek esetében.

A Magic elvrendszerének alapvető koncepciója a skálázható, nyílt számítástechnikai megoldások gondolata. A Magic, az örökölt rendszerek legjobb integrálója a piacon, könnyedén méretezhető a vegyes platformokkal és adatbázisokkal működő heterogén, többszálú architektúrájú környezetekben is. A szervezetek hasznosíthatják az örökölt hardver- és szoftvervagyonukat, ugyanakkor gazdaságos átjárást biztosíthatnak a kliens/szerver környezetbe és az Internet-alapú számítástechnikába. Az üzlet elindulhat a kliens/szerver architektúra és a Web irányába, úgy hogy megőrzi a korábbi befektetéseket az ISAM vagy SQL-alapú adatok, hálózati számítógépek, grafikus munkaállomások és webböngészők által történő egyidejű elérésével.

Az RDBMS-eladók által szállított fejlesztőeszközöket jellemző szabadalmaztatott lock-inektől mentesen, a Magic egy független fejlesztési eszköz, könnyedén adaptálható a mai kor dinamikus üzleti környezetéhez, míg megőrzi a múltban történt befektetéseket. A Magic alkalmazásmotor meg van írva a főbb platformokhoz, és az elterjedtebb adatbázis rendszerekhez hídként biztosítottak az átjárók, így biztosítva az együttműködést kiugró rugalmassággal. A tény, hogy a teljes alkalmazás a gyűjtőben van, azt jelenti, hogy a portoláshoz szükséges erőfeszítés a minimumra csökken.

Ezek a koncepciók különlegesen hatékonynak bizonyultak a valós életben, ahol a Magic hosszú ideje, objektív összehasonlítások során demonstrálta fölényét, ideértve a sorozatos győzelmeit a főbb fejlesztői versenyeken, és dokumentálásra került számos vállalati helyszínen. A Magic-fejlesztők feladatkritikus alkalmazásokat építenek a nagyvállalatoknál szerte a világon, gyorsabban mint bármely más eszközzel a piacon!

Üzleti indoklás

Míg ez a dokumentum elsősorban a Magic technikai koncepciója alatt megbúvó elvrendszerre, annak magyarázatára, alapjaira és előnyeire összpontosít, a Magic létjogosultsága nagyon erősen a piac gazdasági valóságában gyökerezik.

Azok az üzleti vállalkozások, amelyek nem szállítanak mérhető gazdasági előnyöket a vevőknek, nem tudják igazolni további létüket.

A mai üzleti világ fő célja a költségek minimalizálása egy állandóan változó környezetben. Amikor megpróbálunk költségkereten belül maradni, két fő követelmény merül fel:

Az első lehetővé tenni, hogy egy alkalmazás a szervezeten belüli igények változásával összhangban skálázható legyen. Ez lehetővé teszi a szervezet számára, hogy abba fektessen be ami a jelenhez szükséges és könnyen reagálhasson a jövő váratlan követelményeire.

A második fontos követelmény egy olyan eszközbe befektetni, amely képes elvégezni a munkát. Egy eszközt kell megtanulni, fenntartani, amely termelékeny, nagy teljesítményű, megbízható és elég robosztus ahhoz, hogy teljesítse egy szervezet igényeit a munkacsoport szintjétől fel egészen a vállalkozás szintjéig.

Az alkalmazás-fejlesztőket olyan új alkalmazások szállítására kérik fel, amelyek nagyon jelentős hardver, operációs rendszer és örökölt adat befektetéseket is felhasználják. Míg az ipar manapság PC-k, NC-k, intelligens munkaállomások, grafikus munkaállomások, helyi és nagy területű hálózatok, SQL adatbázisok, megosztott heterogén kliens/szerver konfigurációk, és Internet / Intranet-képes alkalmazásokat igényel, még mindig százezernyi - talán milliónyi - alacsony szintű dedikált terminál és PC van üzemben és működik kielégítően. A mai kor üzleti légkörében a vezetőség különösen vonakodik leírni ilyen hatalmas befektetést. A vezetőség mindkét világból a legjobbat akarja - egy, az új technológiák felé mutató növekvő áttérési utat, amely lehetővé teszi a meglévő hardver-, szoftver- és adatbefektetések hasznosítását.

Egy üzlet piaci erőkre való reagálási képességének kritikus tényezője az üzlet sajátos problémáit megcímző alkalmazások szállítása. Míg a legfelső szintű vezetés képes lehet üzleti stratégiák és utcai szintű taktika megfogalmazására napok vagy akár órák alatt, a megvalósításuk gyakran hetekben vagy hónapokban mérhető. A megvalósításhoz vezető úton a leginkább szűk keresztmetszet az, hogy szükséges az üzleti tevékenységek IT infrastruktúra által történő támogatása.

Ezért törvényszerű, hogy az olvasó megkérdezi: „Milyen gazdasági előnyöket szállít a Magic, amelyeket a Magic versenytársai nem?”

A Magic kiválasztása mellett szóló üzleti érvek pofonegyszerűek. A Magic használata által:

  • A piacra kerülési idő drámaian lerövidíthető
  • Az alkalmazás-fejlesztési költségek töredékükre csökkenthetőek
  • A Webhez és a kliens/szerver környezetekhez csak egy elvrendszert kell megtanulni
  • Az alkalmazások teljesítik a valódi üzleti igényeket
  • A végfelhasználói követelmények visszatükröződnek az alkalmazáson
  • A korábbi hardver- és DBMS-befektetések megörződnek
  • Az alkalmazásokba történt befektetések megörződnek az örökölt technológiának a Web felé történő továbbfejlesztése által
  • Az egyhangú fordítási és linkelési szakasz eltűnik a fejlesztési életciklusból
  • A már meglévő szoftver módosítása gyorsan és pontosan végrehajtható
  • A meglévő kliens-alapú alkalmazások a Magic-szerverrel méretezhetőek

Ezen pontok bármelyikének a nyers üzleti vonatkozása gyakran önmagában is elég a jelentős befektetéskor történő visszatérüléshez. Ezeket együtt véve, a Magic esetében elsöprővé válik.

A MAGIC elvrendszere

Egy zseniális alkalmazásmotor elvrendszerének megvalósítása egyedi módszertan segítségével

A Magic elvrendszere egy innovatív technológiából és egy vizuális fejlesztési módszertanból áll. A magas szintű, táblázat alapú módszertan a Magic alkalmazásmotort hasznosítja, így biztosítva összetett, ipari méretű, feladatkritkus alkalmazások gyorsabb kifejlesztését, mint bármely más piacon lévő eszköz használatával.

Az utóbbi időben az iparág elemzői a virtuális gép (Virtual Machine) koncepcióját a Magic fejlett, long standing alkalmazásmotorjának analógiájaként használják. A virtuális gép analógiája gyakran felhasználásra kerül a Magic alkalmazásmotor platformfüggetlenségének és architektúra-semlegességének kiemelésekor.

Nem a Java az első programozási nyelv, ahol a virtuális gép jelenlétére számíthatunk a platformok közötti hordozhatóság érdekében. A Magic Software Enterprises Inc.-től származó Magic hosszú ideje használ virtuális gépet, hogy kiterjedt „írd meg egyszer / futtasd akárhol“ típusú hordozhatóságot biztosítson.

Hurwitz Consulting Group

A Magic technológiája az okos alkalmazásmotorban nyilvánul meg, amelynek jelentős beépített végfelhasználói funkcionalitása van, amely feltételesen ki- bekapcsolható a fejlesztő által a különböző alkalmazások igényeinek megfelelően. A Magic alkalmazásmotorja valójában egy egész készletnyi erősen optimalizált és specializált motor, lásd az 1. ábrát. Egy különösen feltűnő példa az Újraszámító Motor, ami lehetővé teszi a vizuális vezérlők és adatbázis-objekumok „Excel-szerű” frissítését.

A Magic vizuális fejlesztési módszerével soha nincs szükség arra, hogy lemenjünk kód vagy saját script szintjére. A táblázatok nem csak az egyértelmű adatmeghatározásokhoz használatosak, hanem a tényleges alkalmazáslogikához is. A fejlesztési megközelítés nagyrészt deklarációs természetű. Az adatbázismanipulációknál a beépített taszkmódok használata épp úgy, mint a tulajdonságok beállítására szolgáló párbeszédablakok, mentesítik a fejlesztőt az egyhangú kódsorok írása alól. A Magic alkalmazások könnyen és gyorsan karbantarthatóak, a Magic táblázatközpontú módszerével gyakran a jelentősebb változások is „röptében” végrehajthatóak.

Az okosan megtervezett gyűjtő a teljes alkalmazás funkcionalitásának le nem fordított, platform-független tárolására való. Ide tartoznak az adatstruktúrák, az üzleti szabályok, a programlogika, és a megjelenítési információk, amelyeket legjobban úgy lehet értelmezni, mint az alkalmazásmotor által végrehajtandó adatokat.

Picture 1

A Magic nagyon összetett, hordozható kliens/szerver alkalmazások építésére való nagy hatékonyságú RAD eszköz. Ez az eszköz egy egyedi megközelítésre alapszik, amely az alkalmazást az adatbázistáblában absztrakt bejegyzések sorozataként tárolja. Futás alatt a Magic motor végig lépked a fájlon, így végrehajtva az alkalmazást.

Hurwitz Consulting Group

A szoftvereszközök fejlődése

Fejlődés

A programozás egyszerűsítésének problémája a kód alapkoncepciójával kezdődött: a programozónak a gép nyelvét - a kódot - kellett használnia, hogy elmondja, mit akar csinálni. A programozó kódja vezérelt minden részletet, ami a hardver fizikai aspektusára vonatkozott. A legelső programozási koncepció, ami drámaian csökkentette a programozó terheit, a szimbolikus nyelv volt. Az assemblerek mechanikusan lefordították az ember számára olvasható szimbólumokat a számítógép számára olvasható bináris kódolású utasításokra. A fordítók megkönnyítették a programozó munkáját azáltal, hogy lehetővé tették a magasabb absztrakciós szintű nyelvek használatát. Ennek ellenére ezeknek a fordításoknak a kimenetét még manuálisan össze kell szerkesztetni, betöltetni, és működtetni.

Az eszközök úgy fejlődtek, hogy az absztrakció szintjének növelése által javítják a termelékenységet. A cél az volt, hogy lehetővé tegyék a fejlesztők számára, hogy az alkalmazáslogikára koncentráljanak, csökkentsék a fizikai környezettel való törődést és csökkentsék a triviális ismétlődő erőfeszítést.

A koncepció: növeld az eszközök terhelését, hogy csökkentsd a programozók terhelését.

Az operációs rendszereket általános célú szoftvermotorként fejlesztették ki, amelyek végrehajtják a programokat, amikor végrehajtható formában tálalják nekik. Ahogy az iparág fejlődött, olyan relációs adatbáziskezelő rendszerek (RDBMS-ek) kerültek bevezetésre, amelyek az adatbázis követelményeinek logikai szintű leírásához szükséges eszközök biztosítása által magasabb szintű absztrakciót tettek lehetővé. Fogalmilag - itt is - az RDBMS egy futtatómodul, egy különleges célú szoftvermotor, amelyet az adatbázis funkcióinak kezelésére terveztek. A következő termelékenységi előnyt a negyedik generációs nyelvek kifejlesztésével érték el, amelyek az absztrakció újabb szintjét honosították meg, ahol a programozási erőfeszítést csillapították a képernyőfunkciók és a végfelhasználói beavatkozás, amelyeket magasabb szinten lehet kezelni. Fogalmilag, a 4GL futtatómodul egy különleges célú szoftvermotor, amit kifejezetten a képernyőfunkciók és a végfelhasználói beavatkozás lekezelésére terveztek. Ez a három szoftvermotor a 2. ábrán kerül bemutatásra.

Picture 2

2. ábra: Szoftvermotorok

Magic - Az alkalmazásmotor

Épp az imént láttuk, hogy három egyszerű szoftverproblémára - operációs rendszerek, adatbáziskezelő rendszerek, és 4GL eszközök - hogyan nyújtott megoldást egy egyszerű, egységesítő koncepció: a motor.

Felmerül a roppant egyszerű kérdés: kitalálható-e egy olyan motor, ami olyan mértékben csökkenti a programozók terhelését, hogy egy új programozási elvrendszer jön létre aminek olyan drámai előnyei vannak, hogy az már varázslatnak tűnik? Létrehozható-e egy olyan alkalmazásmotor, ami azokat a platform-függetlenséggel kapcsolatos előnyöket biztosítja, amelyeket jellemzően egy virtuális géphez társítanak, ami az alkalmazásfejlesztési termelékenységet nagyságrendekkel képes növelni?

Picture 3

3. ábra: Magic - a motor

Ennek a dokumentumnak a további része igenlő választ ad erre a kérdésre, majd tovább lép, hogy elmagyarázza nem csak azt, hogy hogyan érhető ez el, de a Magic megoldásának az elágazásait is a kor számítógéprendszereinek gyorsan elillanó világában.

Hol van a Magic alkalmazáskódja?

Amióta csak az első generációs fordítóeszközök kifejlődtek, a számítógépes alkalmazás kódjának végrehajtható formája nagyon sokban különbözik attól a formától, amit a programozó bevitt. Akárhogy is, a Magic esetében, az olyan fogalmak, mint a forráskód, lefordított kód, tárgykód, félig lefordított kód, pszeudokód, meta-nyelvi kód, és végrehajtható betölthető modulok, mind elhagyhatók. Ehelyett, a Magic alkalmazások „kódjának” programozó által történő bevitelének formája és a forma, ahogy ezt a Magic alkalmazásmotor számára végrehajtásra tálalja, fogalmilag megegyeznek. Ez egy egyfázisú folyamat, ahol a fejlesztő által bevitt „kód” azonnal végrehajtható a motor által, bármilyen közbülső feldolgozás nélkül.

Fontos megjegyezni, hogy a Magic csökkentette a nyelv szintaxisát, míg megtartotta a szemantika gazdagságát, így megszüntetve az interpreteres nyelvekhez kapcsolódó tipikus lassulást. A Magicben a feldolgozási idő nagy része az alkalmazás különböző funkcióinak végrehajtásával telik. Ezek a funkciók az alkalmazásmotor részeként beépítettek, és erősen optimalizált, natív kódként kerültek megvalósításra. Ugyanakkor, ezek a funkciók elegendően paraméterezettek, így lehetővé téve a fejlesztő számára az alkalmazások széles választékának a leírását.

A Magicnek jelentős sikerei vannak a komplex, üzletkritikus rendszerek gyors fejlesztésének területén. A kódját már lefordították majd' minden platformra, tehát teljes sebességen fut... Beolvas egy lefordítatlan, bináris kontrollfájlt. A kontrollfájl nyelve annyira sűrített, hogy gyakorlatilag megszüntet minden interpretálással kapcsolatos lassulást futás közben.

Meta Group

A tény, hogy az alkalmazás teljes leírása, beleértve a logikát, az üzleti szabályokat, az űrlapokat és az adatokat, a Magic gyűjtőiben kerül letárolásra (a Magic kontrollfájlja) és a Magic alkalmazásmotor hajtja végre, is hozzájárul a Magic híres fejlesztési sebességéhez.

Az eredmények:

  • Az alkalmazás fejlesztési folyamatából teljesen ki vannak iktatva a fordítók és linkerek
  • A fordítók és linkerek miatt a hardverbe történő tőkebefektetés megszűnik
  • A fejlesztők a funkcionalitásra és az üzleti követelményekre koncentrálhatnak, a kód és az alacsony szintű „hogyan” utasítások helyett
  • Egy alkalmazás minden része letesztelhető, amint a leírása bevitelre került, így megtakarítva az egyhangú „szerkesztés-fordítás-linkelés” ciklusokat
  • Az alkalmazások végfelhasználói aktívan részt vehetnek a prototípuskészítésben

Gyors alkalmazásfejlesztés és futtatás a maximális termelékenységért

Az utóbbi években látható volt a tervezéshez, fejlesztéshez és az alkalmazások végfelhasználókhoz történő szállításához kötődő hagyományos „vízesés” megközelítés leváltása. Az alkalmazásfejlesztés klasszikus módszerei, mint a „vízesés„ módszer, amely a végfelhasználókat a fejlesztés korai szakaszában az igényeik meghatározására kényszerítette, nem biztosította azt a rugalmasságot, amelyre a felbukkanó dinamikus szervezeteknek szüksége van.

A gyors alkalmazásfejlesztés és futtatás (RADD) elvét arra szánták, hogy alternatívát biztosítson az üzleti környezet számára a hagyományos módszerrel szemben, így lehetővé tegye a végfelhasználó bevonását az iteratív prototípus készítési technikák összes fázisában, lásd: 4. és 5. ábra. A tény, hogy minden modern eszköz érvényesíti ezt a megközelítést, bőségesen bizonyítja a hatékonyságát.

Picture 4

4. ábra: A hagyományos alkalmazásfejlesztési ciklus

Picture 5

5. ábra: A Magic gyors, növekményes RADD ciklusa

A Magicben, a RADD megközelítés eléri a legvégső kifejezési formát, maximalizálva a végfelhasználó hozzájárulását és az alkalmazással történő azonosulását, és forradalmasítja a fejlesztők és a felhasználók közötti kapcsolatot.

A Magic kódolásmentes, gyors alkalmazásfejlesztő eszköze népszerű az ügyfelek körében a feladatkritikus kliens/szerver és Web-alapú alkalmazások nagy hatékonyságú fejlesztése miatt...

Datapro Information Services

Egy RADD projekt előnyeinek maximális hasznosításához a fejlesztőknek a megfelelő eszközre van szükségük. A kezdeti koncepciótól kezdve a Magicet a gyors alkalmazásfejlesztés és futtatás támogatására tervezték. A Magic egyedi táblázatközpontú architektúrája elősegíti a fejlesztés egy dinamikus és iteratív megközelítéstét, ahol a felhasználók bevonhatók a fejlesztési folyamatba és láthatják az alkalmazást a szemük előtt fejlődni.

Habár a Magic nincs egy bizonyos életciklusbeli módszertanhoz kötve, a következő rész egy fejlett RADD-módszertant mutat be.

Dinamikus Rendszerfejlesztési Módszertan (Dynamic System Development Method - DSDM) RADD-eszközökhöz

A gyors alkalmazásfejlesztés és futtatás számára az egyik legjobb szemlélet a DSDM. A Magic a független DSDM-konzorcium egyik alapító tagja, szorosan együttműködik a szervezettel biztosítva, hogy a fejlesztési projektek előnyt szerezzenek a leggyakorlottabb RADD-fejlesztők tudásából és közös tapasztalatából.

A Magic és a DSDM kombinációja megszünteti egyszer és mindenkorra az úgynevezett elkerülhetetlen kieséseket.

  • erő kontra hatékonyság
  • gyors szállítás kontra karbantarthatósági képesség
  • könnyű használat kontra funkciógazdagság
  • üzleti igények kielégítése kontra telepíthetőségig eltelő idő

A DSDM biztosítja a megközelítést és módszertant a RADD projektkörnyezet számára, beleértve a nagy projekt- és konfigurációkezelő technikákat, irányelveket a kockázat- és erőforrásbecsléshez illetve a minőségi és alkalmassági kérdésekben. Mivel a DSDM módszertan a fejlesztési életciklus korai szakaszában bevonja a végfelhasználókat, valószínűbb, hogy a befejezett project megfelel az igényeiknek és a bevezetés simán fog történni. A módszertan arra szolgál, hogy biztosítsa, hogy a végső rendszer megfelel a szervezetek valódi üzleti követelményeinek, ugyanakkor nagyban csökkenti a talán tökéletes, de teljesen használhatatlan rendszerek építésének kockázatát.

Deklaratív programozás

A deklaratív programozás a programozási szemléletmódok összefoglalására használatos kifejezés, amelyben a programozó erőfeszítései inkább az alkalmazáslogikára összpontosulnak (a mit) mint a megvalósítás részleteire (a hogyan). Különböző tudományos intézetekben jelentős kutatások vannak folyamatban ezen a területen, a meghatározott céljuk, egy mennyiségi ugrás előre az alkalmazásfejlesztési termelékenység területén. Valójában, a Magicet használó fejlesztők által elért hatékony termelékenység tanúsítja a programozás deklaratív szemléletmódjának ígéretének betartását.

A deklaratív programozás az adatbázis-alkalmazás fejlesztés sok fontos aspektusán keresztül az egész Magicben megnyilvánul, beleértve az adatmanipulációt, a formok tulajdonságait, és az eseménykezelést.

A Magic kiugró erőssége a procedurális programozás iránti igény megszüntetése

Ovum

Adatbázismanipuláció

Vizsgáljuk meg a kiugró példáját a Magic által felhasznált deklaratív programozásnak, ahogy az az adatbázismanipulációban megnyilvánul.

Az adatbázismanipuláció programozásának egy nem deklaratív megközelítésében, a programozó jellemzően explicit módon ott határozza meg a kódban azt a bizonyos végrehajtandó adatbázistevékenységet, ahol logikailag végre kellene hajtódnia. Ezen tevékenységek közé tartozik egy rekord lekérdezése, egy új rekord hozzáadása, egy meglévő rekord törlése, vagy egy létező rekord módosítása.

A Magicnek azonban nincsenek ilyen jellegű adatbázisműveletek végrehajtására szolgáló parancsai. Akkor hogyan is adható meg és vezérelhető az adatbázismanipuláció?

A legkisebb teljes feldolgozási egység a Magicben az üzleti taszk. Egy üzemmód taszkhoz rendelésével, a Magic alkalmazásmotor megtudja, hogy milyen adatbázisműveletet kell végrehajtania. Az alkalmazásfejlesztő az alkalmazás fejlesztése közben eldönti a taszk végrehajtási módját (Módosítás, Létrehozás, Törlés, vagy Lekérdezés). Az alkalmazásfejlesztő nézőpontjából, a hely, ahol a Magicben deklarálásra kerül, nem kapcsolódik fizikailag ahhoz a helyhez, ahol a tulajdonképpeni logika meghatározásra kerül, értsd: Taszk végrehajtás tábla (Lásd: 21. és 23. ábra a 4. és 5. fejezetben).

Form tulajdonságok

A Magic által erősen használt deklaratív programozás másik kiugró példája a Magic formszerkesztőjénél játszik fontos szerepet. Nincs szükség procedurális kódolásra egy form jellemzőinek a megtervezéséhez és beállításához. Egy tulajdonságablak opciók széles körét biztosítja, ami megszünteti azt, hogy akár egyetlen sor kódot is kelljen írni. A tulajdonságok beállíthatók akár a teljes form szintjén, és a formon belül a vezérlők szintjén is. A Magic újraszámító motorja lehetővé teszi a „röptében” történő frissítéseket, biztosítja a belső konzisztenciát fejlesztői közbeavatkozás nélkül.

A következő példa bemutatja, hogy egy nyomógomb „látható” tulajdonsága könnyen vezérelhető egy kifejezés által, ami az Expression Rules táblázatban található

Picture 6

6. ábra: Egy formon lévő nyomógomb kikapcsolása

Nem kevésbé lenyűgöző a Form Editorból elérhető Variable Palette, amely lehetővé teszi a vezérlőknek közvetlenül az adatstruktúrából történő létrehozását. Az adatmodell és a GUI-n történő ábrázolása közötti közvetlen logikai kapcsolat ábrázolásának lehetővé tétele a Magic által megnövelt termelékenységnek egy másik jelentős megnyilvánulása.

Eseménykezelés

A Magic eseménykezelése még lenyűgözőbb példája a deklaratív programozás Magic által történő támogatásának. A nem procedurális kódolás erejét tanúsítja azzal, hogy programok vagy altaszkok végrehajtását gombnyomáshoz, eltelt időhöz, vagy egy feltétel igazzá válásához köti. Például, a végfelhasználó megnyomhat egy hot-keyt (egy előre definiált, az eseményt elindító gombot) és végrehajthat egy eseményprogramot egy mező szerkesztése közben. Mikor az eseményprogram, vagy az altaszk befejeződik, a végfelhasználó folytathatja a mező szerkesztését ugyanattól a karaktertől, ahova a kurzor mutatott az esemény elindítása előtt.

A Magic adatbázismanipulációra, formtulajdonságaira és eseménykezelésére vonatkozó alapkoncepcióját vázoltuk fel, a Magic által erősen támogatott deklaratív programozás példájaként. Ez az az egyedi, nem procedurális programozás, amely az okos alkalmazásmotorhoz hozzájárulva hatalmas előnyöket biztosít a Magic-fejlesztő termelékenységében.

A relációs táblastruktúrákra alapozott vizuális fejlesztés növeli a termelékenységet

A strukturált formában bemutatott információt könnyebb befogadni és felfogni, mint a strukturálatlan információt. A vizuális úton bemutatott információ sokféle formában jelentkezhet - szöveg, grafika, ikonok. A strukturált információ vizuális bemutatásának egyik példája a táblázat. Az a tény, hogy olyan sok mező oly sok információja jelenik meg táblázatos formában, a legmeggyőzőbb bizonyítéka a táblázatok hatékonyságának mind az információ-előkészítő, mind az információ-felhasználó szempontjából. A táblázatok kiegyensúlyozott mechanizmust biztosítanak a szöveges és numerikus információ strukturált módon történő bemutatásához.

...a Magicnek ítéljük az Analyst's Choice díjat... Kifejezetten úgy találtuk, hogy egy alkalmazás leíró táblák által történő megépítése körülbelül feleannyi időt igényel, mint a hagyományos procedurális kód megírása.

Peter Coffee, PC/Week

A Magic teljesen kihasználja ezt az alkalmazásfejlesztő számára egy nagyon vizuális és nagyon magas szinten strukturált környezet biztosítása által. Terjedelmes scriptek írása helyett a Magic programozó az információkat egymással kapcsolatban lévő táblázatok sorozatába viszi be. Ez az információ relációs táblák halmazában kerül tárolásra, a redundáns tárolás csökkentésének érdekében, valamint a táblázat elemei közötti kapcsolatok pointerek által történő hivatkozás előnyeinek a legjobb kihasználásának érdekében. Lásd a 7. és 8. ábrát.

Picture 7

7. ábra: Jellemző adatdefiníciós táblák

Picture 8

8. ábra: Jellemző programozási táblák

A Magic elvrendszere hasznosítja az ezekből származó relációs elveket és előnyöket, hogy megdöbbentő termelékenységi előnyöket érjen el a teljes alkalmazásfejlesztési életciklus során. A nyelv alapú vagy script alapú programozási szemléletmóddal ellentétben, ahol minden nevesített egyedre történő hivatkozás explicit, a Magic relációs elveket alkalmaz, hogy a nevesített egyedekre mutató explicit hivatkozásokat pontosan egyre csökkentse - név szerint a táblabejegyzésre, ahol eredetileg meghatározásra került. Minden más hivatkozás implicit, és a táblabejegyzések közötti kapcsolatokon át érhető el. A Magic ötletes szemléletmódja az, hogy mindez teljesen felhasználóbarát és a programozó számára átlátható módon történik. A programozó sosem találja szembe magát pointerekkel. A programozó mindig a nevesített egyedeket látja, ahogy eredetileg meghatározta. Ugyanez vonatkozik az alkalmazás funkcionalitására (logikájára). Az elérhető műveletek (parancsok) és funkciók listája a programozó számára explicit néven kerül bemutatásra. Ezeknek a Magic táblastruktúráján belüli reprezentációja azonban kódból és linkekből áll a tárolás optimalizálására. Egy táblázatvezérelt vizuális fejlesztési módszertannak nagy szétágazásai vannak:

  • a mai kor grafikus felhasználói felületei a táblastruktúrákkal történő munkát gyorssá és hatékonnyá teszik
  • a programozási folyamat vizuálissá válik, egyik tábláról a másikra váltva
  • az alkalmazás-módosítások automatikusan végigvezetésre kerülnek, akárhol is történjen rájuk hivatkozás; ez egy közvetlen következménye a Magic táblázatos felépítésének relációs szemléletmódjának
  • a taszkfa tartalmazza az alkalmazás adatnézetét
  • szintaktikai hibák előfordulása tulajdonképpen lehetetlen, mivel a programozás előre definiált rendszerbejegyzések vagy előre definiált táblabejegyzések - amelyek maguk is előre definiált rendszerbejegyzésekből lettek létrehozva - létrehozásából áll
  • a script alapú programozáshoz hasonlítva, a programozó által, az alkalmazás leszállításához szükséges bevitt kód mennyisége egy nagyságrenddel csökkent.

Beépített funkcionalitás a Magic alkalmazásmotorjában

A fejlesztőkre nehezedő teher további csökkentésére, maximális végfelhasználói funkcionalitás van a Magic alkalmazásmotorba beépítve, amely alapértelmezés szerint minden alkalmazás és minden végfelhasználó számára elérhető. A következő képernyő (9. ábra) egy tipikus adatképernyőt mutat, az összes Magic alkalmazás számára automatikusan elérhető beépített funkcionalitást tartalmazó legördülő menüvel együtt. A Magic szintén kényelmes mechanizmust biztosít a fejlesztők számára a különböző funkciók dinamikus és feltételes ki- és bekapcsolása.

Picture 9

9. ábra: A Magic beépített végfelhasználói funkciói

Ez a szemléletmód lehetővé teszi az alkalmazások gyors definiálását, mert az alkalmazáslogika legnagyobb része a Magic-motor részeként automatikusan biztosított.

Ovum

Az előre meghatározott funkcionalitás nagy része az alkalmazásmotorba be van építve, így a programozási erőfeszítések jelentős csökkenése érhető el, mialatt a teljes rugalmasság megmarad Magic „nyelvében”, hogy kezelje az alkalmazások nagy többségét.

A Magic alkalmazások robosztussága a beépített funkcionalitás járulékos előnye. A tény, hogy ugyanazt az alkalmazásmotort használják különböző alkalmazások ezrei, magában foglalja azt, hogy a Magic alkalmazásmotor nagyságrendekkel többször lett tesztelve és debuggolva mint egy egyedi alkalmazás.

Az újrafelhasználhatóság növeli a termelékenységet

Az újrafelhasználhatóság a Magic egyik elvrendszerének egyik alapvető koncepciója.

Az újrafelhasználhatóság első szempontja a Magic alkalmazásmotorba van beágyazva beépített funkciók átfogó készleteként, amelyek az adatbázisalkalmazások különlegesen széles skáláját fogadják be.

A programozó anélkül használhatja ezeket a beépített funkciókat, hogy bármilyen kódot vagy scriptet kéne írnia. Ehelyett, a programozónak csupán a beépített funkciók és paraméterek sorozatát kell meghatározni. A Magicben, ilyen meghatározások előre definiált táblázatok kitöltésével adhatók meg. Ez a táblázatvezérelt technika tovább növeli a könnyen használhatóságot és a Magic elvrendszerének általános termelékenységét.

A Magic elvrendszerében az újrafelhasználhatóság második szempontja a programozó által definiált egyedek újrafelhasználása egy önálló Magic alkalmazásban, illetve a Magic alkalmazások széles skáláján. A Magic programok könnyen meghívhatók a Magic alkalmazások között. A programok - egyszeri megírás után - újra használhatók a fejlesztők idejének megtakarítása érdekében.

A harmadik nagyszerű példája az újrahasznosíthatóságnak a Magic űrlap sablonjaiban található. Az űrlap sablonok kiváltják az űrlapok interaktív képernyős megjelenítésének általában unalmas és időpazarló előkészítését.

A programozó számára az olyan kényelmes mechanizmusok biztosításával, mint az űrlap sablon, az egyedek definiálásához és elmentéséhez, a Magic hatékony újrafelhasználhatóságot és hatalmas megtakarításokat tesz lehetővé.

...Az újrahasználható űrlapok tovább növelik a fejlesztőknek a Magic segítségével elérhető, eddig is magas termelékenységét.

Hurwitz Client/Server Watch

Minél többet használhat fel újra a programozó, annál többet nyer a termelékenység területén.

Az absztrakció csökkenti a kódot

Az adatbázisműveletek meghatározására szolgáló SQL (Structured Query Language - Struktúrált Lekérdező Nyelv) megjelenése előtt, még a legegyszerűbb adatbázisfunkció végrehajtásához is jelentős programozási erőfeszítésre volt szükség.

Egy SQL-parancs megadásának a lehetősége, mint például:

SELECT ALL FROM CUSTOMERS WHERE ZIP=10016

hatalmas előrelépést hozott a programozói tevékenységbe.

A fenti SQL-parancsra gondolhatunk úgy is, mint egy alacsonyabb szintű nyelven létrehozott hosszú utasításszekvencia magas szintű absztrakciójára. Vagy, más irányból nézve, több jelentés (szemantika) lett becsomagolva kevesebb szövegbe (szintaktika). Mindazonáltal, a nyelv alapú (script) programozáshoz kapcsolódó veszteség még mindig megmarad.

Ezek után meg kell kérdeznünk, hogy elérhető-e még nagyobb absztrakció, olyan szintű, ahol a megmaradó veszteség annyira alacsony, hogy a végső alkalmazás végrehajtására történő hatása elhanyagolható. Ha ilyen cél elérhető, szerteágazó hatása az egész fejlesztési folyamatra hatalmas: a programozás egyfázisú folyamattá válik.

Fontos megjegyezni, hogy ha ez a cél elméletileg még el is érhető, nem lesz gyakorlati értéke, ha egy átlagos programozó számára nem tálalható könnyen megérthető, könnyen használható formában.

A Magic elvrendszere nem csak eléri a szükséges szintű absztrakciót, de ezt olyan, erősen vizuális formában teszi, ami ideális a mai világ grafikus felhasználói felületeinek a számára. Az olyan technikák ügyes kombinációjával, amelyek már bizonyították értéküket más környezetekben, a Magic még egy előrelépést biztosít az alkalmazásfejlesztési folyamat termelékenységében.

A kód összehasonlítása

Nehéz elképzelni néhány konkrét példa nélkül, hogy mit kell érteni a Magic kódmentes elvrendszere alatt. Sok példa van, amely megmutatja a Magic fejlesztői elvrendszerének az egyszerűségét és eleganciáját. A következő bekezdésben két példa kerül bemutatásra, hogy kóstolót adjon a Magickel elérhető óriási termelékenységi előnyből.

Magic kontra Oracle Developer/2000

Az első példában a feladat két különböző táblából származó adatokat megmutatni a képernyőn.

Nyilvánvalóan, ennek a feladatnak az elvégzéséhez az olyan népszerű eszközökben, mint az Oracle Developer/2000, négy trigger kódolására van szükség, amelyek mindegyike PL/SQL kódsorokat tartalmaz, debuggolni, lefordítani és linkelni kell őket.

Picture 10

10. ábra: A Developer/2000-nek négy SQL triggerre van szüksége

Másrészről, a Magicben egy egyszerű Link Query vagy Link Join parancs elvégzi ugyanazt a munkát!

Picture 11

11. ábra: A Link Query parancs

Magic kontra Progress

Egy másik szembeszökő példa az alábbiakban kerül bemutatásra. A feladat itt, egy adatbevitel befejezésekor egy fájlból kiválasztott név megmutatása.

A Progress 8 teszt értelmében a fejlesztőnek a következő 13 sornyi script alapú kódot kell megírnia, amit utána fordítani és linkelni kell.

Picture 12

12. ábra: A Progress kódból származó UI trigger

A Magicben ezt a feladatot már az alkalmazásmotorba beépített funkcionalitás elvégzi. A munkát automatikusan megcsinálja!

Picture 13

13. ábra: A Magic beépített Locate képessége elvégzi a munkát!

Az ezekhez hasonló példák bőségesen bizonyítják a Magic elvrendszerének használata által elérhető hatalmas termelékenységi előnyt.

A koncepció vállalati szintre méretezése

Kiállja az idő próbáját

Datapro vélemény: A Magic vezetőségének egyértelmű elképzelése van a jövő technológiai trendjeiről és termékfejlesztéséről, és van egy terméke, amely valóban biztosítja azt a fejlesztői termelékenységet, amely messze megelőzi a versenytársait.

Datapro Information Services

A Magic elvrendszere olyan okosan lett megtervezve, hogy kiállja az idő próbáját, amikor a ma koncepcióival és a holnap felbukkanó technológiáival kel versenyre. A Magic nyitottsága és méretezhetősége nagyon jól illeszkedik a második generációs kliens/szerver alapú számítástechnika támogatásához és a vállalati Intranet- és Internethasználat robbanásszerű terjedéséhez. A Magic egy kliens ÉS szerver eszköz, amely gondosan meg lett tervezve, hogy biztosítsa a rugalmas elosztott számítástechnikát, amely kritikus a kor összetett környezeteiben.

Az alapkoncepció robusztussága és rugalmassága támogatást biztosít a mainframe szinttől le a kliens/szerver szintig, a LAN-tól a kliens/szerver szintig és az Internet alapú feldolgozás már meglévő alkalmazáshoz történő integrálásáig. A szervezetek megőrizhetik a múltbeli befektetéseiket és folytathatják a múltbeli alkalmazásaik támogatását, ugyanakkor egy modern, grafikus fejlesztői környezet előnyeit használhatják ki. Ahogy egy szervezet nő, és egyre nagyobb összetettséget és számítási teljesítményt igényel, hogy teljesítse a vállalat változó igényeit, a Magic vállalati szintű méretezhetőséget és összehasonlíthatatlan rugalmasságot kínál, az Internet alapú alkalmazásoknak az örökölt rendszerekkel történő integrálásának képességével.

A Magic Software Enterprises jelentős története már bizonyította az alkalmazásokba történt befektetések védelme iránti elkötelezettségét. A Magic könnyű továbbfejleszthetőséget biztosított az alkalmazásszoftverek számára, a gyorsan fejlődő technológiákon át a DOS, Windowstól a 32 bites platformok és az Internet felé. A Magic okosan fejlődött, a fejlesztői technológia komplexitásának beágyazásával, mialatt egyfolytában fenntartotta kiemelkedő RADD előnyét.

A Magic erőteljes képességeket biztosít az Internetes tranzakciófeldolgozás, a Java, a verziókövetés, és a vizuális, dinamikus alkalmazás particionálás valamint más vállalati tulajdonságok számára - szerencsére nem a könnyű használhatóság vagy a RAD képesség kárára.

Sentry Technology Group

Vállalati méretű RADD

A kívülállás megszűnt. A Magickel a RADD előnyei átterjednek a vállalatra. A Magic technológiája egyedi ötvözetét nyújtja a legmagasabb termelékenységű RADD-nak és a skálázható és robusztus Internetes tranzakciófeldolgozásnak (Internet Transaction Processing - ITP) az összetett alkalmazások számára. A Magic lehetővé teszi a vállalkozás számára a vállalati adatbázis kihasználását és nyílt alkalmazások szállítását, amelyek kliensek, szerverek és az Internet felé terjeszkednek.

Ahogy a szervezeten belüli fejlett kommunikáció iránti igény nő, a Magic rugalmassága lehetővé teszi az Internet alapú alkalmazások fejlesztését, gyorsabban mint valaha.

Úgy gondoljuk, hogy a RAD technika és a vállalati fejlesztés közötti sorompók a Magic Version 8 szállításával felemelkednek. A Magic Version 8 egyéni módon viszi be a RAD képességeket a vállalatokhoz és keresztül az Interneten.

Software Productivity Group

A Magic Version 8 támogatja ezeket a jellemzőket, és a Magicet a vállalati szintre helyezi anélkül, hogy megváltoztatná az egyedi szemléletmódját, ami lehetővé teszi a gyors és nagy teljesítményű alkalmazásfejlesztést.

The Hurwitz Group

Egységes fejlesztési elvrendszer a host, a kliens/szerver, és a Web számára

A Magic az egyetlen olyan, vállalatoknak szánt RAD eszköz, ami egy egységes elvrendszert, fejlesztői környezetet kínál a host, kliens/szerver és Internet alapú számítástechnika számára, beleértve az n-szálú architektúrát és az alkalmazás partícionálási sémákat. A Magic lehetővé teszi a fejlesztőknek, hogy olyan nagy méretű alkalmazásokat tervezzenek, amelyek kihasználják a kliens/szerver és az Internet környezet minden előnyét.

Az IS vásárlóknak kell tekinteniük a Magic Version 8-ra, mint gyors vállalati és Internetes fejlesztéshez való stratégiai fejlesztőeszközre, különösen komplex alkalmazások esetén, ahol a szervezetek az örökölt és kliens/szerver alkalmazásokat bővítik a Web irányába.

Aberdeen Group

A Magic használható az egész szervezetben, az alkalmazások széles skáláján, a munkacsoportoktól kezdve a részlegeken át a vállalati igényekig. A Magic termékeny módon az alkalmazások széles tartományát célozza meg, megszüntetve a sajátos feladatok elvégzéséhez szükséges különleges célú eszközök használata iránti igényt.

Egy példa bizonyítja a Magic egyszerű elvrendszerének megoldását, a Magic nagy teljesítményű űrlapszerkesztője. Ugyanabból a mutató és kattintó, „fogd-és-vidd” Windows környezetből, a Magic lehetővé teszi a fejlesztők számára a hagyományos GUI-kliens megépítését ugyanúgy, mint a fejlett HTML és Java felületek megépítését az Internet számára, külső, HTML vagy Java fejlesztőeszközök segítsége nélkül. Egy vizuális fejlesztési elvrendszer használatos a Webszerver alkalmazásokhoz, GUI-kliensekhez, vagy a szöveges űrlapokhoz. Lásd az „Interface type” választást a 14-es ábrán fejlesztés közben, és a Magic kisalkalmazást megjelenítő modulja által létrehozott űrlapot - a 15-ös ábrán látható.

Picture 14

14. ábra: A Magic nagy teljesítményű űrlapszerkesztője

Picture 15

15. ábra: Magic Java űrlap egy böngészőben

Elosztott számítástechnika

A Magic méretezhető megoldásai

A kifinomult skálázható rendszerek építésének képessége követelménnyé vált a mai versenyző piacon. Ahogy az idő és a tapasztalat megmutatta, a hagyományos kétszálú kliens/szerver modell bajba kerül, ha csak a kliens oldalra számít teljesítmény tekintetében. A hálózaton átküldött nagy adatmennyiségek gyakran okoznak komoly teljesítményromlást, amelyek elfogadhatatlanok a mai üzletkritikus alkalmazások esetében. A Magic architektúra-semlegessége és adatbázis-függetlensége tökéletes eszközzé tette a Magicet a szervezeten belüli skálázhatóságra. A Magic oly fokon skálázható, ami egyedi az iparágban és megfelelő a kliens ÉS a szerver számára is. A Magic alkalmazásmotorja úgy van optimalizálva, hogy fusson mind kliens, mind szerveroldalon és így megbízhatóan szolgáltassa a legjobb kliens ÉS szerver támogatást a kor vállalati alkalmazásai számára.

A Magic úgy skálázható, hogy támogassa a vállalati szintű elosztott alkalmazásokat sokféle adatbázis, operációs rendszer, és hardverplatform bevonásával.

Hurwitz Client/Server Toolwatch

A Magic alkalmazások a taktikaitól a stratégiaiig nőhetnek, és hozzáigazíthatók más platformokhoz, RDBMS-ekhez, szerverekhez és újrapartícionálási sémákhoz épp úgy, mint a megnövekedett méretekhez és a nagyobb komplexitáshoz. Ugyanaz a Magic alkalmazás működtethető különböző hardver és szoftver konfigurációkon, könnyen méretezhető heterogén környezetben történő működtetéshez mind Web alapú, mind kliens/szerver üzleti alkalmazások esetében.

A Magic futtató infrastruktúrájának javítása, aminek következtében az magában foglalja a Webet és az elosztott számítástechnikát, a Magicet a fejlesztőeszköz-piac élvonalába helyezi.

Ovum

A fejlesztők anélkül építhetnek logikai alkalmazást, amely független az alatta levő fizikai környezettől, hogy azt fontolgatniuk, miként kerüljön elosztásra az alkalmazáslogika a kliensek és a szerverek között. Mikor az alkalmazást úgy partícionálják, hogy egy bizonyos elosztott környezetben fusson, a funkciók kliensek és szerverek között történő elosztása történhet az alkalmazás logikai definíciójának megváltoztatása nélkül. Ez lehetővé teszi, hogy az alkalmazást hatékonyabban konstruálják meg, és könnyebben lehessen nagyteljesítményűre hangolni az elosztott környezetben.

A kliens és az alkalmazásszerverek közötti számítási teljesítmény elosztása által a fejlesztők képesek növelni a teljesítményt, és képesek alkalmazkodni a decentralizált IT szervezeti struktúrákhoz.

Sokszálú architektúra

A Magic egy készen „dobozban” kapható, üzenetközpontú köztes terméket (Message Oriented Middleware - MOM) biztosít megoldásként, hogy lehetővé tegye az azonnali termelékenységet az elosztott alkalmazások építésekor. A Magic sokszálú architektúrájának megvalósítása nem csak szimultán hozzáférést és Web, illetve GUI-kliensek feldolgozását biztosítja, de az alkalmazásfelügyelet és a partícionálás fontos alapelemeit is biztosítja. Ezek a megnövelt előnyök abszolút követelmények annak érdekében, hogy biztosítsa a nagy, feladatkritikus alkalmazások teljesítménybeli, adminisztrációs, felügyeleti és biztonsági igényeit.

A Magic erőteljes képességeket biztosít - Sőt, mi több, a bele integrált alkalmazásfelügyeleti támogatás nagyrészt hiányzik a legtöbb csúcskategóriás versenytárs kínálatából.

Sentry Technology Group

Picture 16

16. ábra: A Magic Request Broker

A Magic vállalati szintű skálázhatóságot biztosít a Magic Request Brokeren át (lásd a 16. ábrán), amely kezeli a szerver oldali sorfelügyeletet és tranzakcióvégrehajtást mind szinkron, mind aszinkron módban. Ez az architektúra lehetővé teszi a fejlesztők számára, hogy azokat az alkalmazásszerver folyamatokat tartsák fenn, amelyeket akkor használnak fel, amikor a felhasználó megindít egy tranzakciót. A fejlesztők képesek fontossági sorrendbe állítani a tranzakciókat, így a magas prioritású tranzakciók azonnal figyelmet kapnak. Képesek azonosítani és követni a különböző alkalmazásfolyamatokat és szervereket végrehajtás közben. Ha rendszerhiba történik, lehetséges annak az alkalmazásfolyamatnak az azonosítása, amelyre hatott a rendszerkomponens hibája.

A Magic alternatív módokat kínál arra, hogy az alkalmazások aktívak állapotát biztosan megőrizzük. A Magickel, a fejlesztők replikálhatják a kritikus alkalmazásszolgáltatásokat, és automatikusan átirányíthatják a szolgáltatáskéréseket a lementett másolathoz, ha az elsődleges példány nem elérhető. Az alkalmazást futtató szerver helyének meghatározására, vagy a hibatűrés szintjét növelő több replikátum hozzáadása menet közben megvalósítható. Fontos megjegyezni, hogy ezek egyikéhez sem kell megváltoztatni a Magic alkalmazás logikáját.

A Magic lehetővé teszi a fejlesztők számára a feldolgozás elosztását a szerverek között. Ahogy az aktivitás mérete egyre nő, és az adatszerver, alkalmazásszerver és a kliens interface közötti hálózati kommunikáció egyre komplexebbé válik, az alkalmazások profitálnak a Magic azon képességéből, hogy figyeli a teljesítményt, és dinamikusan állítja be a feldolgozást a terheléseloszlás érdekében. A hálózati forgalom csökkentése által, a Magic alkalmazások gyorsabban futhatnak. Ezért cserébe csökken a támogatási és fenntartási költség, és nő a tranzakciós áteresztő képesség és a teljesítmény.

A Magic rugalmas, dinamikus vizuális partícionálása

A Magic lehetővé teszi annak az alkalmazás-partícionálási modellnek a kiválasztását, amelyik legjobban megfelel az ön üzleti igényeinek. Ez a hagyományos host/terminál kiépítéstől a komplex kooperatív feldolgozásig terjedhet, magába foglalva a partícionált logikát és a szervereket is. A partícionálási modelltől függetlenül a kliensek és szerverek a különböző feladatokra koncentrálhatnak, és a szó szoros értelmében összedolgozhatnak az optimális megoldás érdekében. A fejlesztők kijelölhetnek backup szervereket és időzítési paramétereket a szerverösszeomlások elleni védekezés érdekében, egy alkalmazás feldolgozásának a folyamatát egy alternatív szerverre áthelyezve.

A Magic egyedi a kliens/szerver eszközök között, azon képességével, hogy az alkalmazás terhelését el tudja osztani a kliens és a szerver között.

Client/Server Today

A partícionálási igények az idők folyamán az üzleti igényekkel együtt változnak. Ezért, egy alkalmazás gyorsan történő módosításának képessége nagyon fontos. A Magic dinamikus partícionálása a fejlesztőknek vagy adminisztrátoroknak biztosítja a szálak és szolgáltatások különböző hardverplatformon történő elosztásának megváltoztatásának képességét. A Magic táblavezérelt elvrendszeréhez ragaszkodva a fejlesztők az alkalmazáslogika egyik szerverről a másikra történő újrapartícionálását megvalósíthatják egy vezérlőtábla bejegyzéseinek megváltoztatásával, vagy vizuálisan, linkek megfogásával és arrébb vitelével (17. ábra).

Picture 17

17. ábra: A vizuális partícionálás

Egy alkalmazás megfelelő módon történő partícionálása jelentősen növelheti a teljesítményt és a méretezhetőséget. A Magic beállítható partícionálása erőteljes teljesítményhangoló mechanizmust biztosít.

Internetes tranzakciófeldolgozás

A Magic sokszálú környezete támogatja az integrált kliens/szerver és Web alapú online tranzakciófeldolgozó (OLTP - online transaction processing) alkalmazások számára történő nagy mennyiségű, ismétlődő üzleti feldolgozások automatizálását. A kliensoldalon, a Magic GUI-kliensek hozzáférhetnek a Magic alkalmazásszerverekhez a Webszerveren és a Magic integrált átjárófelületén át. Az Internet alapú webböngészők hozzáférhetnek a Magic alkalmazásszerverekhez a webszerveren és a Magic integrált átjárófelületén át. Szerveroldalon a Magic szerver- és alkalmazásfelügyeletet, és a folyamatok kliensek és Magic alkalmazásszerverek között történő partícionálásának és allokálásának képességét biztosítja. Ez biztosítja azt a szerveroldali méretezhetőséget, ami szükséges az Intranet/Internet rendszerekből következő hatalmas felhasználószám támogatására (18. ábra).

Magic Version 8 minden kétséget kizáróan bizonyítja, hogy a cégnek világos technológiai elképzelése van. Ez egy olyan termék, amely a versenytársait messze leköröző fejlesztői termelékenységet biztosít, nemcsak a vállalati alkalmazásfejlesztéshez, de, ami manapság a legfontosabb, az Internet számára is.

Datapro

A Magic Request Broker a teljesítmény magas szinten tartására szolgál. Ez a technológia megengedi a Magic alkalmazások weben keresztül történő ellenőrzését és végrehajtását, lehetővé téve a fejlesztők számára a megnövelt teljesítménnyel és lecsökkent végfelhasználói válaszidővel rendelkező robusztus alkalmazások építését. A Magic Request Broker sorba állítja a webszervertől érkező kéréseket, és tovább küldi őket az egy vagy több alkalmazásszerveren futó futtatómotorhoz. Követi, és végrehajtja a megfelelő Magic programmodult, ami legenerálja a HTML vagy Java válaszűrlapot. És visszaküldi a webszerverhez.

Picture 18

18. ábra: A Magic rugalmas architektúrája kiterjed az ITP-re is

A Magic Internetes technológiája azt a célt szolgálja, hogy az internetes feldolgozáshoz kapcsolódó szűk keresztmetszetet elhárítsa, és nagy teljesítményt biztosítson. A megnövelt méretezhetőség és teljesítmény érdekében, a Magic támogatja a webszerver specifikus alkalmazásprogramozási felületeket, mint a Netscape Server API (NSAPI) a Netscape-től, és az Internet Server API (ISAPI) a Microsofttól, lehetővé téve a fejlesztők számára a szerverspecifikus jellemzők kihasználását.

HTML űrlapok

A Magic űrlapszerkesztője lehetővé teszi a HTML funkcionalitás vizuális megépítését, beleértve a szerkesztését, böngészését, hyperlinkek, táblák, keretek és más népszerű HTML elemek manipulálását. Rengeteg vezérlőt támogat, beleértve a szerkesztőt, szöveget, Rich Textet, kombipanelt (Combo List Box), a táblákat és így tovább.

Megint csak, a Magic fejlesztők számára egy olyan környezetet kínál, ahol nincs szükség kódolásra.

Egyébiránt, a Magic nyílt rendszerek iránti elkötelezettségének megfelelően, biztosított a külső HTML-szerkesztőkkel a problémamentes integráció. Ez a funkcionalitás biztosítja a Magic-kel és a külső eszközökkel készített HTML űrlapok egyesítését. Így, a már létrehozott HTML lapok hasznosíthatók, ahelyett, hogy újra kellene írni.

Dinamikus HTML generálás

A Magic eszközöket biztosít beágyazott alkalmazásadatokkal feltöltött HTML lapok futás közbeni generálására. Ez a tulajdonság lehetővé teszi a fejlesztők számára, hogy statikus szöveget dinamikus SQL adatokkal és grafikus objektumokkal integráljanak. Amint egy adatbázislekérdezésből kinyerésre kerül egy SQL eredményhalmaz, az adat felhasználható a HTML lapok feltöltésére és közzétételére. Az eredményként kapott HTML lap továbbküldésre kerül a webszerverhez, ami következőként elküldi a webböngészőnek megjelenítésre. Ezek a HTML lapok úgy vannak megtervezve, hogy az adatokat soronkénti módban (táblázatos forma), képernyőnkénti módban (egy-egy rekord forma), vagy egyéni riportként jelenítsék meg. A Magic azt is lehetővé teszi a fejlesztőknek, hogy röptében hozzanak létre Internetes megoldásokat. A Magic automatikus program- és űrlapgeneráló szolgáltatása a fejlesztőknek a leggyorsabb módot biztosítja az Interneten történő futtatásra kész űrlapok automatikus generálásához.

A Java-kliens előnye

Kivételesen erős a Magic azon képessége, hogy karcsú Java-klienseket építsen a Weben történő futtatásra, megadva a lehetőséget a Java kliens oldali tulajdonságainak és a Magic alkalmazásszerver logikájának kombinálásával a robusztus, kiegyensúlyozott és méretezhető Internetes alkalmazások építéséhez.

Futtatáskor a Magic űrlapdefiníciója letöltődik a böngészőkliensbe, ahol a Java Virtuális Gép végrehajtja. A Magic Java-futtató kisalkalmazása megépíti a kapott paraméterek alapján a karcsú Java-klienst.

A Java-kliens megszünteti a HTML miatt meglévő korlátokat. A Java űrlapszerkesztő olyan nagyszerű vezérlőket biztosít, mint a kartoték (tab), a csoport, és a négyszög, amelyek fájdalmasan hiányoznak a HTML-ből. A kartotékvezérlő különösen hasznos a sokrekordos böngészésnél, mivel ahogy a felhasználók rekordok listáját nézik a képernyő egyik részén, és a pillanatnyilag kiválasztott rekordról részletesebb információra van szükségük a képernyő más részein, lásd a 15. ábrát. Ráadásul, a HTML behatárolt koordinátarendszere többé nem probléma. A Java rugalmasabb grafikájával lehetséges, hogy a vezérlők bárhova helyezhetőek legyenek a formon.

A Magic Java-kliens másik fontos előnye a kliensoldali szerkesztés és érvényesítés területén van. A vezérlők egyenként, és a teljes űrlap is érvényesíthető a kliensoldalon, így csökkentve a hálózati forgalmat és növelve az alkalmazás teljesítményét. A Java megtartja a változóhoz rendelt tulajdonságot és nem fogad el olyan bevitt adatot, ami nem érvényes a változóra.

Itt fontos megjegyezni azt is, hogy a Magic további funkcionalitást tartalmaz. A Java ereje anékül alkalmazható a Magic-kliensben, hogy a fejlesztőnek Java kódot kéne írnia.

Vállalati fejlesztés

A Magic alkalmazásmotor nyíltsága

A Magic tervezésénél észrevették, hogy mindegy milyen átfogó lehet a motor, a Magic elvrendszernek nyitottnak kell lennie a más programokkal és más eszközökkel fejlesztett alkalmazások irányába.

A Magic komolyan támogatja a szabványokat és a nyílt rendszereket. A nyílt rendszerek univerzális elfogadottsága és a Magic nyíltsága lehetővé tette a Magic számára az elfogadottságot és sikert. A Magic ilyen megközelítése szünteti meg azon törvényszerű aggodalmakat, amelyek az innovatív és nem hagyományos technológiákkal kapcsolatos döntéseket kísérik. A Magic választásával, a fejlesztő biztosnak érezheti magát, hogy minden más technológia, ami megfelel a nyílt rendszerek követelményeinek, hozzáférhető marad.

A nyolcas verzióval, a Magic jelentős új képességeket kapott, ugyanakkor megtartja egyedi termelékenységi jellemzőit. A Java és ActiveX támogatása Web-képessé teszi a Magic alkalmazásokat, és a nem Magic eszközök számára nyújtott támogatásával drámaian növeli a Magic alkalmazások külső erőforrásokkal történő integrálásának képességét. Ezek a jellemzők még vonzóbbá teszik a Magicet. Olyan eszközzé vált, amely sok IS-stílusú fejlesztési projekt esetében erősen megfontolandó.

Patricia Seybold Group

A Magic nyíltsága nagyon sokféle módon érzékelhető.

Meghívható Magic

A Magic szerveralapú alkalmazásai meghívhatóak különböző kliensekből, többek között Magicből, Visual Basicből, és Javaból. A Magic képessé teszi a szervezeteket, hogy a meglévő, első generációs kliens/szerver alkalmazásaikat méretezzék, hogy tartalmazzon szerver oldali funkcionalitást, amely csökkenti a méretezhetetlennek bizonyult alkalmazások újratervezésének igényét. Más szóval, a meglévő kliens alkalmazások nőhetnek a Magic szerverének használatával, így megőrizve korábbi befektetéseket. Ez megszünteti az újrafejlesztés, bevezetés, végfelhasználók oktatásának költségét és idejét, ugyanakkor olyan eszközöket kínál, amellyel a szervezetek integrálhatják változatos kliens alkalmazásaikat és adatbázisaikat egy összefüggő architektúrába.

HTML komponens integrálása

Manapság, az újrafelhasználható komponensek világában egy szoftvereszköz számára fontos hogy nyitott legyen a külső komponenseknek a fejlesztői felületbe történő integrálása felé. A Magic használható komponensvázként is, lehetővé téve az ipari szabványú komponensek integrálását az Internet alapú alkalmazásokba.

A Java kisalkalmazások, Java Bean, vagy ActiveX vezérlők könnyen kiválaszthatók a vezérlőpalettáról és berakhatók a HTML alapú űrlapokba (lásd a 19. ábrát).

Ez az architektúra lehetővé teszi a kliens funkcionalitás és felület Interneten keresztüli biztonságos elosztását, ugyanakkor az alkalmazáslogika biztonságos és elzárt marad. Ez a funkcionalitás nyitottá teszi a Magicet arra, hogy lehetővé tegye a fejlesztők számára növekvő számú ActiveX komponens használatát.

Picture 19

19. ábra: Komponens integrálása

OLE kapcsolás és beágyazás

A Magic támogatja az OLE 2.0 kapcsolást és beágyazást is. Az OLE 2.0 kapcsolás mechanizmust biztosít a Magic és az operációs rendszerből származó valamely objektum összekapcsolására. Az objektum adatbázisban történő eltárolása helyett hivatkozik rá. Az OLE 2.0 beágyazás szintén egy kapcsolatot formál a Magic és egy külső objektum között, de az objektum teljesen a kapcsolódó adatbázisban van tárolva!

Repository API a külső fejlesztések támogatásához

A teljesen nyitott környezet felé vezető úton a Magic Software Enterprises megtette a szükséges lépéseket annak érdekében, hogy a Magic alkalmazások teljes mértékben képesek legyenek együttműködni, és integrálhatóak legyenek más termékekkel. A Magic Repository API segítségével egy funkciókészlet kapunk, ami lehetővé teszi külső fejlesztők számára a Magic alkalmazásgyűjtőjének közvetlen elérését.

A Repository API olvasási és írási hozzáférést biztosít minden Magic gyűjtő komponenshez, a frissítés, a létrehozás és a törlés műveletek támogatásával. A Magic biztonságos fejlesztői környezetével összhangban, amikor egy API-művelet kérése következik, a felhasználó adott műveletre vonatkozó joga ellenőrzésre kerül, hogy biztosítsa a hozzáférési jogok megsértésének kizárását. Az API szintén tartalmaz függvényeket, amelyekkel elérhetők és visszakérhetők az alkalmazás konfigurációjával és beállításaival kapcsolatos adatok, és a különböző Magic szótárakban és menükben lévő adatok.

A Magic elkötelezte magát a szoftverfejlesztési életciklus folyamat teljes támogatásának lehetővé tételéhez szükséges eszközök biztosítására. Ez a következő példákban nyilvánul meg:

A Magic és a modellezőeszközök

A Magic felületet szolgáltat a Popkin System Architectjéhez, egy a kezdeti adatbázistervezést segítő vezető adatbázismodellező eszközhöz. A Magic Repository API az a híd, amellyel a System Architect közvetlenül kapcsolódik a Magic fejlesztői környezetéhez. A szövetség arra a technológiára alapoz, ami lehetővé teszi a felhasználók kétirányú munkáját a Magic és a System Architect között, lehetővé téve a fejlesztők számára a mindkét technológiára alapozott tervelést, modellezést, fejlesztést, futtatást és alkalmazásfelügyeletet. Egy új felület lehetővé teszi a Magic fejlesztők számára a Magic táblák feltöltését és a Popkin System Architect (SA) modelljeiből és diagramjaiból történő programgenerálást, épp úgy, mint az SA sémák generálását a Magic alkalmazások alapján.

A Magic és a köztes termék

Ahogy ebben a fejezetben már korábban leírtuk, a Magic beépített Request Brokert biztosít az azonnali munka lehetővé tételére. Ráadásul, a Magic kapcsolódásokat biztosít az olyan legújabb technológiájú köztes termékhez, mint a BEA Tuxedoja, az IBM CICS-e, és az IBM MQ/Series üzenetkezelő mechanizmusa, hogy biztosítsa a feladatkritikus alkalmazásokhoz szükséges méretezhetőségbeli és teljesítménybeli képességeket.

Tuxedo TP Monitor

A Magic Tuxedo TP Monitorhoz kapcsolódó felülete hozzáférhető azoknak a fejlesztőknek, akiknek több ezer tranzakció feldolgozására van szükségük. Ez a felület lehetővé teszi a Tuxedo fejlett képességeinek kihasználását. A Magic lehetővé teszi létező Tuxedo szolgáltatások meghívását, és Tuxedo szoláltatások Magicben történő megírásának egyedi módját, többek között a terheléselosztást és integrált, elosztott tranzakciót 2 fázisú végrehajtással (XA). Fontos megjegyezni, hogy ez a Magic ismerős elvrendszerében történik, és nem szükséges a fordítási és linkelési szakasz.

A Magic és a tesztelőeszközök

Ahogy az a fejlesztési folyamat utolsó fázisánál szükséges, a Magic felületet biztosít a Mercury Interactive WinRunneréhez, az automatizált tesztelés egyik vezető eszközéhez, hogy a legmegbízhatóbb alkalmazást biztosítsa. A WinRunner a Mercury regressziós teszthez való eszköze, ami lehetővé teszi a Magic fejlesztők számára a tesztek fölvételét és visszajátszását ellenőrzési pontok használatával a logika és a végfelhasználói reakciók ellenőrzésére. A Magic és a WinRunner integrációja lehetővé teszi a fejlesztők számára az egérmozgás és a billentyűzethasználat felvételét, vezérlők és ablaktulajdonságok elmentését és későbbi visszajátszását. Ez az integráció lehetővé teszi a fejlesztők számára az összefüggés-érzékeny munkafolyamatok felvételét, kihasználva azt az előnyt, hogy a WinRunner képes azonosítani a Magic vezérlőket összes tulajdonságuk alapján, mint például a nevek, és az ablakkezelők.

A Magicet használó fejlesztőcsapatoknak most már birtokukban lesz az automatizált szoftverfejlesztés előnye ez a kiegészítés jó hír az információsrendszer menedzsereknek és a VAR-oknak, akik a legújabb RAD technológiákkal épített alkalmazások tesztelésének automatizálásához fejlett eszközöket követelnek.

Mercury Interactive

A Popkin ezt a kapcsolatot úgy tekinti, mint egy hatalmas előrelépést a felhasználóinknak kínált nyíltabb, vállalati szintű gyors fejlesztési megoldások irányába A Magic osztja a Popkin nézetét a nagyon termelékeny, kliens és szerver megoldások területén.

Popkin

Csoportos fejlesztés - verziókövetés

Egy fejlesztői környezet, ami támogatja a nagyarányú vállalati szintű fejlesztést, általában maga után vonja azt, hogy sok fejlesztő dolgozzon az adott alkalmazás különböző moduljain. Törvényszerű, hogy a környezet támogatja a csapatos fejlesztést és a verziókövetést. A Magic gyűjtő alapú verziókövetése támogatja a hatékony konkurens fejlesztést. Biztosítja, hogy a fejlesztők ne avatkozzanak be, vagy ne változtassák meg más fejlesztők munkáját, akik ugyanazon az alkalmazáson dolgoznak. Szintén biztosít egy mechanizmust, amellyel a fejlesztők követhetik és megmutathatják a Magic-rendszert alkotó elemek változásait.

A Magic integrált verziókövetésének egyedi megvalósítása egy másik példája a Magic termelékeny, nagyarányú fejlesztés iránti elkötelezettségének. A Magic verziókövetési rendszere (Magic Version Control System - MVCS) a Magic alkalmazásgyűjtőjének elemeinek a vezérlését szolgáló rendszer. Az MVCS egy nagyszerű megoldás azokra a verziókövetési követelményekre, amelyekkel a Magic szoftverfejlesztők és vezetők szembesülnek. Rengeteg integrált funkciót tartalmaz, amit arra terveztek, hogy lehetővé tegye a fejlesztők maximális sebességű munkáját az unalmas verziókövetési problémák nélkül, amelyek túl gyakoriak a mai, komplex fejlesztési projektekben. Az MVCS nagyszerűen megfelel a nagy rendszerek integrálóinak és azon szoftverházaknak, ahol sok fejlesztő dolgozik konkurens módon.

Az MVCS elmenti a verziótörténetet, ami felhasználható egy Magic fejlesztési projekt különböző változataiban történő változások gyors követeléséhez. Lehetővé teszi minden felmerülő szoftverfejlesztési és karbantartási tevékenység követését, biztosítja a párhuzamos fejlesztést és az alkalmazásfunkcionalitás összeolvasztását. Az MVCS megszünteti a több fejlesztő által létrehozott szoftverváltoztatások konfliktusait, és egy ellenőrzött módszert hoz létre az alkalmazásgyűjtő elemeibe történő be- és kilépéshez. Tulajdonságai és intuitív grafikus felülete termelékeny munkacsoportos megközelítést biztosít az elosztott fejlesztéshez.

Az MVCS teljesen integrálva van a termékbe, hogy lehetővé tegye az azonnali csoportos fejlesztést. A Magic egyedi, vizuális fejlesztési módszertana használatos itt, a Magic fejlesztőnek biztosítandó lehető legnagyobb kényelem érdekében. Az MVCS úgy van megtervezve, hogy nyitott más konfigurációkezelő eszközök használatára, ha szükséges. Programozás szempontjából minden adat könnyen elérhető, mivel a Magic gyűjtőben van eltárolva.

Hordozhatóság

A Magic megközelítése több jelentős előnyt kínál: Könnyű átvihetőség azon platformok bármelyikére, ahol a Magic futtatómotor elérhető

Hurwitz Consulting Group

Koncepció és architektúra szempontjából nehéz ideálisabb megoldást kitalálni, mint a Magic. A vezetőség által a meglévő adatokba és a Magic-kel fejlesztett új alkalmazásokba történő befektetések biztonságosak a Windows, NT, AS/400, OpenVMS, és a különböző Unix platformok esetében is. Ez a biztonság azért lehetséges, mert a Magic alkalmazásmotorja portolva lett ezekhez a környezetekhez. Ráadásul, a meglévő örökölt alkalmazások létezhetnek a Magic alapú alkalmazások mellett is.

Az adatokba történő befektetés szintén védett. A Magic átjárókat biztosít a széles körben használt SQL RDBMS-ekhez és az örökölt rendszerekhez. Tény, hogy a Magic támogatja az elosztott, heterogén adatnézeteket. A Magic sokféle fájlt és adatbázistípust képes elérni mindenféle hálózati konfiguráción át, különböző kommunikációs protokollok használatával.

A Magic az adatok szigetei között szükséges hidakat biztosítja, hogy megőrizze a múltbeli befektetést.

Ha már van egy alkalmazásleíró módszertan, egy erős virtuális gép, és egy alkalmazásgyűjtő, az egyetlen dolog, amit meg kell változtatni minden különböző platformkörnyezet számára, az a virtuális gép - a Magic alkalmazásmotor. Ahelyett, hogy az alkalmazásfejlesztőnek kéne átvinnie, újrafordítania, és újralinkelnie az alkalmazás forráskódját, az eszköz szállítója az, aki átviszi, újrafordítja, és újralinkeli a Magic alkalmazásmotor forráskódját egyetlen egyszer, minden népszerű platformra. Mindaz, amit egy fejlesztőnek az alkalmazás átviteléhez tennie kell, az összesen egy fájl átvitele, név szerint, a Magic Gyűjtőé. Fontos megjegyezni, hogy a Magic módszertana gyors és hatékony eszközöket tartalmaz akár az egész alkalmazás, akár egy kiválasztott alrendszer átvitelére (pl.: egyedi táblák).

A Magic nagy választékú platform, adatbázis, és klienstámogatása a 20. ábrán látható.

Picture 20

20. ábra: A Magic robusztus együttműködési képessége

Adatbázis-függetlenség

Az alkalmazásfejlesztők örömmel fogadnának egy módszertant és eszközkészletet, amely lehetővé tenné számukra alkalmazások általános módszerrel való építését, az alatta lévő adatbázistól függetlenül, amellyel az alkalmazás végül futna. A fejlesztők szintén örömmel fogadnának egy módszertant és eszközkészletet, amelyben egy alkalmazás egy bizonyos adatbázishoz vagy fájlkezelőhöz szükséges testreszabása könnyen megérthető, könnyen használható és gyors.

Az SQL-alapú adatbázisok egyik szándékos előnye a magas szintű adatbázisfüggetlenség biztosítása. Gyakorlatban, az erőfeszítés, ami ahhoz szükséges, hogy egy alkalmazás, ami pillanatnyilag az egyik kereskedő saját SQL adatbázisával működik, működjön egy másik kereskedő saját SQL adatbázisával, változhat a nagyon egyszerű, ODBC-alapú folyamattól kezdve, egészen a hosszadalmas, unalmas folyamatokig, amelyeknek velejárója a forráskód szerkesztése, újrafordítása, és újralinkelése. A szükséges erőfeszítés sokban múlik az alkalmazásfejlesztő eszköz módszertanán és képességein. Továbbá, az SQL-képesség nem nyújt megoldást az örökölt adatbázisok folytatólagos támogatásának igényére és az új alkalmazásokkal való átlátszó integrálásra.

Nehéz elképzelni a Magicénél egyszerűbb megközelítését az adatbázisfüggetlenségnek. A Magic-kel, egy táblabejegyzést kell csak módosítani a választott adatbázis kijelöléséhez.

A Magic adatbázis-függetlensége értéket ad a meglévő befektetéshez és biztosítja az előrelépés lehetőségét. A Magic azonnal használható a stratégiai alkalmazások fejlesztésének elkezdéséhez, mialatt a szervezeten belül a legmegfelelőbb RDBMS-ek belső vizsgálata lezajlik. Minden alkalmazás átláthatóan és könnyen átvándoroltatható igény szerint.

Fogalmilag, a folyamat könnyen érthető, könnyen használható, és gyors. Ezek az előnyök természetes módon származnak a Magic kódmentes, táblavezérelt technikájából. Ezek az előnyök nem származhatnak természetes módon más, nyelv alapú rendszerekből, amelyek a beágyazott SQL-től, előfordítóktól, és linkerektől függnek.

Fontold meg [a Magic választását,] ha: fontos a RAD-képesség, és a termelékenységnek magasnak kell lennie. Keresztplatformos támogatásra van szükség. Kívánatos az n-szálon keresztül történő alkalmazás végrehajtás. Sokféle adatbázishozzáférés szükséges.

Gartner Group

A Magic átjárók

Nyílt rendszerű termékként a Magicet úgy tervezték, hogy a fő relációs adatbáziskezelő rendszerekkel és fájlkezelő rendszerekkel együttműködjön. Ezt a különböző RDBMS-ekhez és örökölt rendszerekhez való specifikus adatbázisátjáró modulokkal éri el. Ezek a MagicGate adatbázisátjárók hídként szolgálnak, amelyeken át a Magic fejlesztők hozzáférnek a különböző kereskedőktől származó különböző adatbázisokhoz.

A MagicGate adatbázisátjárók integrált részei a Magic alkalmazáskörnyezetnek. A fejlesztő szállítja a szükséges átjárókat, hogy teljesítse az alkalmazás adatbázisigényét. Kiegészítő átjárók üzembe helyezésével a fejlesztő könnyen válthat egyik adatbázisról a másikra a Magic kiváló vizuális fejlesztési módszertanának használatával.

A kliens/szerver és a Web együttműködés területe az, ahol a Magic architektúrájának, koncepciójának és képességeinek egyszerűsége, ereje és eleganciája nyilvánvalóvá válik. A megfelelő átjáróknak a kívánt kliensrendszeren történő üzembe helyezésével, és a Magic Repository nevének és szerver elhelyezkedésének táblázatsorokban történő megadásával, egyszerűen, bármely támogatott Magic-kliens azonnal futtathatja az alkalmazást.

A végfelhasználók bármely, olyan szerverplatformon lévő alkalmazást futtathatnak, amellyel egy hálózaton van a kliensállomásuk, feltéve, hogy az aktuális alkalmazás adatbázisainak eléréséhez szükséges átjárók elérhetőek a kliensplatformon.

A Magic és a relációs adatbázis-támogatás

A Magic egy alkalmazásfejlesztő olyan eszköz, amely elsősorban az adatbázisorientált alkalmazások professzionális fejlesztőit célozza meg. A Magic-kel fejlesztett alkalmazások használhatók a főbb SQL-képes RDBMS-ekkel, beleértve a Sybaset, Oraclet, Microsoft SQL Servert, DB2-t és Informixet. Szintén biztosított a támogatás más ODBC-képes adatbázisok számára.

A Magic egyedi, táblázatvezérelt megközelítése használatos az SQL-nek mind a Data Definition Language (DDL), mind a Data Manipulation Language (DML) megközelítésének megválaszolásához, anélkül, hogy a fejlesztőt SQL kódolására szorítaná.

A Magic DDL tábláinak a legfontosabb tulajdonsága az öröklődés („eredeztetés”) tulajdonsága. Bármelyik Magic-táblában bármelyik bejegyzésnek bármilyen módosítása automatikusan végigvezetésre kerül minden olyan Magic-táblázatban, amelyik hivatkozik a megváltozott táblázatra. Mivel a Magic programok maguk is olyan táblákban vannak definiálva, amik Magic DDL táblákra hivatkoznak, ennek a kijelentésnek a jelentőségét nem lehet túlhangsúlyozni. Újraszerkesztés, újrafordítás és újralinkelés nélkül az egész módosított alkalmazás azonnal készen áll a tesztelésre. A fejlesztők számára, ennek az egyszerű tulajdonságnak a kihasználása kiemelkedő jelentőségű, főleg azoknak, akiknek a felelősségébe tartozik a magas szinten együttműködő kliens/szerver hálózatokon futó alkalmazások karbantartása.

A Magic szemléletében az a meglepő, hogy egy alkalmazásnak nem csak a statikus, deklaratív aspektusai vannak táblázati bejegyzésekkel definiálva, de a dinamikus funkcionális és procedurális aspektusok is táblázatokban lettek definiálva. Még az alkalmazásprogramok (a DML utasítások logikai megfelelője) által végrehajtandó adatbázisműveletek megadása sem von maga után kódolást.

A Magic a DML funkcionális megfelelőjét különböző mechanizmusokon át éri el:

  • A Magic rekordvisszakereső képessége (u.m. Select) táblázatbejegyzéseken át direkt és explicit módon kerül megadásra. A Magic alkalmazásmotor ezeket a bejegyzéseket lefordítja a megfelelő DML bejegyzéssé (bejegyzésekké).
  • A Magic rekord manipulációs képessége (u.m. Insert, Update, Delete) deklaratív és implicit módon kerül megadásra egy taszk működési módján keresztül (21. ábra), ami lehet Bevitel, Módosítás vagy Törlés. A Magic alkalmazásmotor érzékeli a működési módot, ami dinamikusan változhat felhasználói tevékenység vagy más, alkalmazásspecifikus feltétel alapján, és lefordítja a megfelelő DML utasítássá (utasításokká).
Picture 21

21. ábra: Az adatmanipulációhoz tartozó taszk üzemmódok

A Magic alkalmazásmotornak és a taszk üzemmódoknak ez az erőteljes kombinációja reprezentálja a Magic egyik leginnovatívabb aspektusát, és fontos tényező a hatalmas termelékenységi előny biztosításában.

A fentiek tudatában, egy Magic programban lévő, implicit módon kért adatbázisművelet lefordításának feladata explicit kérésekké, amelyet egy specifikus RDBMS felismer, a Magic szoftver különböző „rétegeinek” a felelőssége; és nem az alkalmazás programozójáé. A Magic alkalmazásmotor, a Magic Request Broker, a Magic File Manager, és a MagicGate adatbázisátjáró modulok egyesítése kezeli az implicit adatbáziskérések lefordítását az RDBMS felé történő explicit függvényhívássá.

Fontos megjegyezni, hogy az SQL-kifejezések automatikus generálása mellett még a programozó explicit módon írhat és beágyazhat SQL kifejezéseket bármely Magic programba. A gyártóspecifikus képességek egyszerűen kihasználhatóak, a termék szintaktikai követelményeinek megfelelő kifejezések írásával. A megfelelő MagicGate adatbázisátjáró elfogadja, és továbbadja ezeket a kifejezéseket az adatbázisszervernek.

A Magic alkalmazásmotor - Hogyan működik

A Magic paraméterezett végrehajtási ciklusa

A Magic alapvetően a procedurális kódolást helyettesíti egy rendszerrel, ahol a programozó a logikai tervezési szabályokat különböző „Műveleti táblákba” viszi be, amelyek mindegyike az alkalmazásmotor végrehajtási ciklusának más fázisára hivatkozik. Ez a motor minden Magic rendszernek az integrált része; az alkalmazásokat a programozó által bevitt tervezési szabályok követésével hajtja végre. Ezek a szabályok csupán tizenhárom művelet használatával megadhatóak, amelyek teljesen kiváltják a hagyományos 3GL és 4GL fejlesztőeszközök számtalan parancsát és utasítását anélkül, hogy bármit is feláldozna a rugalmasságból, funkcionalitásból, vagy a logika összetettségéből.

A Magic egyedi alkalmazásmotorjának megértéséhez segítséget ad, ha egy alkalmazás alapvető feldolgozási egységére úgy gondolunk, mint egy objektumra, amit a motor működtet. Ez az objektum a Taszk. A Magic Repository relációs adatbázisanalógiájának megfelelően, mindegyik taszkról szóló információ egymással összefüggő táblában van eltárolva. Ezeket a táblákat a Magic végrehajtási ciklusa működteti. Az ezekben a táblákban tárolt információ a Magic deklaratív megközelítését ábrázolja, ahogy azt az előző fejezetben láttuk.

A Magicet kifejezetten úgy tervezték, hogy megoldást nyújtson a nagy adatbázisaktivitású alkalmazásoknak. Ezek az alkalmazások általában online módúak és interaktívak, de a Magic megfelel a háttérfeldolgozáshoz és a riportgeneráláshoz is. A Magic alkalmazásmotor, és különösen az alkalmazás összes taszkját végrehajtó implicit ciklusok tervezése miatt, a fejlesztő csak azokat a feldolgozási követelményeket határozza meg, ami alkalmazásonként egyedi. Alább az implicit Magic végrehajtási ciklus látható.

Picture 22

22. ábra: A Magic alkalmazásmotor ciklusai

Hogy működik a Magic programozható ciklusa

Minden Magic taszknak van egy rögzített blokkstruktúrája, ami a 22. ábrán bemutatott Magic alkalmazásmotor ismétlődő ciklusának lefolyását tükrözi. Minden taszknak vannak kapcsolódó működési táblái. A taszk végrehajtási struktúrájának minden blokkjához van egy tábla. Ezek a táblák a látható reprezentációi a műveleteknek, amik meghatározzák a taszk végrehajtása közben az adatnézeten elvégzendő logikát és műveleteket.

A taszk szintű műveletek egyszer kerülnek végrehajtásra taszkonként, a taszkinicializálás (Task Prefix - Taszk Előfeldolgozó) alatt, vagy a taszk befejezése (Task Suffix - Taszk utófeldolgozó) alatt. Ez a szint jellemzően olyan műveleteket takar, mint a riport fejléc (Taszk Előfeldolgozó) és a végösszeg (Taszk utófeldolgozó).

A rekord szintű műveletek rekordonként egyszer kerülnek végrehajtásra, rekordinicializáláskor (Rekord Előfeldolgozó), a végfelhasználó rekordokkal történő munkája közben (Rekord Főfeldolgozó), és rekord lezárásakor (Rekord Utófeldolgozó). A Rekord Főfeldolgozó szintjén a mezők ciklikus végrehajtása online taszkoknál történik meg.

Fontos megjegyezni, hogy ezeket a műveleteket a programozó explicit módon határozza meg, nem úgy, mint sok implicit műveletet, amit az alkalmazásmotor automatikusan végrehajt. Tipikus példák az implicit műveletekre a rekord- és fájlinicializálást, ill. manipulációt szolgáló adatbázisműveletek.

A Magic ugyanolyan szintű funkcionalitást és logikai komplexitást tud elérni, mint a 3GL és 4GL eszközök, csupán tizenhárom előre meghatározott, paraméterezett művelettel, mert rengeteg művelet már beágyazásra került a Magic alkalmazásmotorba. A 4GL-ek elemzése megmutatja, hogy a nyelvek utasításainak fele-harmada adatbázisműveletekkel és képernyőkezeléssel foglalkozik. A 3GL-ekben az adatbázis és képernyőkezelés nem tipikus része magának a nyelvnek, hanem általában speciális könyvtári rutinok hívásával kezelik le, vagy hibrid megközelítéssel, mint a beágyazott SQL. A legtöbb esetben, a 3GL-eknek több kódra van szükségük, mint a 4GL-eknek.

Futásidőben, a Magic sok „háztartási” munkát végrehajt az inicializálási szakasz közben, amikor az alkalmazás elindul, és a befejezési szakaszban, amikor az alkalmazás befejeződik. Ezen tevékenységek példái többek között:

  • Adatbázisfájlok megnyitása és lezárása
  • Nem adatbázisfájlok és más eszközök megnyitása és lezárása
  • Változók inicializálása
  • Rekordok adatbázisból való beolvasása
  • A kezdeti menü, vagy más képernyőelemek megrajzolása

A fejlesztőnek nincs szüksége explicit kódolásra, hogy végrehajtsa ezeket a folyamatokat - mivel ezek be vannak ágyazva a Magic alkalmazásmotorba.

A Magicben, mivel a normális esetben kódigényes műveletek automatikusan lekérdezésre kerülnek, csak akkor szükséges explicit módon meghatározni egy alkalmazás aspektusait, ha az a valódi logikával, az alkalmazás számításaival, az alkalmazás külső komponensekhez csatolásával - mint a nem adatbázisfájlok, fizikai eszközök, és nem-Magic programok - foglalkozik.

Taszk végrehajtás tábla

A Taszk végrehajtás táblák olyan műveleti táblák, amik az alkalmazáslogikát írják le (23. ábra). Mindegyik tábla a végrehajtási ciklus egy-egy szakaszára utal. Mindegyik táblabejegyzés tartalmaz egy műveletazonosítót egy készlet más táblára utaló mutatóval együtt. Tulajdonképpen egy Magic program végrehajtó táblái teljesen helyettesítik a 3GL és 4GL eszközök hagyományos forráskódját és scriptjeit.

Míg a fejlesztő kitölti a taszk végrehajtó táblát, egy kényelmes legördülő menü mutatja a Magic 13 műveletét. A szükséges művelet kiválasztásával, a fejlesztő a Magicet a végrehajtó táblában a megfelelő műveleti kód bejegyzésre kerül.

Habár a parancs teljes neve látható, akárhol is használják, csak egy darab karakter kerül a Magic Gyűjtőjében eltárolásra. Hasonlóképpen, habár az összes kiválasztott mező teljes neve látható, valójában csak a hivatkozásaik kerülnek eltárolásra a Magic Gyűjtőjében.

Picture 23

23. ábra: A Taszk végrehajtás tábla

A Magic műveletei tömörek, mégis nagyon erőteljesek és gazdag funkcionalitásúak, elvégezve minden klasszikus adatfeldolgozó tevékenységet.

Picture 24

24. ábra: Legördülő lista a Magic 13 műveletével

Egy lista a Magic „nyelvének” minden műveletével:

  • 1 Select Meghatározza az adatnézetet
  • 2 Verify Adatbevitel érvényesítése
  • 3 Link Egy-egy kapcsolat létesítése
  • 4 End Link
  • 5 Block Műveletek logikai csoportjának elejét és végét azonosító művelet
  • 6 End Block
  • 7 Call Vezérlés átadása másik egyednek, helyi vagy távoli szervernek
  • 8 Evaluate Különleges Magic függvények végrehajtása
  • 9 Update A Magic számítási módja
  • 10 Output Form A Magic leképezési módja az adatnézet és a külső eszközök között
  • 11 Input Form
  • 12 Browse Lehetővé teszi a végfelhasználó számára egy szövegfájl böngészését
  • 13 Exit Ideiglenes kilépés az operációs rendszerbe

Távoli programhívás

A Magic alkalmazásmotor a „Call” művelettel támogatja az elosztott végrehajtást. A „Remote Call” lehetővé teszi a fejlesztők számára az alkalmazáspartícionáláshoz szükséges információk megadását. A fejlesztő megadhatja a szerverek listájából a kívánt szolgáltatást, a végrehajtandó program nevét, és bejegyezhetik, hogy a program aszinkron, vagy szinkron módban fusson.

Ez a kifejezetten erőteljes funkcionalitás a már ismerős Magic elvrendszer keretében kerül megvalósításra. A Magic táblavezérelt módszertana mögött meghúzódó koncepció, ami nem igényel kódolást, és egységes felületet használ, hozzájárul a Magic fejlesztők által nyert termelékenységhez. Nincs szükség különleges hálózati szaktudásra. Az alkalmazás partícionálása egyszerűbb, mint képzelnénk.

Picture 25

25. ábra: A Remote Call párbeszédablak

Meglepő lehet, hogy a Magic alkalmazásmotor alapvető koncepciója és architektúrája ennyire magától értetődő. Ez az egyszerűség az, ami lehetővé teszi a legösszetettebb feladatkritikus alkalmazások gyorsabban történő megépítését, mint bármely más eszközzel a piacon. A jól ismert vállalatok növekvő száma, akik a különböző üzletkritikus alkalmazásaikhoz a Magicet használják stratégiai választásként, a bizonyítéka az ebben a füzetben leírt elmélet gyakorlati hatékonyságának.

Befejezés - a koncepció bizonyítéka

A koncepció bizonyítéka

A Magic, hasonló kijelentéseket tesz a termelékenységről, nyíltságról, RADD módszertanról, hordozhatóságról, adatbázisfüggetlenségről, és az utóbbi időben az Internet/Intranet támogatásáról is, mint más, az alkalmazásfejlesztési szektorban tevékenykedő szállító. A Magic azonban azzal tűnik ki, hogy racionális magyarázattal szolgál ebben az írásban ezen kijelentések okáról. Minden Magic koncepció és annak gyakorlati előnye közé egyértelmű út lett meghúzva.

A Magic azonnali termelékenysége azon az előzményen alapul, hogy közvetlen kapcsolat van a megadandó kód mennyisége és az alkalmazásfejlesztés sebessége között: kevesebb kód egyenlő nagyobb termelékenység. A hagyományos kódolási folyamat automatizált, táblavezérelt programozási technológiára cserélése által, a Magic drámaian növeli a programozási termelékenységet. Járulékos előnyök következnek még a Magic egyedi alkalmazásmotorjának koncepciójából, ami a compilereknek és linkereknek a fejlesztési folyamatból történő teljes kiküszöbölését eredményezi.

Ha egy komplex alkalmazást fog megvalósítani, ami hasznosítja a Webet, akkor jobban teszi, ha olyan eszközt keres, ami kiállja az idő próbáját. Azoknak a szállítóknak, akik most kezdik a Webes alkalmazásfejlesztést, kemény leckéket kell újra megtanulniuk. Azok a kliens/szerver cégek, amelyek már sok munkát elvégeztek, valószínűbb, hogy szilárd Web-képes eszközöket szállítanak.

Hurwitz Consulting Group

Az előző évtized hatalmas változásoknak volt tanúja a számítástechnikai rendszerek területén. Sok szakszó, koncepció, és módszertan jött és ment az alkalmazásfejlesztési iparban. Legyen akár 4GL, prototípuskészítő eszköz, adatbázisnyelv, alacsony, vagy magas szintű CASE eszköz, kliens/szerver eszköz, kódgenerátor, alkalmazásgenerátor, Internet vagy Intranet, a kihívás ugyanaz:

Hogyan építhetünk olyan alkalmazásokat, amelyek megfelelőek a vevő valódi üzleti igényeinek, rövidebb idő alatt, és hogyan tegyük ezeket az alkalmazásokat karbantarthatóbbá?

Magic fejlesztők tízezrei tesztelik a Magic alkalmazásmotort. Meg vannak győződve róla, hogy a Magic egyedi elvrendszere a válasz. A programozók, akik fölfedezték a Magic kliens/szerver alkalmazások által nyújtott termelékenységi előnyt, a Magicet most arra használják, hogy elrejtsék a legmodernebb technológiák összetettségét. A Magic fejlesztők kiemelkedő, díjnyertes alkalmazásokat építenek a vállalati szintű kliens/szerver és Internetes alkalmazások számára, ugyanakkor megfelelnek az adatbázisfüggetlenség, hordozhatóság, együttműködtethetőség, és a korábbi technológiákba történt befektetések megvédésének.

A Magic egyedi elvrendszere nemcsak, hogy kiállta az idő próbáját, de messze felülmúlta az elvárásokat. A Magic kiemelkedő története és teljesítménybeli bizonyítékai, a felbukkanó technológiák támogatásának képességével párosítva, meggyőző bizonyítékai a Magic koncepciójának.