A InfoWiki wikiből
Tartalomjegyzék |
A projekt célja
- létrehozni egy programozási környezetet, ahol nagy számolásigényű műveletek elosztottan, több számítógépen futtatva belátható időn belül kiértékelhetőek
- a programozási környezet tartalmaz egy erre a célre felkészített programozási nyelvet, fordítóprogramot, futtatási környezet.
Résztvevők
- Hernyák Zoltán - projekt vezető
- Király Roland - projekt vezető
Programozási nyelv
Egy speciális felépítésű programozási nyelv, amellyel elsősorban matematikai problémák, azok kiértékelésének menete írható le. A szintaktika egyszerűsített, a szemantika erősen épít a funkcionális nyelvek lusta kiértékelésre.
A programozási nyelv két három szintet mutat:
- TITAN-M legfelső szint, legmagasabb absztrakciót mutató réteg, a felhasználói szint. Mutat bizonyos 5GL jellemzőket, de funkcionális nyelvi elemek is fellelhetőek benne
- TITAN-A középső szint, a legfelső szint erre fordítódik át, ez egy magas szintű assembly nyelvnek is tekinthető. Programozás ezen a szinten elképzelhető, de nagyon aprólékos munka.
- C# legalsó szint (C++, Java, vagy C#), az assembly kód egy ilyen szintű kódra fordítódik át (forráskód-generálás). A megfelelő nyelvi fordító generálja a futtatható .exe filet.
Programozási környezet
A programozási környezet alkotja azt a felületet, ahol a felhasználók a feladatokat (utasítások, programkód) beviszik a TITAN rendszerbe, és ahol a számítási eredményekről tájékoztatást kapnak.
- az utasításokat, programkódokat WEB felületen lehet bevinni, a web-lap ezt belső hálózati kapcsolaton juttatja el a TITAN motorhoz, aki a kódokat fordítja, az utasításokat tárolja
- a számítási feladatokat WEB-es felületen lehet időzíteni, vagy indítani
- a futó számítási feladatok állapotairól szintén WEB-es felületen lehet információkat szerezni
- a számítási eredményeket a TITAN motor tárolja el maradandóan, és WEB-es felületen lehet letölteni, vagy megtekinteni
Futtató környezet
A TITAN motor lényege egy elosztott futtató rendszer az alábbi komponensekkel:
- authorizációs szolgáltatás: a rendszert használó felhasználól accountjait, és jogosultságait tárolja (alapvetően egy sql szerver, és néhány API függvény)
- kódgyüjtemény: a felhasználók által korábban beírt, saját fejlesztésű függvények tárolása. A feladatok megfogalmazása (kódolása) során alkalmazhatja a felhasználó a saját függvényeit is. Van mód publikus függvények készítésére, melyeket meg lehet osztani más felhasználókkal is (ilyenek a TITAN LIBRARY függvényei is). A publikus, megosztott függvények dokumentálásának, verziókövetésének erős megkötései vannak (egy jogosultsági renszerrel és meta-információkat kezelő FTP szervernek is felfogható)
- feladatok: a rendszerbe bevitt számítási feladatok. A feladatok ütemezésre kerülnek (figyelembe véve a feladatot rögzítő felhasználó jogosultásgait, prioritásait). A feladat státusza lehet várakozó, folyamatban, befejezett, törölt.
- ütemező: a feladatok ütemezését végző szolgáltatás. folyamatosan figyeli a TITÁN erőforrásokat (számítógépek, memória, processzor), és dönt a feladatok sorrendiségéről, indításáról.
- file-rendszer: a TITÁN feladatokat futtató programok egyetlen összefüggő diszk-rendszert, file-rendszert látnak, melyek fizikailag több számítógép diszkjein vannak szétszórva.
- operációs-rendszer: a TITÁN kódok több számítógépen elosztva futnak. A résztvevő számítógépeken egy-egy operációs-rendszer kiegészítő alkalmazás fut, amelyen keresztül az adott gépre át lehet tölteni futtatandó kódot, indítani, leállítani, állapotáról információkat lehet lekérni.