Mostanában a low-code és no-code fejlesztés újra reneszánszát éli, és az előrejelzések szerint még hatalmas bővülés előtt áll. Ezek az eszközök nem csak azért népszerűek, mert komolyabb programozói tudás nélkül, rövid átfutási idővel lehet velük igényesen kinéző alkalmazásokat előállítani. A low-code ma már vállalati környezetben is megállja a helyét, meg tud felelni sokrétű adatbiztonsági, governance és architekturális kritériumnak. Sikeresen alkalmazható változatos informatikai kihívások megoldására, akár RPA, akár egyedi alkalmazásfejlesztés területén.

A Gartner elemzéseiben önálló helyet kapott az Enterprise Low Code Application Platform kategória, és itt a 2020-as magic quadrantban az Oracle két különálló termékével is képviseltetve van. Ezek a Visual Builder és az Application Express, azaz Apex (nem keverendő össze a Salesforce által fejlesztett Apex programnyelvvel). Az alábbiakban az Application Express világába teszünk egy kis kirándulást.

Az Apex valójában nem újdonság, a története már 20 évre nyúlik vissza. A kezdetektől az Oracle berkein belül nőtte ki magát önálló termékké. Közben több névváltozáson esett át (HTML DB, Project Marvel, Flow). Alapvetően az Application Express egy webalkalmazás-fejlesztő keretrendszer, amely az Oracle adatbázisra épül rá. Ez több puszta integrációnál: a teljes fejlesztői környezet az adatbázis tábláiban és PL/SQL eljárásaiban él, és messzemenően kihasználja az adatbázis képességeit és sajátosságait. Maga az Apex alkalmazás valójában az adatbázisban levő táblák, üzleti adatok fölé húzott metaadat-réteg, amely a megjelenítésért és a programozható üzleti logikáért felelős.

Programozói szemmel más alkalmazás-fejlesztő keretrendszerekhez képest ez az architektúra talán idegennek, szokatlannak tűnhet. Egy idealizált szoftverfejlesztési paradigmában élesen elkülönül az üzleti logika, a felhasználói felület és az adatbázis réteg (lásd pl. Clean Architecture). Az Apex a hatékonyság szellemében mindezt egybecsomagolja egy koherens egységbe, amiben az egyes rétegek nem helyettesíthetők más technológiával. Ez viszont a legtöbb low-code, no-code fejlesztőeszközre ugyanígy igaz, hogy nem választhatjuk meg tetszőlegesen a technológiai rétegeket, hanem a platform sajátosságaihoz kell igazodnunk.

Az Apex esetében ez a beágyazottság komoly előnyökkel is jár. Egy „hagyományos” keretrendszer, programnyelvtől függetlenül, indirekt módon kommunikál az adatbázissal: jellemzően valamilyen API, driver, vagy ORM rétegen keresztül. Ezzel szemben az Apex közvetlenül az adatbázisban fut, ezáltal ki tudja aknázni az Oracle adatbázis sajátosságait és legmodernebb funkcionalitását. Az alkalmazás és adatbázis réteg közötti adatforgalom, hálózati késleltetés, az ORM-ek és interfészek révén fellépő processzoridő költsége nullára csökken (hiszen ezek a rétegek az Apexben összeolvadnak). A PL/SQL függvényekben, eljárásokban megírt üzleti logika felhasználja az adatbázis beépített optimalizációs képességeit, ezzel javítva az app sebességét.

Azonban az Apex legfőbb előnye véleményem szerint a nagyon alacsony fejlesztői belépési költség, tehát a no-code illetve low-code jelleg, és ennek kapcsán a fejlesztői kompetencia skálázódása. A programozói képességek növelésével, és ezáltal a termék funkcióinak gazdagításával egyre bonyolultabb dolgokat lehet kihozni az Apexből.

  • Ténylegesen nulla technikai háttérrel, a beépített varázslók segítségével percek alatt a semmiből elő tudunk állítani egy vagy több excel fájlból egy önálló, működő, jól kinéző web alkalmazást.
  • Minimális relációs adatbázis ismerettel és SQL tudással már könnyedén meg tudunk tervezni egy kisebb (pár táblából álló) adatmodellt, amire egy néhány oldalból álló egyszerű app viszonylag gyorsan ráépíthető.
  • Haladó SQL és PL/SQL ismeretekkel összetett funkcionalitás, bonyolultabb üzleti folyamat is megvalósítható.
  • Némi Javascript és CSS tudással a frontend is könnyűszerrel testreszabható, bár ebben a tekintetben maga az Apex is tartalmaz többféle sablont (témát), amelyek beállításokon keresztül is tuningolhatók (Theme Roller).

