Odprtokodna programska oprema

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje
Logotip odprte kode

Odprtokodna programska oprema (Open source software) (OSS) se je začela, kot marketinška kampanija za prosto programje.[1] Odprtokodno programsko opremo lahko definiramo, kot programsko opremo, za katero je izvorna koda izdana pod zaščitno licenco (ali aranžma, kot npr. javna domena), ki ustreza kriterijem Odprtokodne definicije. Ta dovoljuje vsakršno uporabo in spreminjanje programske opreme, njeno razširjanje v spremenjeni ali nespremenjeni obliki. Velikokrat je razvijana v javnosti, s prispevki drugih. Odprtokodna programska oprema je najbolj prominenten primer odprotkodnega razvoja in se jo lahko primerja z uporabniško narejeno vsebino[2] Poročilo skupine Standish pravi, da je uporaba odprte kode pripomogla k prihranku $60 milijard USD letno pri končnih uporabnikih.[3]Drugo poročilo skupine Standish.[4]

Definicija odprto kodne programske opreme[uredi | uredi kodo]

Odprto kodna programska oprema je programska oprema pri kateri lahko dostopamo do kode, v to kodo lahko vsakdo posega in jo razpečuje. Veljati pa morajo naslednji pogoji:

  1. Svobodna re-distribucija. Licenca ne sme omejevati prosto prodajo programske opreme kot komponente združenih programskih paketov.
  2. Izvorna koda. Program mora vsebovati izvorno kodo ali pa mora biti prosto dostopna. Prav tako ni dovoljeno zakrivanje kode ali kakršnokoli oteževanje dostopa do nje.
  3. Izpeljana dela. Licenca more dovoljevati modifikacije in izdelavo izpeljanih del iz te programske opreme, prav tako mora dovoljevati razširjanje teh del pod istimi licenčnimi pogoji kot original.
  4. Integriteta avtorja izvorne kode. Licenca lahko omejuje, da morajo biti izpeljani izdelki distribuirani pod drugačnim imenom.
  5. Prepoved diskriminacije med osebami in skupinami. Licenca ne sme diskriminirati nobene osebe ali skupino oseb.
  6. Prepoved diskriminacije posameznih področij dejavnosti. Licenca ne sme nikogar omejevati pri uporabi programa na posameznem področju dejavnosti.
  7. Distribucija Licence. Licenčne pravice se nanašajo na vsakogar, ki prejme program brez kakršnih koli postopkov.
  8. Licenca ne sme biti specifična za produkt. Pravice, vezane na program, ne smejo biti odvisne od tega, ali je program del določene programske distribucije.
  9. Licenca ne sme omejevati druge programske opreme. Licenca ne sme imeti omejitev nad programsko opremo, ki je razširjena skupaj z licenčno programsko opremo.
  10. Licenca more biti nevtralna do tehnologije.

Prednosti[uredi | uredi kodo]

Obstaja kar nekaj prednosti odprte programske opreme pred komercijalno, najbolj pomembna pa je možnost spreminjanja in popravljanja kode. To omogoča neomejeno spreminjanje in popravljanje programske opreme. Prva prednost tega je, da se izognemo slabosti enega samega razvijalca oz. ponudnika, ker lahko izvorno kodo spreminja vsak, kar pomeni da ni omejitve pri podpori programske opreme kot pri komercialni programski opremi. Saj, ko se podjetje odloči prenehati nuditi podporo programski opremi ta nima več podpore zaradi licence nad programsko opremo. Druga prednost spreminjanja in popravljanja kode pa je fleksibilnost oz. svoboda programske opreme, saj lahko vsakdo spremeni njeno funkcionalnost in obliko.

Ostale prednosti[uredi | uredi kodo]

  • ni stroškov nabave programske opreme.
  • nižja ranljivost za viruse, manj varnostnih lukenj, posledično manj napadov na programsko opremo.

Slabosti[uredi | uredi kodo]

  • največja slabost odprto kodne programske opreme so nedokončani izdelki, saj veliko programske opreme ne doseže končnega izdelka ampak ostane v tako imenovani beta fazi razvoja.
  • v večini primerov je problem neprijazen uporabniški vmesnik, kateri oteži delo s programom predvsem uporabnikom, ki se ne spoznajo na računalništvo.
  • kompatibilnost programa z operacijskim sistemom.
  • podpora je lahko tako kot prednost tudi slabost pri odrtokodnem programju, saj ni zagotovljena od nikogar oz. je lahko slabo izvedena.
  • težak začetek projekta, saj mora biti zadostno število zainterisiranih in motiviranih razvijalcev, da dokončajo projekt.

