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.
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
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 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).
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.
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.
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.
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.
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.
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.