Cuba platform -artikkelin kuvituskuva Artikkelit

Erilaisia sovelluskehitysvälineitä ja -alustoja löytyy nykyään laidasta laitaan. Nykypäivän kuuma sana ”low-code” tarkoittaa sitä, että sovelluksia kehitetään aikaisempaa pienemmällä määrällä koodaamista. Mikä olisi siis sopiva low-code-työkalu erityisesti yritysohjelmistojen kehittämiseen? Teemu Simolin Cubescomilta esittelee artikkelissaan sovelluskehittimen, joka vastaa kysymykseen paremmin kuin hyvin. Ohjelmisto on nimeltään CUBA Platform, nopean sovelluskehityksen ja avoimen lähdekoodin ympäristö, joka on suunnattu erityisesti selainkäyttöisten yritysohjelmistojen tekoon. Alusta tarjoaa valmiina nimenomaan yritysohjelmistoille tärkeitä ominaisuuksia, kuten helpon tavan toteuttaa monipuoliset hakuominaisuudet, käyttäjähallinnan, tietoturvaominaisuudet ja muutosten jäljittämisen. Teemu Simolin kertoo, että CUBA Platform tuo nykyisten välineiden rinnalle uuden mahdollisuuden toteuttaa asiakkaiden ohjelmistoratkaisuja.

Avaa artikkelin tiivistelmä ja kuva suurempana (.pdf)

cuba-platform-esittely-teemu-simolin-kuva

 

ARKKITEHTUURI

CUBA-sovelluksilla on standardina kolmikerroksinen arkkitehtuuri. Käyttöliittymätaso perustuu suomalaiseen Vaadin web-komponenttikirjastoon tai Google Polymer -kirjastoon, jota voidaan käyttää, jos halutaan tehdä ensisijaisesti mobiilikäyttöisiä sovelluksia. Alustan palvelukerroksessa on käytössä Spring, ja tietokantataulut linkittyvät ohjelmointikerrokseen EclipseLinkillä. Muita tekniikoita ovat esimerkiksi käännöksissä käytettävä Gradle ja liiketoimintaprosessien mallinnuksessa Activiti.

 

OMINAISUUDET

1. Studio

Sovellusten kehityksessä pääsee nopeasti vauhtiin CUBA Studiolla, jota voi ajaa erillisenä ohjelmana tai selaimessa. Studiolla määritellään tietomalli kenttineen ja tietokantataulujen väliset suhteet. Mikäli on tarpeen käyttää olemassa olevaa tietokantaa, se voidaan tuoda Studion migraatiotyökalulla CUBA-ympäristöön. Tietomallista voidaan automaattisesti generoida käyttöliittymät tietokantataulujen perusylläpitoon.

Kuva 1. Tietomallin määritystä CUBA Studiossa.

Kuva 1. Tietomallin määritystä CUBA Studiossa.

Käyttöliittymiä voidaan muokata visuaalisesti ja lisätä niihin monia erilaisia komponentteja. Käytettävissä on myös valmiita malleja käyttöliittymien perusasetteluun. Studio generoi käyttöliittymämäärityksistä XML-tiedostot, joita voi myös halutessaan ylläpitää käsin. Studio myös generoi pohjat esimerkiksi tapahtumankäsittelijöille ja palveluille.

Tietokantataulujen väliset suhteet huomioidaan käyttöliittymissä automaattisesti. Esimerkiksi tilausotsikon rivitaulukko generoituu otsikon ylläpitonäytölle. Tilaukselle voidaan valita asiakas alasvetovalikosta.
Myös ulkoisia käyttöliittymäkomponentteja voidaan integroida ohjelmiin. Käyttöliittymän ulkoasuun voi vaikuttaa valmiilla teemoilla tai muokkaamalla tyylisivuja. Käyttöliittymien kieli voidaan muokata helposti halutuksi.

Kuva 2. Käyttöliittymäeditorissa tilausotsikon ylläpito. Otsikon tilausrivit ovat omassa taulukossaan.

Kuva 2. Käyttöliittymäeditorissa tilausotsikon ylläpito. Otsikon tilausrivit ovat omassa taulukossaan.

Kuva 3. Edellisen näkymän käyttöliittymä ohjelmaan ajettaessa.

