TSM - Dezvoltare rapidă de aplicații web cu Oracle APEX

George Bara - Co-fondator

Ați dorit vreodată să dezvoltați o aplicație web foarte rapid, fără să fiți nevoiți să învățați un nou limbaj de programare? V-ați întrebat de ce este încă dificil să creați pagini web cu formulare și rapoarte și de ce fiecare tool de Rapid Application Development devine "rapid" doar după ce investiţi câteva luni pentru a-l învăţa?

Aflați că există un produs trecut cu vederea numit Oracle Application Express (APEX) care ar putea să fie răspunsul pentru dezvoltatorii "one-off" de aplicaţii web, cei de baze de date, dar şi programatorii experimentaţi. Folosind un mediu de dezvoltare declarativ, puteţi construi aplicaţii web profesioniste cu o abordare click-and-click. Surpriza vine din faptul că acest tool este dezvoltat de Oracle, o corporaţie renumită pentru produsele sale scumpe şi exclusiviste. APEX este un tool gratis (dar nu open source) care s-a născut dintr-un proiect intern al Oracle menit să facă facă mai uşoară viaţa programatorilor şi administratorilor de baze de date.

Experienţa mea cu APEX a început în anul 2009, pe când lucram ca Oracle database developer la o companie specializată în asigurări de viaţă. Principalul task era integrarea mai multor sisteme software, atât interne cât şi folosite de clienţi. Partea bună era că toate componentele software foloseau Oracle ca baze de date; partea proastă era că nu aveam la dispoziţie suficient timp şi resurse umane pentru a dezvolta interfeţele între sisteme în Java, .NET, PHP sau alt limbaj de programare sau framework. Managerul de dezvoltare avea puţină experienţă la început cu APEX, însă avea mare încredere în capacităţile acestui tool. Aşa a început o experienţă intensivă cu APEX 3.2 pe durata a trei ani, într-un moment când documentaţia era puţină, iar experţii în domeniu şi entuziaştii APEX puteau fi număraţi pe degete. Rezultatul a fost o experienţă de software development unică, multă documentaţie scrisă, guide-uri şi whitepapers create pe parcurs precum şi o carte publicată în 2013 cu titlul "Oracle APEX Reporting Tips & Tricks" (disponibilă pe Amayon, iBookStore şi Barnes and Noble).

Oracle Application Express, cunoscut ca APEX, este tool de Rapid Application Development (RAD) care a atins un nivel de maturitate o dată cu lansarea versiuniii 4.0 în iunie 2010. APEX combină ciclurile de dezvoltare rapidă pentru aplicaţii web, în jurul unei baze de date Oracle, cu o comunitate de programatori specializaţi în creştere şi evanghelişti dedicaţi care promovează această tehnologie. Tehnica de programare este foarte declarativă şi se desfăşoară într-un mediu web-based, investind un efort de codare minim.

APEX foloseşte un concept unic care poate fi considerat opusul trendurilor actuale din dezvoltare aplicaţiilor web. În timp ce acum majoritatea aplicaţiilor web ar trebui să fie cuplate cât mai "loose" de bazele de date din backend, cu o emfază pe interacţiunea client-side, APEX are o abordare radicală, în care totul este stocat în bazele de date, de la datele până la meta-datele folosite pentru generarea paginilor web. Un web server al RDBMS-ului Oracle este folosit pentru a genera pagini HTML direct din baza de date, unde atât datele folosite de aplicaţie cât şi meta-datele care descriu paginile aplicaţiilor. Cu toate că APEX este un produs gratis, acesta funcţionează doar cu bazele de date Oracle, marea parte a procesărilor de backend, dar şi frontend fiind realizate de procedurile stocate.

