IKTA-KÉPI 00101/2000 projekt Szerzõdés számok: OMFB-00179/2001, OMFB-00190/2001 Fotorealisztikus képszintézis CAD rendszerekben
KÖZÖS FEJLESZTÕI KÖRNYEZET KIALAKÍTÁSA 1.1 verzió: 2001.05.19.
ÍRTA: Antal György Csonka Ferenc
ELLENÕRIZTE: dr. Szirmay-Kalos László dr. Horváth Tamás
1. Bevezetõ A projekt során a tudásközpont (BME IIT grafika csoportja) és a technológiai központ (Graphisoft R&D Rt.) közös fejlesztést végez. Azért, hogy a fejlesztés hatékonyságát növeljük, az eredmények összevethetõségét megkönnyítsük, közös fejlesztõi környezetet dolgoztunk ki. Ez a dokumentum a fejlesztõi környezet kialakítása során hozott döntéseket és felhalmozott tudást kívánja összegezni, amelyeket más projekteknél is alkalmazni kívánunk.
2. Hardver alapok A közös fejlesztõi környezet kialakítását az új hardver beszerzésével, illetve a már meglevõ hardver eszközök korszerûsítésével kezdtük. A tagok egyetértettek abban, hogy a projekt keretében kifejezetten számításigényes feladatokat kell elvégezni, amelyek pedig igen nagyteljesítményû számítógépek beszerzését teszi szükségessé. Kiemelt figyelmet fordítottunk arra, hogy ezeket a számítógépeket kifejezetten grafikai célokra fogjuk használni, ezért a megfelelõ multimédiás képességek elengedhetetlenek. A nagy számítási teljesítmény kielégítésére 800MHz-es Intel Pentium-III számítógépeket vásároltunk. Számos kutatott algoritmusnak (például a radiozitásnak) a memória komplexitása közismerten nagy. Tehát a kutatás során elvégzendõ tesztek és futtatások sebességét a rendelkezésre álló memória nagymértékben befolyásolja. Nem ritka, hogy egyes futtatások ideje 7-8 óra, vagy 1-2 nap is. A modellezésben használt szoftverek (például Maya, 3DStudio MAX, ArchiCAD) is nagyon sok memóriát emésztenek fel. Ezért 384MB memória beszerzését sem tartottuk soknak. A háromdimenziós megjelenítés sebessége nagymértékben függ a videokártya hardveres gyorsításától. Ezért, ahol lehetett, a megbízható ATI cég elérthetõ legjobb videokártyáját, a Radeon 64MB DDR RAM-mal szereztük be. A nagyméretû adatok mozgatására egyes számítógépekbe CD-újraírót is igényeltünk. A technológiai partner többplatformos fejlesztésének igényét teljesítendõen Macintosh típusú számítógépeket is beszereztünk. A Macintosh-os fejlesztés csak a technológiai központban várható, ezért a Macintosh-os gépek szoftver és hardver kompatibilitását nem kellett egyeztetni a két központ között, a technológiai központ azokat - az évek során bevált - saját igényeire formálhatta.
3. Szoftver alapok A PC platformon a Microsoft igen elterjedt operációs rendszerét, a Windowst választottuk. A központokban a fejlesztés a megbízható Windows 2000 és Window NTken folyik. A Macintosh gépekhez - természetesen - a MacOS 9.0.4-et használjuk, amely idõvel MacOS X-re fog cserélõdni.
1
Programozási környezetként olyan nyelvet kellett választanunk, amely megfelelõ mértékben rendszerközeli ahhoz, hogy a számításigényes feladatokat megfelelõ sebességgel lehessen futtatni. További igény volt, hogy objektum-orientált programozást lehetõvé tevõ nyelvet válasszunk. Az elõbb felsorolt elvárásaink alapján a választásunk a C++-ra esett. Fejlesztõi környezetként a Microsoft Visual C++ (MSVC++) programcsomagját és a Microsoft Developer Network (MSDN) programozási segédletét telepítettük. Ezeket a szoftvereket a központok saját pénzügyi erejük felhasználásával bocsátották a projekt rendelkezésére. Az egységes fejlesztõi környezet kialakítását szolgálta, hogy a tagok megállapodtak, hogy Visual C++-hoz mindegyikük a Service Pack 5 csomagot is telepíti.
4. Kommunikáció a tagok között A projekt legfontosabb kommunikációs közege az Internet. A projekt saját honlappal rendelkezik, amely a http://www.fsz.bme.hu/~szirmay/ címrõl érhetõ el. Nagyméretû adatállományok cserélgetése azonban FTP protokollon keresztül történik, amelyre a jenny.iit.bme.hu szerver szolgál. Ehhez a szerverhez a tagok jelszóval rendelkeznek, és nyíltan elérik az egymás által feltöltött adatállományokat. A HTTP protokollal megvalósítható kommunikáció számos alkalmazási lehetõséget biztosít. A projekt keretében a következõ megoldást tervezzük alkalmazni: Microsoft Word szövegszerkesztõben gyorsan készíthetõk pár szavas, de gazdag illusztrációval, képekkel rendelkezõ HTML oldalak. Ezek egy témát jobban leírnak, megmagyaráznak, mint például egy szöveges email. Tehát grafikával lehet az egyes ötleteket, részeredményeket a projekt további tagjai számára publikálni, ha a HTML oldalakat FTP protokollon keresztül feltöltik egy olyan szerverre, amelyrõl HTML formában akár egy egyszerû böngészõvel is megnézhetõ. A részeredmények, ötletek ilyen formában való belsõ publikálásáról és az elérhetõ honlap címérõl ilyenkor a feltöltést végzõ a konzorcium tagjait emailben értesíti. A személyes megbeszélések mellett a leggyorsabb kommunikációs csatorna természetesen - a telefonos összeköttetés, amelynek feltételeit és anyagi vonzatait a központok a projekt tagjainak rendelkezésére bocsátották.
5. Konkurens verziókezelés Minden komolyabb projekten több fejlesztõ dolgozik. Mindenki rendelkezik a forráskód és a hozzátartozó dokumentáció egy-egy másolatával. Ha az egyik fejlesztõ módosításokat végez például a forráskódon, akkor azt jelentenie kell a többiek felé, és mindenkinek el kell végeznie ugyanazokat a változtatásokat, hogy végül a sok kis módosítás ne okozzon kavarodást. Ha egy projekttel kevés fejlesztõ foglalkozik, akkor a fent leírtak viszonylag könnyen megvalósíthatók. Viszont ha sokan dolgoznak a projekten, és ráadásul nem oldható meg könnyen, hogy egy adott idõpontban
2
találkozzanak (például a földrajzi távolságok miatt), akkor könnyen igen nagy kavarodások fordulhatnak elõ. Például ha a forráskódon a fejlesztõk egyike lényeges módosítást végez. A CVS (Concurrent Version Systems) ([1]) egy olyan freeware eszköz, amelynek segítségével ez megelõzhetõ. A piacon lehetõség van drága kereskedelmi verziókezelõ programcsomagok megvásárlására is, mi azonban kiegyeztünk a CVS-el. A CVS lényege az, hogy a módosításokat és az azokból következõ esetleges konfliktusokat központilag nyilvántartják, és ha kell, értesítik róla a fejlesztõket. A projekt elsõdleges példánya (master copy) a CVS szerveren tárolódik. A fejlesztõk innen kérhetnek másolatot, valamint a módosítások elvégzése után ide küldik vissza a forráskódot. A fejlesztés során adódhatnak olyan esetek is, amikor egy módosítást követõen az adott program nem mûködik megfelelõen. Ekkor hasznos, ha rendelkezésre áll a program módosítás elõtti változata is, mert ilyenkor egyszerûen az elõzõ állapottól folytatva felderíthetõ a hiba oka. CVS-t használva ez is megoldható, hiszen a CVS nyilvántartást vezet a fejlesztés állapotáról és a módosításokról, így a fejlesztõk - szükség esetén kérhetnek a CVS-tõl egy tetszõleges multbeli idõpontban létezett, módosítás elõtti verziót. A CVS szerver tartalmát lehet helyi gépen, de akár egy távoli szerveren is tárolni. Egy távoli CVS szerver elérésére több lehetõség is kínálkozik. Mivel a projekt során a fejlesztés fõleg Windows-os klienseken történik, a parancssoros CVS interpreter helyett egy grafikus felületet, a WinCVS-t ([2]) használjuk, amely szintén ingyenes szoftver.
6. A források helye A CVS repository tárolása egy olyan szerveren történik, amely mindkét fél számára elérhetõ. A technológiai központ egyik szerverén való elhelyezést azért vettettük el, mert a távoli eléréshez a tûzfal védelmi rendszerén való akadálytalan áthaladás szükségeltetett volna, amely hálózati adatvédelmi szempontból nem szerencsés. Ugyanakkor a tudásközpont gépein való elhelyezést, lemezterület- és rendszergazda jogok igénylését a nagyfokú bürokrácia miatt vetettük el. Helyette nagyon egyszerû megoldásként elhatároztuk, hogy a fejlesztést a SourceForge ([3]) keretei között végezzük. A SourceForge egy ingyenes szolgáltatás, amelyet nyílt forráskódú (open-source) projektek fejlesztésére hoztak létre. A fejlesztés CVS-en keresztül elérhetõ verziókezeléssel, levelezõ listával, üzenõtáblák felállításával, fórumok létesítésével, archiválási és visszaállítási funkciókkal, teljesen Internet alapú adminisztrációval (jogok kiadása, ki-mikor-mit másolhat be a központra és hogyan) történik. Tehát a fejlesztés archívuma a sourceforge.net szerveren van. Innét a tagok SSH-val támogatott CVS klienssel (WinCVS) „check-out”-olják, azaz töltik le az éppen aktuális, vagy valamely régebben létezett forrást.
3
A SourceForge-on létrehozott projektet, illetve annak CVS repository-ját RenderX-nek neveztük el. Adminisztrálásával Antal György foglalkozik. A projekt címe: https://sourceforge.net/projects/renderx/. A kezdeti próbaállományok feltöltése megtörtént, a kapcsolat létrehozását a tagoknál kipróbáltuk, a tényleges fejlesztés a munkaterv következõ fázisaiban várható.
Irodalomjegyzék [1]
CVS hivalatos honlapja http://www.cvs.org/
[2]
WinCVS hivatalos honlapja http://www.wincvs.org/
[3]
SourceForge projektek honlapja http://www.sourceforge.net/
4