I. Software GIS open-source, o alternativă completă la soluțiile proprietare. Introducere, librării și toolkit-uri de dezvoltare
de Vasile Crăciunescu
Publicat la 06 Jan 2007 | Secţiunea: Articole | Categoria: GIS/Generalitați
Conceptul de open source
Conceptul de software liber/free nu este deloc unul nou. Imediat după apariție, calculatoarele au fost adoptate de universități ca unelte de cercetare. La acel moment aplicațiile software erau distribuite liber, programatorii fiind plătiți doar pentru timpul de programare și nu pentru aplicațiile software realizate. Ceva mai tîrziu calculatoarele au ajuns în mediul de afaceri iar programatorii au început să se întrețină restricționînd drepturile utilizatorilor asupra aplicațiilor software și percepînd taxe pentru fiecare copie a programului. Conceptul de software liber, ca filosofie de dezvoltare a aplicațiilor, a fost puternic popularizat începînd cu anul 1984 de către Richard Stallman, o dată cu înființarea Free Software Foundation și demararea proiectului GNU. În viziunea Free Software Foundation (FSF), software-ul liber este caracterizat de libertate și nu de preț. Conceptul se referă la libertate în sensul de libertatea de expresie și nu în sensul de intrare liberă. Confuzia între cele două sensuri este des întîlnită deoarece în engleză, cuvîntul free, semnifică atît libertate cît și gratis. Software-ul liber e caracterizat de libertatea acordată utilizatorilor săi de a-l utiliza, copia, distribui, studia, modifica și îmbunătăți. Mai exact, e vorba de patru forme de libertate a utilizatorilor săi:
- Libertatea de a utiliza programul, în orice scop (libertatea 0).
- Libertatea de a studia modul de funcționare a programului, și de a-l adapta nevoilor proprii (libertatea 1). Accesul la codul-sursă este o precondiție pentru aceasta.
- Libertatea de a redistribui copii, în scopul ajutorării aproapelui tău (libertatea 2).
- Libertatea de a îmbunătăți programul, și de a pune îmbunătățirile la dispoziția publicului, în folosul întregii societăți (libertatea 3). Accesul la codul-sursă este o precondiție pentru aceasta.
Sigla proiectului GNU
În 1998, Eric S. Raymond, Bruce Perens și Linus Torvalds lansează conceptul open source software, ca alternativă la formula free software. În acest fel se urmărește atît eliminarea ambiguității induse de forma free cît și debarasarea de aspectele rigide promovate de FSF. Mișcarea s-a dovedit una cîștigătoare, curentul open source cunoscînd de atunci o dezvoltare exponențială.
Succesul unui proiect open source nu este asigurat prin simpla publicare a codului sursă. Acesta apare atunci cînd în jurul proiectului se conturează o comunitate activă de dezvoltatori și utilizatori, uniți de interese comune, care susțin și îmbunătățesc constant proiectul. Pentru a atrage o comunitate puternică, un proiect open source trebuie să respecte o serie de reguli de design, transparență și deschidere. Cele mai importante ar fi:
- Documentarea cît mai bună a aplicației software, atît la nivel de utilizator cît și la nivel de dezvoltator. Acest lucru va minimiza timpul și efortul investit de un utilizator/dezvoltator nou pentru a se obișnui cu aplicația și va maximiza productivitatea acestuia.
- Proiectarea și implementarea aplicației să fie făcută într-o manieră transparentă. Aceasta presupune în primul rînd disponibilitatea codului via CVS, dar și existența unor liste de discuții publice, unde să fie puse în discuție strategiile de dezvoltare, planurile de viitor etc.
- Echipa de dezvoltare a proiectului trebuie să fie de asemenea transparentă. Importanță unui dezvoltator trebuie să fie dată de calitatea și cantitatea contribuțiilor la proiect și nu de funcția deținută în cadrul unei instituții sau companii.
- Designul aplicației trebuie să fie unul modular. Acest lucru permite dezvoltatorilor adăugarea la aplicația principală a unor module cu funcționalitate specifică. Deși utilitatea unui modul poate să nu intereseze întreaga comunitate din jurul proiectului, ea va adăuga valoare aplicației și va permite atragerea de noi utilizatori.
Succesul aplicațiilor open source a cunoscut o nouă fază o dată cu apariția unor noi modele de bussiness care să exploateze și în plan comercial funcționalitatea acestora. Drept dovadă, în momentul de față, foarte multe din aplicațiile open source nu mai reprezintă doar rezultatul muncii unor programatori entuziaști, ci beneficiază de un suport substanțial din partea marilor companiilor private (Ex: IBM, HP, SUN etc). Conceptul open source garantează clientului controlul deplin asupra tehnologiei pe care o utilizează și asigură diminuarea costurilor prin eliminarea cheltuielilor presupuse de achiziția aplicațiilor. În același timp, dezvoltatorul unui proiect open source poate controla modul în care aplicația sa este utilizată comercial prin atribuirea unei licențe de utilizare. În prezent există o multitudine de asemenea licențe, adaptate diverselor nevoi ale utilizatorilor și un organism ce are rolul de a centraliza, documenta și arbitra corectitudinea textului acestor licențe: Open Source Initiative.
Printre cele mai cunoscute și utilizate proiecte open source se numără sistemul de operare Linux, serverul web Apache, browser-ul Mozilla Firefox, limbajul de scripting server-side PHP, aplicația de gestiune a bazelor de date MySQL, suita office Open Office și lista poate continua.
Pentru o înțelegere mai exactă a fenomenului open source, a motivațiilor și a culturii născute în jurul acestuia vă recomandăm următoarele cărți:
- The Cathedral & the Bazaar de Eric S. Raymond. O’Reilly 2001. Una din cărțile cu cel mai mare impact asupra fenomenului open source. Versiunea on-line (inclusiv versiunea în limba română) poate fi citită la http://catb.org/~esr/writings/cathedral-bazaar
- Open Sources: Voices from the Open Source Revolution. O’Reilly 1999. O colecție de eseuri semnate de cele mai importante personalități ale lumii open source. Apărută în 1999.
- Open Sources 2.0: The Continuing Evolution. O’Reilly 2005. O continuare a ediției din 1999 cu eseuri asupra proiectelor open source actuale.
- Free as in Freedom: Richard Stallman and the Free. O’Reilly 2002. Carte semnată de faimosul inițiator al Free Software Foundation.
- Producing Open Source Software: How to Run a Successful Free Software Project. O’Reilly 2005.
- Open Source for the Enterprise. O’Reilly 2005.
- Understanding Open Source and Free Software Licensing. O’Reilly 2004.
- The Success of Open Source. Harvard University Press 2005.
- Open Source Licensing: Software Freedom and Intellectual Property Law. Prentice Hall 2004.
- Perspectives on Free and Open Source Software. MIT Press 2005.
- Succeeding with Open Source. Addison-Wesley 2004.
- Understanding Open Source Software Development. Addison-Wesley 2002.
Open source si GIS
Aplicațiile GIS open source au cunoscut în ultimii ani o dezvoltare și o diversificare puternică, iar astăzi putem afirma cu certitudine că acoperă fiecare nivel din ciclul de utilizare a datelor geospațiale.
În cazul Sistemelor Informaționale Geografice, avantajelor clasice ale utilizării aplicațiilor open-source: reducerea costurilor, control asupra tehnologiei utilizate etc.; li se adaugă o componentă extrem de importantă, și anume: compatibilitatea cu standardele existente în acest domeniu, marea majoritate a aplicațiior GIS open source fiind 100% compatibile cu standardele în vigoare. Elaborarea standardelor ce guvernează modului de gestionarea a informației geospațiale cade în sarcina OGC, un organism internațional independent, format din reprezentanți ai agențiilor guvernamentale, companii private și mediul universitar. Standardele elaborate de OGC sînt mai apoi preluate de alte organisme internaționale de standardizare, cele mai importante fiind ISO și CEN etc.
Din punct de vedere al limbajelor de programare utilizate în dezvoltare, aplicațiile GIS open source se împart în două mari clase: “C” și “Java”. O a treia categorie este reprezentată de aplicațiile web, de tipul celor care oferă servicii web spațializate. Pentru a consulta o listă exhaustivă a aplicațiilor GIS open source existente (indexate pe criterii complexe) vă recomandăm site-ul freegis.org.
Comunitatea GIS open source este una destul de numeroasă, polarizată în special de proiectele complexe: GRASS, UMN Mapserver, GDAL/OGR. Anul 2006 a fost unul istoric pentru comunitate în urma lansării OSGeo. OSGeo este o organizație non-profit ce are drept obiectiv susținerea și promovarea dezvoltării de tehnologii geospațiale open source precum și a datelor geospațiale libere. Fundația oferă ajutor financiar, organizațional și suport legal pentru o paletă largă de activități ale comunității geospațiale. De asemenea, servește drept entitate independentă, legal constituită, către care membrii comunității pot contribui cu cod sursă, bani, expertiză tehnică etc, avînd siguranța ca aceste resurse vor fi utilizate în beneficiul publicului. OSGeo funcționează drept “vehicul” de popularizare a tehnologiilor open source în cadrul comunității geospațiale și oferă infrastructura necesară pentru partajare informațiilor, cunoștințelor și datelor în cadrul proiectelor colective. Tot în sarcina OSGeo cade și organizarea anuală a unei conferințe internaționale și acordarea premiului Sol Katz, pentru servicii aduse comunității geospațiale. Prima conferință organizată după constituirea OSGeo, FOSS4G2006, a avut loc la Lausanne – Elveția și a adunat la un loc mai bine de 500 de participanți.
Sigla Open Source Geospatial Foundation
Oferta de software GIS open source
În continuare vom încerca să facem o trecere în revistă a principalelor aplicații GIS open source. Demersul nostru nu are pretenția de a epuiza subiectul, prezentînd toate aplicațile existente, ci doar de a prezenta o parte din alternativele de pe fiecare palier GIS. O clasificare a aplicațiilor GIS open source poate fi făcută după mai multe criterii. Cele mai importante ar fi: tipul aplicației (librărie, aplicație desktop, aplicație server, toolkit web), funcționalitate (vizualizare, editare, stocare, analiză spațială etc.), sistemul de operare pe care rulează, limbajul de programare folosit la dezvoltare și tipul de licență. Primele două criterii par să fie cele mai relevante în realizarea unei astfel de clasificări. Din păcate, o clasificare clară, folosind aceste criterii două criterii, nu este posibilă, aceasta deoarece multe din aplicații depășesc sfera strîmtă a unei singure categorii, incluzînd într-o măsură mai mare sau mai mică funcționalitate din celelalte categorii. În cazul de față, ne-am oprit la o clasificare pe baza tipului de aplicație, detaliată apoi pe baza funcționalității. Un ajutor important în realizarea acestei clasificări l-a constituit articolul lui Paul Ramsey: The State of Open Source GIS.
Librării și toolkit-uri de dezvoltare
Librăriile sau bibliotecile partajate open source permit încorporarea de funcționalitate specifică fără a mai pierde vremea cu dezvoltarea acestora. În acest fel productivitatea crește, programatorul putîndu-se concetra asupra obiectivelor primare ale aplicației pe care o dezvoltă fără a mai pierde timp cu scrierea de funcții conexe. De exemplu, o aplicație de editare a datelor vectoriale presupune existența unor module care să se ocupe de importul/exportul datelor dintr-un număr mare de formate de fișier, baze de date sau servicii web, reproiectarea datelor într-un anumit sistem de coordonate sau definirea unor reguli topologice de validare a datelor. Toate aceste funcționalități conexe funcțiilor primare de editare a datelor pot fi rezolvate rapid și eficient prin încorporarea librăriilor OGR, PROJ4 și JTS/GEOS. Această abordare nu doar reduce timpul necesar dezvoltării unei aplicații noi, prin evitarea “reinventării roții” dar asigură și compatibilitate/interoperabilitate cu aplicațiile existente.
GDAL/OGR
Website | www.gdal.org, gdal.osgeo.org, gdal.maptools.org, remotesensing.org/gdal, remotesensing.org/gdal/ogr |
---|---|
Autor | Frank Warmerdam |
Limbaj | C++ |
Licență | MIT |
GDAL/OGR reprezintă două din cele mai utilizate librării din lumea open source GIS. GDAL este un translator ce “stie” să citească și să scrie un număr impresionant de formate de date raster. Datorită licenței permisive, GDAL, este folosit și de numeroase de aplicații comerciale. Recent ESRI, a integrat funcționalitatea GDAL în versiunea 9.2 a suitei ArcGIS. Pentru o listă completă a formatelor suportate de GDAL consultați tabelul de pe site-ul oficial.
OGR este o librărie similară cu GDAL, dar concepută pentru manipularea datelelor vectoriale. Pentru o listă completă a formatelor suportate de OGR consultați tabelul de pe site-ul oficial.
FDO
Website | fdo.osgeo.org |
---|---|
Autor | Autodesk |
Limbaj | C++ |
Licență | LGPL |
Feature Data Objects (FDO) este o librărie de manipulare a datelor spațiale dezvoltată de Autodesk. Deși inițial a fost folosită exclusiv comercial, în cadrul unei serii de produse din familia Autodesk (Autodesk Map 3D, Autodesk MapGuide), în 2006, FDO este publicat sub licență open source împreună cu MapGuide, soluția de webmapping dezvoltată de Autodesk. La acest moment, FDO Open Source oferă suport pentru citirea și scrierea datelor geospațiale în format ESRI ArcSDE (în baze de date Oracle si SQL Server), MySQL, SDF (noul format de fișier creat de Autodesk pentru stocarea datelor geospațiale), ESRI Shapefile, ODBC (permite stocarea de puncte în format XYZ) și suport pentru citirea datelor WFS, WMS și a formatelor raster suportate de GDAL.
PROJ4
Website | proj.maptools.org, remotesensing.org/proj |
---|---|
Autor | Frank Warmerdam |
Limbaj | C |
Licență | MIT |
PROJ4 este o librărie ce permite efectuarea de transformări între diversele sisteme de coordonate, sferoizi și datum-uri. PROJ4 integrează aproape în întregime baza de date geodetică EPSG (European Petroleum Survey Group, entitate absorbită în 2005 de OGP – International Association of Oil & Gas). Dezvoltată inițial de Gerald Evenden, librăria PROJ4 a fost preluată și menținută de Frank Warmerdam.
Shapelib
Website | shapelib.maptools.org |
---|---|
Autor | Frank Warmerdam |
Limbaj | C |
Licență | MIT , LGPL |
Librărie ce permite citirea și scrierea fișierelor de tip ESRI Shapefile. Răspîndirea puternică a formatului de fișier Shapefile a determinat și o popularitate ridicată pentru librăria Shapelib.
JTS Topology Suite
Website | www.jump-project.org |
---|---|
Autor | Vivid Solutions |
Limbaj | Java |
Licență | LGPL |
Librărie Java ce implementează modelul geometric pentru obiectele spațiale definit de OGC în standardul Simple Features Specification for SQL. Funcțiile JTS includ suport pentru:
- predicate spațiale (pe baza modelului DE-9IM);
- funcții de suprapunere (intersecție, diferență, uniune, diferență simetrică);
- buffer;
- convex hull;
- funcții referitoare la distanțe și suprafețe;
- verificarea validității topologice.
JTS oferă suport pentru următoarele tipuri geometrice de date spațiale: punct, multi-punct, polilinie, polilinie închisă, multi-polilinie, poligon, multi-poligon, colecții geometrice complexe.
Funcționalitate JTS a fost portată și pentru mediul C++ sub forma librăriei GEOS.
GEOS
Website | geos.refractions.net |
---|---|
Autor | Refractions Research |
Limbaj | C++ |
Licență | LGPL |
GEOS (Geometry Engine – Open Source) reprezintă o portare a librăriei JTS în mediu C++.
GeoTools
Website | http://docs.codehaus.org/display/GEOTOOLS |
---|---|
Autor | GeoTools Project Management Committee |
Limbaj | Java |
Licență | LGPL |
GeoTools este un toolkit de dezvoltare a aplicațiilor GIS, ce oferă metode standard de manipulare a datelor geospațiale, implementat conform standardelor OGC. GeoTools este dezvoltat în strînsă legătură cu proiectele complementare GeoApi și GeoWidgets. Scopul proiectului nu include și dezvoltarea de aplicații complete pe baza GeoTools ci acela de a oferi funcționalitate GIS standard pentru creatorii de aplicații server-side sau desktop. GeoTools e construit într-o manieră modulară, fapt ce permite dezvoltatorilor să folosească doar funcționalitatea de care sînt interesați, fără a fi nevoiți să înțeleagă sau să includă întrega funcționalitate a toolkit-ului.
GeoTools include suport pentru o multitudine de formate de date spațiale prin intermediul a două interfețe:
- DataStore pentru accesarea datelor vector. La acest moment sînt suportate formatele: Shapefile, GML, WFS, PostGIS, Oracle Spatial, ArcSDE, MySQL, GeoMedia, Tiger, VPF, MapInfo TAB.
- GridCoverageExchange pentru accesarea datelor raster. Formatele suportate sînt: ESRI ASCII, GRASS ASCII, fișiere imagine + world file (JPEG, TIF, PNG, GIF), GeoTiff, WMS.
Printre aplicațiile dezvoltate cu ajutorul GeoTools se numără: GeoServer, uDig, GeoVista, MyMaps.
GeoApi
Website | geoapi.sourceforge.net |
---|---|
Autor | GeoAPI Working Group |
Limbaj | Java |
Licență | BSD |
GeoApi este un proiect ce își propune reducerea paralelismelor în dezvoltarea de aplicații GIS și creșterea interoperabilității prin oferirea unor interfețe API neutre, realizate conform standardelor și recomandărilor OGC. Pentru moment aceste aplicații sînt realizate în Java, dar în viitor nu este exclusă și utilizarea altor medii de programare. Grupul de dezvoltatorii ai GeoApi este format în principal din membrii ai Open Geospatial Consortium Technical Committee. Rezultatele proiectului GeoApi sînt folosite în numeroase aplicații GIS open source, precum: GeoTools, degree, uDig, GeoServer, Seagis.
GeoWidgets
Website | geowidgets.sourceforge.net |
---|---|
Autor | Matthias Basler |
Limbaj | Java |
Licență | LGPL |
GeoWidgets urmărește realizarea unui set standard de widget-uri pentru aplicațiile GIS dezvoltate folosind GeoTools. Printre acestea se numără widget-uri de afișare a hărților, legendelor, casete de selectare a sistemelor de coordonate etc.
GeoVista Studio
Website | www.geovistastudio.psu.edu |
---|---|
Autor | Penn State Department of Geography |
Limbaj | Java |
Licență | LGPL |
GeoVista Studio este o platformă ce permite dezvoltarea de aplicații software de vizualizare si analiză a datelor geospațiale. Utilizatorii, în special din comunitatea științifică și cea academică, pot beneficia de funcționalitatea inclusă în GeoVista Studio fără a avea nevoie de cunoștințe de programare. Astfel pot fi repede construite aplicații independente de vizualizare (2D/3D) și analiză geostatistică a datelor geografice.