Xaraya

Wikipedia
Loikkaa: valikkoon, hakuun
Xaraya

XarayaLogo.png

Kehittäjä Xarayan kehittäjäryhmä
Kehityshistoria
Vakaa versio 1.1.5 / 25. marraskuuta, 2008
Tiedot
Ohjelmistotyyppi Web-sovelluskehys
Alusta Linux/Unix, BSD, Mac OS X, Solaris, HP-UX, AIX, Sun Cobalt OS (RAQ4), Windows
Lisenssi GPL
Verkkosivu www.xaraya.com

Xaraya on avoimeen lähdekoodiin perustuva web-sovelluskehys ja sisällönhallintajärjestelmä. Se sisältää työkalut WWW-dokumentin esitystavan, sisällön ja toimintalogiikan erottamiseen toisistaan, jolloin websovellusten kehitys ja ylläpito yksinkertaistuvat.

Xaraya vaatii toimiakseen WWW-palvelimen joka tukee PHP:n versiota 4.1.2 tai uudempaa sekä relaatiotietokannan. Tuetut tietokannat ovat MySQL, PostgreSQL ja SQLite.

Nimi Xaraya muistuttaa espanjankielistä sanaa raya, joka tarkoittaa rauskua. Xarayan kehittäjät pitävät "sanan merellisestä merkityksestä, varsinkin jos Internetin ajatellaan olevan tiedon 'valtameri'". [1]

Historia[muokkaa | muokkaa wikitekstiä]

Xaraya-projekti aloitettiin vuonna 2002 kun Postnuken kehittäjäryhmän jäsenet olivat tyytymättömiä silloisen projektipäällikön toimintaan. Xarayan projektipäälliköksi äänestettiin John Cox (joka oli itse perustamassa Postnukea vuonna 2001). Samoihin aikoihin projektille perustettiin myös hallintakomitea organisoimaan kehitystyötä.

Ohjelmiston ensimmäinen alfaversio perustui Postnuken julkaisemattomaan kehitysversioon 0.8. Vuoden 2003 huhtikuussa julkaistiin ensimmäinen beta-versio 0.900. Seuraava merkittävä beta-versio .9.1.0 julkaistiin syyskuussa 2003, jonka myötä ohjelmiston arkkitehtuuria muutettiin vastaamaan virallista kohdejulkaisua (1.0.0).

Vuoden 2004 syyskuussa projektipäällikkö John Cox ja hallintakomitean jäsen Marcel van der Boom luopuivat asemistaan. Heidän tilalleen tuli kaksi uutta jäsentä. Projektin hallintakomitean jäsenet ovat nykyään Carl Corliss, Jason Judge, Joanna Dalle Nogare ja Marc Lutolf. Heinäkuussa 2005 Xaraya-projekti siirsi versionhallinnan Bitkeeperistä Monotoneen. 6. marraskuuta 2005 julkaistiin Xarayan virallinen 1.0 versio.

Xarayan kehittäjäryhmä on kasvanut tasaisesti vuosien varrella ja siihen kuuluu nykyisin yli 40 ohjelmistokehittäjää useasta eri maasta. [2][3]

Ominaisuudet[muokkaa | muokkaa wikitekstiä]

Xaraya käyttää MVC-arkkitehtuuria ja on suunniteltu mahdollisimman modulaariseksi, jotta se soveltuisi erikokoisten web-sovellusten alustaksi. Järjestelmän ydin koostuu ohjelmointirajapinnasta sekä kymmenestä moduulista: Autentikointi, Pohja, Lohkot, Dynaaminen tieto, Asennus, Sähköposti, Moduulit, Valtuudet, Roolit ja Teemat. Ydinmoduulit on vaadittu jokaisessa asennuksessa, mutta myös muita kolmansien osapuolten kehittämiä moduuleita ja laajennuksia on saatavilla.

Moduulit voivat keskustella keskenään ohjelmakoukkujen avulla. Koukku on osa moduulin koodia, joka aktivoituessaan kutsuu toista moduulia ja siirtää tiedonkäsittelyn kutsutulle moduulille, joka puolestaan voi tuoda uutta tietoa takaisin kutsuvalle moduulille. Esimerkiksi Kommentit-moduuli voidaan yhdistää koukulla Artikkelit-moduuliin, jolloin artikkeleihin voi lisätä kommentteja. Xaraya ei rajoita sisällöntuotantoa valmiiksi määriteltyihin julkaisutyyppeihin, kuten uutisiin ja tekstiartikkeleihin, vaan Artikkelit-moduulilla voidaan luoda uusia julkaisutyyppejä, esimerkiksi kyselyitä ja blogeja.

