2. Vedere generala
● Axiologic Quark: Framework pentru dezvoltarea de software "enterprise"
● Inovatii pentru marirea productivitatii scrierii de cod atit pe server cit si pe
partea de client.
● Costuri mai mici in dezvoltarea aplicatiilor comparativ cu Java,.net,PHP
● Inspirat si impartasind scopuri comune cu MDA,DDD.
○ Codul specific aplicatiei,regulile de afaceri si procesele sunt gestionate
separat de codul de infrastructura (framework,middleware) astfel ca in
5-10 ani cind ar fi naturala o rescriere a aplicatiei datorita schimbarilor
tehnologice,rescrierea se va putea face pe baza aplicatiei existente
(eventual transformata automat)
○ In codul specific aplicatiei,modelul de date specific entitatilor specifice
afacerii sunt centrale si nu aspectele tehnice. In acest fel se
micsoreaza riscul aparitiei erorilor umane si pierderile de productivitate
cauzate de complexitatea codului
● Se pot scrie si aplicatii native pentru tablete si mobile folosind acelasi cod
(Android,iPhone,Windows)
3. Mod de folosire (1)
Aplicatii departamentale mici si medii
● module de tip ERP inlocuitoare de excel,acces,fox,etc (baze de date +
CRUD dintr-o aplicatie web). Datorita instrumentelor ultra-RAD aceste
functionalitati se pot dezvolta aproape in acelasi timp cu analiza
● posibilitatea de a adauga permisiuni, fluxuri de lucru si reguli de business
unificate la nivelul companiei
● integrate cu un sistem de task-uri,management-ul documentelor si
inregistrarilor unificat la nivelul companiei
● integrate cu un sistem de autentificare centralizat (LDAP,Active Directory)
la nivelul companiei
● integrabile cu alte aplicatii ERP existente la un pret rezonabil
● vine gratis si cu o componenta de management al cunostintelor companiei
(aplicatie de tip wiki,ce poate folosi si ca intranet,blog,etc)
● vine cu aplicatie de tip HR in care se gestioneaza datele angajatilor,
rapoarte despre ei, se creaza automat cont in LDAP la angajare,etc.
4. Mod de folosire (2)
Crearea sau rescrierea unor aplicatii de tip ERP mari
● costuri mai mici compativ cu alte tehnologii
● pornirea rapida a proiectului dat fiind ca arhitectura si caramizile de baza
se vor refolosi.
● metodologia de dezvoltare este ajustata perfect tehnologiei.
● un nivel garantat de calitate al codului
● suport pentru reguli,workflow-uri configurabile (BPM)
● arhitectura ce permite integrarea cu alte aplicatii ERP
5. Optimizare costuri
De ce?
○ cod mai putin si mai simplu comparativ cu Java,C# si chiar PHP
○ cod este usor de inteles de incepatori
○ grad de refolosire a codului mai mare decit in celelate tehnologii
existente,prin folosirea de limbaje diferite pentru "caramizile"
sistemului si aplicatia dezvoltata pentru utilizatorul final
○ codul scris respecta automat un set de standarde de calitate a
arhitecturii si prin proiectarea speciala se incearca evitarea
multora din tendintele tipice de crestere a complexitatatii
○ scad costurile integrarii cu alte sisteme deoarece arhitectura de pe
server este gindita ca fiind bazata pe un "bus de integrare" la care se
pot atasa ieftin adaptoare pentru alte aplicatii
Concluzii:
○ scade cu 30-40% costul cu dezvoltarea de functionalitati noi
○ scade cu minim 20-30% costul cu mentinerea aplicatiei
○ se pot micsora costurile cu analiza,dat fiind ca utilizatorul poate vedea
aproape imediat rezultatul "functionind" al discutiei
6. Folosirea resurselor umane
● programatori fara experienta, expusi la tehnologie pot deveni
productivi in doar 3-4 saptamini invatind 2 limbaje proprii
● nu e nevoie de programatori Java,.net, php scumpi si absorbiti usor
din piata de catre firmele multinationale. Doar arhitectii vor avea un
astfel de profil.
● se vor putea folosi mai putini programatori "profesionisti", absolventi
de informatica/automatica fara riscul scaderii calitatii codului aplicatiei
● vor putea fi trainuiti sa devina programatori si absolventii de stiinte
economice sau inginerii
● se vor putea partaja pentru 3-4 echipe de dezvoltare ce dezvolta
aplicatii sau module diferite: un singur Web Designer, un singur
expert UX si un singur arhitect. Dezvoltarea se poate face folosind
metodologii Agile.
● analistii vor putea intelege, configura si modifica regulile de business,
procesele si schema bazelor de date folosind instrumente vizuale
dezvoltate folosind Axiologic Quark
7. Tehnologie
● Axiologic Quark pe partea de server:
○ este proiectat ca un PaaS: multi-tenant, api-uri PaaS,securitate
○ poate fi atasat unui iPaaS: modul de tip ESB,orchestrare de procese
● Pe parte de client:
○ framework pentru aplicatii de tip RIA (web)
○ este un "wrapper" cu abstractii puternice si functionalitati sporite peste
un framework enterprise open source matur (Flex/Adobe)
○ nu e nevoie sa se scrie cod pentru operatiile CRUD
■ se descrie modelul iar partea de vizualizare se genereaza
■ codul generat e simplu si poate fi modificat oricit
○ operatii de Undo/Redo fara a scrie cod (pentru CRUD)
○ arhitectura de tip MVVM (varianta MVC)
○ folosirea de limbaje de tip DSL declarative si usor de inteles pentru
descrirea modelelor si a view-urilor
○ pregatit pentru aplicatii de tip "real time web" ce permit colaborarea in
timp real a utilizatorilor fara a face "refresh" manual sau periodic
○ gestiunea tranzactiilor se face automat sau semi-automat
8. Posibile dezavantaje
● s-au creat doar 4 aplicatii cu utilizatori reali
● pe alocuri mai poate sa fie nevoie de optimizari, imbunatatiri
● partea de server (mai ales partea de integrare,iPaaS) nu a fost folosita cu
mii de utilizatori concurenti dar a fost proiectata pentru scalabilitate pe
orizontala (pentru functionare multi-tenant in cloud)
● componenta de orchestrare BPM nu este inca dezvoltata
● pentru a obtine maximul de productivitate ar fi recomandabila folosirea
unui IDE special pentru limbajele si componentele Axiologic Quark
● instrumentele pentru analisti si programatori sunt nefinisate, incomplete
(fata de ce e posibil suntem undeva pe la 60-70%) Pentru dezvoltarea
celor 4 aplicatii, modificarea codului s-a facut cu editoare nededicate.
9. Termeni
DDD: Domain Driven Design
MDA: Model Driven Architecture
DSL: Domain Specific Language
RIA: Rich Internet Applications
CRUD: Create,Read,Update,Delete
ultra-RAD: ultra - Rapid Application Development
BPM: Business Process Management
MVC: Model View Controller
MVVM: Model View ViewModel
ESB: Enterprise Service Bus
PaaS: Platform as a Service
iPaaS: integration Platform as a Service