{% extends "layout.html" %} {% block jquery %} {% endblock %} {% block body %}
Aquesta guia descriu tota la documentació sobre la migració de totes las aplicacions que he desenvolupat i/o mantingut com a responsable informàtic de UAB-Idiomes, així com enllaços a les aplicacions i als codis fonts i BBDD. També aporta la documentació dels diferents servidors i la seva organització.
La idea és centralitzar en un sol lloc tota aquesta informació i evitar la duplicitat de documents que es generarien per actualitzacions successives. Això implica, però, que hi haurà parts que aniran canviant o que durant un temps estaran desactualitzades. Igualment, s'aniran ampliant temes i/o eliminant d'altres fins arribar a una documentació final i estable.
Relació d'aplicacions realitzades en Python 3. Són la conversió d'aplicacions del mateix nom ja existents, provinents de l'antic Gabinet de Llengua Catalana i que havien estat realitzades en PHP 3 + MySQL. La migració a PHP 7 suposava fer-les de nou així que es va decidir fer la versió en Python + Flask per la seva rapidesa en la implementació. Atès que l'stress sobre la BBDD era nul, vaig decidir substituir MySQL per SQLite3.
Versió en Python del Quac
Tot i que ja estan migrades a Python 3.7, a dia 26/03/2020, les aplicacions en Python poden no estar en 3.7 en producció, ja que estem pendents d'unes gestions de la direcció per disposar d'un entorn de proves al wuster.uab.es per les versions ja migrades a Python3
Consulta de l'antiga BBDD del 'Gabinet de Llengua Catalana'. És una aplicació senzilla migrada d'una anterior de la qual no disposàvem de gaire informació. Està desenvolupada en Python3.7 i Flask contra SQlite3. La seva finalitat és poder consultar les dades d'activitats formatives que tenia el Gabinet i que eren molt antigues.
A hores d'ara, la seva consulta està automatitzada des del Winzen tot i que es pot consultar directament. Contacteu amb el responsable d'administració de UAB-Idiomes Campus per la clau d'accés.
Per més informació contacteu: Néstor González (Nestor.Gonzalez@uab.cat)
Aquesta web aplega diferents jocs virtuals creats pel Servei de Llengües que promouen la reflexió al voltant de la llengua i la diversitat. Consta de tres jocs:
La pàgina principal és Jocs virtuals al voltant de la llengua
Per més informació contacteu: Virginia Castillo (Virginia.Castillo@uab.cat)
Accés a la pàgina web
Per més informació contacteu: Virginia Castillo (Virginia.Castillo@uab.cat)
Per més informació contacteu: Virginia Castillo (Virginia.Castillo@uab.cat)
La pàgina web pels alumnes.
La pàgina d'ajuda pels professors per poder crear i afegir nous exercicis. Aquesta url no ha de ser públic
Aquesta petita utilitat permet als professors crear C-Tests que ajuden els alumnes a realitzar pràctiques prèvies a l'examen. Per més informació contacteu: Laura Riera(Laura.Riera@uab.cat)
Quac 5. Aplicació de gestió de notes segons el model multinivell. En l'actualitat la versió de producció és la 5.0.0.57 - 08/04/2019.
Per més informació contacteu: Laura Riera (Laura.Riera@uab.cat)
Quac 5. Tenim la nova versió 5.0.0.66 - 15/04/2020. Encara no s'ha passat a producció
Per més informació contacteu: Laura Riera (Laura.Riera@uab.cat)
Les aplicacions següents han estat desenvolupades en diferents versions de Java.
Considerant que el desenvolupament d'aplicacions ha estat exclusivament centrat sobre mi i he treballat sempre individualment, i tot i que al llarg del temps he provat diferents tècniques de treball en grup: control de versions, frameworks, documentació... finalment he acabat per desenvolupar els meus propis sistemes i recòrrer a formes de treball més senzilles en tots els aspectes, al menys per mi.
Respecte als frameworks i llibreries he evitat en la mida del possible casar-me amb cap sinò és que era absolutament inevitable o he considerat que el seu valor afegit justificava la dependència. Dins del possible sempre he mirat de crear-me les meves llibreries. Òbviament no ha estat sempre possible, ni tampoc pràctic.
Dit això aquesta és l'estructura bàsica de totes les aplicacions java: el model seguit ha estat l'MVC de manera que una aplicació té les següents parts:
Pel que fa a la visualització de les vistes, he seguit un llarg camí des del model JSP fins l'actual basat en Freemarker. Com que ha estat un procés de molts anys, la reconversió de jsps a plantilles de Freemarker (ftl) ha estat llarg i encara poden quedar restes en alguna aplicació.
A nivell client, de vistes, he utilitzat les següents llibreries:
L'estructura bàsica de'una aplicació respon a aquest esquema, tot i que els següents fitxers/carpetes poden aparèixer encara a les diferents aplicacions però estan definitivament obsolets:
La majoria de les meves aplicacions, tret diria de gessevir, utilitzen el mateix sistema d'ajuda contextual.
El Winzen es la única aplicación que no es propiedad de la UAB o de UAB-Idiomes, sinò meva.
La BBDD del Winzen, la més gran de totes, és una BBDD que ha anat evolucioant des de l'any 1989 fins avui. Va començar com una BBDD en dBase IV, passat per Páradox i finalment va acabar en Firebird. Actualment 2.5.
Òbviament ha passat per molts canvis de requeriments en aquests 30 anys i això es pot observar en les taules, camps, index... etc., que han estat abandonats pel camí, així com les diferents filosofies de tractament de les dades, la manera d'anomenar els camps, índex etc...
En reunions prèvies es va decidir quines dades de l'històric es mantindrien, així doncs aquest document no farà referència a aquestes decisions. Més aviat intentarà ser una explicació més o menys global dels criteris d'organització de les dades.
Set de caràcters: WIN1252. A dia d'avui, tot i que hi ha hagut molts intents de canviar el set de caràcters a UTF-8, no s'ha pogut per diferents raons, bàsicament d'índol tècnic. En general servidors no preparats per suportar l'UTF-8. Finalment es va poder migrar a Firebird 2.5, que ja suportava plenament l'estàndard UTF-8, però degut al canvi d'aplicatiu es va decidir congelar-ho.
Bàsicament, totes les taules, o gairebé totes, inclouen un camp ID (en alguns casos OID, de Object ID) que és la clau primària. Una excepció clara és la taula de Codis Postal que procedeix originalment d'una taula que repartia lliurement Correus.
Algunes taules inclouen camps VS i CID. Juntament amb OID són l'herència d'un periode en que el desenvolupament del Winzen va estar compartit amb una empresa d'informàtica. D'aquest periòde es va heretar també la decisió d'eliminar les operacions en cascada: eliminacions, updates, ... etc. Per aquesta raó no estan definides relacions d'aquests tipus. Aquests dos camps no tenen cap ús. Potser, en algunes taules com USERS han estat reutilitzats. També es va heretar el camp R_ID, a la taula MAT, que de fet equival al camp EXPED que es troba per tota la BBDD.
Els camps que comencen per ID..., com ara IDCURSO, IDEXPED, IDMAT, són una foreign key a un camp d'una altra taula. IDMAT: camp ID de la taula MAT, IDCURSO: camp ID de la taula Curs.... etc. El camp MATID equival a IDMAT.
Els noms dels camps, malauradament tampoc segueixen una nomenclatura estàndar. Varien entre castellà i català (amb errors. Cas de NEIXAMENT). L'única regla gairebé general és triar-ne el més curt.
Respecte a la taula SQL, des de fa uns anys ha anat incorporant totes les ''queries' d'SQL que originalment estaven 'hardcoded' al codi. Encara, però n'hi queden al codi. Aquesta filosofia s'ha fet extensiva a d'altres BBDD d'altres aplicacions.
L'SQL utilitzat al llarg de totes les aplicacions ha estat sempre SQL 'puro y duro' del 92, evitant totes les floritures pròpies de cada BBDD per poder-lo fer 100% exportable.
Totes les aplicacions de l'entorn simtest han estat realitzades en diferents versions de Java sobre Oracle (contacteu els SI de la UAB Antonio Romera/Nacho Toledo per a més informació)
Totes les aplicacions dependents del Sevir estan realitzades en Java sobre Firebird 2/3. El Sevir és la SEcretaria VIRtual de UAB-Idiomes, i conté:
Bàsicament s'aplica tot el que ja he mencionat pel Winzen, amb la diferència de que l'estructura, nomenclatura de camps, índex... etc, és una mica més coherent. Hi ha però, una diferència important en la manera en que es guarden les dades. Per entendre-ho cal explicar l'origen del Sevir.
La idea era dissenyar una aplicació de formularis que permetés l'implementació ràpida de nous formularis, sobre la marxa, per donar resposta a les necessitats del servei. Per aquesta raó i atenent a que la gran majoria de formularis podien contenir unes dades comuns, es va plantejar una mena d'herència entre formularis, de manera que cada formulari heretaria dels anterios en la mida del possible, o a partir d'un ancestre comú. A nivell de codi es va plantejar com un seguit de classes i interfaces, i a nivell de BBDD, hi hauria un camp DADES, a la taula DADES que guardaria l'informació dels diferents camps com a un toString() de la classe corresponent. D'aquesta manera evitàvem haver de modificar l'estructura de les taules i només era qüestió d'implementar noves classes/mètodes i/o interfaces.
Set de caràcters: UTF-8. Atès que el Sevir està en procés de revisió, s'ha aprofitat per fer el canvi de set. L'estuctura final de la BBDD podria veure's modificada atès que estem en plena redefinició de l'aplicació.
Totes les aplicacions dependents de l'Eres estan realitzades en Java 1.8, J2EE 1.4, sobre Firebird 2/3. Com que hi ha projectes que per diferents raons no ha estat possible migrar-los a java 1.8 poden haver-hi llibreries associades que encara estiguin en Java 1.6.
L'eres es l'aplicatiu de reserva d'espai i conté:
Respecte a la BBDD, bàsicament s'aplica tot el que ja he mencionat pel Winzen, amb la diferència de que l'estructura, nomenclatura de camps, índex... etc, és una mica més coherent.
Set de caràcters: WIN1252. S'aplica el mateix que al Winzen. Com que l'eres està estabilitzat des de fa temps, no s'ha procedit a canviar el set. Per aquesta mateixa raó fa temps que no se n'han fet canvis a l'aplicació.
A banda del jar propi de l'aplicació (eres.jar), està formada per les llibreries següents:
Les més destacables (les marcades en vermell) són:
Respecte a la BBDD, bàsicament s'aplica tot el que ja he mencionat pel Winzen, amb la diferència de que l'estructura, nomenclatura de camps, índex... etc, és una mica més coherent.
Set de caràcters: WIN1252. S'aplica el mateix que al Winzen. Com que l'eres està estabilitzat des de fa temps, no s'ha procedit a canviar el set'. Per aquesta mateixa raó fa temps que no se n'han fet canvis a l'aplicació.
A banda del jar propi de l'aplicació (eres.jar), està formada per les llibreries següents:
Les més destacables (les marcades en vermell) són:
La BBDD de l'eresadmin és la mateixa que l'Eres.
En l'actualitat l'única web que mantic és la de l'Argumenta
ArgumentaPer més informació contacteu: Enric Serra (Enric.Serra@uab.cat)
La finalitat d'aquesta secció és descriure totes les aplicacions que s'han desenvolupat per encàrrec de UAB-Idiomes tot i que en l'actualitat estiguin en desús, d'aquesta manera es disposarà d'un històric d'apps.
Les primeres versions es van realitzar en Delphi 5. Les BBDD eren Pàradox
En general per totes les BBDD veureu que el Firebird defineix 'domains' que bàsicament són àlies de definicions de tipus de camps.
Aquesta és la relació de llibreries de java utilitzades en els diferents projectes. No s'incloen llibreries estàndar com ara mail, json, acivation... etc
És el framework que utilitzen la majoria de les meves aplicacions i que va substituir a l'stàndard jsp. En l'actualitat estic utilitzant la versió 2.3.23.stable
És una llibreria pròpia basada en el framework Freemarker que defineix una sèrie de classes, funcions... etc útils.
És una llibreria pròpia desenvolupada al llarg dels anys per mi, originalment per projectes personals, que finalment vaig compartir i cedir als meus projectes professionals. Com que va cobrir la migració d'Object Pascal (llenguatge en que estava desenvolupat anteriorment el Winzen) a java, conté molta 'guarreria' i no procediré a documentar-la. En tot cas faré esmena de les parts que s'utilitzen i una breu descripció. El més assenyat seria substituir-la per funcionalitat similar en altres llibreries.
Tota la documentació sobre les diferents aplicacions està organitzada en un seguit de fitxers html a l'estil javadoc. Aquest fitxer anirà canviant a mida que es vagi actualitzant la documentació. Descarregueu-lo in descomprimiu-lo on volgueu. L'accés a la informació és mitjançant l'index.html.