A fejlesztői környezet (Workspace) is egy Apexben megírt web alkalmazás. Egy szép grafikus felületen tudjuk felparaméterezni a fejlesztett alkalmazást, és vizuálisan beállítani az egyes oldalak és azon levő komponensek jellemzőit. Az összetettebb oldalakat a komponensek összehúzásával, drag-and-drop módszerrel tudjuk megszerkeszteni, de rá is építhetjük őket automatikusan egy tetszőleges adatbázis táblára vagy nézetre, vagy akár egy ad-hoc SQL lekérdezésre, illetve web service hívásra is. Szerkesztés közben a változtatásokat élőben, interaktívan tesztelhetjük (Developer mode), ez rendkívül gyors iteratív fejlesztési folyamatot eredményez.

Nézzük végig egy átlagos web app anatómiáját, és azt, hogy az Apex mit nyújt ezeken a területeken:

• Adatbázis. Az adat minden alkalmazásnak a lelke. Értelemszerűen a fő adatforrás többnyire maga az Oracle Database, de az újabb Apex verziókban már REST interfészen keresztül külső adatforrást is megszólíthatunk, vagy Oracle táblába szinkronizálhatunk. Ezáltal nagyban leegyszerűsödik a bárhol máshol tárolt adatok beintegrálása az alkalmazásunkba. Az adatbiztonság szempontjából az Apex teljes mértékben tiszteletben tartja az adatbázisban levő jogosultsági, hozzáférési szabályokat.

• Felhasználók: Az Apex alkalmazásban az autentikáció (beléptetés) és az autorizáció (hozzáférési körök) is teljesen testreszabható. Meghatározhatunk többféle jogosultsági szintet (pl. admin, szerkesztő, olvasó). A felhasználó beléptetés alapja lehet LDAP, adatbázis felhasználó, Apexen belül definiált felhasználó, közösségi média, vagy teljesen egyedi megoldás. Anonim hozzáférésre is lehetőség van pl. publikus web oldalak esetén. Maga az Oracle is számos ilyen portált üzemeltet, ami Apex alatt fut, csak egy példa: https://livesql.oracle.com/

• Admin: Az app-ra vonatkozó beállítások nagy részét az Apex Workspace-ben (tehát a fejlesztői környezetben) konfigurálhatjuk. Az üzemeltetés elősegítésére igény esetén automatikusan generálható az app-ba néhány sablon admin oldal, amelyek segítségével felhasználói jogosultságokat állíthatunk és az oldal használati statisztikákat, logokat követhetjük nyomon. Ezek a sablonok sok mindenre elegendőek, de komolyabb követelmények megvalósításának csak a képzeletünk szabhat határt.

• Felhasználói felület:

  • Menürendszer és nyitóoldal: automatikusan generálódik az app létrehozásakor, a workspace-ből természetesen minden eleme testreszabható.
  • Interakció az adatokkal, web alkalmazásokban jellemzően riportok, űrlapok, interaktív táblázatok (grid), esetleg naptárak segítségével történik. A beépített riport sablonokat a felhasználó valós időben is módosíthatja, pl. a táblázat oszlopait kiválaszthatja, átrendezheti, csoportosíthat, rendezhet és szűrhet, a kívánt riport variánst későbbi használatra elmentheti. Az adathalmazból egyszerűbb grafikonokat, ábrákat generálhat. A beépített riport sablon tulajdonképpen egy egész jól használható minimalista BI eszközként is funkcionál. A fejlesztői felületen lehetőség van bonyolultabb grafikonok és dashboard-ok összeállítására is.
  • Azonban az Apex jóval több egy BI eszköznél, hiszen – megfelelő felhasználói szerepkörrel – az adatokon minden CRUD művelet végezhető (létrehozás, lekérdezés, módosítás, törlés). Az adatrögzítést segíthetjük előre definiált értéklisták és egyedi validációs szabályok beállításával. Az űrlapok mezői automatikusan figyelembe veszik az adatbázisban tábla szinten beállított megszorításokat (egyediség, kötelezőség, lehetséges értékek, idegen kulcsok).
  • Az alkalmazás megjelenését többféle sablonból választhatjuk, vagy igény esetén tetszőleges külsőt állíthatunk egyedi témák készítésével. Feltölthetünk ikonokat, háttérképeket és egyéb grafikai elemeket. De már a beépített sablonokkal is egységes és modern küllemű, jól kezelhető web alkalmazást kapunk eredményül, amely mindenféle médiumon (desktop, tablet, mobil) jól mutat.
  • Az Apex alkalmazások támogatják a lokalizációk, azaz többnyelvű verziók könnyű elkészítését.

