"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ó.
20. ábra: A Magic robusztus együttműködési képessége
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
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 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:
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.