Joomla! on avoimen lähdenkoodin webjulkaisujärjestelmä, jonka ydinajatuksena on erottaa sivuston sisällön ja ulkomuodon hallinta toisistaan ja siten helpottaa peruskäyttäjien sisällöntuottamista.1

Joomlaa julkaistaan avoimen lähdekoodin GNU/GPL lisenssillä. Joomlan kehitystyön taustalla on OpenSourceMatters Inc., yleishyödyllinen ja voittotavoittelematon yhteisö, jonka tarkoituksena on turvata Joomlaan liittyvien taloudellisten ja oikeudellisten velvoitteiden hoitaminen. Joomla kehitystä johtaa kymmenen pitkäaikaisesti sitoutuneen vapaaehtoisen ammattilaisen muodostama ydinryhmä (core team) joka koordinoi työryhmissä (working group) tehtävää kehitystyötä. Joomlan kehittäjä- ja käyttäjäyhteisöön kuuluu melkein 200 000 henkilöä ympäri maailman.

Suomalaisen käyttäjäyhteisön kokoaa yhteen Joomlaportal.fi, jota ylläpitää kahdeksan sitoutunutta alan ammattilaista vapaaehtoistyönä. Sivuston kustannuksista vastaa Antamis Finland Oy. Sivustolle on rekisteröitynyt noin 3 500 käyttäjää, jotma muodostavat suomalaisen käyttäjä- ja kehittäjäyhteisön ytimen.

Joomla! tarvitsee toimiakseen webpalvelimen (Apache on parhaiten tuettu), tietokannan (MySQL parhaiten tuettu) ja php-ohjelmointikielen tuen siten, että MySQL, XML ja zlib modullit on aktivoitu.2

Tuorein versio on tällä hetkellä 1.5.6, joka edustaa toista polvea Joomla-julkaisujärjestelmästä. Verkkosivustojen siirtymä ensimmäisen polven (1.0.x) versioista on vielä alkuvaiheessa. Seuraavaa, 1.6, versiota kehitetään jo. Joomlan ydinkehittäjäryhmä on valinnut politiikan, että siirtyvä versiosukupolvesta toiseen on tuettu, mutta uuden sukupolven julkaisun yhteydessä edellistä edeltävän sukupolven tuki lakkaa. Näin esimerkiksi 1.0-sarjan tuki lakkaa 1.6-sarjan ilmestyessä ja vain siirtymää 1.5-sarjasta 1.6-sarjaan tuetaan.

Joomla! 1.5:n peruspaketissa tulevat mukana seuraavat ominaisuudet ja toiminnot:

  • Kaksitasoinen sisältöhierarkia, johon voidaan luoda rajoittamaton määrä pää- ja alaryhmiä, joihin sisältöartikkelit luokitellaan. Myös luokittelemattomien artikkeleiden luominen on mahdollista. Artikkeli voi kuulua vain yhteen pää- ja alaryhmään. Alaryhmä voi kuulua vain yhteen pääryhmään. Sisällönhallinta mahdollistaa artikkeleiden ajastetun julkaisemisen, piilottamisen ja arkistoinnin.

  • Valikoiden hallinta, jossa voidaan luoda rajaton määrä valikoita, joissa on rajaton määrä hierarkisesti järjestettyjä valikkokohtia. Valikoiden syvyyttä ei ole rajoitettu. Valikoihin voidaan luoda linkkejä sisältöartikkeleihin, sivuston muihin komponentteihin ja niiden sisältöön, ulkopuolisille sivustoille jne.

  • Käyttäjienhallinta, joka muodostuu seitsemästä kiinteästä oikeustasosta, joille käyttäjät sijoitetaan. Neljällä alimmalla tasolla käyttäjien mahdollisuudet hallita sivustoa rajoittuvat sisältöartikkeleihin, kolmella ylimmällä he voivat muokata myös valikoita ja muita sivuston elementtejä. Ylemmillä tasoilla on kaikki alempien tasojen oikeudet.

  • Sivupohjien hallinta, joka mahdollistaa sivuston ulkonäön vaihtamisen ”lennosta”. Sivupohjat määrittelevät miltä sivusto näyttää ja millaisista elementeistä sivut muodostuvat. Ne mahdollistavat ja rajoittavat sisältöelementtien kuten artikkelien, valikoiden ja komponenttien modullien asettelua sivuilla.

  • Joukko sivuston toiminnalisuutta laajentavia yksinkertaisia komponentteja mediatiedostojen, yhteystietojen, weblinkkien, mainospalkkien, kyselyjen, joukkopostitusten, RSS-syötteiden ja hakutoimintojen hallintaan.

  • Kehys (framework) uusien komponenttien, modullien ja lisäosien integroimiseen sivustoon. Näitä pääasiassa kolmansien osapuolten lisäosia on saatavilla tuhansia sekä kaupallisina, että ilmaisina. Joomlan lisenssiehdot edellyttävät sitoutumista avoimen lähdekoodin GPL-ehtoihin myös lisäosissa.