Zgodovina in razvoj[uredi | uredi kodo]

Open Source Definition si je zamislil Bruce Perens, nekdanji vzdrževalec Debian GNU/Linuxa. Leta 1997 je po elektronski pošti odprl razpravo z ostalimi sorazvijalci. Med drugim je zapisal tudi to:

Uporaba in avtorske pravice pri odprtokodni programski opremi[uredi | uredi kodo]

Pogoji uporabe in distribucije posameznih delov odprte programske kode ali programskih produktov kot celote so določeni v okviru ene od licenčnih pogodb, ki jih določa združenje Open Source Initiative (OSI) oziroma v okviru pravic in načel, ki jih uveljavlja združenje Free Software Foundation (FSF) . Večina odprtokodnih licenc omogoča trajno last razvite programske rešitve. V teh primerih ni nujno slediti zahtevam, po včasih neželenih, nadgradnjah informacijskih sistemov pod pritiski lastnikov licenčnih pravic. Vsak avtor računalniškega programa ima samodejno avtorske pravice nad programom in ima možnost omejiti pravice kopiranja, uporabe ali spreminjanja svojega programa. Uporabnik pridobi pravico do uporabe programa v skladu z dovoljenji avtorja. Licenca točno določa, kaj uporabnik lahko počne s programsko opremo, kakšne pogoje mora izpolnjevati in kakšne so njegove pravice. Glavni pogoj je seveda plačilo kupnine za programsko opremo. Odprta koda uporablja precej drugačen pristop, saj je programska oprema na voljo brezplačno, licenca, ki ureja pravice uporabnika, pa dovoljuje tudi spreminjanje programske kode. To dovoljuje vsem, da dodajo drugo funkcionalnost, popravijo napake v kodi ali naredijo program bolj učinkovit. Vsakdo lahko torej popravlja in spreminja programsko kodo in pravzaprav veliko ljudi to tudi počne. Število ljudi, ki prispevajo k rešitvi, se tako zelo poveča. Dovoljeno je tudi prodajati spremenjeno programsko opremo, ne da bi s prvim avtorjem delili dobiček. Prav tu je tudi ena od nevarnosti za programerska podjetja, saj licenca po navadi jasno zahteva, da je v primeru uporabe odprte kode treba tudi lastno rešitev, ki temelji na tej odprti kodi, ponuditi skupaj z izvorno kodo. Marsikateri ponudnik programske opreme se, razumljivo, težko sprijazni s tem. Licence, pod katerimi je na voljo odprta koda, se precej razlikujejo. Med najbolj uporabljanimi so: BSD, GPL, LGPL in MPL.

  • Berkeley Software Distribution (BSD) licenca je zelo preprosta, saj dovoljuje uporabo programske opreme, distribucijo izdelka in izvorne kode. Dovoljeno je spreminjanje in vključevanje v drugo programsko opremo brez omejitev. Edina zahteva je, da se navede imena vseh avtorjev v izvorni kodi in dokumentaciji programa. Imen avtorjev ni dovoljeno uporabljati za promocijo izdelka brez predhodnega pisnega dovoljenja.
  • GNU General Public Licence (GPL) je najbolj znana licenca, ki omogoča uporabo, kopiranje in distribucijo programske opreme. Dovoljena sta tudi spreminjanje programske opreme ali uporaba programske kode, vendar je distribucija programske opreme, ki temelji na programski opremi, licencirani po GPL, dovoljena le pod licenco GPL, to pa pomeni, da tovrstne programske opreme ni mogoče prodajati in ni mogoče omejevati njene uporabe. Sprememb ali dodatkov k programski opremi pa ni treba javno objaviti. Spremembe, ki si jih neko podjetje naredi zase, lahko ostanejo skrivnost. Obveza do objavljanja modifikacij in dodatkov nastane takrat, ko se oseba, ki je spremenila programsko opremo, odloči, da jo bo razpečevala.
  • Library General Public License (LGPL) je variacija GPL licence in je namenjena programskim knjižnicam (na primer DLL), torej programom s funkcijami, ki jih je mogoče izkoristiti v drugih programih. Uporaba tovrstnih programskih knjižnic v nobenem smislu ne omejuje programa, ki jih uporablja. Gre torej lahko za komercialni izdelek in podobno. Spremembe knjižnice pa so lahko razširljive le v skladu z licenco LGPL, ki je v tem pogledu enaka licenci GPL, kar pomeni, da morajo biti razpečevane z izvorno kodo in brez omejitev uporabe.
  • Mozilla Public Licence (MPL) je licenca, ki dovoljuje brezplačno uporabo in distribucijo programske opreme. Vsakdo, ki razpečuje spremembe ali dodatke k izdelku, mora dovoliti enake pravice za njegov kos programske opreme in kombinacijo izvirnega dela in njegove rešitve. Pogoj za distribucijo je tudi, da je izvorna koda na voljo, kar pomeni, da je lahko vključena v distribucijo, lahko pa je na voljo na kakšni spletni strani. MPL je dovoljeno vključevati tudi v licenčno programsko kodo v lastne izdelke, a mora biti za ta del na voljo izvorna koda.

