Conceptes de la plataforma MADS V5
La plataforma
MADS V5 es distribueix com a artefactes Maven del grup madsv5. Els més importants són:
| Artefacte | Què aporta |
|---|---|
platform |
POM pare arrel: fixa les versions de totes les dependències |
mads-module |
POM pare dels mòduls d'aplicació |
mads-service |
POM pare dels mòduls de serveis web |
mads-comlib |
Biblioteca comuna: model d'entitats, interfície d'usuari, framework d'accions |
mads-w3lib |
Components web: servlets, JSON, pujada de fitxers, Excel |
mads-jpalib |
Persistència JPA amb EclipseLink i connexió a bases de dades |
mads-reporting |
Informes amb Pentaho Reporting |
mads-jtest |
Utilitats de test JUnit per a mòduls MADS |
Mòduls
Un mòdul és un projecte Maven que agrupa una funcionalitat completa: el seu model de dades, la seva lògica, les seves pantalles i els seus textos. Les aplicacions es componen de diversos mòduls, i la plataforma inclou mòduls reutilitzables com security (usuaris i permisos) o parameters (paràmetres de configuració).
Cada mòdul té un fitxer .mads a l'arrel que n'identifica el nom, la versió, el descriptor i el runtime per defecte, i els seus recursos a src/main/res:
| Carpeta | Contingut |
|---|---|
xml/ |
Metadades: descriptor, dominis, esquema de base de dades, textos, paràmetres i claus d'accés |
txt/ |
Textos traduïts, un fitxer per idioma (per exemple _es, _en, _ca) |
run/ |
Runtimes i llançadors per executar el mòdul |
Els fitxers XML es validen contra els esquemes publicats a mads.sivicom.cat/xsd, de manera que l'editor detecta errors d'estructura mentre escrius.
Metadades
- Descriptor: identitat del mòdul, paquet base, fitxers d'esquema i textos associats.
- Dominis: tipus de dades de negoci reutilitzables (longituds, formats, llistes de valors vàlids) que comparteixen totes les columnes que els fan servir.
- Esquema de base de dades: taules, columnes, claus i vistes del mòdul.
- Textos: literals de la interfície, amb la seva traducció per idioma.
- Paràmetres: valors de configuració del mòdul, amb el seu diccionari.
- Claus d'accés: permisos que el mòdul de seguretat assigna a usuaris i rols.
El model generat
mads generate module llegeix les metadades i genera el codi Java del mòdul. Per a cada entitat obtens:
- L'entitat JPA (per exemple
Factura). - La classe Peer (
FacturaPeer), amb l'accés a dades. - La classe Filter (
FacturaFilter), amb un enumeratFacturaFieldque conté una constant per columna.
Aquest enumerat és la clau de la qualitat de MADS: el codi dels mòduls es refereix a les columnes amb FacturaField.estado i mai amb el text "FAC_ESTADO". Si una columna canvia o desapareix, el codi que la fa servir deixa de compilar i l'error es corregeix abans d'arribar a producció.
La mateixa generació produeix els textos en tots els idiomes, el diccionari de paràmetres i, amb mads generate dart, el model d'entitats per a apps Flutter.
Runtimes i apps
- Un runtime és una configuració d'execució del mòdul (connexió, entorn, opcions). Un mòdul en pot tenir diversos —desenvolupament, proves, producció— i un per defecte.
- Una app és una aplicació que es crea per a un mòdul, amb el seu propi versionat, i que es pot publicar i distribuir.
- WAPP és el servei de Sivicom des del qual es publiquen mòduls i apps (
mads pub module,mads pub app) i des del qual els usuaris descarreguen i executen les apps (mads run app).
Plataformes de destinació
| Destinació | Com |
|---|---|
| Escriptori | Interfície Swing amb l'aspecte modern de MADS |
| Serveis web | Mòduls de servei sobre mads-service i mads-w3lib |
| Mòbil i multiplataforma | Paquet mads_flutter i el model Dart generat |