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 enumerat FacturaField que 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