Kuva 3. Edellisen näkymän käyttöliittymä ohjelmaan ajettaessa.

 

2. Ohjelmointi

CUBA Platformin sovelluskehityksessä käytettävät kielet ovat lähinnä Java, XML sekä SQL-tyyppinen JPQL. Liiketoimintalogiikka ohjelmoidaan IDE-työkalulla. Liittymät ovat IntelliJ IDEA:n sekä Eclipseen. Muutokset synkroinoituvat automaattisesti Studion ja IDE:n välillä. Hieno kehittäjän aikaa säästävä ominaisuus on ns. hot (re)deploy, jolla voidaan merkittävästi vähentää tarvetta käynnistää sovelluspalvelinta uudestaan.

CUBA:lla tehdystä ohjelmasta voi tehdä helposti perusversiosta poikkeavia versioita erityisellä Extension-menetelmällä. Tällöin vaikkapa eri asiakkaita varten voi tehdä erilaisia versioita muokkaamatta perusversion lähdekoodia.

Laajan sovelluksen voi jakaa pienemmiksi kokonaisuuksiksi, joita voi kehittää erillisinä projekteina, jotka sisältävät oman käyttöliittymänsä ja tietomallinsa. Näitä erillisiä kokonaisuuksia voi myös käyttää toisten sovellusten osina.

 

3. Vanhan järjestelmän modernisointi

CUBA Platform on hyvä valinta myös modernisoitaessa vanhaa tietojärjestelmää. Olemassa oleva tietokanta voidaan migroida Studion työkaluilla CUBA-ympäristöön ja generoida automaattisesti peruskäyttöliittymät tietokantamallin perusteella. Muut tarvittavat käyttöliittymät mallinnetaan uudestaan ja migroidaan niiden liiketoimintalogiikka.

 

4. Hakutoiminnot

Oleellinen osa yritysohjelmia ovat erilaiset hakutoiminnot. CUBA-sovellusten käyttöliittymiin nämä haku- tai suodatusominaisuudet saadaan lisättyä todella helposti. Ohjelmiston loppukäyttäjä tai ylläpitäjä voi itse lisätä käyttöliittymiin halutut hakutekijät. Nämä voidaan tämän jälkeen tallentaa käyttäjäkohtaisiksi tai oletushauiksi kaikille käyttäjille. Tämä säästää merkittävästi ohjelmiston kehittäjän työtä, kun näitä varsin tyypillisiä, usein toistuvia ominaisuuksia ei tarvitse erikseen ohjelmoida. Lisäominaisuutena saatavan hakukonetyyppisen haun avulla voidaan yhdellä hakukentällä etsiä tietoa monesta tietokantataulusta kerralla.

Kuva 4. Ohjelman loppukäyttäjä voi helposti lisätä tarvitsemiaan hakuja selaustoimintoihin.

Kuva 4. Ohjelman loppukäyttäjä voi helposti lisätä tarvitsemiaan hakuja selaustoimintoihin.

 

5. Tietoturva

Tärkeä ominaisuus yritysohjelmissa on myös kattava tietoturva. CUBA-sovelluksissa kaikkia käyttäjän toimia valvoo ohjelmiston turvajärjestelmä. Käyttäjille voidaan antaa eri rooleja ja rajoittaa käyttöä esim. toiminto-, tietokenttä tai jopa tiedon sisällön perusteella, vaikka siten, että käyttäjä näkee vain oman osastonsa dataa. Tietoturvaominaisuudet määritellään ohjelmistoon automaattisesti generoituvalla ylläpitokäyttöliittymällä, jolloin niitä voidaan säätää ajonaikaisesti. Kun kaikki käyttäjien tekemät muutokset tallennetaan lokiin, niin muutokset voidaan myöhemmin jäljittää tarkasti.

Kuva 5. Käyttäjäroolien oikeuksia voi säätää monella tasolla.

Kuva 5. Käyttäjäroolien oikeuksia voi säätää monella tasolla.

 6. Hallintatyökalut

Automaattisesti CUBA-ohjelmiin kuuluvista hallintatyökaluista löytyy myös mm. JMX-konsoli, selainkäyttöliittymä palvelinlokiin, tiedon palautus ja suorituskykytilastoja. Hallintaominaisuuksiin kuuluu myös mahdollisuus aikatauluttaa taustatöitä.