• Üzleti logika: Itt a keretrendszerből adódóan elsősorban PL/SQL kódban érdemes implementálni a bonyolultabb üzleti logikát, hiszen az adatbázis képességeit így tudjuk legteljesebb mértékben kiaknázni. Bizonyos esetekben lehetőség van Java kódot is futtatni az Oracle adatbázisból. A legfrissebb, 21c adatbázisba már bekerült egy GraalVM virtuális gép, és ezen keresztül szerver oldali Javascript futtatása is támogatott. Cloud környezetben pedig hívhatunk az adatbázisból OCI serverless/cloud-native function-t is, ami az Fn Project keretrendszerben sokféle programnyelven megírható (Go, Java, Javascript, Ruby, Python).

Összességében az Apex egy kiforrott, könnyen használható és izgalmas platform, ami együtt él és együtt fejlődik az Oracle adatbázissal. Legelőnyösebb akkor bevetni, ha adatközpontú web alkalmazás készítésére van szükség, amellyel egyedi, speciális üzleti igényeknek kell megfelelni. A low-code megközelítés miatt gyorsan és nagyon kevés programozói tudással is magas színvonalú és biztonságos szoftverterméket lehet előállítani. Komplexebb feladatokhoz azonban mindenképp érdemes tapasztalt fejlesztő vagy DBA bevonása már a projekt legelején, az adatmodell kialakításának szakaszában. A jó fejlesztési irányelvek betartása (verziókezelő használata, biztonsági mentések, tesztelés, CI/CD pipeline) a hosszú távon fenntartható üzemeltetéshez elengedhetetlen. A verziókezelés és változáskezelés (lifecycle management) a platform sajátosságaiból adódóan némileg eltér a szokásostól, de minden devops folyamat megoldható beépített eszközökkel - például az Apex keretrendszer sokféle módon támogatja az elkészült alkalmazások egyszerű lementését és mozgatását adatbázis-példányok között.

Fontos megjegyezni, hogy maga az Apex fejlesztőeszköz teljesen ingyenes. Csak és kizárólag Oracle adatbázissal működik, de az adatbázis licenszen kívül más költsége nincsen. Tehát azoknál a cégeknél, ahol már eleve használnak Oracle adatbázist, akár ERP rendszerrel, akár más célra, ott az APEX természetes módon kínálja magát egyedi fejlesztésekhez. Ráadásul az E-business Suite R12 kiegészítésére maga az Oracle is javasolja ezt a technológiát. Az APEX használható az ingyenes Oracle Database Express Edition (XE) verzióval, valamint a Cloud-ban elérhető autonóm adatbázis (ATP vagy ADW) változatokkal is, melyekből szintén létezik ingyenes opció (Always Free). Emiatt alkalmas lehet arra is, hogy kisebb cégeknek vagy civil szervezeteknek az alacsony költségvetésű informatikai igényeire egy egyszerű és hatékony választ adjon. Az Apex tökéletes megoldás lehet excel alapú, többfelhasználós munkafolyamatok kiváltására. Vagy olyan esetben, ha a meglevő ügyviteli, számlázó, CRM vagy más rendszerekbe egy új funkció belefejlesztése nem lehetséges, vagy nem lenne gazdaságos. Ajánlható üzleti folyamatok modernizációjához, a digitális átalakulás előmozdításához. Az Oracle az Apexet javasolja a korábbi Oracle Forms (elavult technológia) kiváltására, sőt alkalmas a SaaS alkalmazások (mint a Fusion Cloud ERP) egyedi igények alapján történő bővítésére is (1, 2, 3).

Az Ixenit sokéves tapasztalattal bír az Oracle adatbázisok és vállalatirányítási rendszerek terén. Fejlesztőink is kedvelik az Apexet a könnyű kezelhetőség, az Oracle adatbázissal való szoros együttműködés és a gyors iteratív fejlesztés lehetősége miatt. Az e-Zóna ügyviteli szoftver megoldásaink is Apex keretrendszerben készültek.

Végezetül egy kedvcsináló video első kézből, az Apex készítőitől: https://asktom.oracle.com/pls/apex/asktom.search?oh=7825

  |

3.3