01.12.2012 Views

Technológia - Elektro Net

Technológia - Elektro Net

Technológia - Elektro Net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

szükség. A korábban használt, szekvenciálisan<br />

mûködô SAX-olvasó helyett egy<br />

DOM-olvasó került felhasználásra az XMLfájl<br />

beolvasásához. Ennek elônye, hogy a<br />

dokumentum feldolgozása két lépésben<br />

történik. Elôször a dokumentum beolvasása<br />

történik meg egy DOM (document object<br />

modell) fába, mely csomópontokként tartalmazza<br />

az XML-fájl elemeit. A tartalom<br />

tényleges feldolgozása ezeknek a fa-csomópontoknak<br />

a bejárásával valósul meg. A<br />

programozottan irányított bejárás során lehetséges<br />

a ciklusok, feltételes ágak implementálása,<br />

illetve a változókezelés megvalósítása.<br />

DOM-olvasóként – a nyílt, könnyen<br />

használható és egyszerûen hozzáférhetô<br />

tulajdonságai miatt – az Apache<br />

Xerces C++ parser-implementációjának<br />

DOM-interfésze került felhasználásra.<br />

Felmerült problémák<br />

Az elsô probléma, ami a fejlesztések kapcsán<br />

felmerült, hogy az XM-olvasó különféle<br />

programozási környezetekbe való<br />

beillesztése gondot okozott. A választott<br />

XML-olvasó-interfészek implementációi<br />

csak C++ környezetben álltak rendelkezésre,<br />

míg a fejlesztés NI/CVI (National<br />

Instruments LabWindows/CVI) környezetben<br />

folyt. A megoldást egy saját olvasómodul<br />

kidolgozása jelentett, mely<br />

megfelelô interfésszel rendelkezik ahhoz,<br />

hogy a feladat specifikus igényeknek<br />

megfelelô szolgáltatásai meghívhatóak<br />

legyenek NI/CVI környezetbôl.<br />

További probléma volt, hogy az implementált<br />

saját olvasómodul beillesztése<br />

a fejlesztés alatt álló rendszerbe rendkívül<br />

kódolásigényes volt, és a kód nagymértékben<br />

függött a befogadórendszer<br />

sajátosságaitól. A forráskód méretének és<br />

az említett kódfüggôség csökkentésére kidolgozásra<br />

került egy kétszintû leírási<br />

mechanizmus. Ennek lényege, hogy a<br />

4. ábra. XSD-részlet, elemdefiníció<br />

14 info@elektro-net.hu<br />

Jármû-elektronika<br />

magas szintû leírás feladat specifikus elemeket<br />

tartalmaz, míg az alacsonyabb<br />

szintû egy univerzális nyelvet használ,<br />

mely független a feladattól, elemei bármilyen<br />

grafikus felületen elvégzett interakció<br />

leírására alkalmas, elemi mûveletek<br />

(úgymint mezôkitöltés, gombnyomás<br />

stb.). A két szint közötti kapcsolatot egy<br />

Extensible Stylesheet Language (XSL)<br />

transzformáció biztosítja, melyhez a<br />

transzformációt leíró fájl az eredeti forráskódtól<br />

függetlenül módosítható, így<br />

biztosítva, hogy az implementálandó<br />

XML-kezelô modul független legyen a<br />

speciális feladattól. Az elvet a 3. ábra<br />

szemlélteti.<br />

3. ábra. Tesztszekvenciák kétszintû leírása<br />

ROSETTA modell-leírás<br />

A fejlesztés célja egy szimulációs eszköz,<br />

amely alkalmas a ROSETTA teljes<br />

leszállóegység-mûködésének szimulációjára,<br />

azaz a szolgálati alrendszerek<br />

és a tudományos mûszerek különbözô<br />

mûködési állapotainak dinamikus helyettesítésére.<br />

A fejlesztés során cél volt,<br />

hogy a szimulációs rendszer minél<br />

függetlenebb legyen a szimulálandó<br />

egységtôl. A választás egy olyan megoldásra<br />

esett, amelyben az egység logikai<br />

mûködését egy külsô XML-fájl írja le, a<br />

szimulátor ez alapján épít fel egy belsô<br />

objektumstruktúrát, amelynek viselkedése<br />

megegyezik a szimulációs elvárásokkal.<br />

Az XML modell egy olyan „álla-<br />

2006/8.<br />

potgép”, amelynek fôbb elemei az állapotok<br />

(mode) és feltételes aktivitások (if,<br />

then, else), továbbá változó kezelés is<br />

lehetséges, a rugalmasságnövelés érdekében.<br />

Míg a korábbi esetekben a mûködés<br />

(visszajátszás) az XML-fájl értelmezésével,<br />

olvasásával egyszerre zajlott,<br />

addig itt az olvasás teljes egészében<br />

megelôzi a modell mûködését, ami<br />

már független az XML-fájltól. Ennek<br />

köszönhetôen az olvasás az egyszerûbb<br />

SAX-interfésszel került megvalósításra.<br />

A tulajdonság hátránya, hogy a változókezelés<br />

nagyban bonyolódik ez eddigiekhez<br />

képest, mert nem olvasási idôben<br />

kell feldolgozni, hanem a modell futtatásakor.<br />

A modul implementálásakor<br />

egy további probléma volt, hogy az<br />

XML-dokumentum nem ismer alaptípusokat,<br />

a mezôértékek típusa minden<br />

esetben szöveges, a megfelelô konverzió<br />

csak programozottan, a feldolgozás<br />

során hajtható végre. Ennek támogatására<br />

az XSD (XML Schema Definition)<br />

biztosít lehetôséget (4. ábra). A bemutatott<br />

példában a string típus- és egy<br />

boolen típusdefiniciót mutatunk be. Ennek<br />

segítségével a nyelvtan adható meg<br />

kellôen rugalmasan ahhoz, hogy a<br />

mezôértékek mintaillesztéssel, illetve<br />

alapadattípusok (egész, lebegôpontos<br />

stb) ellenôrizhetôek legyenek az XMLdokumentumban.<br />

Összegzés<br />

Az implementált XML-kezelô modulok<br />

– a felmerült problémák ellenére - minden<br />

esetben kielégítették a velük szemben<br />

támasztott elvárásokat. A további<br />

fejlesztés célja alapvetôen a modulok<br />

rugalmasságának és hordozhatóságának<br />

növelése.<br />

Irodalom:<br />

[1] www.w3.org/MarkUp/SGML<br />

[2] www.w3.org/MarkUp<br />

[3] Balajthy K., Sulyán J., Szalai L., Sódor<br />

B., Lipusz Cs., dr. Szalai S.: Elosztott<br />

intelligenciájú automatizált rendszer<br />

a VenusExpress ûrmisszió kísérletének<br />

kalibrálására. Híradástechnika, 2006/04<br />

pp. 34–38<br />

[4] Balajthy K., Endrôczi G. dr Nagy J.,<br />

Horváth I., Lipusz Cs., dr. Szalai S.:<br />

Adatgyûjtô és vezérlô számítógép a<br />

Nemzetközi Ûrállomás Obsztanovkakísérletéhez.<br />

Híradástechnika, 2006/04<br />

pp. 17–22<br />

[5] Tróznai G., Baksa A., Sódor B.:<br />

A Rosetta leszállóegységének szoftverszimulátora.<br />

Híradástechnika, 2006/04<br />

pp. 45–50<br />

[6] Brett McLaughlin: Java és XML.<br />

O'Reilly, Kossuth, 2001 isbn: 963 09<br />

4230 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!