Razvoj odprtokodne programske opreme v komercialnih hišah ter odprtih skupnostih[uredi | uredi kodo]

Odprte skupnosti:[uredi | uredi kodo]

Odprtokodno skupnost predstavlja večja skupina ljudi, ki izdeluje programje pod standardi ki jih nalagajo določene licence. V teh skupnostih se programerji z različnih delov sveta učijo na že obstoječih aplikacijah. Na internetu so tri bolj obširne takšne skupnosti

  • FSF/UNESCO Free Software Directory
  • Freshmeat.net
  • SourceForge.net

FSF/UNESCO ima označenih 5364 paketov programske opreme in večina programske opreme je pod GPL licenco. Freshmeat.net ima 209.192 programov pri tem odprtih še 42.967 novih projektov ter prijavljenih 384.717 uporabnikov. Sourceforge.net je po številu uporabnikov največja saj jih je prijavljenih kar 1.596.878, ter imajo registriranih 149,391 novih projektov s tem da imajo že 197.361 programov.

Open Source Maturity Model[uredi | uredi kodo]

Open Source Maturity Model (OSMM) je glavno orodje za načrtovanje odprtokodnega uspeha. Je vitalno orodje s katerim planiramo uspešnost uporabe neke odprtokodne programske opreme v organizaciji.

Namen modela OSMM je, da organizacijam v večji meri omogoči uporabo odprtokodne programske opreme. Glede na potrebe, model na lahki način najde najprimernejši produkt za organizacijo. OSMM je nezahteven proces narejen tako, da olajša izbiro in ovrednotenje odprtokodne programske opreme. Izziv organizacij, je izbrati najbolj primeren produkt, glede na rabo. Način izbire pa se pri odprtokodnem in komercialnem produktu močno razlikujeta. Glavno pri izbiri komercialnega paketa programske opreme je izbira produkta, ki je najbolj kompleten. Imeti mora dobro funkcionalnost, podprte posodobitve, možnost izobraževanja osebja. Odgovornost izbire temelji predvsem na prodajalcu produkta. Seveda pa imajo organizacije možnost izbire med ponudniki glede na:

  • pravo mero popusta
  • dobro postavljenih pogodb
  • dogovora o ravni storitev (SLA – service level agreement)
  • zavezanosti podpore do uporabnika in podobno.

Pri izbiri odprto-kodne programske opreme je drugače. Ker je produkt brezplačen, pri izbiri preskočimo iskanje glede na ceno. Negativna lastnost pa je, da je za izbiro izdelka odgovorna uporabniška organizacija sama. Ker je svet odprtokodnega programja nepovezan, je tudi za celovitost izdelka odgovoren uporabnik sam. Glavni izziv pri izbiri takšnih aplikacij je poiskati takšne, ki bodo v celoti zadostovale potrebam organizacije. Ključne lastnosti po katerih OSMM meri programsko opremo za primernost posamične organizacije:

  • Funkcionalnost programske opreme
  • Podporo
  • Dokumentacijo
  • Učenje in izobraževanje
  • Integracijo produkta (za kakšno delo bomo uporabljali določen produkt)
  • Profesionalno podporo

Ob zaključku nam OSMM model vrne oceno od 0 do 100. To oceno potem uporabimo za primerjavo z priporočljivimi ocenami za različne namene uporabe. Ker so potrebe od organizacij do organizacij različne, zato izberemo tako, da najbolj ustreza naši organizaciji. Različno ocenimo naprimer, če osebje v organizaciji ni dobro seznanjeno z računalniki, oziroma ali je dobro seznanjeno z delom v informacijskih tehnologijah.

Opis treh faz v procesu modela OSMM[uredi | uredi kodo]

  • 1. Faza - ocenitev elementov/sredstev programske opreme

