1
Simulado de escáne de ayos X: c eación y análisis
de imágenes
Je e son Cá denas Ca illo
Luis Red uello Fe nández
T abajo de in de g ado del G ado en Ingenie ía In o má ica
Facul ad de In o má ica
Uni e sidad Complu ense de Mad id
Di ec o : Manuel Mon eneg o Mon es
2
3
Au o ización de di usión
Los abajo i man es, ma iculados en el G ado en Ingenie ía In o má ica de la Facul ad de
In o má ica, au o iza a la Uni e sidad Complu ense de Mad id (UCM) a di undi con ines
académicos, no come ciales y mencionando exp esamen e a sus au o es el p esen e T abajo
de Fin de G ado: “Simulado de escáne de ayos X: c eación y análisis de imágenes”, ealizado
du an e el cu so académico 2015-2016 bajo la di ección de Manuel Mon eneg o Mon es en el
Depa amen o de Sis emas In o má icos y Compu ación, y a la Biblio eca de la UCM, a
deposi a lo en el A chi o Ins i ucional E-P in s Complu ense con el obje i o de inc emen a la
di usión, uso e impac o del abajo en In e ne y ga an iza su p ese ación y acceso a la go
plazo.
_________________________ _________________________
Luis Red uello Fe nández Je e son Cá denas Ca illo
_________________________
Manuel Mon eneg o Mon es
4
5
Ag adecimien os
Que emos ap o echa es e espacio pa a ag adece a odas y cada una de las pe sonas que nos
han ayudado a llega has a aquí, y de mane a muy especial a nues o di ec o Manuel
Mon eneg o, po su paciencia, dedicación y disponibilidad. Po anima nos y po ayuda nos en
odo momen o, g acias Manuel.
Finalmen e ag adece al cen o de o mación SEF los ecu sos que nos han p es ado pa a la
ealización de es e p oyec o.
6
7
Índice
Resumen 9
Palab as cla e 9
Capí ulo 1: In oducción 11
a. Mo i ación y con ex o 11
b. Obje i os 12
c. Plan de abajo 12
Capí ulo 2: An eceden es 18
Capí ulo 3: Desa ollo 22
a. Requisi os 22
b. Tecnologías u ilizadas 27
c. A qui ec u a gene al del sis ema 29
d. Diseño de la base de da os 30
e. Se icios Sopo ados 33
. Implemen ación del clien e 42
Capí ulo 4: Conclusiones 45
a. Di icul ades encon adas 46
b. Aplicación del p oyec o 47
Capí ulo 5: T abajo u u o 52
Capí ulo 6: Re e encias 54
Capí ulo 7: Apo aciones de los in eg an es 55
8
9
Resumen
Ac ualmen e cada ez son mayo es las medidas de segu idad que nos odean. Cada ez son
más impo an es y se e as es as medidas de segu idad en in aes uc u as y edi icios públicos.
Como consecuencia de es os hechos, cada ez se aumen a la necesidad de con a con pe sonal
de segu idad más cuali icado y p epa ado.
Es o ha p o ocado que aumen e la demanda de o mación en es a á ea, ya que las emp esas
de segu idad que ope an en el ae opue o deben o ma a su pe sonal pa a que puedan
eje ce su abajo con la mayo e icacia.
An e es a si uación, hemos decidido desa olla una aplicación pa a la o mación de los
alumnos en ma e ia de segu idad ae opo ua ia. Con es a aplicación, los usua ios pueden
consegui cualquie a de las es ce i icaciones que emi e AESA (Agencia Es a al de Segu idad
Aé ea). Cada ce i icación es dis in a según la zona del ae opue o en donde ope e el alumno.
Po an o, el obje i o de es e p oyec o es la implemen ación de una he amien a de
ap endizaje y e aluación po pa e de alumnos, que es á compues a po dos aplicaciones que
se elacionan median e la a qui ec u a clien e-se ido .
Palab as cla e
Ja a, Se icio web, A qui ec u a Clien e Se ido , Segu idad Ae opo ua ia, Ce i icación,
simulado ayos X, Modelo-Vis a-Con olado , Pe iciones (GET POST), Ap endizaje, XML.
16
Aims
The main objec i e o his Final P ojec is he implemen a ion o a lea ning ool o s uden s, in
his case o he aining o ai po secu i y pe sonnel. I will consis o wo desk op
applica ions ha a e ela ed by he clien -se e a chi ec u e, and ha will assess a s uden o
check i he has acqui ed he necessa y skills o pe o m an ac i i y in he ield o secu i y
esponsibili ies. This applica ion will ha e he ollowing ea u es:
Add o emo e use s om he applica ion i sel .
P esen a ion o heo e ical lessons in he o m o PDF iles, so ha he s uden will
ead and s udy on hei own, in he o de in which he wan s.
E alua ion o he heo e ical skills o s uden s acqui ed in he p e ious sec ion.
Analysis and in e p e a ion o images o an X- ay machine o de ec whe he a
baggage con ains o no i ems no allowed by he cu en egula ions.
Assessmen o p ac ical skills conce ning he analysis and in e p e a ion o images
desc ibed in he p e ious sec ion
Possibili y o main enance by he adminis a o : add exam ques ions and heo e ical
lessons
The heo e ical lessons, exams and images a y depending on he ype o acc edi a ion wan
o ge he s uden . Ou applica ion will allow o s uden o ecei e a o al o 3 ce i ica ions.
Type 1 ce i ica ion is in ended o hose gua ds who a e in ai po zones bu do no examine
luggage and he e o e no using scan images.
Type 2 ce i ica ion is o ien ed inspec ion equipmen ope a o s bo h hand luggage, and
ai c a s o es and supplies. Finally, ype 3 ce i ica ion is aimed a ope a o s o ca go and mail
The e o e, as each ce i ica ion has a di e en pu pose, esou ces a e di e en o each o
hem.
Wo k Plan
In his sec ion we will indica e in wha o de a e pe o med each o he objec i es desc ibed in
he p e ious sec ion, he amoun o ime de o ed o each, and which pa o he memo y
con ains he explana ion o each o hese objec i es is de eloped.
1. De ini ion o equi emen s and selec ion o echnologies o be used.
Fi s , we de ine he p ojec scope by se ing bases and lea ing possible ex ensions o
imp o emen open o implemen a ion i we ha e ime o hem. This poin is discussed in
Chap e 3.a Requi emen s o his documen . Once ma ked hese guidelines, we choose he
17
necessa y a chi ec u e o implemen ou applica ion, as well as echnologies ha would be
in ol ed in his de elopmen . This poin is discussed in Chap e 3.b Technologies used in his
documen .
2. Da abase design, login and use egis a ion.
Once he equi emen s ha e been de ined, we made a i s design o ou da abase, c ea ing all
ables and ela ions be ween hem. In addi ion, we implemen ed an ea ly e sion o how he
use is logged in o he clien applica ion, wi hou issuing eques s o he se e . In addi ion we
de elop adminis a o unc ions such as use egis a ion, also in a local en i onmen . This
poin is discussed in Chap e 3-d design Da abase.
3. Web se ice implemen a ion
Fo hose unc ions, such as he ones desc ibed in he p eceding pa ag aph ha a e no
pe o med by he clien , bu a he by issuing eques o he se e . We ea his poin in he
chap e s 3.c Gene al Sys em A chi ec u e and 3.e Suppo ed Se ices o his documen .
4.Theo e ical pa
Once implemen ed he web se ice, we con inue o add ea u es, o use s and adminis a o s.
A his poin , we add he possibili y ha he s uden can see a heo e ical module as well as
he adminis a o o hang in he applica ion. This poin is discussed in Chap e 3.e Suppo ed
Se ices and 3. Clien Deploymen o his documen .
5.Exams
Since he s uden mus ake an exam a e iewing he heo e ical pa , he nex poin ha we
implemen ed is he possibili y o conduc ing examina ions. In u n, we also implemen he
possibili y ha he adminis a o can add ques ions a ailable in he da abase. This poin is
discussed in Chap e 3.e Suppo ed Se ices and 3. Clien Deploymen o his documen .
6.Image analysis
Finally, we equip ou applica ion wi h he possibili y o displaying images o ha he s uden
can analyze. The s uden can iew he image wi h any o he h ee con as ha owns he
applica ion, o de ec i he luggage is p esen ed con ains p ohibi ed i ems o o he wise can
con inue wi hou being inspec ed manually. This poin is discussed in sec ions 3.e Se ices
Clien and 3. Suppo ed Deploymen o his documen .
18
2. An eceden es
El obje i o de es e p oyec o es la implemen ación de una he amien a de ap endizaje po
pa e de alumnos, que es á compues a po dos aplicaciones de esc i o io que se elacionan
median e la a qui ec u a clien e-se ido . En es e apa ado, que emos comen a de mane a
concep ual las p incipales a qui ec u as, he amien as y pa ones que hemos u ilizado pa a el
desa ollo.
A qui ec u a Clien e-Se ido
En p ime luga amos a de ini el pa adigma clien e/se ido como un modelo de aplicación
en el cual los clien es ealizan pe iciones de ejecución o ealización de a eas a los se ido es
que son los enca gados de p opo ciona los ecu sos.
Una de las p incipales en ajas de es a a qui ec u a es la posibilidad de añadi an os clien es
o se ido es como sean necesa ios, sin inc emen a la complejidad del sis ema, y, en
consecuencia, sin a ec a al endimien o. O a en aja muy impo an e es que los ecu sos
es án cen alizados y con olados po el se ido . De es a mane a las ac ualizaciones de los
mismos se hacen de mane a sencilla.
En la imagen adjun a
1
se mues a un diag ama de cómo unciona es a a qui ec u a.
1
Imagen ob enida de: h p://www.you e pso wa e.com/con en /25-a qui ec u a
19
Si aplicamos es os concep os a nues a aplicación, nues os clien es se ían los alumnos que
ejecu an la aplicación desde sus equipos. Es a aplicación in e ac úa con el se ido , pa a ecibi
los ecu sos necesa ios. Po ejemplo, cuando el usua io quie e ealiza un examen eó ico, la
aplicación le en ía una pe ición al se ido . Es e busca en la base de da os las p egun as
necesa ias y se las de uel e al clien e, que se las mues a al usua io median e su in e az
g á ica.
Se icio web
Un se icio web es una he amien a que pe mi e la comunicación en e dos aplicaciones
median e un conjun o de no mas y es ánda es p e iamen e de inidos. Así, las aplicaciones
pueden in e cambia se mensajes en o ma de código XML o JSON en e o os.
Las dos p incipales a qui ec u as o ien adas a la implemen ación de se icios web son SOAP
(Simple Objec Access P o ocol) y REST (Rep esen a ional S a e T ans e ). La ca ac e ís ica más
impo an e de las a qui ec u as SOAP es que gene an iche os WSDL
2
(Web Se ice Desc ip ion
Language) añadiendo así una capa adicional. En el iche o WSDL se decla an odas las
unciones de la a qui ec u a.
Po su pa e, las a qui ec u as REST no necesi an es a capa, ya que se basan en HTML y XML.
Las unciones de la a qui ec u a es án p ede inidas, en e las que des acan GET, POST, PUT,
DELETE y PATCH. Comen a emos más en de alle es as unciones en los capí ulos 3.c
A qui ec u a Gene al del Sis ema y 3.e Se icios Sopo ados del p esen e documen o.
En la siguien e imagen
3
exponemos una compa a i a en e ambas a qui ec u as.
2
Más in o mación en: h ps://es.wikipedia.o g/wiki/WSDL
3
Imagen ob enida de: h p://www.p og amacion.com.py/web/web-se ices- es - s-soap
20
En la imagen podemos ap ecia las di e encias en e ambas a qui ec u as. Mien as SOAP es
un p o ocolo de mensaje ía, que p opo ciona acceso a muchas ipos de mensaje y ope aciones
sob e ellos, REST basa su uncionamien o en ope aciones conc e as y limi adas ep esen adas
en comandos HTTP.
Pa ón Modelo-Vis a-Con olado
Pa a de ini el pa ón modelo- is a-con olado , amos a ci a su de inición en Wikipedia
debido a la cla idad con la que es á expues a. ”Modelo-Vis a-Con olado es un pa ón de
a qui ec u a de so wa e, que sepa a los da os y la lógica de negocio de una aplicación de la
in e az de usua io y el módulo enca gado de ges iona los e en os y las comunicaciones”
4
.
Es e pa ón di ide la aplicación en 3 capas, con la inalidad de dis ibui mejo las
uncionalidades de la aplicación, consiguiendo un man enimien o más sencillo. Además
pe mi e educi el con enido de código edundan e y aumen a la escalabilidad del sis ema a la
ho a de añadi nue as uncionalidades.
En la capa del modelo, se encuen a oda la lógica de la aplicación mien as que en la is a se
p esen an a los usua ios es os da os. El enca gado de in e ac ua en e ambas es la capa
con olado . El con olado ecibe las pe iciones del usua io asladándoselas al modelo, que
de uel e al con olado los da os solici ados, que son p esen ados de nue o al usua io
median e la is a.
4
Más in o mación en: h ps://es.wikipedia.o g/wiki/Modelo%E2%80%93 is a%E2%80%93con olado
21
En la siguien e imagen
5
mos amos un ejemplo de uncionamien o del pa ón modelo- is a-
con olado :
5
Imagen ob enida de: h p://u201201013.blogspo .com.es/
22
3. Desa ollo
En es e capí ulo amos a explica los aspec os de implemen ación de nues o p oyec o. En
p ime luga , en el apa ado de Requisi os amos a desc ibi la uncionalidad del sis ema desde
el pun o de is a del usua io. En el siguien e pun o (Tecnologías u ilizadas) amos a explica los
lenguajes, lib e ías, en o nos de p og amación y he amien as adicionales que hemos
necesi ado pa a el desa ollo del p oyec o. En el apa ado de A qui ec u a gene al del sis ema,
comen a emos las pa es que componen al sis ema y el lujo de abajo. Con inua emos con la
sección Diseño de la base de da os, en la que habla emos del diseño de la misma y de cada una
de las ablas. En la sección Se icios sopo ados amos a desc ibi la API del se ido y los
se icios que p opo ciona. Finalmen e en el apa ado Implemen ación del clien e amos a
comen a la es uc u a de clases del clien e, explicando el diseño u ilizado.
a. Requisi os
El simulado que que emos desa olla es una he amien a de ap endizaje sob e las
compe encias en segu idad de los igilan es de zonas ae opo ua ias. Cons a de 3 ipos
dis in os de ce i icaciones. La ce i icación de ipo 1 (de aquí en adelan e C1) es sólo eó ica y
a di igida a aquellos igilan es que es án en zonas ae opo ua ias, pe o que no manejan
obje os y, po an o, no usan imágenes. El igilan e, una ez ce i icado, no iene que ol e a
“ e esca ” su o mación, es deci , no necesi a ningún ipo de o mación adicional o eciclaje.
Pa a ob ene la ac edi ación, el alumno, una ez es udiado odo el ema io, debe supe a un
examen ipo es de 50 p egun as con 4 posibles espues as de las que sólo una es co ec a.
La ce i icación de ipo 2 (C2) a di igida a ope ado es de equipos de inspección, an o de
equipaje de mano, bodega, como p o isiones de a bo do y suminis os. A di e encia del C1, en
es a ce i icación hay pa e eó ica y pa e p ác ica. En es e caso, los igilan es ienen que
ealiza una o mación inicial y, una ez adqui idas las compe encias, ienen que ol e a
epe i la pa e p ác ica de mane a pe iódica a modo de eciclaje.
Dado lo an e io hemos de dis ingui si el alumno a a ealiza una o mación inicial o un
eciclaje. En la pa e de la o mación inicial end á pa e eó ica y pa e p ác ica, y en el
eciclaje sólo p ác ica. Al inal de cada pa e, an o eó ica como p ác ica, se iene que ealiza
un examen. El examen eó ico es un examen ipo es de 25 p egun as con 4 posibles opciones
de las cuáles sólo una es co ec a. El examen p ác ico cons a de un ca álogo de imágenes con
la mayo a iedad posible, en la que el alumno debe decidi si el equipaje o paque e cumple
con la no ma i a, o si, po el con a io, debe ía se inspeccionado manualmen e (es deci , hay
sospecha de que pueda con ene obje os p ohibidos). El iempo debe se limi ado y el núme o
de allos po cada ca álogo ambién, pe o la no ma i a dice que eso queda a elección del
o mado .
23
La ce i icación de ipo 3 (C3), a di igida a ope ado es de ca ga y co eo. Es análogo al C2, es
deci , ambién cons a de pa e eó ica y pa e p ác ica y, de nue o, los alumnos ienen que
ealiza pe iódicamen e un eciclaje en su pa e p ác ica. En es e caso, el examen eó ico es de
10 p egun as de ipo es con 4 posibles espues as co ec as, pe o la no ma i a del examen
p ác ico es o almen e igual a la del C2, sal o que, ob iamen e, son o o ipo de imágenes.
La siguien e abla mues a a modo de esumen, los componen es del examen
co espondien es a cada ce i icación:
Ce i icación
Pe iodicidad
TipoExamen
C1
Fo mación Inicial
Teo ía
Examen eó ico
C2
Fo mación Inicial
Teo ía
Examen eó ico
Fo mación Inicial
P ác ica
Examen p ác ico
Reciclaje
P ác ica
Examen p ác ico
C3
Fo mación Inicial
Teo ía
Examen eó ico
Fo mación Inicial
P ác ica
Examen p ác ico
Reciclaje
P ác ica
Examen p ác ico
A con inuación, pasamos a desc ibi los casos de uso de la aplicación:
1. Login
El usua io que accede a la aplicación es cualquie igilan e de segu idad que abaje en zonas
ae opo ua ias o que abaje con equipos de ayos X. Cuando ab e la aplicación iene que
p ocede a iden i ica se. Pa a ello in oduce su DNI sin le a y su con aseña. Una ez iniciada
la sesión, puede ol e al p oceso donde lo dejó en su sesión an e io , es deci , se gua dan los
ap obados y ac edi aciones que haya conseguido. La aplicación no unciona si el usua io no se
iden i ica.
Po o o lado, dis inguimos un ipo de usua io adminis ado , que se enca ga con ola las al as
y bajas de los usua ios y ambién se enca ga de ges iona la pa e de la o mación en sí, como
po ejemplo, subi módulos eó icos. La in e az de login es igual pa a ambos ipos de usua io.
Se á el sis ema el enca gado de mos a la is a de la aplicación adecuada al ipo de usua io.
2. Selección Ce i icación
Después de iden i ica se en la aplicación el usua io, de ipo alumno, elegi á el ipo de
ce i icación pa a la que desea se e aluado (C1, C2, C3). En la p ime a pan alla hab á es
bo ones, cada uno pa a las dis in as ce i icaciones. T as elegi una, se mos a án las opciones
de o mación inicial o eciclaje.
24
3. Fo mación Inicial
Después de escoge una ce i icación el alumno i á a la pan alla de o mación inicial, siemp e
que no haya ob enido ya esa ce i icación, es deci , que la haya ap obado p e iamen e. La
o mación inicial cons a de o mación eó ica y o mación p ác ica.
3.1Fo mación eó ica
Al elegi la o mación eó ica se mos a á un lis ado con los dis in os módulos eó icos
ca gados en el sis ema, co espondien es a la ce i icación en la que se encuen a el usua io de
ipo alumno. Un módulo es una unidad de eo ía, que se p esen a en o ma o PDF o cualquie
o o o ma o de ex o, pa a que el alumno adquie a los conocimien os su icien es de mane a
p e ia a la isualización de imágenes
6
. También exis i á un bo ón pa a empeza el examen,
aunque solo es a á ac i o después de e mina odos los módulos eó icos.
3.2 Examen Teó ico
Al examen eó ico sólo se accede después de e mina el ap endizaje con odos los módulos.
Po an o sólo se ealiza un único examen eó ico en cada ce i icación. El examen cons a de
a ias p egun as ipo es con solo una espues a co ec a. T as e mina el examen se
mos a án los esul ados ob enidos po el alumno.
3.3 Fo mación P ác ica
El alumno accede a es a o mación una ez concluida su o mación eó ica y habiendo
ap obado p e iamen e su examen eó ico. Pa a la o mación p ác ica, en p ime luga se le
mos a án al alumno una colección de imágenes a modo de en enamien o de un ipo en
conc e o (Equipaje, Bodega).
El uncionamien o del apa a o o iginal de ayos X consis e en lanza unas ondas que miden
p incipalmen e la densidad de los obje os que aspasa. En base a es e esul ado, el
p ocesado de la máquina asigna un colo de e minado a cada uno de los obje os. Es os
colo es se mues an según un código aco dado de mane a uni e sal. De es a o ma el neg o
ep esen a obje os muy densos, el na anja ma e ia o gánica y el azul ma e ia ino gánica.
En es a pan alla exis en es bo ones pa a cambia el con as e de la imagen. Es os son:
Con as e o gánico: Mues a sólo los ma e iales o gánicos mien as que
inhabili a los ma e iales ino gánicos (po ese mo i o suelen sali onalidades
más ana anjadas). Es ecomendable pa a la búsqueda de d ogas o explosi os.
Con as e ino gánico: De mane a análoga al an e io , mues a sólo los
ma e iales ino gánicos mien as que inhabili a los ma e iales o gánicos (po
6
En la ce i icación 1 sólo hay pa e p ác ica
25
es e mo i o suelen sali onalidades más azuladas). Suele se el más u ilizado
pa a la búsqueda de a mas.
Con as e blanco y neg o: Ayuda a e la opacidad de los obje os, po an o es
de mucha u ilidad pa a e de alles que con los con as es an e io es se nos
escapen.
Después de analiza la imagen el usua io pod á elegi si se a a de una male a sin a ículos
p ohibidos o po el con a io hay que p ocede a su inspección. En es e úl imo caso, es deci , si
el alumno sospecha que el obje o es pelig oso, se debe elegi si exis e una amenaza ob ia o
hay que e i a el obje o.
Si el usua io elige amenaza ob ia (al pulsa el bo ón co espondien e), p ime o selecciona á la
pa e de la imagen donde conside a que se encuen a es a amenaza. Además, sald á un lis ado
po pan alla con los di e en es ipos de posibles obje os (A ma blanca, explosi os, e c...) Al
elegi uno de ellos, se indica á po pan alla si ha ace ado o ha come ido un e o .
Pa a analiza cada imagen, el alumno no iene iempo lími e. Una ez analizada la imagen, se
mues a al usua io si su análisis es co ec o o no, es deci , si el usua io ha ace ado en su
decisión.
3.4 Examen P ác ico
Un examen p ác ico es un ca álogo de imágenes alea o ias que el usua io debe analiza . La
in e az del examen p ác ico es simila a la de o mación, con la sal edad de que aho a iene
un iempo limi ado y que ampoco se mues an los esul ados en e una imagen y o a.
Cuando el alumno e mine el examen se le mos a á una pan alla con el esul ado ob enido.
Además se o ecen las opciones de ol e a epe i el examen o de ol e a la o mación
p ác ica.
4. Reciclaje
Si el usua io de ipo alumno selecciona una ce i icación que ya ha conseguido (ya la ha
ap obado), accede a un epaso de los conocimien os de la misma. Pa a ello únicamen e a a
dispone an o de la o mación p ác ica como del examen p ác ico. Pa a pode
man ene / eno a la ce i icación, debe ol e a ap oba el examen p ác ico.
Pe il Adminis ado
Den o de la misma aplicación, si el usua io que se loguea es de ipo Adminis ado , pod á
ealiza ges iona usua ios (p o eso es y alumnos) y con aseñas y con ola los pe misos.
32
A con inuación, amos a explica , a modo de esumen, el con enido de cada una de las ablas
de nues a base de da os an e io men e mencionadas:
Módulo Teó ico
IdMódulo
PDF
Ni el
P egun a
IdP egun a
Enunciado
IdExamen
*P o iene de
Examen Teó ico
Respues a
IdRespues a
EsCo ec a
Ap ueba_ eó ico
DNI
IdExamenTeó ico
Fecha
Ap ueba_p ác ico
DNI
Tiene
DNI
Ni el
*P o iene de
Ce i icación
Enunciado
IdP egun a
IdExamenP ác ico
Fecha
*P o iene de
Usua io
*P o iene de
Examen P ác ico
33
Usua ios: Almacena oda la in o mación de los usua ios: DNI, nomb e y ipo de
usua io (alumno o adminis ado ).
Ce i icación: Hace e e encia a la ac edi ación que consigue el usua io, que iene
indicada en el campo ni el.
Tipo A ma: En es a abla gua damos odos los posibles ipos de obje os pelig osos que
se encuen an egis ados en la aplicación, con un código y una desc ipción.
Obje o P ohibido: En es a abla se gua dan las coo denadas del obje o p ohibido de
cada imagen.
Examen p ác ico: Almacena el núme o de imágenes que iene cada examen p ác ico
según a la ce i icación que co esponda (ni el).
Examen Teó ico: Almacena el núme o de p egun as que iene cada examen p ác ico
según a la ce i icación que co esponda (ni el).
Imagen: En es a abla se gua dan e e encias a odos los con as es posibles de la
imagen.
Módulo Teó ico: En es a abla se gua dan los PDF (como ipo BLOB) co espondien es
a cada ce i icación (ni el)
P egun a: Almacena odas las p egun as eó icas, gua dando una e e encia a la
ce i icación que pe enecen.
Respues a: Almacena odas las espues as, gua dando una e e encia de la p egun a a
la que pe enecen.
Ap ueba Teó ico: Lis a odos los usua ios que han ap obado un examen eó ico.
Ap ueba P ác ico: Lis a odos los usua ios que han ap obado un examen eó ico.
Tiene: Relaciona los usua ios con las ce i icaciones que han ob enido.
e. Se icios sopo ados
En es a sección de la memo ia amos a comen a los de alles de implemen ación que hemos
ealizado pa a la pa e del se icio web. El web se ice unciona como un p o eedo de
se icios pa a la pa e del clien e. Po an o es á con igu ado pa a ecibi pe iciones, y
solamen e de uel e Reponse S a us Code o los ecu sos solici ados.
Si po ejemplo, el clien e solici a un usua io, pueden da se dos al e na i as. Si el usua io exis e
y se encuen a en la base de da os, el se icio web le de ol e á al usua io el ecu so solici ado,
en es e caso un s ing que ep esen a un XML con la in o mación del usua io. Si po el
con a io, el usua io no exis e, el web se ice de uel e un código de e o , en es e caso 404
NOT FOUND.
Pa a nues a implemen ación, hemos di idido la implemen ación en un o al de 9 paque es,
que pasamos a desc ibi a con inuación:
34
Con ig
El paque e Con ig con iene clases pa a la con igu ación del sis ema. En él se implemen an las
clases db.p ope ies, y log4j2p ope ies. En la p ime a se es ablecen los pa áme os de
con igu ación del usua io de la base de da os, an o pa a MySQL como pa a O acle. Po su
pa e, la clase log4j2p ope ies si e pa a con igu a un egis o (log), donde an a i los
mensajes que aya de ol iendo la aplicación. Los mensajes pueden se de ipo depu ación
(debug), de ipo in o mación, de ipo e o …e c. En unción de la con igu ación se mues an
unos mensajes u o os.
Da a
Es e paque e con iene una clase po cada ecu so de la base de da os, como pueden se
usua ios, imágenes, p egun as o espues as. En cada una de es as clases se de inen los
a ibu os de las ablas y se c ea la cons uc o a. Además, se implemen an mé odos ge e s y
se e s.
Da abase
El paque e Da abase se enca ga de in e ac ua con la base de da os. Con iene las clases DAO y
DBConnec ion. La p ime a accede a la base de da os pa a ealiza ope aciones de consul a,
inse ción, bo ado o ac ualización sob e las ablas del sis ema.
Po su pa e la clase DBConnec ion c ea una ins ancia de la conexión a BBDD. Ob iene los
da os de la base de da os del a chi o p ope ies y ealiza una conexión u ilizando el D i e
Se ices
El paque e Se ices c eamos una clase Ja a po cada a ibu o de la aplicación: exámenes
eó icos, p ác icos, imágenes usua ios…e c. Si analizamos clase a clase:
Ce i icadoResou ce: ecibe odas las pe iciones elacionadas con un ce i icado.
ExamenP ac icoResou ce: ecibe odas las pe iciones elacionadas con un examen
P ác ico.
ExamenToe icoResou ce: ecibe odas las pe iciones elacionadas con un examen
Teó ico.
ImagenResou ce: ecibe odas las pe iciones elacionadas con la imagen, además
accede a las dis in as u as donde es án alojadas las imágenes y se la en ía al clien e.
ModuloTeo icoResou ce: ecibe odas las pe iciones elacionadas con un módulo
eó ico, además es la enca gada de de ol e los a chi os PDF al clien e.
Obje oP ohibidoResou ce: ecibe odas las pe iciones elacionadas con un obje o
p ohibido.
35
P egun aResou ce: Además de ecibi las pe iciones elacionadas con las p egun as,
iene mé odos de inse ción y consul a sob e la base de da os.
Respues aResou ce: Además de ecibi las pe iciones elacionadas con las espues as,
iene mé odos de inse ción y consul a sob e la base de da os.
Use Resou ce: Todo lo elacionado con los usua ios (inse , upda e and dele e)
además hace algunas comp obaciones ú iles pa a el clien e como comp oba si exis e
un usua io o si ha ap obado un de e minado examen.
Se e Aplica ion: es la clase que inicializa el web se ice y se enca ga de ins ancia la
clase que accede a la BBDD y odas las clases que eciben las pe iciones (las
mencionadas a iba).
A con inuación, pasamos a desc ibi odos los se icios sopo ados:
Class Use Resou ce:
o Public S ing ge Use App(@Fo mPa am("dni") S ing dni,@Fo mPa am("pass")
S ing pass)
Mé odo pa a consul a un usua io de la base de da os.
Tipo: POST
Pa h: “ge ”
Pa áme os: ‘dni’ , ‘pass’ que ep esen an los da os del usua io
P oduces: “applica ion/xml”
o public S ing ge Lis Use s()
Mé odo usado pa a ob ene odos los usua ios.
Tipo:POST
Pa h: "ge "
P oduces: "applica ion/xml"
o Public Response inse Use (@Fo mPa am("nomb e") S ing nomb e,
@Fo mPa am("dni") S ing dni,@Fo mPa am("pass") S ing pass)
Mé odo que inse a un nue o usua io
Tipo:POST
Pa h: "add"
Pa áme os: ‘nomb e’, dni’ , ‘pass’ que ep esen an los da os del
usua io a inse a .
P oduces: " MediaType.TEXT_HTML"
o public Reponse dele eUse (@Pa hPa am("dni") S ing dni)
Mé odo pa a bo a un usua io.
Tipo:DELETE
Pa h: "{dni}"
Pa áme os: dni’ , ‘pass’ que ep esen an los da os del usua io
36
o Public Response checkUse (@Pa hPa am("dni") S ing dni)
Mé odo pa a consul a un usua io.
Tipo: GET
Pa h: "{dni}"
Pa áme os: dni’, que ep esen a al usua io.
o Public Response upda eUse (@Pa hPa am("dni") S ing dni,
@Fo mPa am("nomb e") S ing nomb e, @Fo mPa am("pass") S ing pass)
Mé odo pa a ac ualiza los da os del usua io.
Tipo: POST
Pa h: "upda e/{dni}"
Pa áme os: ‘nomb e’, ‘dni’, ‘pass’ que ep esen an los da os del
usua io.
o Public Response ieneTeo icoAp obado(@Fo mPa am("dni") S ing dni,
@Fo mPa am(“id”) in id)
Mé odo pa a comp oba si el alumno ha ap obado el examen que se
indica po pa áme o.
Tipo: POST
Pa h: " iene eo ico"
Pa áme os: ‘dni’ que ep esen a al usua io que ha ap obado el
examen. ‘id’ ep esen a el examen eó ico que ha sido ap obado.
o Public Response ieneP ac icoAp obado(@Fo mPa am("dni") S ing dni,
@Fo mPa am("id") in id)
Mé odo pa a comp oba si el alumno ha ap obado el examen que se
indica po pa áme o.
Tipo: POST
Pa h: " ienep ac ico "
Pa áme os: ‘dni’ que ep esen a al usua io que ha ap obado el
examen. ‘id’ ep esen a el examen p ác ico que ha sido ap obado.
Class ExamenP ac icoResou ce
o public S ing ge ExamenP ac ico(@Pa hPa am("ni el") in ni el)
Mé odo pa a ob ene un examen p ác ico de la base de da os.
Tipo:GET
Pa h: "{ni el}"
P oduces: "applica ion/xml"
Pa áme e os: ‘ni el’ que ep esen a la ce i icación a la que pe enece
el examen.
o public Response inse aAp obadoP ac ico(@Fo mPa am("dni") S ing dni,
@Fo mPa am("id") in id)
37
Mé odo pa a indica que el alumno ha ap obado un examen p ác ico.
Tipo: POST
Pa h: "/ap ueba"
P oduces: MediaType.TEXT_HTML
Pa áme os: ‘dni’ que ep esen a al usua io que ha ap obado el
examen. ‘id’ ep esen a el examen p ác ico que ha sido ap obado.
Class ExamenResou ce
o public S ing ge ExamenTeo ico(@Pa hPa am("ni el") in ni el)
Mé odo pa a ob ene un examen eó ico de la base de da os.
Tipo:GET
Pa h: "/ eo ico/{ni el}"
P oduces: "applica ion/xml"
Pa áme os: ‘ni el’ que ep esen a la ce i icación a la que pe enece
el examen.
o Public S ing ge ExamenP ac ico(@Pa hPa am("ni el") in ni el)
Mé odo pa a ob ene un examen p ác ico de la base de da o.
Tipo:GET
Pa h: "/ eo ico/{ni el}"
P oduces: "applica ion/xml"
Pa ám e os: ‘ni el’ que ep esen a la ce i icación a la que pe enece
el examen.
Class Examen Teo ico
o public S ing ge ExamenTeo ico(@Pa hPa am("ni el") in ni el)
Mé odo pa a ob ene un examen eó ico de la base de da os.
Tipo:GET
Pa h: "/ eo ico/{ni el}"
P oduces: "applica ion/xml"
Pa áme os: ni el’ que ep esen a la ce i icación a la que pe enece el
examen.
o public Response inse Ap obadoTeo ico(@Fo mPa am("dni") S ing dni,
@Fo mPa am("id") in id)
Mé odo Mé odo pa a indica que el alumno ha ap obado un examen
eó ico.
Tipo: POST
Pa h: "/ap ueba"
P oduces: "MediaType.TEXT_HTML
Pa áme os: ‘dni’ que ep esen a al usua io que ha ap obado el
examen. ‘id’ ep esen a el examen p ác ico que ha sido ap obado.
38
Class Ce i icado Resou ce
o public S ing ge Ce i icadosF omDNI(@Pa hPa am("dni") S ing dni)
Mé odo que ob iene los ce i icados que posee un alumno.
Tipo: GET
Pa h: "{dni}"
P oduces: "applica ion/xml"
Pa áme os: ‘dni’ que ep esen a al usua io que ha ap obado el
examen.
o public Response inse aCe i icacion(@Fo mPa am("ni el") in ni el,
@Fo mPa am("dni") S ing dni)
Mé odo que ac ualize la base de da os cuando el usua io adquie e una
ce i icación.
Tipo: POST
Pa h: "/ob iene"
P oduces: MediaType.TEXT_HTML
Pa áme os: ‘dni’ que ep esen a al usua io que ha ap obado el
examen. ‘ni el ep esen a la ce i icación que ha sido ob enida po el
alumno.
Class Imagen Resou ce
o public by e[] ge Image(@Pa hPa am(" ipo") S ing ipo,
@Fo mPa am("examen") in examen, @Fo mPa am("id") in id)
Mé odo pa a ob ene una imagen de la base de da os.
Tipo: POST
Pa h: "/{ ipo}"
P oduces: "image/png"
Pa áme os: ’id’ ep esen a el id de la imagen. ‘examen’ que
ep esen a al examen al que pe enece la imagen. ‘ ipo’ ep esen a si
la imagen con iene obje os p ohibidos o no.
o public S ing ge ImageF omId(@Pa hPa am("id") in id)
Mé odo que de uel e una imagen dado su iden i icado .
Tipo: GET
Pa h: "{id}"
P oduces: "applica ion/xml”
Pa áme os: ’id’ ep esen a el id de la imagen.
o public S ing ge Lis ImagesF omExam(@Pa hPa am("examen") in examen)
Mé odo que de uel e odas las imágenes de un examen.
Tipo: GET
Pa h: "/imagenes/{examen}"
P oduces: "applica ion/xml”
39
Pa áme os: ‘examen’ que ep esen a al examen al que pe enecen las
imágenes.
o public Response inse aImagenLimpia(@Fo mPa am("id") in id,
@Fo mPa am("no mal") S ing no mal, @Fo mPa am("bn") S ing bn,
@Fo mPa am("o ganico") S ing o ganico, @Fo mPa am("ino ganico") S ing
ino ganico)
Mé odo que inse a una imagen sin obje os p ohibidos en la base de
da os.
Tipo: POST
Pa h: "limpia/inse "
P oduces: MediaType.TEXT_HTML
Pa áme os: ‘id’ ep esen a el iden i icado de la imagen. ‘no mal’ es
la imagen sin ningún con as e. ‘bn’ es la imagen con el con as e
blanco/neg o. ‘o ganico’ es la imagen o mada con el con as e
o gánico. ‘ino ganico’ es la imagen con el con as e ino gánico.
o public Response inse aImagenP ohibido(@Fo mPa am("id") in id,
@Fo mPa am("no mal") S ing no mal, @Fo mPa am("bn") S ing bn,
@Fo mPa am("o ganico") S ing o ganico, @Fo mPa am("ino ganico") S ing
ino ganico, @Fo mPa am("x") in x, @Fo mPa am("y") in y,
@Fo mPa am("ancho") in ancho, @Fo mPa am("al o") in al o,
@Fo mPa am(" ipoa ma") in ipoa ma)
Mé odo que inse a una imagen con obje os p ohibidos en la base de
da os.
Tipo: POST
Pa h: "p ohibido/inse "
P oduces: MediaType.TEXT_HTML
Pa áme os: ‘id’ ep esen a el iden i icado de la imagen. ‘no mal’ es
la imagen sin ningún con as e. ‘bn’ es la imagen con el con as e
blanco/neg o. ‘o ganico’ es la imagen o mada con el con as e
o gánico. ‘ino ganico’ es la imagen con el con as e ino gánico.
Class ModuloTeo icoResou ce
o public by e[] ge PDF(@Pa hPa am("ni el") in ni el,@Pa hPa am("modulo")
in modulo)
Mé odo pa a ans o ma un a chi o PDF en un a ay de by es.
Tipo: GET
Pa h: "pd /{ni el}/{modulo}"
P oduces: "applica ion/pd "
Pa áme os: ‘ni el’ ep esen a la ce i icación a la que pe enece el
módulo. ‘módulo’ es el inden i icado del módulo que se desea
ob ene .
40
o public Response uploadPDF (@Pa hPa am("ni el"), in ni el,
@Pa hPa am("modulo") in modulo, @Fo mPa am(" ile") S ing ile)
Mé odo pa a subi un iche o a la aplicación.
Tipo: POST
Pa h: "upload/{ni el}/{modulo}"
P oduces: "applica ion/x-www- o m-u lencoded"
Pa áme os: ‘ni el’ ep esen a la ce i icación a la que pe enece el
módulo. ‘módulo’ es el iden i icado del módulo que se desea añadi .
‘ ile’ es el a chi o en cues ión que se desea añadi .
o public S ing ge ModuloTeo ico(@Pa hPa am("ni el") in
ni el,@Pa hPa am("modulo") in modulo)
Mé odo que ob iene un módulo eó ico de la base de da os.
Tipo: GET
Pa h: "upload/{ni el}/{modulo}"
P oduces: "applica ion/xml"
Pa áme os: ‘ni el’ ep esen a la ce i icación a la que pe enece el
módulo. ‘módulo’ es el iden i icado del módulo que se desea ob ene .
Class Obje oP ohibidoResou ce
o public S ing ge Obje oP ohibido(@Pa hPa am("id") in id)
Mé odo pa a ob ene un obje o p ohibido desde la base de da os.
Tipo: GET
Pa h: " {id}"
P oduces: "applica ion/xml"
Pa áme os: ‘id’ que ep esen a al ipo de obje o p ohibido.
Class P egun aResou ce
o public S ing ge Lis aP egun as(@Pa hPa am("examen") in examen)
Mé odo que de uel e las p egun as de un examen.
Tipo: GET
Pa h: " {examen}"
P oduces: "applica ion/xml"
Pa áme os: ‘examen’ ep esen a el examen al que pe enece la
p egun a.
o public S ing inse aP egun a(@Fo mPa am("enunciado") S ing enunciado,
@Fo mPa am("examen") in examen)
Mé odo que añade p egun as a la base de da os.
Tipo: POST
Pa h: " /inse "
P oduces: "applica ion/xml"
41
Pa áme os: ‘examen’ ep esen a el examen al que pe enece la
p egun a. ‘enunciado’ ep esen a al enunciado de la p egun a.
Class Respues aResou ce
o public S ing ge Lis aRespues asF omP egun a (@Pa hPa am("p egun a") in
p egun a)
Mé odo que de uel e odas las posibles espues as a una p egun a en
conc e o.
Tipo: GET
Pa h: "{p egun a}"
P oduces: "applica ion/xml"
Pa áme os: ‘p egun a’ que ep esen a la p egun a cuyas espues as
se quie en ob ene .
o public Response inse aRespues a(@Fo mPa am("id") in
id,@Fo mPa am(" espues a") S ing espues a, @Fo mPa am("co ec a") in
co ec a)
Mé odo pa a inse e posibles espues as a p egun as
Tipo: POST
Pa h: " /inse "
P oduces: MediaType.TEXT_HTML
Pa áme os: ‘id que ep esen a la p egun a cuyas espues a se quie e
inse a . ‘ espues a’ que ep esen a el enunciado de la misma.
‘co ec a’ que indica si la espues a inse ada es la co ec a o no.
Class TipoA maResou ce
o public S ing ge TipoA ma(@Pa hPa am("id") in id)
Mé odo ob iene el ipo de obje o p ohibido.
Tipo: GET
Pa h: " {id}"
P oduces: "applica ion/xml"
Pa áme os: ‘id’ que ep esen a el obje o p ohibido.
o public S ing ge Lis TipoA ma()
Mé odo que de uel e una lis a con odos los posibles ipos de obje os
p ohibidos
Tipo: GET
Pa h: " lis "
P oduces: "applica ion/xml"
Se le
48
Además, aunque nues a aplicación es á cla amen e o ien ada al ap endizaje de pe sonal de
segu idad, pod ía se eu ilizada pa a cualquie o o ipo de alumnos. El esquele o de
pe iciones al se ido se man end ía y el p incipal cambio que hab ía que ealiza se ían los
ecu sos que se mues an, pe o el uncionamien o se ía análogo al de nues a aplicación.
49
Conclusions
To end his documen , we would like o desc ibe he esul s we ha e ob ained wi h he
de elopmen o his wo k and he di icul ies encoun e ed. In gene al we could say yes we
ha e me he objec i es, al hough we ha e encoun e ed a ious p oblems ha ha e made
mee ing hese objec i es mo e di icul .
The e o e, i s we will analyze whe he he objec i es desc ibed in sec ion 1.b Objec i es o
his speci ica ion ha e been me o no . The i s objec i e we ha e se ou sel es is he
possibili y o in oduce o emo e use s om he applica ion i sel . This objec i e has been
comple ed, bu i i is ue ha had a g ea e deg ee o complexi y we expec ed a i s . The
ac o ha ing o make eques s o he web se ice o use s o he da abase, o ced us o ha e
a good implemen a ion o i so he could be eady his goal. The e o e i was an impo an s ep
in he de elopmen o he applica ion.
The second objec i e ha we had he p esen a ion o heo e ical lessons in he o m o PDF
iles, which also has been ul illed no wi hou di icul ies encoun e ed when loading he PDF
om he web se ice. We en e o discuss hem in mo e de ail in Chap e 4.a Di icul ies
encoun e ed his documen
The nex goal was o gi e he use he abili y o pe o m heo e ical examina ions on he
con en s ha he had p e iously s udied. One can say ha his objec i e mee s ou
expec a ions as we we e able o implemen i he way we o iginally hough , using a h ead o
calcula e he ime o examina ion.
The ollowing wo objec i es a e closely ela ed. They a e on he one hand, he analysis and
in e p e a ion o images o an X- ay machine o de ec co ec ly i baggage does no con ain
o no allowed in he ules o a ele s, and on he o he hand, he assessmen o p ac ical
skills conce ning his analysis. Fo hese objec i es we had o ho oughly in es iga e he
egula ions, which objec s a e allowed and which ones a e no in each o he o ms o
anspo a ion o luggage ( he ules a e di e en o cabin baggage o passenge s o checked
baggage). Once we had hese concep s clea , we had o in es iga e he op imal way o cha ge
and s o e images. These di icul ies will be discussed in chap e 4.a Di icul ies encoun e ed in
his documen .
Finally, we aimed a he possibili y o main enance o he applica ion by an adminis a o , so
ha he could in oduce o emo e use s, add o dele e ques ions o aise new heo e ical
lessons as main ea u es. These unc ions we e de eloped in pa allel, as we buil he
unc ionali y o he s uden p o ile.
Di icul ies encoun e ed
In his sec ion we will lis he main di icul ies encoun e ed when implemen ing his p ojec .
50
Connec ing o Web Se ice
The main p oblem ha we ha e encoun e ed in he de elopmen o his applica ion has been
se up web se ice and i s connec ion wi h he applica ion. Fo his, we in es iga e a ious
sou ces among which we highligh [2 ], [7 ] and [ 11]
The i s s ep we ook in he implemen a ion was o adjus he se ings o he web se ice
ini ializa ion. Once we had his clea , we unde s ood he anno a ion sys em, pa ame e
passing and sending and ecei ing da a. Finally, ano he poin o di icul y was making calls o
he web se ice om he clien
Implemen a ion o he GUI
In pa allel wi h he implemen a ion o he web se ice, we buil he g aphical in e ace ( he
login sec e ). A i s , we op ed o he use o Ja aFX, because i allowed us o u he
cus omize ou in e ace and can use s yle shee s. Howe e , ou p og ess was e y slow, since
he ini ial lea ning cu e was e y high. We consul ed he API and needed o main ain mul iple
con olle s o each iew, which was e y di icul o keep us in he design.
We also had p oblems in in eg a ing Scene Builde (g aphic design ool), wi h Eclipse, and
he e o e we could no go a he speed we wan ed. The e o e, we decided o change he
in e ace o Swing, and om hen build he es o sc eens in his way.
Upload PDF iles
Ano he majo di icul ies ha we ha e encoun e ed has been he admin unc ionali y o load
heo e ical modules in he applica ion. The idea we had was o ans o m he PDF ile in o an
a ay o by es. Howe e , when he clien makes a eques o he web se ice, we could no
send his a ay o by es, as i is e y di icul o send hese by es in he heade o a POST
eques .
As a solu ion, om he clien we enc yp hese by es base 64 encoding o con e a s ing ype,
ha now could pass as a pa ame e in a eques . Subsequen ly, he web se ice ecei es he
eques and e e ses he p ocess, i.e., con e s he ecei ed base 64 s ing o an a ay o by es
ha a e s o ed in he moduloTeo ico able.
P oyec aplica ion
As we discussed in chap e 1a. Mo i a ion and con ex o his documen , secu i y measu es a e
becoming inc easingly impo an and se e e in in as uc u e and public buildings. As a esul
o hese de elopmen s, he need o mo e secu i y pe sonnel quali ied and p epa ed i is
inc eased.
51
Fo his eason, mo e and mo e aining cen e s who see an oppo uni y in he wo ld o
secu i y. As s a is ical da a, in he Communi y o Mad id he e a e app oxima ely 40 acc edi ed
aining cen e s o each he cou se secu i y gua d.
To his ac is added ha is a e y popula ed sec o , and in ecen yea s has inc eased
signi ican ly he numbe o g adua es in secu i y. Due o he economic c isis ha has hi he
coun y, many people be ween 40 and 60 yea s who we e unemployed saw a way ou in he
wo ld o secu i y.
The e o e aining cen e s ha e o adap hei cou ses o he eal needs o he ma ke and
explo e new e enue s eams. The wo ld o ai po secu i y is an impo an sou ce o income
since, as discussed he ein, he e is an obliga ion e lec ed in cu en egula ions o secu i y
pe sonnel go o e eshe cou ses o imp o e and e esh he quali ies ob ained.
Gi en ha e y ew ools o his kind ha exis in he ma ke , we conside an applica ion as we
de eloped, can ha e an impo an weigh in he sec o , since, o all he abo e, sa e y
companies and aining cen e s a e in e es ed in s a ing ai po secu i y.
Al hough ou applica ion is clea ly o ien ed lea ning secu i y pe sonnel, i could be eused o
any o he s uden s. The skele on o eques s o he se e would emain and he main change
we would ha e o make is modi ied he esou ces would be shown, bu he ope a ion would
be simila o ha o ou applica ion.
52
5.T abajo u u o
En es e apa ado que emos comen a uncionalidades que nos pa ecen muy in e esan es pa a
mejo a y complemen a la aplicación. Si bien son múl iples las mejo as que se pueden
ealiza , pensados que las siguien es son las más impo an es.
Cambia aplicación de esc i o io po aplicación web
O a de las posibles mejo as a implemen a se ía la mig ación de aplicación de esc i o io a
aplicación web. De es a mane a, la aplicación pod ía es a alojada en pla a o mas de
ap endizaje como Moodle, que complemen a ían y mejo a ían la expe iencia del alumno, de
nue o o eciendo un mejo se icio. Además, al es a en la web, no ha ía al a que es a
he amien a es u ie a ins alada en el equipo, acili ando así su di usión.
Gene ación de con as es
O a posible uncionalidad que nos pa ece muy des acable se ía do a a es e so wa e de
p opiedades pa a el econocimien o de imágenes, es deci , pode inclui en la he amien a un
mo o pa a la c eación de imágenes, al y como ealiza un escáne de e dad.
La idea se ía do a a la aplicación de uncionalidades pa a que ella misma gene e sus p opios
con as es, emulando al uncionamien o de las máquinas de ayos X, que como ya hemos
explicado, basan sus colo es en una escala p ede inida según la densidad del obje o. De es a
mane a se educi ían los ecu sos necesa ios pa a la c eación de la aplicación.
C eación de imágenes
Finalmen e pe o no po ello menos impo an e, nos gus a ía mejo a la aplicación con una
uncionalidad de c eación de imágenes. La idea se ía pode ene dis in os ipos de obje os,
an o obje os co idianos como obje os no pe mi idos pa a su anspo e, y combina los de
di e sas mane as, gene ando así in ini as imágenes.
De es a o ma, se pod ían c ea di e sos g ados de complejidad en las imágenes, pudiendo
in oduci ni eles en la pa e p ác ica del análisis de imágenes. De es a mane a, los alumnos
pod ían i supe ando dis in os g ados de complejidad, an es de en en a se al examen pa a
pode ob ene su ac edi ación.
In e az con Ja a FX
53
El p ime cambio que nos gus a ía lle a a cabo, es uno de los ya comen ados p oblemas a la
ho a de ealiza la implemen ación, y no es o o que desa olla la in e az en Ja a FX. Aunque
Swing es á obsole o
9
, pensamos que Ja a Fx es una he amien a mucho más po en e y
mode na. En e sus en ajas se encuen a la posibilidad de pode ene un mayo con ol
sob e los elemen os isuales, pudiéndoles asigna hojas de es ilo pa a modi ica los, así como
su sencillez a la ho a de pe mi i la mig ación a in e az web, además de pe mi i el uso de
animaciones.
9
Más in o mación aquí: h p://www.o acle.com/ echne wo k/ja a/ja a x/o e iew/ aq-
1446554.h ml#6
54
6.Re e encias
[1] Bo onczyk, Timo hy. Jump S a MySQL.Si ePoin . 2015.
[2] Bu ke, Bill. REST ul Ja a wi h JAX-RS 2.0, 2nd Edi ion. O'Reilly Media, Inc. 2013
[3] F iesen,Je . Beginning Ja a 7. Be keley, CA. 2011
[4] F iesen,Je . Ja a XML and JSON. Be keley, CA. 2016
[5] Equipo de Desa ollado es de ICTS Hipania.
h p://eagle.ic seu opesys ems.com/media/es/ICTS-Eu ope-Sys ems-Eagle-CBT.PDF.2011.
[6] Jiménez Ma ín, Al onso. Ap ende a P og ama con Ja a. Pa anin o.2016
[7] Kalin, Ma in. Ja a Web Se ices: Up and Running, 2nd Edi ion. O'Reilly Media, Inc. 2013
[8] Kulka ni,Ram. Ja a EE de elopmen wi h Eclipse : de elop, debug, es , and oubleshoo
Ja a EE 7 applica ions apidly wi h Eclipse. Bi mingham. 2015
[9] Lamon , Ian. Google D i e & Docs in 30 minu es: he uno icial guide o he new Google
d i e, docs, shee s & slides. i30 Media. 2015
[10] Pipinellis, Achilleas. Gi Hub essen ials: unleash he powe o collabo a i e wo k low
de elopmen using Gi Hub, one s ep a a ime. Bi mingham. 2015
[11] Pu usho haman, Jobinesh. REST ul Ja a Web Se ices - Second Edi ion. Pack Publishing.
2015
[12] Si iwa dena, P aba h. Ma en essen ials : ge s a ed wi h he essen ials o Apache Ma en
and ge you build au oma ion sys em up and unning quickly. Bi mingham. 2015
[13] Vuko ic, Aleksa y Goodwill, James. Apache Tomca 7. Be keley, CA. 2011
55
7. Apo aciones de los in eg an es
Po úl imo, en es e apa ado de la memo ia que emos indica la apo ación pe sonal de cada
uno de los in eg an es.
Luis Red uello Fe nández
En p ime luga me gus a ía mani es a que la mayo pa e del abajo que hemos ealizado ha
sido en o al colabo ación en e los dos miemb os del equipo. Si bien es cie o que cada uno
lle aba más peso en la pa e del clien e y o o en la del se ido , en odo momen o nos hemos
apoyado pa a ayuda nos mu uamen e cuando alguno de los dos lo necesi aba.
Dicho es o paso a enume a las p incipales a eas que he desa ollado en es e p oyec o:
En p ime luga , la búsqueda de algún p oduc o simila en el me cado con el que pode
inspi a nos a la ho a de implemen a nues o p oyec o.
Seguidamen e, inicié una búsqueda de documen ación pa a de e mina qué alcance
podía ene nues o p oyec o y has a dónde podíamos aba ca lo.
Viendo que no había muchos p oduc os simila es en el me cado, empecé una
búsqueda de los ecu sos que nos ha ían al a pa a hace iable el p oyec o, como son
las imágenes y los módulos eó icos.
El siguien e paso ue deba i sob e las ecnologías a u iliza , en ajas e incon enien es
de cada una de ellas.
Una ez decididas las ecnologías y la a qui ec u a del sis ema, ui con igu ando e
ins alando odos los en o nos necesa ios pa a la implemen ación: Eclipse, Scene
Builde , mySQL…e c.
En pa alelo con el pun o an e io , comencé con un p ime diseño de la base de da os,
y su ans o mación a modelo elacional.
Una ez hecho es o, empecé a plan ea posibles casos de uso pa a su discu sión y aís
es ablece de mane a de ini i a el alcance del p oyec o.
In es igación de las nue as ecnologías a a a , como e a Ja a FX
El siguien e pun o, ue el desa ollo de una p ime a e sión de la unción login. Es e
desa ollo ue en un en o no local, mien as mi compañe o in es igaba el
uncionamien o del se icio web.
56
Una ez conseguida es a p ime a unción, y una ez que mi compañe o había
con igu ado el se icio web, in es igamos la mane a de pode conec a ambas
aplicaciones.
El siguien e paso ue c ea una in e az pa a el pe il adminis ado , pa a pode p oba
las unciones de inse a y bo a usua ios.
Dadas las di icul ades que es ábamos eniendo con Ja a FX, decidimos cambia oda la
in e az g á ica a Swing.
Pa a segui a anzando con la aplicación, incluí odos los ecu sos necesa ios en la base
de da os.
El siguien e paso ue la implemen ación de la in e az del examen eó ico y la
con igu ación de las p egun as con el web se ice.
Debido a la mane a en la que íbamos implemen ando ambas aplicaciones, u e que
modi ica el diseño de la base de da os y po an o sus ablas.
El siguien e paso ue inaliza la implemen ación de los exámenes eó icos.
Debido a que íbamos con algo de e aso con espec o de la plani icación es ablecida,
comencé a elabo a el p esen e documen o.
Finalmen e, ealicé el es eo de la aplicación, in en ando e posibles mejo as y
co igiendo pun os débiles que nos habían quedado pendien es.
Je e son Cá denas Ca illo
An es de nada me gus a ía des aca que pa a el desa ollo de es a aplicación, hemos es ado en
con ac o de mane a cons an e, pa a in en a a anza lo máximo posible. En mi caso, me he
cen ado más en oda la pa e del se icio web, y debido a p oblemas de plani icación,
ambién implemen é algunas unciones del clien e.
A con inuación, paso a lis a las p incipales unciones que he ealizado:
En p ime luga comencé con la in es igación del se icio web, ya que nunca había
implemen ado ninguno. Los ipos de a qui ec u as posibles y las en ajas e
incon enien es de cada uno.
En pa alelo con es a in es igación, ambién me documen é sob e cuál se ía la mejo
a qui ec u a posible pa a ealiza la implemen ación. De es a mane a an o mi
compañe o como yo end íamos una isión comple a de la aplicación y cada uno
57
expond ía sus a gumen os, pa a de es e modo pode en ende ambos odo el
uncionamien o y es a de acue do desde un inicio.
Ins alación de odo el en o no de desa ollo: Eclipse, mySQL, Tomca ...e c.
Una ez enía cla o qué ipo de se icio web que ía implemen a , empecé a in es iga
sob e su compo amien o pa a in en a consegui que unciona a. En es e apa ado
incluyo odo lo elacionado con el uncionamien o y aplicación de las pe iciones
GET/POST, el uncionamien o de los Reponse S a us Code, el a amien o del código
XML…e c.
El siguien e paso ue consegui la unción login haciendo llamadas al web se ice. Es e
paso ue uno de los más complicados de oda la implemen ación. Las mayo es
di icul ades es u ie on en el uncionamien o de los Reponse S a us Code, y en el
a amien o del código XML, ya que si el usua io exis e y se encuen a en la base de
da os, el se icio web le de ol ía al usua io un s ing que ep esen a un XML con la
in o mación del usua io.
La siguien e a ea a ealiza e a la mane a de pode en ia a chi os PDF desde el
se ido al clien e. El p incipal p oblema con el que me encon é e a cómo en ia es e
a chi o en una pe ición al clien e. Pa a ello u e que consul a y e isa di e sa
documen ación al espec o.
Finalmen e pa a la implemen ación del pun o an e io , decidí ans o ma el a chi o
PDF en un a ay de by es, codi icando esos by es a una codi icación base 64 pa a
pode con e i los a ipo cadena y de es a mane a pode en ia los en una pe ición.
Una ez conseguido ca ga a chi os PDF en la aplicación, y que el adminis ado ue a
capaz de subi los, comencé la pa e de los exámenes eó icos pa a pode de ol e
p egun as y espues as al clien e y que el pe il adminis ado ue a capaz de añadi y
elimina p egun as.
El siguien e pun o, ue in en a ca ga una imagen desde la base de da os en la
aplicación. En un p incipio es ábamos gua dando odas las imágenes y sus con as es
en la base de da os pe o ocupaban demasiado. Así que u e que ol e a ediseña la
base de da os eniendo es o en cuen a.
Pa a ca ga las imágenes in en é ealiza una unción análoga a la de la ca ga de
a chi os PDF, en la que el se icio web busca el di ec o io de la imagen en la base de
da os, que es en iada en o ma de a ay de by es al clien e. Una ez ecibido, el clien e
c ea un a chi o con es e a ay de by es, que es el que mues a al usua io como
imagen.
Una ez conseguí que el sis ema ca gase imágenes, empecé a implemen a la in e az
del examen p ác ico en el lado del clien e.