Kuva 6. Tuotteen mukana tulevat monipuoliset hallintatyökalut.

Kuva 6. Tuotteen mukana tulevat monipuoliset hallintatyökalut.

 7. Liittymät

CUBA-sovellukset julkaisevat automaattisesti REST API -rajapinnan, minkä avulla ohjelmistoa pystyy monipuolisesti käyttämään myös muista ohjelmista. Myös välineen oma Polymer-käyttöliittymä käyttää kyseistä rajapintaa. Käyttäjien autentikointiin voidaan alustan oman käyttäjärekisterin lisäksi käyttää myös LDAP:ia, Active Directory:a tai vaikkapa Facebook-kirjautumista.

 

8. Ajoympäristö

CUBA-ohjelmia voidaan ajaa suurimmalla osalla uusimpia selaimia ja monenlaisissa järjestelmäkonfiguraatioissa yhden palvelimen keskitetystä ratkaisusta hajautettuihin ympäristöihin tai pilvipalveluihin. Valmiiksi tuetut tietokannat ovat PostgreSQL, Oracle, Microsoft SQL Server, MySQL ja HSQL. Myös muunlainen tietokantaratkaisu on mahdollinen, mutta vaatii jonkin verran konfigurointia. CUBA-ohjelman tietomallin voi myös linkittää ulkoisiin tietokantoihin tai rajapintoihin. Ohjelmia voidaan ajaa missä tahansa Java EE Web-profiilipalvelinohjelmistossa, joita ovat esim. Jetty, Tomcat, Glassfish tai Websphere.

 

9. Lisensointi

CUBA Platformin ydin perustuu avoimeen lähdekoodiin Apache 2.0 -lisenssiin, joka mahdollistaa tuotteen käytön vapaasti myös kaupallisiin tarkoituksiin. Tuotteen Studio-osuus on saatavilla niin ilmaisena kuin maksullisenakin versiona. Ilmaisella pääsee hyvin liikkeelle etenkin pienissä projekteissa, mutta suuremmissa projekteissa kannattaa käyttää maksullista versiota. Siihen sisältyvät myös lisäosat, kuten raportointi ja BPM-ominaisuudet. Studion hinta on varsin kohtuullinen, alle 400 euroa vuodessa. CUBA-ohjelmien ajamiseen ei tarvita lisenssiä. CUBA Platformin voi ladata ilmaiseksi osoitteesta https://www.cuba-platform.com/download. Tuotetta kehitetään jatkuvasti ja käyttäjäyhteisö on aktiivinen. Tuotteen toripalvelusta voi ladata ilmaisia ja maksullisia laajennuksia tuotteeseen.

Kuva 7. Esimerkki CUBA Platformilla tehdystä käyttöliittymästä, joka toimii hyvin myös mobiilikäyttöisenä.

Kuva 7. Esimerkki CUBA Platformilla tehdystä käyttöliittymästä, joka toimii hyvin myös mobiilikäyttöisenä.

Teemu Simolin tiivistää lopuksi:

CUBA Platform tuo meille nykyisten välineidemme rinnalle uuden mahdollisuuden toteuttaa asiakkaidemme ohjelmistoratkaisuja. Pystymme kehittämään moderneja, monilla alustoilla toimivia järjestelmiä ”low-code”-tekniikalla kustannustehokkaasti, kun ohjelmistoihin myös saadaan valmiina suuri määrän tärkeitä ominaisuuksia. Monesti yritysohjelmistoissa tärkeä raportointikin voidaan toteuttaa välineen omilla työkaluilla. Teknologianäkökulmasta CUBA Platform on asiakkaan kannalta turvallinen valinta sen perustuessa tunnettuihin avoimen lähdekoodin ratkaisuihin.”

Teemu Simolin
Vanhempi konsultti, Cubescom


Pitkä kokemuksemme ohjelmistokehityksen parissa varmistaa, että onnistut. Ota yhteyttä niin keskustellaan lisää.

Kari Juvonen, liiketoimintapäällikkö
kari.juvonen@cubescom.fi
+358 40 505 3133


- INNOVATE | IMPLEMENT -