O aplicaţie web Oracle APEX este dezvoltată folosindu-se SQL şi PL-SQL, cu toate că marea parte a efortului de codare poate fi realizat într-un mod declarativ, folosind interfaţa de dezvoltate din web browser. APEX este un tool database-centric, adică necesită şi rulează doar cu o bază de date Oracle. Istoria APEX începe în anul 2004, pe când era doar un tool intern al Oracle numit HTML DB. În 2006 a fost redenumit în Oracle Application Express (versiunea 2.1). În acest moment versiunea stabilă este 4.2.4 şi deja este lansată şi versiunea early adopter 5.0 (https://apexea.oracle.com/i/index.html).

Pentru a utiliza APEX în cadrul unei instanţe a unei baze de date Oracle, chiar şi cu varianta free de baze de date Oracle XE, nu este nevoie de licensing adiţional, pentru că numărul de developeri, aplicaţii şi end-users nu este restricţionat. Suportă toate versiunile de baze de date Oracle începând cu 10gR2 şi poate fi folosit şi cu setup-uri Exadata, ORA şi RAC. În mod implicit, Oracle APEX este distribuit cu toate ediţiile bazelor de date Oracle.

Din punct de vedere arhitectural, APEX foloseşte o arhitectură simplă de tip 2-tier. Paginile web sunt generate dinamic folosindu-se metadata stocată în baza de date şi nu se generează cod compilabil sub forma unor fişiere. De fapt, APEX rulează o dată cu baza de date. APEX foloseşte un principiu de multitenant hosting, organizând paginile web în aplicaţii şi workspace-uri, care pot folosi la rândul lor baze de date distincte sau shared.

Cu toate că marea partea a codului din spate este scris în PLSQL, pentru a începe să lucrezi cu APEX nu ai nevoie de cunoştinţe avansate de programare, cu excepţia unor elemente de HTML. Fiind un tool web-based, procesul de development consistă dintr-o serie de pagini şi obiecte predefinite, de la formulare şi rapoarte până la grafice. Toate paginile şi componentele sunt stocate în obiecte din baza de date Oracle, de obicei tabele şi view-uri, aşa că este pus la dispoziţie şi un tool de management a schemei bazei de date. Crearea de tabele, views şi proceduri stocate se poate face direct în APEX, aşa încât întregul proces de dezvoltare se face în acelaşi environment, cel de dezvoltare web-based.

APEX se poate accesa prin intermediul unui URL într-un browser web, fie că folosiţi o instanţă instalată local, o instanţă de private cloud (SaaS) sau serviciul Oracle Database Cloud Service, produsul cloud al Oracle care foloseşte APEX pentru dezvoltare de aplicaţii web (http://cloud.oracle.com).

Cu toate acestea, Oracle APEX nu este un tool care este potrivit oricărui proiect. Cazurile tipice unde APEX poate fi folosit sunt cele de aplicaţii data-driven (aplic aţii de productivitate la nivel de department sau aplicaţii ad-hoc), reporting online bazat de query-uri SQL, transformarea spreadsheet-urilor Excel sau de alt tip în aplicaţii web sau pentru centralizarea acesului la date (unde APEX se poate fi folosit ca un central point of access pentru scheme multiple într-una sau mai multe baze de date Oracle).

Principalele componente ale mediului de dezvoltare APEX sunt:

Application Builder, unde sunt construite paginile şi aplicaţiile web în mod declarativ prin folosirea unor wizzards. Fiecare aplicaţie este compusă din una sau mai multe pagini, fiecare pagină este împărţită în regiuni. Fiecare regiune a unei pagini poate să conţină test, cod PLSQL, rapoarte, grafice, hărţi, calendare, formulare sau rezultate aduse prin intermediul unor servicii web. De asemenea sunt disponibile obiecte care sunt specifice nu doar paginilor, ci intregii aplicații, cum ar fi application items, processes, computations, scheme de autentificare și autorizare sau obiecte de navigare ca tabs, lists sau breadcrumbs.

SQL Workshop, un tool care permite managementul obiectelor din baza de date Oracle. Query-uri SQL ad-hoc, wizards pentru crearea de tabele, view-uri, proceduri stocate şi alte obiecte de baze de date pot fi utilizate de developer pentru a face management-ul schemei Oracle din acest tool browser- based.

Team Development, o unealtă de team management pentru development pentru urmărirea feature-urilor, bugs şi milestones. Acest tool este legat direct de paginile APEX.

Administration, pentru administrarea contului, a workspace-urilor şi a dashbord-urilor.

Ca majoritate uneltelor RAD, Oracle APEX facilitează dezvoltarea de aplicaţii într-un mod declarativ, folosind item-uri de pagini web deja existente cum ar fi: rapoarte, formulare, grafice, calendare, template-uri de UI, navigaţie, validări, procese de pagină şi aplicaţie, servicii web, servicii de e-mail şi localizare (traducere), autentificare, autorizare, logging şi monitorizare.

Pentru mai multe detalii legate de dezvoltare aplicaţiilor APEX, puteţi achiziţiona cartea "Oracle APEX Reporting Tips&Tricks": http://www.apexninjas.com/blog/2013/06/oracle-apex-reporting-tips-tricks-out-now/

De asemenea, puteţi încerca o aplicaţie simplă de blogging dezvoltată integral în APEX aici: http://apex.oracle.com/pls/apex/f?p=20559:101: