Platform, futtatási környezet

Rendszereink fejlesztésénél elsőrangú követelmény a nagy terhelhetőség, kiemelkedő sebesség és megbízhatóság. Ahhoz, hogy a szerveren teljes kontrollt gyakorolhasson az alkalmazás a memóriakezelés, futó processzek, és az internetes kapcsolatok felett, mindenképpen gépközeli programozási nyelvet kellett választani. Fontos követelemény a skálázhatóság, a portolhatóság, azaz a futtathatóság az egyszerű pc-től a CDN szerver clusterekig. Az egyetlen olyan nyelv, ami minden követelménynek megfelel, az ANSI C. A modern ANSI C fordítók a processzorok pre-cachelési algoritmusát is figyelembe veszik, ezért a C-ben való fejlesztés lehetőséget ad még az assembly-ben fejlesztett alkalmazásoknál is hatékonyabb kódolásra, napjainkban a létező leghatékonyabb és legnagyobb teljesítményű programozási nyelv.
ANSI C fordító szinte minden létező UNIX operációs rendszer alatt elérhető, fordítható és futtatható. A felhasználói igények (a párhuzamos felhasználók számának) növekedése esetén a rendszert módosítások nélkül lehet fordítani és telepíteni egy az újabb igényeket kiszolgálni képes szerverre (vagy clusterre) (Solaris, UltraSparc). Alkalmazásaink kliens-szerver alapúak, ahol a szerver mindig egy UNIX alapú szerver, a kliens pedig bármilyen operációs rendszer alatt használható, amely rendelkezik webes felülettel.

Kiszolgálás CGI, daemon vagy CDN módban

A kiszolálás történhet CGI módban, ahol a webszerver kezeli a kapcsolatot, és hívja az alkalmazást, ez a könnyű kezelhetősége, portolhatósága miatt előnyös.
Ha nagyobb terhelhetőségre van szükség, akkor dameon módban az alkalmazás maga fut, preforkol, előkészíti az adatbázis kapcsolatot, és várja a kliensek bejelentkezését. Mivel a futtatasi környezet kialakítása már a kérés beérkezte előtt megtörtént, maga a futásidő, és ezzel a válaszidő drámaian csökken, sokszorosára növelve a kiszolgálható ügyfelek számát.
Ha extreme nagy teljesítményre van szükség, akkor használható az alkalmazás CDN módban, ahol több szerver párhuzamosan szolgálja ki a kéréseket megfelelő terhelés elosztással. Itt mivel az egyes műveletek szerint szét vannak osztva a kérések, és egy szervernek nem kell a grafikus elemekkel, a kiszolgálással és az adatbázis műveletekkel is foglalkoznia, tovább fokozható a terhelhetőség, akár többszázezer egyidejű felhasználó kiszolgálásáig.

Intel i5
CGI mód
Intel i5
daemon mód
Intel Xeon (X5660)
daemon mód
Intel Xeon (X5660) cluster (4 gép)
CDN daemon mód
Adatbázis műveletek, létrehozás, törlés 4,6 ms 0,34 ms 0,28 ms 0,21 ms
Adatbázis műveletek, törzsadat editálás 4,24 ms 0,24 ms 0,21 ms 0,15 ms
lista készítés 100 oldal 15,7 ms 11,4 ms 9,12 ms 8,1 ms
Átlagos request idő 4,95 ms 0,69 ms 0,56 ms 0,46 ms
Egyidőben bejelentkezett max aktív felhasználó4.040 28.985 71.428 245.712

* aktív felhasználó az, aki átalogsan 10 másodpercenként küld egy requestet, és minden 30. request listázás (a gyakorlatban ettől jóval alacsonyabb a valós terhelésnél az átlagos kattintás száma)
* a 100 oldalas lista tömörített PDF, amiben minden oldalon van egy grafikus céglogó, oszlopokba tördelt lista összesítésekkel.

A közölt adatokat Linux szerveren, MYSQL (5.0.95) database szerverrel mértük. Ugyanazon a gépen futtatott kiszolgáló és MYSQL szerverrel, a kiszolgáló CGI módban apache 2.2.22, daemon módban közvetlenül az alkalmazás szolgálja ki a kéréseket. A cluster kiépítésben 4db számítógép szolgál ki, amiből mind a 4-en mysql cluster szerver fut, és terhelés megosztás dolgozik a 4 gép előtt egy routeren.
A terhelés teszteken a válaszidő a maximális aktív felhasználók elérésénél sem haladhatja meg az 1 másodpercet.

Hatékonyság, Erőforrás igény

Az ANSI C-ben írt rendszer azonos feladatokat tekintve, egy PHP vagy más, interpreteres script alapú programozási nyelvhez képest akár 500x - 1000x, Java, Delphi alkalmazásokhoz képest 5x - 10x (egyes esetekben akár 100x) gyorsabban futnak. Ez azt jelenti, hogy a rendszer adott számítási teljesítmény mellett akár százszor annyi ügyfelet tud kiszolgálni mint a konkurens rendszerek. Egy kb 1000 munkahelyet üzemeltető vállalat ERP rendszerét egy Intel i3 alapú szerverrel könnyedén ki lehet szolgálni.

Webes kezelőfelület - korlátlan szabadság

A webes alapú kezelőfelületnek köszönhetően kliens oldalon szinte bármely operációs rendszer alatt használhatók az alkalmazások (akár mobil eszközökön is). A rendszer on-line mívolta miatt percrekész, friss információkat biztosít mindegyik telephelyen, a használatához csak internet kapcsolatra van szükség. A felhasználók biztonságos kommunikációját 128 bites SSL csatorna biztosítja, a listákat és bizonylatokat a rendszer PDF formában adja, azok szinte minden eszközön megnyithatók és eszköztől függetlenül azonos formában nyomtathatók. Mivel a rendszereink használatához csak egy böngészőre van szükség, az adott környezetben leghatékonyabb operációs rendszer vagy hardware kiválasztása egyszerű feladat. A webes felületet biztosítani képes számítástechnikai eszközök lényegesn olcsóbban beszerezhetők, mint komplett számítógépek, és a karbantartásuk is jelentősen kevesebb feladatot jelent a felhasználói oldalon. A rendszer könnyedén üzemeltethető akár ipari környezetbe szánt vékony kliensen is.
(A rendszer Apple iPad-on, vagy iPhone-on is problémamentesen kezelhető)

Többnyelvű felhasználói felület

Rendszereink igény szerint több nyelven kezelhetők, alkalmasak a nyelvekhez tartozó sajátosságok (akár külön menürendszer) megjelenítésére.

Megbízhatóság, stabilitás

Az ANSI C-ben írt rendszerek gépi kódra fordulnak, és nem használnak interpretert a futáshoz, nem függnek azoktól (nem futnak különbözőképpen különböző verziójú interpreter alatt, lásd php), és nem bírnak azok rossz tulajdonságaival, és biztonsági hibáival sem. A rendszer (kiépítéstől függően) egy vagy több futtatható file-t tartalmaz.