Joomlan vahvuus on juuri sen modulaarisessa rakenteessa, joka tarjoaa lähes rajattomat mahdollisuudet sivuston toiminnallisuuden laajentamiseen. Erilaisilla lisäosilla voidaan tuoda sivustolle mm. monipuolisia kyselyitä, tapahtumakalentereita, e-kauppasovelluksia, keskustelualueita, käännöksiä, yhteisöpalveluita ja oppimisympäristöjä.

Joomlan vakavimmat heikkoudet liittyvät käyttäjien hallintaan, joka on vielä lapsen kengissä. Kiinteät hierarkiset oikeustasot eivät tarjoa merkittäviä mahdollisuuksia yksityiskohtaisempaan käyttäjienhallintaan. Toinen merkittävä puute on versionhallinta, jota ei ole toteutettu sisältöartikkelien hallinnassa ollenkaan. Näitä puutteita voidaan korjata rajallisesti verkosta saatavilla kolmannen osapuolen lisäosilla.

Joomla muodostuu julkisesta ja ylläpitoliittymästä. Ensimmäinen on kaikille verkossa näkyvä sivusto, jolle voidaan kirjautua. Jälkimmäinen on ainoastaan kolmen ylimmän käyttäjätason käytettävissä oleva tekninen käyttöliittymä sivuston ”konepellin alle”.

Varsinainen sisältö tallennetaan Joomlassa tietokantaan. Useimmiten käytössä on webhotellipakettiin kuuluva MySQL-tietokanta. Tietokantaa käytetään tunnuksella ja salasanalla, muu tietokannan suojaus riippuu palveluntarjoajasta. Usein tietokanta on erotettu eri palvelimelle kuin web-palvelimen levytila ja/tai sähköpostipalvelut. Usein pääsyä tietokantaan on myös rajoitettu tietyiltä palvelimilta ja/tai tiettyjen käyttöliittymien kautta tuleviin yhteyksiin. Tietokantaa ei varsinaisesti salakirjoiteta vaan se on tallennettu selväkielisenä. Joomla ja sen komponentit luovat tietokantaan tauluja, joihin ne tallettavat omat tietonsa ja joista ne hakevat tietoja. Samaan tietokantaan voidaan tallentaa myös Joomlaan kuulumattomia tietokantatauluja, kunhan ne eivät aiheuta ristiriitaa Joomlan kanssa. Komponenttien asetuksia voidaan tallentaa sekä tietokantaan että levylle tiedostoihin.

Joomlan tietoturvan parantamisesta on kirjoitettu paljon käyttäjäyhteisön foorumeilla ja siihen löytyy hyviä ohjeita ja tarkastuslistoja. Joomla päivittyy 1-3 kuukauden välein tietoturvaa parantavilla, virheitä korjaavilla ja ominaisuuksia parantavilla päivityksillä. Joomlan tietoturvan heikkous on sen modulaarisessa rakenteessa ja useimmat tunnetut hyökkäykset järjestelmää vastaan on tehty pienten ja heikosti ylläpidettyjen komponenttien aukkojen kautta. Joomlan ja käytössä olevien komponenttien tuottajien sivustojen seuraaminen viikoittain on ehdottoman välttämätöntä tietoturvan ylläpitämiseksi ja varmistamiseksi.