Estandardització I Unificació En La Compartició D’Events D’Agenda a L’Ajuntament De Barcelona
Total Page:16
File Type:pdf, Size:1020Kb
ESTANDARDITZACIÓ I UNIFICACIÓ EN LA COMPARTICIÓ D’EVENTS D’AGENDA A L’AJUNTAMENT DE BARCELONA Octavi Palau i Tarradas Índex 1 Abstrac6 2 Resum 7 3 Objectiu8 4 Introducció9 4.1 ASIA....................................... 10 4.1.1 Plantilles................................ 10 4.1.2 Processos Batch............................. 10 4.1.3 Serveis web............................... 10 4.2 Plataformes intermèdies............................ 11 4.2.1 Middleware............................... 12 4.2.2 AsiaCache................................ 12 4.2.3 Gestors de continguts.......................... 13 4.2.4 GuiaBCN................................ 13 4.3 Clients finals................................... 14 4.4 Visites...................................... 15 4.5 Arquitectura................................... 15 4.6 Format de compartició............................. 16 4.6.1 Serveis.................................. 16 4.6.2 Calendaris................................ 17 4.7 Sincronització.................................. 17 4.8 Resum dels problemes actuals......................... 17 2 Índex 5 Estudi de la solució i impacte 19 5.1 Estudi d’alternatives.............................. 19 5.2 Solució general................................. 20 5.2.1 Ingesta.................................. 20 5.2.2 Aplanament de dades.......................... 21 5.2.2.1 Finestra d’aplanament.................... 22 5.2.2.2 Control data modificacions................. 22 5.2.2.3 Manteniment funcionalitats actuals............. 22 5.2.3 Incorporació informació als serveis................... 23 5.3 Requeriments d’un acte/event......................... 23 5.3.1 RFC5545................................ 24 5.3.2 Horari d’un acte actual......................... 24 5.3.2.1 Període............................ 25 5.3.2.2 Dies.............................. 26 5.3.2.3 Dies obertura regulars.................... 26 5.3.2.4 Dies exactes inclosos..................... 26 5.3.2.5 Dies exactes exclosos..................... 27 5.3.2.6 Dates relatives........................ 27 5.3.2.7 Hores............................. 28 5.3.3 Exemples d’horari............................ 28 5.4 Integració part client.............................. 30 5.5 Implantació................................... 31 5.5.1 Incorporació dins ASIA del nou mòdul................ 31 5.5.2 Adaptació serveis actuals........................ 32 5.5.3 Revisió de l’arquitectura........................ 33 5.5.3.1 Actes migrats......................... 33 5.5.3.2 Clients migrats........................ 33 5.5.4 Fi d’implantació............................. 33 5.6 Sincronització.................................. 33 5.6.1 Serveis.................................. 33 5.6.2 Calendaris................................ 34 3 Índex 6 Desenvolupament 35 6.1 Ingesta...................................... 35 6.1.1 Importació calendaris.......................... 35 6.1.2 Formularis web............................. 35 6.2 Persistència d’actes............................... 36 6.2.1 Model BBDD.............................. 38 6.2.2 Camps d’un acte dins RFC5545.................... 38 6.3 Aplanament de dades.............................. 39 6.4 Creació serveis................................. 40 6.4.1 Definició del Serveis web RESTful (API)............... 41 6.4.1.1 Mètodes GET implementats................. 42 6.4.1.2 Estructura URLs....................... 43 6.4.1.3 Mètodes GET per paràmetres................ 43 6.4.1.4 URL SEO........................... 45 6.5 Resum nous serveis............................... 45 6.5.1 Llistats d’actes............................. 45 6.5.2 Detall d’actes.............................. 45 6.5.3 Creació de calendaris.......................... 46 6.5.3.1 Funció............................. 46 6.5.3.2 Nou servei calendari..................... 46 6.6 Adaptació sistemes actuals........................... 47 6.6.1 Serveis web ASIA............................ 47 6.6.1.1 Llistat d’agenda....................... 47 6.6.1.2 Detall d’agenda........................ 52 6.6.2 Serveis GuiaBCN............................ 53 6.6.2.1 Llistat d’agenda....................... 53 6.6.2.2 Detall d’agenda........................ 53 6.7 Altres...................................... 53 6.7.1 Control de modificacions........................ 53 4 Índex 7 Anàlisi dels resultats obtinguts 55 7.1 Millora tècnica................................. 55 7.2 Reducció costos................................. 55 8 Conclusions 56 9 Línies de futur 57 10 Índex de figures 58 11 Bibliografia 59 12 Cost del projecte 62 13 Annex 63 13.1 Introducció................................... 63 13.2 Propietats de l’event.............................. 63 13.2.1 Propietats requerides i d’una ocurrència............... 63 13.2.2 Propietats opcionals però només una ocurrència........... 64 13.2.3 Propietats opcionals però no haurien de tenir més d’una ocurrència 65 13.2.4 Propietats de final d’event....................... 65 13.2.5 Propietats opcionals amb múltiple ocurrència............ 66 13.3 Components de recurrència........................... 67 13.3.1 Regles de recurrència.......................... 67 13.3.2 Recurrència de dies i períodes..................... 75 13.3.3 Dates d’excepció............................ 76 5 Capítol 1 Abstrac El document inclou l’estudi i la implementació d’un sistema centralitzat, en substitució de l’actual, per a la gestió d’events d’agenda, seguint l’especificació de la normativa RFC5545, amb l’objectiu, d’implantar un estàndard i oferir una base per la compartició de l’agenda de Barcelona a sites, aplicacions mòbils, xarxes socials i aplicacions clients. La solució que implementem treballa sobre tecnologia PHP. 6 Capítol 2 Resum L’Ajuntament de Barcelona disposa d’una eina per a informar al ciutadà de l’agenda i dels equipaments de la ciutat. La gestió dels horaris es feta a mida segons les necessitats del client, concretament, del servei telefònic d’atenció al ciutadà. Amb el temps es van anar fent adaptacions per tal de compartir i publicar aquesta informació en sites i d’altres productes de dins i fora de l’Ajuntament. Actualment la compartició d’aquesta informació, al no seguir cap estàndard, és extremada- ment complexe i costosa, tan de desenvolupament, de manteniment i a nivell productiu. És per això que cal una solució per estandarditzar la compartició de l’agenda i eliminar totes les solucions intermèdies que s’han anat desenvolupant durant anys. La especificació RFC5545 juntament amb una adaptació poden solucionar aquest problema i fer desaparèixer la complexitat i el cost actual d’integració i de funcionament. Caldrà també que el sistema actual convisqui amb el nou durant el període transició sense que hi hagi afectació en cap dels seus serveis. En aquesta fase ja hauran d’estar disponibles les noves funcionalitats. Al final del document exposem les conclusions i les línies de futur. 7 Capítol 3 Objectiu L’objectiu del projecte és implementar una solució software que permeti gestionar l’agenda orientada a la ciutadania de l’Ajuntament de Barcelona. La finalitat és la de posar la informació d’agenda a l’abast d’entitats i del ciutadà en un format estàndard, concretament seguint la normativa RFC5545. Cal que la definició dels horaris s’ajusti a les necessitats actuals, ja que alguns dels horaris dels actes de la ciutat es desvien dels formats estàndards existents. Caldrà també que el procés de migració sigui del sistema antic al nou sigui el menys traumàtic possible per al usuaris que gestiones els continguts i pels clients que l’exploten. El projecte pretén eliminar un conjunt de plataformes utilitzades per a donar el servei que hi havia fins ara. Així eliminaríem el cost que suposen i eliminaríem els retards que provocaven. 8 Capítol 4 Introducció El sistema actual ASIA1 gestiona tots els actes i equipaments de l’Ajuntament de Barcelona i és el que centralitza la ingesta de continguts i la seva publicació i distribució per diferents canals. A partir d’aquest i mitjançant un conjunt de plataformes intermèdies s’informa al ciutadà via diferents webs i aplicacions mòbils. La necessitat d’aquestes plataformes neix amb l’objectiu d’assegurar els temps de resposta i evitar col·lapses en el sistema central ASIA. Bàsicament el que feien era replicar un subconjunt d’entitats en funció de cada client, per tal que preparessin els continguts obtinguts segons les seves necessitats. Aquesta replicació implica una desactualització de la informació i portava als administradors de l’eina a configurar programacions d’actualitzacions depenen de molts factors i acabava sent un mal de cap. Aquest risc és degut a que les consultes d’agenda són molt costoses en funció del tipus de consulta. El problema recau en el mètode de càlcul dels horaris, és a dir, en l’algorisme per calcular la celebració de cada acte. L’algorisme permet obtenir la data i hora de celebració d’un acte per un dia determinat, implicant que per al dia següent ens caldria una altre consulta. Depenen del nombre d’actes i de la finestra de dies podia resultar impossible, i per tant, obliga a les plataformes intermèdies a treballar amb finestres de dies petites. Degut a que la compartició de cada acte no inclou el seu horari, cal retornar la relació de les seves celebracions de forma separada la qual cosa complica la gestió per part dels client i en segon lloc, deixa als clients sense la possibilitat de calcular la celebració dels actes fora del període de la consulta. La compartició d’aquests horaris al ser un sistema propietari és incompatible amb entorns actuals, siguin mòbils, xarxes