Ez a dokumentum egy előző változata!
Sok éves tapasztalattal rendelkezem különféle programozási nyelvekben írt szoftverek tervezésében és fejlesztésében, néhány munkámmal kapcsolatban további (angol nyelvű) információt kaphatsz a blog oldalaimon. Számos kisebb-nagyobb projektben vettem részt fejlesztőként, a legtöbb esetben tervezési és irányítási feladatom is volt. Az alábbiakban pár reprezentatív példát olvashatsz az elmúlt években elért, szoftverfejlesztéssel kapcsolatos eredményeimről.
Ezt a JADE és Linux alapokra épített beágyazott rendszert elosztott működésre, automatikus, vagy legalábbis automatikus módszerekkel támogatott konfigurációra és nagy rendelkezésre-állásra kellett felkészíteni. Az ágens alapú architektúra számos fejlesztési előnyt adott más technológiákkal szemben. Az egyes szoftveregységeket állapotgépekkel lehet leírni, mely alapján a keretrendszer automatikus migrációs, üzenettovábbító, döntési, párhuzamosítási, tagsági és egyéb szolgáltatásokat nyújt, akár egy mobil MIDP platform erőforráskorlátai mellett is.
Az elképzelések szerint a rendszer prototípusa Ethernet hálózaton, VIA EPIA hardveren futott volna, melyet saját, illetve külső fejlesztésű egyedi mikrokontrolleres hardveren, CAN buszos érzékelő- és beavatkozó hálózat egészített volna ki.
Fél éves tervezési és fejlesztési munka után a projekt sajnos kifogyott a pénzből, ezért nem jutottunk el a prototípus rendszerig, mely egy új, modern technológiára épülő lakásautomatizálási rendszer alapjául szolgálhatott volna. A projektben vezető tervező és fejlesztő feladatkört töltöttem be a hardverfüggetlen elemek tekintetében.
Java programozási nyelven, objektum-orientált fejlesztési és programozási technikával, gyakran UML eszközökkel támogatva - többek között - készítettem még:
Gyakorlatilag két független projektről van szó, melyet két külön megbízónak készítettem, azonban mégis egybe tartoznak, mert sok alapvető PHP technika kidolgozására nyílt lehetőségem a két fejlesztési fázis alatt. Mivel abban az időben még nem jelent meg a PHP 5, nem lehetett a fejlesztői környezet objektum-orientált szolgáltatásait megfelelően használni, így - fejlesztőtársammal - teljesen saját keretrendszer kialakításába fogtunk, melynek (tőlem már független) második verziója a mai napig üzemel.
A webes munkáim nem maradtak ennyiben, több egyéb projektben is fejlesztettem illetve terveztem PHP alapú keretrendszereket és modulokat. Ismerem többek közt a template kezelés, gyorsítótárazás, sessionkövetés, adatbázis-alapú kép- és dokumentumkezelés, többnyelvűség, különböző autentikációs mechanizmusok, HTTP fejlécek, URL átírás és keresőszerver-barát oldalak készítésének módjait.
PHP nyelven készítettem még:
Egy kevéssé publikus projektben lehetőségem nyílt az alacsony szintű TCP/IP hálózati ismereteim elmélyítésére, melyet egybe kellett kötnöm egy nagy áteresztő képességű, mégis bonyolult műveleteket végző, a hálózatot lehallgató üzemmódban ellenőrző szenzor megtervezésével. A szenzor az ISO OSI rétegmodell második (adatkapcsolati) szintjétől egészen a hetedik (alkalmazási) szintjéig nyomon követi a megfigyelt hálózat forgalmát, vagyis lehetőséget ad az ARP kérdés-válaszoktól egészen pl. az email forgalom értelmezésére és elemzésére.
A szoftvernek fel kellett készülnie, hogy több szálon üzemelve sem lesz képes a mindenkori aktuális hálózati forgalom teljes feldolgozására, ezért egy moduláris szerkezetű, C programnyelven írt szoftvert fejlesztettünk ki, mely képes a rendszer terheltségétől függően bizonyos funkcióit korlátozottan ellátni, azaz egyes moduljai futásidőben automatikusan ki- és bekapcsolódnak. A rendszer belsejében egy üzenettovábbító és ütemező egység üzemelt, melyet több más technikai modul is kiegészített, felhasználtuk többek közt a Ragel állapotgép-fordító eszközt, a libnids hálózati függvénykönyvtár egy általam továbbfejlesztett változatát és a libpcap függvénykönyvtárat is.