Järjestelmän ylläpito ja hallinta tapahtuu WWW-sivuston kautta, pois lukien teemojen luonti ja muokkaus, joka täytyy tehdä tiedostotasolla. Kaikki käyttöliittymän tekstielementit on käännettävissä muille kielille mukana tulevalla Käännökset-moduulilla. Xaraya käyttää UTF-8-koodaustapaa tiedon tallentamiseen sekä esittämiseen ja tukee täysin monikielisten web-sovellusten ja sivustojen rakentamista.

Dynaaminen tieto[muokkaa | muokkaa wikitekstiä]

Dataobjektin ominaisuuksien määrittelyä

Erityisen maininnan arvoinen moduuli on Dynaaminen tieto. Sen avulla relaatiotietokantaan voidaan määritellä dataobjekteja, jotka sisältävät metatietoa. Dataobjekti voi sisältää useita eri ominaisuuksia, myös täysin uusien ominaisuuksien luonti on tarvittaessa mahdollista. Muut moduulit käyttävät lähes poikkeuksetta Dynaamista tietoa hyväkseen, yleensä laajentamalla toisten moduulien dataobjekteja omilla metatiedoillaan. Dynaamiset dataobjektit voivat käyttää tietovarastoinaan yksittäisiä fyysisiä tietokantatauluja, jaettuja tauluja, tekstitiedostoja sekä muita varastointimekanismeja laajentamalla olemassa olevia luokkia.

Mallinejärjestelmä[muokkaa | muokkaa wikitekstiä]

Kaikki järjestelmän ja moduulien tuloste ohjautuu Block Layout -mallinejärjestelmälle, joka päättää lopullisesta esitysmuodosta. Esitysmuodot määritellään erillisissä teemoissa; oletusasennuksessa on normaalien HTML-teemojen lisäksi teemat RSS-virralle ja tulostettaville dokumenteille. Jokainen teema voi korvata moduulin yksittäisen toiminnon oletustulosteen omalla mallineellaan ja kenties näyttää sen täysin eri muodossa kuin moduulin kehittäjä on alun perin ajatellut.

Block Layout käyttää XML-syntaksia, joka käännetään tulostusvaiheessa PHP-koodiksi, joten esitysmuodon määrittely on varsin universaali. Uusia teemoja luomalla esitystavaksi voi määritellä esimerkiksi PDF-dokumentin tai XUL-käyttöliittymän. Mallineessa voidaan kutsua muuttujia ja Xarayan ohjelmointirajapintaa sekä käyttää loogisia rakenteita; toistoja, ehtoja ja valintoja.[4]

Oletusteema tuottaa validia XHTML 1.0 -koodia ja käyttää CSS:ää ulkoasun sekä sivun asettelun määrittelyyn.

Alkeisesimerkki Block Layout -koodista[muokkaa | muokkaa wikitekstiä]

Noudetaan Avainsanat-moduulin sanalista ja näytetään sanat painotettuna listana (tai tagipilvenä), jossa avainsanan linkki on sitä suuremmalla kirjasinkoolla, mitä suositumpi kyseinen avainsana on. xar-nimiavaruus on Block Layoutin käyttämä XML-nimiavaruus.

<xar:set name="keyarray">xarModAPIFunc('keywords','user','getlist',array('count'=>'1'))</xar:set>
<xar:set name="max">max($keyarray)</xar:set>
<xar:if condition="!empty($keyarray)">
  <xar:if condition="!empty($title)" id="title_condition">
    <div class="xar-block-head">
      <div class="xar-block-title">
        <xar:mlstring>Tagcloud</xar:mlstring>
      </div>
    </div>
  </xar:if>
  <div class="xar-block-body xar-center">
    <xar:foreach in="$keyarray" key="$keyword" value="$count">
      <xar:set name="ratio">round(70+80*$count/$max)</xar:set>
      <a href="index.php/keywords/#$keyword#" style="font-size:#$ratio#%;" title="#$count# #xarML('items')#">#$keyword#</a>
    </xar:foreach>
  </div>
</xar:if>

Kritiikki[muokkaa | muokkaa wikitekstiä]

Toistuva kritiikin aihe on korkea oppimiskynnys, joka johtuu suurilta osin puutteellisesta tai vanhentuneesta dokumentaatiosta sekä runsaasta teknisten termien viljelystä.

Mukana tuleva sisällönhallintajärjestelmä ei ole yhtä helppokäyttöinen ja nopeasti omaksuttavissa kuin muut vastaavat sisällönhallintajärjestelmät. Kehittäjäryhmä mieltääkin Xarayan mieluiten työkalukokoelmaksi, jolla voi rakentaa tarvitsemansa sivuston, sisällönhallintajärjestelmän tai web-sovelluksen.[5]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. http://www.xaraya.com/index.php/docs/53
  2. http://www.sitepoint.com/article/interview-john-cox-xaraya
  3. http://xaviarxerexes.com/?p=6
  4. http://wyome.com/blog/Xaraya_XUL_Theme
  5. http://www.xaraya.com/index.php/docs/85

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]