V prvi fazi modela OSMM, organizacije ovrednotijo vse prvine programske opreme. To naredimo s 4-stopenjskim procesom: razlaga potreb organizacije, iskanje rešitev potreb (iskanje sredstev), ovrednotenje primernosti prvine, dodelitev točk (ocene) prvini programske opreme. Glede na potrebe posamezne organizacije, se razpoložljiva sredstva PO ocenijo po primernosti z točkami od 1 do 10. Ta postopek se naredi za vse funkcionalnosti, ki jih posamezna organizacija potrebuje.

  • 2. Faza - ovrednotenje pomembnosti posameznih lastnosti programske opreme

Vsaka funkcionalnost ali prvina, ki jo podpira določena programska oprema ni enako pomembna. Tako na primer dokumentacija programske opreme ni tako pomembna, kot sta pomembni bistvenost in zelo dobra podpora. V drugi fazi modela zato izluščimo, kaj je za posamezno organizacijo ključno. Po tem načelu potem dodelimo točke za lastnosti programske opreme, ki so pomembnejše ali manj pomembnejše za nas. Tako ugotovimo primernost celotne programske opreme za našo organizacijo. Merila, po katerih se pri dodeljevanju točk zgledujemo, so podana vendar si jih vsaka organizacija lahko priredi po svojih specifičnih zahtevah.

  • 3. Faza - izračun točk primernosti celotnega produkta

V zadnji fazi izračunamo točke primernosti celotne programske opreme naše organizacije. Te nato primerjamo z minimalnimi priporočljivimi. Če programska oprema nima primernih ocen, da bi bila za uporabo, ni nujno da se testa držimo. Test je le orodje s katerim si pomagamo ugotoviti ali bo odprtokodna programska oprema služila svojemu namenu ali ne.

Odprta koda v Sloveniji[uredi | uredi kodo]

Ministrstvo za visoko šolstvo, znanost in tehnologijo je 2007 prvič objavilo razpis za izbor izvajalca za razvojno-podporni center odprte kode Center Odprte Kode Slovenije (COKS). Na razpisu je zmagal konzorcij, ki ga sestavljajo gospodarske družbe in neprofitne organizacije, pod vodstvom podjetja Agenda d.o.o. Center odprte kode se pojavlja prvič v takšni obliki v Sloveniji in bo uporabnikom nudil storitve pomoči in podpore ter bo zagotavljal rešitve za potrebe javnega in zasebnega sektorja. Vse storitve, ki jih izvaja COKS, izvajajo organizacije ustanoviteljice konzorcija, oziroma njihovi zaposleni ali pogodbeni sodelavci.

Glavni cilj ustanovitve centra je vzpodbuditi razvoj, širjenje in uporabo programske opreme in rešitev temelječih na odprti kodi. Zaradi tega so v okviru ustanovitve COKS-a zagotovili sistemsko podporo, klicni center in razvoj aktualnih odprtokodnih rešitev. Med glavne naloge centra sodijo nudenje pomoči in svetovanje uporabnikom pri rešitvah, temelječih na odprti kodi, ter svetovanje javnemu sektorju pri uvajanju, implementaciji in uporabi odprtokodnih rešitev.

Center nastopa tudi v vlogi nacionalnega koordinatorja na področju strategij odprte kode ter vzpodbujevalca sodelovanja med različnimi neprofitnimi organizacijami, gospodarskimi subjekti ter posamezniki. Vizija centra je oblikovati nacionalne strategije pri razvoju, uporabi in širjenju odprte kode, istočasno pa bo center združeval uporabnike v javnem in zasebnem sektorju, odprtokodno skupnost in razvijalce ter nacionalne in evropske pobude na področju odprte kode.

Viri in opombe[uredi | uredi kodo]

  1. ^ "Frequently Asked Questions". Open Source Initiative. Arhivirano iz prvotnega spletišča dne 2006-04-23. Pridobljeno dne 2008-09-08. 
  2. ^ Verts, William T. (2008-01-13). "Open source software". World Book Online Reference Center. 
  3. ^ Rothwell, Richard (2008-08-05). "Creating wealth with free software". Free Software Magazine. Pridobljeno dne 2008-09-08. 
  4. ^ "Standish Newsroom - Open Source". Boston. 2008-04-16. Pridobljeno dne 2008-09-08. 

Ostali viri[uredi | uredi kodo]

Literatura[uredi | uredi kodo]

Glej tudi[uredi | uredi kodo]

Zunanje povezave[uredi | uredi kodo]