GATD 1.0
description
Transcript of GATD 1.0
GATD 1.0
Una aplicació simplificada per a la Gestió d’Actuacions Tècniques a Domicili
Treball de Fi de Carrera en J2EE. ETIG UOC 2010
Alumne: Jordi Tejero Garcés Consultor: Joan Vicent Orenga Serisuelo
Objectius
El projecte ha estat concebut com un procés d’aprenentatge de la tecnologia J2EE.
El producte creat té les funcionalitats més bàsiques per a gestionar una empresa d’atenció tècnica domiciliaria, com ara una lampisteria.
Operativa de les actuacions
Client
1.PeticióGATD
Domicili Seu
Tècnic
http
http
Controlador
2. Assignació
3. Finalització
Client Qualsevol se’n
pot donar d’alta Fa les peticions
via web amb un navegador estàndard
Pot consultar-les, modificar-les, anul·lar-les i fer-hi queixes
Roles dels usuarisTècnic Treballa amb un
telèfon mòbil senzill Por estar actiu o
inactiu Rep les peticions per
e-mail Les accepta i,
acabada la feina, les tanca
Pot consultar l’historial dels clients
Controlador Fa servir un navegador
estàndard Activa i desactiva els
tècnics Té llistats de situació de
peticions, clients i tècnics
Pot donar d’alta, baixa i modificar clients i tècnics
Pot modificar peticions i en té una visió més completa que els clients
La petició GATD
Representa una demanda d’actuació d’un client Té una adreça d’actuació Té les dades d’una persona de contacte Té una descripció Té un tècnic responsable Pot tenir una queixa (!), anul·lada o no Pot tenir una alerta ( ) en funció del temps que porti sense
ser acceptada o sense finalitzar Quan és finalitzada, té un temps emprat
Fitxa de la petició. Visió de Controlador
Cicle de vida d’una petició
La petició surt d’estat Rebuda automàticament en assignar-hi un tècnic. En qualsevol altre estat, té un únic tècnic responsable
La petició està pendent La petició està tancada
Assignada Acceptada Finalitzada
Anul·lada
La petició l’atén un tècnic
Rebuda
Arquitectura. GlassFish 3 GAT segueix el patró MVC, implementat amb Java Server Faces 2 i
Enterprise Java Beans 3. El servidor d’aplicacions GlassFish 3 proporciona tots els components
necessaris out of the box, inclòs un SGBD Derby
ControladorFacesServlet
ModelManaged Beans
EJB 3
VistaPàgina xhtml
Navegador estàndard
Micro-navegador Crea i gestiona
Accés
Manega i redirecciona
HTTP
El Model Les Managed Bean
Controlador..., reben de la FacesServlet els paràmetres i el mètode invocat per les pàgines xhtml
Delegen la lògica de negoci en un o més Entreprise Java Bean Gestor...
La persistència de les entitats la proporciona l’estàndard Java Persistence API (JPA)
. Controlador[X]Managed Bean
Gestor[X]EJB
Gestor[Y]EJB
AEntity
BEntity
JPA
Derby
Seguretat i validació dels usuaris
Es basa en l’estàndard Java Authentication and Authorization Service (JAAS), implementat per GlassFish a partir d’una taula d’usuaris
Auto-registre. Qualsevol persona pot donar-se d’alta com a client, simplement omplint un formulari
L’accés a les pàgines privatives de cada tipus d’usuari, obliga a validar-se a un formulari d’accés
El formulari d’accés s’adapta al navegador de l’usuari, sigui estàndard o micro-navegador
A un segon nivell de seguretat, l’accés a cada objecte Managed Bean, està restringit a usuaris validats de certs roles
Programari Client Clients i controladors fan
servir navegador estàndard Els tècnics treballen amb el
micro-navegador del seu telèfon mòbil
Els mòbils poden ser senzills. Sols s’hi demana que interpretin HTML i que incorporin un client e-mail
No cal que interpretin javascript ni que mostrin imatges.
Per a les proves de navegació dels tècnics, s’ha pres com a referència el Nokia Mobile Browser Simulator 4
Emulador de mòbil pres com a referència
Internacionalització
GATD pot suportar diversos idiomes. Actualment sols ho fa amb el català i l’espanyol, però fora fàcil afegir-ne d’altres
L’auto-registre dels nous usuaris i la seva validació, es fa segons el idioma del navegador de l’usuari
Un cop l’usuari ha iniciat sessió, la interfície seguirà el idioma que indiqui la seva fitxa
Els clients poden canviar el seu idioma en qualsevol moment. L’efecte és immediat, sense haver de iniciar una nova sessió
Canviant d’idiomaCanvis a la fitxa del client, en modificar el idioma. Fragment
El conflicte d’edicions
En un sistema multi-usuari, hi ha la possibilitat de que les modificacions fetes per un, siguin inadvertidament sobreescrites per un altre
GATD impedeix aquest “conflicte d’edicions” fent servir l’optimistic locking de JPA
L’optimistic locking es basa en un atribut versió de les entitats, que s’incrementa cada cop que es desen al SGBD
Temps
Versió = 2
Versió = 1 Versió = 2
OK
Versió = 2
Versió = 2
Error!
Conflicte!
Els detalls importen: el botó [Tornar]
A diferència del back del navegador, el botó [Tornar] porta sempre a la pàgina prèviament visitada, encara que l’actual s’hagi carregat molts cops
[Tornar]
x N
GATD 2.0. Possibilitats futures
Un formulari de configuració del sistema, on posar les dades del servidor SMTP, els llindars d’alerta de les peticions, etc.
Administrar seus i controladors Validar les adreces contra Google Maps, mostrant el mapa a
l’usuari Determinar el tècnic més proper a un domicili, fent servir
Google Maps Gestionar les competències dels tècnics (electricista,
pintor...), assignant-los sols les peticions que hi encaixin Gestionar els materials consumits en cada actuació i les
comandes per a mantenir el material necessari al magatzem
El nostre GAT