Next: Többszálú Up: A nyelv alapvető tulajdonságai Previous: Interpretált és dinamikus   Tartalomjegyzék


1.5.1.5       Robusztus és biztonságos

Robusztus a nyelv, ha megakadályozza vagy futás közben kiszűri a programozási hibákat. Biztonságos a nyelv, ha megakadályozza, hogy rosszindulatú programok kerüljenek a rendszerbe. Mindkét célkitűzés eléréséhez gyakran hasonló módszereket használnak.

A robusztusságot nyelvi szinten a szigorú, statikus típusosság biztosítja. Minden adatnak fordításkor jól definiált típusa van, nincsenek automatikus konverziók, az explicit konverzió csak kompatibilis típusoknál sikerül, egyébként legkésőbb futtatáskor programhibát okoz. A mutatók megszüntetésével rengeteg potenciális hibalehetőség tűnt el a nyelvből, bár ennek nem minden programozó örül. A dinamikus szemétgyűjtés megkímél bennünket a hasznos memória elszivárgásától. Az egyedüli összetett adatszerkezet, a tömb használatakor, a túlcímzést futási időben ellenőrzik. Az osztály-betöltő arra is figyel, hogy a metódusokat megfelelő típusú paraméterekkel hívjuk meg.

A biztonság a robusztussággal kezdődik. A fordító csak „rendesen viselkedő” programokat ad ki magából. Ez elegendő lehet önálló alkalmazásoknál, de az appletek letöltésénél ennél többre van szükség. A „Byte” kód minden utasítása információt tartalmaz az operandusok típusáról, és az osztály-betöltő ellenőrzi, hogy a program megfelel-e a nyelv szabályainak. Ellenőrzi azt is, hogy a metódusok a vermüket konzisztensen használják-e, valamint hogy a kód nem fér-e hozzá számára nem engedélyezett adatkomponensekhez és metódusokhoz.

Az osztály-betöltő a hivatkozott osztályt először mindig a helyi háttértárból próbálja betölteni, csak akkor fordul a hálózaton elérhető kiszolgálóhoz, ha az osztály nincs meg a helyi rendszeren. Így elkerülhető, hogy trójai falóként valamelyik rendszerkönyvtár helyett azonos nevű, távolról betöltött programot futtassunk.

Ha a betöltött appletek átjutottak az osztály-betöltő konzisztencia-ellenőrzésén, akkor a virtuális gép felügyelete alatt kezdenek el futni. Ez ellenőrzi, hogy a programok csak engedélyezett tevékenységet hajtanak végre. Szigorúan szabályozott a helyi állományokhoz való hozzáférés, tiltott más helyi programok indítása, jelentősen korlátozott a hálózaton felvehető kapcsolatok címzettje. A biztonsági szabályok erősen korlátozzák az appletek képességeit. Biztonsági szempontból legfeljebb a helyi rendszerből betöltött (viszonylag biztonságos), illetve hálózatról letöltött (gyanús) osztályok között lehet különbséget tenni.


Next: Többszálú Up: A nyelv alapvető tulajdonságai Previous: Interpretált és dinamikus   Tartalomjegyzék

 
Misóka Zoltán 2000. 10. 05.