56
7/23/2019 Memoria Spring Java http://slidepdf.com/reader/full/memoria-spring-java 1/56 Treball Fi de Carrera ENGINYERIA TÈCNICA EN INFORMÀTICA DE SISTEMES Facultat de Matemàtiques !i"ersitat de #arcel$!a A%&ICACI' (E# %ER GESTIONAR CONTINGTS M&TIMÈDIA MIT)AN*ANT S%RING I G(T A!ira Escric+s Mart,!e- Director: Eloi Puertas i Prats Realitzat a: Departament de Matemàtica  Aplicada i Anàlisi. UB Barcelona, 15 de gener de !1"

Memoria Spring Java

  • Upload
    felipe

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 1/56

Treball Fi de Carrera

ENGINYERIA TÈCNICA EN

INFORMÀTICA DE SISTEMES

Facultat de Matemàtiques

!i"ersitat de #arcel$!a

A%&ICACI' (E# %ER GESTIONAR CONTINGTS

M&TIMÈDIA MIT)AN*ANT S%RING I G(T

A!ira Escric+s Mart,!e-

Director: Eloi Puertas i Prats

Realitzat a: Departament de Matemàtica

 Aplicada i Anàlisi. UB

Barcelona, 15 de gener de !1"

Page 2: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 2/56

 AL MEU PARE

Page 3: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 3/56

"

Page 4: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 4/56

Índice

1- Introducción..................................................................................................................................5

1.1-Descripción del proyecto....................................................................................................... 6

2-Análisis .........................................................................................................................................

2.1-!"#eti$os del siste%&.............................................................................................................

2.2-'isión (ener&l de l& &r)uitectur&........................................................................................... *

2.+-Actores.................................................................................................................................. *2.,-&sos de uso tetu&les......................................................................................................... /

2.,.1- Usu&rio in$it&do............................................................................................................ /

2.,.2- Usu&rio co%0n............................................................................................................ 1

2.,.+- Usu&rio &d%inistr&dor................................................................................................. 1

+-Ar)uitectur&................................................................................................................................. 12

+.1-Modelo-'ist&-ontrol&dor.................................................................................................... 12

+.1.1- &p&s..........................................................................................................................12

+.2-AA3................................................................................................................................... 1++.+-RE4 - Represent&tion&l 4t&te r&nser .............................................................................15

,-I%ple%ent&ción........................................................................................................................... 1

,.1-Entorno de des&rrollo.......................................................................................................... 1

,.2-'ist&.....................................................................................................................................21

,.2.1- 7r&%e8or9 :;......................................................................................................... 21

,.2.2- 4%&rt:;.................................................................................................................. 21

,.2.+- Prototipo Inter&< Usu&rio ...........................................................................................22

,.2.,-I%ple%ent&ción............................................................................................................ 2,

,.+-ontrol&dor o ló(ic&=%odelo de ne(ocio..............................................................................2

,.+.1- 4prin( M'................................................................................................................. 2

,.+.2- I%ple%ent&ción de los c&sos de uso %ás i%port&ntes............................................... +,

,.,-Modelo................................................................................................................................. +/

,.,.1- Alresco....................................................................................................................... +/

,.,.2- ;e" scripts................................................................................................................. ,

,.,.+- 4ite Alresco................................................................................................................ ,1

,.,.,- In$oc&ción de los c&sos de uso %ás i%port&ntes....................................................... ,+

#

Page 5: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 5/56

5-Aneos........................................................................................................................................ ,

6-onclusiones...............................................................................................................................5+-7uentes....................................................................................................................................... 5,

5

Page 6: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 6/56

Índice de ilustracionesIlustr&ción 1> &so de uso - Re(istro................................................................................................/

Ilustr&ción 2> &so de uso - Lo(in.................................................................................................. 1

Ilustr&ción +> &so de uso - Do8nlo&d........................................................................................... 1

Ilustr&ción ,> &so de uso - Uplo&d................................................................................................1

Ilustr&ción 5> &so de uso - Delete 7ic?ero.................................................................................... 1

Ilustr&ción 6> &so de uso - Delete User........................................................................................ 11

Ilustr&ción > P&trón M'...............................................................................................................1+

Ilustr&ción *> AA3 @ Motor AA3.................................................................................................. 1,

Ilustr&ción /> AA3 @ 3MLttpRe)uest = ttpResponse................................................................ 15

Ilustr&ción 1> E#e%lo de po%.%l.................................................................................................. 1*

Ilustr&ción 11> 'isu&li<&ción in&l de l&s c&p&s 'ist& y ontrol&dor ............................................... 1/

Ilustr&ción 12> Re(istro de un nue$o socio.................................................................................... 2+

Ilustr&ción 1+> Introducir credenci&les............................................................................................ 2+

Ilustr&ción 1,> D&t&4ource de docu%entos.................................................................................... 25

Ilustr&ción 15> D&t&4ource de Usu&rios......................................................................................... 26

Ilustr&ción 16> 8e".%l.................................................................................................................. 2*

Ilustr&ción 1> &pplic&tionontet.%l........................................................................................... 2/

Ilustr&ción 1*> 4prin( B&nnot&tions............................................................................................... +

Ilustr&ción 1/> o%ponent y deri$&dos.......................................................................................... +1

Ilustr&ción 2> A3-R4 B&nnot&tions............................................................................................ +2

Ilustr&ción 21> E#e%plo 4prin( y ersey..........................................................................................++

Ilustr&ción 22> Ll&%&d& RE4 - Re(istro........................................................................................+,

Ilustr&ción 2+> Ll&%&d& RE4 - Lo(in........................................................................................... +5Ilustr&ción 2,> In$oc&ción 8e" script desde s%&rt:; - Do8nlo&d..............................................+6

Ilustr&ción 25> Ll&%&d& RE4 - Uplo&d..........................................................................................+

Ilustr&ción 26> Ll&%&d& RE4 - Delete User.................................................................................. +*

Ilustr&ción 2> ;e" 4cript M' Alresco....................................................................................... ,

Ilustr&ción 2*> Alresco - 4ite UC.................................................................................................... ,1

Ilustr&ción 2/> Alresco - ontenido c&rpet& Docu%entos.............................................................. ,2

Ilustr&ción +> liente - ontenido c&rpet& Docu%entos desde el :RID de s%&rt:;.................,2

Ilustr&ción +1> I%ple%ent&ción ;e" 4cript Alresco - Re(istro.......................................................,+

$

Page 7: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 7/56

Ilustr&ción +2> I%ple%ent&ción ;e" 4cript Alresco - Lo(in........................................................... ,,

Ilustr&ción ++> I%ple%ent&ción ;e" 4cript Alresco - Uplo&d.........................................................,5Ilustr&ción +,> I%ple%ent&ción ;e" 4cript Alresco - Delete User................................................ ,6

Ilustr&ción +5> P&nt&ll& Inici&l......................................................................................................... ,

Ilustr&ción +6> 7or%ul&rio de Re(istro y $&lid&ciones.....................................................................,*

Ilustr&ción +> Entr&d& usu&rio ...................................................................................................... ,*

Ilustr&ción +*> Usu&rio desc&r(& contenido ................................................................................... ,/

Ilustr&ción +/> Usu&rio su"e contenido...........................................................................................,/

Ilustr&ción ,> Lo(in Ad%in ........................................................................................................... 5

Ilustr&ción ,1> Ad%in Eli%in&r Usu&rios......................................................................................... 5Ilustr&ción ,2> Ad%in Men0 Eli%in&r Usu&rios............................................................................... 51

Ilustr&ción ,+> Ad%in onir%& Eli%in& Usu&rio............................................................................. 51

Ilustr&ción ,,> Ad%in :rid Usu&rio Eli%in&do.................................................................................52

Ilustr&ción ,5> Ad%in :rid ontenido Eli%in&r............................................................................... 52

%

Page 8: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 8/56

1- Introducción

o%o r&"&#o de 7in de &rrer& 7 ?e re&li<&do el &nálisisF diseGo e i%ple%ent&ción de un&

&plic&ción 8e" utili<&ndo $&ri&s tecnolo(H&s y un& &r)uitectur& sep&r&d& por c&p&s.

El proyecto consiste en un& &plic&ción &ccesi"le & tr&$s de cu&l)uier redF en l& )ue los usu&rios

pueden co%p&rtir todo tipo de &rc?i$os %ulti%edi& en un& red de co%put&dor&sF y& se& en

Internet o co%o &plic&ción en un& red pri$&d&.

El 7 tiene co%o o"#eti$o re&li<&r un tr&"&#o de sHntesis en el )ue se de"en &port&r los

conoci%ientos &d)uiridos dur&nte l& c&rrer& y )ue re)uiere ponerlos en práctic& con#unt&%ente en

un proyecto concreto. Es un des&rrollo práctico y "ien docu%ent&doF $incul&do &l e#ercicio

proesion&l de l& inor%átic&.

L& elección de est& áre& de tr&"&#o ?& est&do %oti$&d& por $&rios &ctores. Por un l&doF %e ?&

per%itido eperi%ent&r el des&rrollo de un proyecto desde cero utili<&ndo un& %etodolo(H&

ri(uros& y &c&d%ic&. Por otr& p&rteF %e ?& per%itido poner %is conoci%ientos en práctic&

dur&nte %i eperienci& proesion&l co%o des&rroll&dor& en el %undo de l& consultorH&F

(estion&ndo el tie%po de %i propio proyecto.

Uno de los incon$enientes )ue encontr &l inicio de %i eperienci& l&"or&lF er& el de i%ple%ent&r

l& inter&< (ráic& de un& &plic&ciónF y& )ue el &prendi<&#e &c&d%icoF p&só por &lto est& p&rte t&n

i%port&nte en el des&rrollo de sot8&re.

Más &del&nte eplic&r )u r&%e8or9 es &conse#&"le p&r& pro(r&%&dores &$& sin

conoci%ientos de ML y 44.

Un& $e< ele(id& el áre&F ?e "usc&do un proyecto )ue pudiese ser des&rroll&do co%plet&%ente en

los tie%pos pre$istos p&r& l& re&li<&ción del 7F con un& estructur& si%il&r & los )ue nos

encontr&%os en un& e%pres& y )ue per%itiese in$esti(&r y &%pli&r dierentes opciones de

i%ple%ent&ción dentro de l& %is%& &r)uitectur&. Es en este conteto donde sur(e l& ide& de

&

Page 9: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 9/56

re&li<&r un& &plic&ción )ue i%ple%ente l& (estión de contenidos %ulti%edi& por $&rios usu&rios

&ccediendo & l& $e< desde cu&l)uier red de orden&dores.

L& princip&l &port&ción del proyecto es "rind&r un& &plic&ción )ue per%it& co%p&rtir &rc?i$os en

cu&l)uier red.

1.1- Descripción del proyecto

Est& &plic&ción tiene por o"#eti$o co%p&rtirF entre l& redF cu&l)uier &rc?i$o %ulti%edi&. P&r& ello se

?& cre&do un& inter&< de usu&rio sencill& y &%i(&"leF un repositorio p&r& el &l%&cen&%iento de

&rc?i$os y un& c&p& con l& ló(ic&-de-ne(ocio.

 Al &cceder & l& &plic&ciónF los usu&rios sin i%port&r si se ?&n identiic&do podrán consult&r los

&rc?i$os &(re(&dos. &%"in podrán re&li<&r "0s)ued&s y $er el det&lle del &rc?i$o.

Los usu&rios podrán d&rse de &lt& en l& &plic&ción co%plet&ndo un or%ul&rio de re(istro

disponi"le en l& 8e". Un& $e< re&li<&do este p&so podránF pre$i& identiic&ciónF desc&r(&r y su"ir

&rc?i$os &l repositorio.

L& &plic&ción tendrá &l %enos un &d%inistr&dor )ue tendrá los per%isos p&r& "orr&r &rc?i$os o

usu&rios de l& &plic&ción.

'

Page 10: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 10/56

2- Análisis

En este docu%ento se el&"or&n l&s especiic&ciones p&r& l& construcción de los dierentes

ele%entos sot8&re )ue constituyen el 4iste%& 7in&l.

 A p&rtir de l& el&"or&ción de est&s especiic&cionesF se &"ord& l& codiic&ción de los co%ponentes.

El propósito del siste%& es cre&r un siste%& de (estión &rc?i$os p&r& poder co%p&rtirlos en l& red

y & l& $e< un& distin(uid& Ar)uitectur& sep&r&d& por c&p&s p&r& des&rroll&dores.

2.1- Objetivos del sistema

Los o"#eti$os )ue se persi(uen t&nto & ni$el de proyecto co%o & ni$el de &plic&ción son>

a nivel de proyecto:

 – Distint&s c&p&s de des&rrollo p&r& pro(r&%&dores.

 – Utili<&r sot8&re li"re

 – 7r&%e8or9s

a nivel de aplicación:

 – 7&cilid&d y r&pide< de &cceso & l& docu%ent&ción (ener&d& desde cu&l)uier punto

(eo(ráico.

 – Dierentes roles de usu&rio

 – Inter&< (ráic& sencill& y &%i(&"le

1!

Page 11: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 11/56

2.2- Visión general de la arquitectura

P&r& elloF el siste%& est&rá "&s&do en + co%ponentes>

1. Repositorio de docu%ent&ción>

Donde se &l%&cen&rá tod& l& inor%&ción (ener&d&. P&r& el proyecto el repositorio es

 Alresco o%%unity Edition $.,..

2. &p& RE4>

 Aplic&ción )ue contendrá tod& l& ló(ic& de ne(ocio de l& &plic&ción. 4erá de c&rácter ;e"

4er$ices con tecnolo(H& RE4 &l estilo de un& c&p& de ló(ic& de un& &plic&ción distri"uid&F

tiene por o"#eti$o enc&psul&r l&s uncion&lid&des de &cceso & Alresco en or%& de

ser$icios 8e". :r&ci&s & est& c&p& se si%pliic&rá el &cceso &l repositorio AlrescoF

pudiendo otr&s &plic&ciones utili<&rl&. Est& c&p& será des&rroll&d& "&#o el 7r&%e8or9

4prin(.

+. Inter&< (ráic&>

 Aplic&ción result&nte desde donde se podrán (estion&r los dierentes &rc?i$os. Est&

&plic&ción se des&rroll&rá con tecnolo(H& :;

En el si(uiente &p&rt&do &$&n<&re%os en el &nálisis del pro"le%& propuestoF descri"iendo los&ctores y los c&sos de uso %ás i%port&ntes. &%"in se present&rá un prototipo del sitio 8e" &

des&rroll&r.

2.3- Actores 

4e cit&n los &ctores )ue inter&ct0&n con l& &plic&ción>

11

Page 12: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 12/56

 – In$it&do>

4on &)uellos usu&rios )ue consult&n el c&tálo(o sin identiic&rse pre$i&%ente. Pueden

consult&r el %&teri&l disponi"le pero no pueden desc&r(&r o su"ir &rc?i$os &l repositorio.

 – Usu&rio o%0n>

Este tipo de usu&riosF &l i(u&l )ue los in$it&dos Fpueden consult&r el repositorio de

&rc?i$os. Pero & dierenci& de estosF están ?&"ilit&dosF pre$i& identiic&ciónF p&r&

desc&r(&r o su"ir &rc?i$os &l repositorio.

 –  Ad%inistr&dor>

4on usu&rios con per%isos especi&les )ue per%iten (estion&r el repositorio con pri$ile(ios

%&yores. Per%ite eli%in&r &rc?i$os y usu&rios.

2.4- Casos de uso tetuales

De l& descripción del proyecto pode%os identiic&r los si(uientes c&sos de uso y sus respecti$os

usu&rios.

2.4.1- Usuario invitado

Jo%"re Re(istro

Descripción r&s rellen&r un or%ul&rioF un usu&rio se d& de &lt& en l&

&plic&ción.

Ilustr&ción 1> &so de uso - Re(istro

2.4.2- Usuario común

1

Page 13: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 13/56

Jo%"re lo(in

Descripción  Al introducir no%"re de usu&rio y p&ss8ordF el usu&rio se lo(&en l& &plic&ción.

Ilustr&ción 2> &so de uso - Lo(in

Jo%"re do8nlo&d

Descripción 4i el usu&rio y& está lo(&do en l& &plic&ción puede desc&r(&r

&rc?i$os %ulti%edi& del repositorio

Ilustr&ción +> &so de uso - Do8nlo&d

Jo%"re uplo&d

Descripción 4i el usu&rio y& está lo(&do en l& &plic&ción puede su"ir

&rc?i$os %ulti%edi& &l repositorio

Ilustr&ción ,> &so de uso - Uplo&d

2.4.3- Usuario administrador 

Jo%"re delete7ic?ero

Descripción Eli%in& un ic?ero de Alresco. o%prue"& pre$i&%enteF )ue el

usu&rio se& el Ad%inistr&dor.

Ilustr&ción 5> &so de uso - Delete 7ic?ero

Jo%"re deleteUser 

Descripción Eli%in& un usu&rio del respositorio. o%prue"& pre$i&%enteF

)ue el usu&rio se& el Ad%inistr&dor.

Ilustr&ción 6> &so de uso - Delete User 

1"

Page 14: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 14/56

3- Aruitectura

Despus de un cuid&doso &nálisis de los o"#eti$os del proyectoF se deter%inó )ue l& %e#or

%&ner& de estructur&r el siste%& er& ?&ciendo uso del %uy &%oso Kp&trón de diseGo> Model-

View-Controller )ue se represent& co%o un& &r)uitectur& de + ni$eles.

En este punto se $& & det&ll&r &)uell& p&rte de l& Ar)uitectur& del 4iste%& rel&ti$& & los

co%ponentes sot8&re des&rroll&dos con o"#eto de per%itir el &cceso &l siste%& y l& s&tis&cción

de todos los re)uisitos.

!.1- "odelo-Vista-Controlador 

MVC por sus si(l&s en in(ls es un p&trón de diseGo de &r)uitectur& de sot8&re us&do

princip&l%ente en &plic&ciones )ue %&ne#&n (r&n c&ntid&d de d&tos y tr&ns&cciones co%ple#&s

donde se re)uiere un& %e#or sep&r&ción de conceptos p&r& )ue el des&rrollo est estructur&do de

un& %e#or %&ner&F &cilit&ndo l& pro(r&%&ción en dierentes c&p&s de %&ner& p&r&lel& eindependiente. MVC su(iere l& sep&r&ción del sot8&re en + c&p&s> ModeloF 'ist& y ontrol&dor.

4i un& %is%& &plic&ción de"e e#ecut&rse t&nto en un n&$e(&dor estánd&r co%o un n&$e(&dor de

un dispositi$o %ó$ilF sol&%ente es neces&rio cre&r un& $ist& nue$& p&r& c&d& dispositi$o

%&nteniendo el control&dor y el %odelo ori(in&l de est& %&ner& se consi(ue un %&nteni%iento

%ás sencillo de l&s &plic&ciones.

3.1.1- !apas"odelo: Es l& represent&ción de l& inor%&ción )ue %&ne#& l& &plic&ción. El %odelo en sH

son los d&tos puros )ue puestos en conteto del siste%& pro$een de inor%&ción &l usu&rio o & l&

&plic&ción %is%&.

#ista: Es l& represent&ción del %odelo en or%& (ráic& disponi"le p&r& l& inter&cción con

el usu&rio. En el c&so de un& &plic&ción ;e"F l& K'ist& es un& pá(in& ML con contenido

diná%ico so"re el cuál el usu&rio puede re&li<&r oper&ciones.

 !ontrolador: Es l& c&p& enc&r(&d& de %&ne#&r y responder l&s solicitudes del usu&rioF

1#

Page 15: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 15/56

proces&ndo l& inor%&ción neces&ri& y %odiic&ndo el Modelo en c&so de ser neces&rio.

Ilustr&ción > P&trón M'

L& c&p& #ista será des&rroll&d& con el r&%e8or9 $%& )ue ?&ce uso de l& tcnic& A'A( se

eplic& en el si(uiente punto p&r& l& cre&ción de &plic&ciones 8e" &sHncron&s. Est& c&p&F en$H&

peticiones P &l !ontrolador) el cu&l c&ptur& l& petición & tr&$s de un& ll&%&d& *+,&

t&%"in será %encion&d& en este c&pHtulo. El "odelo será puesF l& c&p& enc&r(&d& de l&

persistenci&.

3.2- A'A( Asyncronous 'ava,cript y ("

 AA3 Async?ronous &$&4cript y 3ML. Jo es un nue$o len(u&#e de pro(r&%&ciónF sino un&

nue$& or%& de utili<&r l&s nor%&s eistentes. onsiste en un& tcnic& p&r& l& cre&ción de

pá(in&s 8e" de or%& rápid& y diná%ic&. Per%ite )ue l&s pá(in&s 8e" se &ctu&licen de or%&

&sincrónic& %edi&nte el interc&%"io de pe)ueG&s c&ntid&des de d&tos con el ser$idor en se(undo

pl&no. Esto si(niic& )ue es posi"le &ctu&li<&r p&rtes de un& pá(in& 8e"F sin $ol$er & c&r(&r l&

pá(in& enter&. L&s pá(in&s 8e" )ue no utili<&n AA3 de"en $ol$er & c&r(&r tod& l& pá(in& si elcontenido c&%"i&r.

 Aplic&ciones co%o :oo(le M&psF :%&ilF Noutu"eF 7&ce"oo9F son un e#e%plo de tecnolo(H& AA3.

/stas se e0ecutan en el clienteF es decirF en el n&$e(&dor y %&ntiene co%unic&ción &sHncron&

con el ser$idor en se(undo pl&no. De est& or%& es posi"le re&li<&r c&%"ios so"re l& %is%&

pá(in& sin necesid&d de rec&r(&rl&. Esto si(niic& &u%ent&r l& inter&cti$id&dF $elocid&d y

us&"ilid&d en l& %is%&.

 AA3 es l& co%"in&ción de>

15

Page 16: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 16/56

 – o#&s de estilos en c&sc&d& 44 p&r& el diseGo )ue &co%p&G& & l& inor%&ción.

 – Docu%ent !"#ect Model D!M &ccedido (ener&l%ente %edi&nte &$&scriptF p&r& %ostr&r

e inter&ctu&r diná%ic&%ente con l& inor%&ción present&d&.

 – El o"#eto 3MLttpRe)uest p&r& interc&%"i&r d&tos &sHncron&%ente con el ser$idor 8e".

 – 3ML es el or%&to us&do co%0n%ente p&r& l& tr&nserenci& entre el ser$idor y el clienteF

sin e%"&r(oF puede us&rse cu&l)uier or%&toF t&les co%o> teto pl&noF ML y 4!J.

En l& si(uiente i%&(en se %uestr& co%o tr&"&#& todo en con#unto>

Ilustr&ción *> AA3 @ Motor AA3

!reando una petición al servidor con ("ttp*euest

En el (ráico pode%os &preci&r co%o el cliente en$H& peticiones 3MLttpRe)uest y el lu#o de

d&tos.

1$

Page 17: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 17/56

Ilustr&ción /> AA3 @ 3MLttpRe)uest = ttpResponse

 ("ttp*euest es un& inter&< e%ple&d& p&r& re&li<&r peticiones P y P4 & ser$idores

;e". P&r& los d&tos tr&nseridos se us& cu&l)uier codiic&ción "&s&d& en tetoF incluyendo> teto

pl&noF 3MLF 4!JF ML y codiic&ciones p&rticul&res especHic&s. L& inter&< se i%ple%ent&

co%o un& cl&se de l& )ue un& &plic&ción cliente puede (ener&r t&nt&s inst&nci&s co%o necesite

p&r& %&ne#&r el diálo(o con el ser$idorF ste proces& l& petición & tr&$s de un& ll&%&d& RE4

cre&ndo un& respuest& ttp*esponse y retornándol& &l cliente )ue reresc&rá l& pá(in& us&ndo

&$&script. A continu&ción se %encion& l& &r)uitectur& REST )ue ?& sido utili<&d& en el ser$idor

de &plic&ciones.

!.!- #$%& - #epresentational %tate &rans'er

L& &ranserencia de +stado *epresentacional Represent&tion&l 4t&te r&nser o *+,& es un

estilo de &r)uitectur& de sot8&re p&r& siste%&s distri"uidos co%o l& ;orld ;ide ;e". RE4 se

?& con$ertido en un %odelo de diseGo ;e" predo%in&nte. 7ue introducido y deinido en 2 por

Roy 7ieldin( en su tesis doctor&l. 7ieldin( es uno de los &utores princip&les del Protocolo de

tr&nserenci& de ?iperteto P. Los siste%&s )ue si(uen los principios RE4 se ll&%&n con

recuenci& RE4ul.

Principios de &r)uitectur& y diseGos und&%ent&les cl&$e>

1%

Page 18: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 18/56

 – Un protocolo clienteservidor sin estado> c&d& %ens&#e P contiene tod& l&

inor%&ción neces&ri& p&r& co%prender l& petición. o%o result&doF ni el cliente ni elser$idor necesit&n record&r nin(0n est&do de l&s co%unic&ciones entre %ens&#es. 4in

e%"&r(oF en l& práctic&F %uc?&s &plic&ciones "&s&d&s en P utili<&n coo9ies y otros

%ec&nis%os p&r& %&ntener el est&do de l& sesión.

 – Un con#unto de operaciones ien deinidas )ue se &plic&n & todos los recursos de

inor%&ción> P en sH deine un con#unto pe)ueGo de oper&cionesF l&s %ás i%port&ntes

son P!4F :EF PU y DELEE. on recuenci& est&s oper&ciones se e)uip&r&n & l&s

oper&ciones RUD )ue se re)uieren p&r& l& persistenci& de d&tos.

 – Un& sinta5is universal p&r& identiic&r los recursos. En un siste%& RE4F c&d& recurso es

direccion&"le 0nic&%ente & tr&$s de su URI. El uso de ?iper%ediosF t&nto p&r& l&

inor%&ción de l& &plic&ción co%o p&r& l&s tr&nsiciones de est&do de l& &plic&ción> l&

represent&ción de este est&do en un siste%& RE4 son tHpic&%ente MLF 3ML o 4!J.

o%o result&do de estoF es posi"le n&$e(&r de un recurso RE4 & %uc?os otrosF

si%ple%ente si(uiendo enl&ces sin re)uerir el uso de re(istros u otr& inr&estructur&

&dicion&l.

Un& $e< deinid& l& &r)uitectur& del siste%& M'F us&ndo l& tcnic& AA3 p&r& l& p&rte cliente F

co%unicándose con el ser$idor & tr&$s de ll&%&d&s RE4 se eplic& en el si(uiente c&pHtulo )u

?err&%ient&s son neces&ri&s p&r& co%en<&r & construir el siste%&.

1&

Page 19: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 19/56

4- ImplementaciónEn este c&pHtulo se eplic& %ás det&ll&d&%ente )u sot8&re se ?& utili<&do en est& &r)uitectur& y

có%o e%pe<&r & construir un siste%& ácil de %&ntener.

El proyecto se ?& re&li<&do 0nic& y eclusi$&%ente con sot8&re li"re.

4e ?&n us&do distint&s tecnolo(H&s p&r& c&d& un& de l&s c&p&s de l& &plic&ción. Este c&pHtulo está

co%puesto de , p&rtes. 4e descri"e có%o e%pe<&r & prep&r&r el entorno de des&rrollo y se ?&ce

un& eplic&ción %ás e?&usti$& del sot8&re us&do en c&d& c&p& p&r& l& &r)uitectur& M' en el

des&rrollo del proyecto descri"iendo l&s ?err&%ient&s o r&%e8or9s us&dos en c&d& un& de ell&s.

Se muestra la implementación de los casos de uso más importantes en cada capa, de modo que

la aplicación desarrollada es completamente funcional y cumple con todos los requisitos

especificados al inicio del proyecto.

4e d& por ?ec?o )ue l& inst&l&ción es correct& de inicio con el sot8&re neces&rio p&r& construir el

siste%& in&l.

4.1- $ntorno de desarrollo

En pri%er lu(&r de"e%os esco(er un entorno p&r& des&rroll&r nuestro códi(o. Eclipse es

un entorno de des&rrollo inte(r&do de códi(o &"ierto %ultipl&t&or%&. Est& pl&t&or%& ?& sido

us&d& p&r& des&rroll&r entornos de des&rrollo inte(r&dos del in(ls IDE.

En el proyecto se ?& us&do Eclipse Indi(o con los si(uentes plu(ins>

 – e $oo6le 7lu6in or +clipse.

Este pu(lin se eplic&rá co%o p&rte de l& c&p& 'ist&.

 – %e &ools 7latorm 8%&79 7ro0ect - +clipse

Inst&l&ndo este plu(in o"tene%os el ser$idor 8e" o%c&t en el )ue tendre%os &lo#&do

nuestro proyecto 8e".

 – "2+ - "aven Inte6ration or +clipse

1'

Page 20: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 20/56

M&$en será us&do co%o ?err&%ient& p&r& construir el proyecto &$&. Utili<& un P!M

Pro#ect !"#ect Model p&r& coni(ur&r el proyecto y (estion&r dependenci&s de otros%ódulos esto esF si es neces&ri& cu&l)uier li"rerH&F se de"e escri"ir en el P!M y M&$enF

&uto%átic&%ente desc&r(&rá l&s dependenci&s en un directorio de nuestro proyecto.

M&$en nos &yud& & co%pil&r l&s cl&ses .#&$&F per%ite e#ecut&r test &uto%áticos de unitF

(ener& ic?eros .#&r o .8&r con un si%ple Maven Install, etc.

Ilustración 10: Ejelo de !o."l 

Desde eclipse de"e%os construir con el plu(in de M&$en un Je8 M&$en Pro#ectF eisten $&rios

!

Page 21: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 21/56

oros p&r& l& cre&ción y coni(ur&ción del proyecto.

Los si(uientes r&%e8or9s y tecnolo(H&s se eplic&n & continu&ción y en )ue c&p& del p&trón M'

se ?& us&do c&d& uno de ellos p&r& construir el siste%& in&l.

 – "odelo> Alresco co%%unity ,.

 – #ista> :;F s%&rt:;.

 – !ontrolador > 4prin(

L& si(uiente i%&(en %uestr& có%o ?&n sido sep&r&d&s l& 'ist& y el ontrol&dor en el proyecto>

Ilustr&ción 11> 'isu&li<&ción in&l de l&s c&p&s 'ist& y ontrol&dor

El l& ilustr&ción 1 $e%os el !ac#a$e (8t.client el cu&l contiene otros p&c9&(e con l&s cl&ses &$&

)ue i%ple%ent&n el códi(o us&ndo AA3 &p&rt&do ,.2- 'ist& .

En el !ac#a$e pro#ectRE4 encontr&%os l&s cl&ses &$& )ue construyen el ser$idor %edi&nte el

r&%e8or9 4prin( &p&rt&do ,.+- ontrol&dor o ló(ic&=%odelo de ne(ocio.

1

Page 22: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 22/56

4.2- Vista

L& c&p& del cliente es donde se consu%en y present&n los %odelos de d&tos. P&r& un& &plic&ción

;e"F l& c&p& cliente nor%&l%ente es un n&$e(&dor 8e".

El diseGo del l&do del cliente utili<& un& &r)uitectur& Modelo-'ist&-Present&dor M'P. L& princip&l

$ent&#& de este p&trón p&r& el proyecto es l& c&p&cid&d de &cilit&r y %ini%i<&r el &co%pl&%iento

de co%ponentes UI )ue son des&rroll&dos independiente%ente.

L&s p&nt&ll&s son secciones $isu&les de l& &plic&ción. 4ólo un& p&nt&ll& puede ser $isi"le & l& $e<

y c&si se puede consider&r 0nic&s en un& sol& pá(in& 8e"-&pp.

&d& p&nt&ll& (estion& l& cre&ciónF l& unión y l& $isu&li<&ción de los co%ponentes de inter&< de

usu&rio dierentes )ue re)uiere. &d& co%ponente de l& inter&< de usu&rio no es %ás )ue un

present&dor y su o"#eto $ist& correspondiente. L& co%unic&ción entre los co%ponentes de inter&<

de usu&rio en un& p&nt&ll& se %&ne#& & tr&$s de l& E$entCusF esto per%ite el &copl&%iento

lei"le. u&ndo un present&dor de d&tos re)uiere )ue lo solicite de or%& &sHncron& desde un

D&t&4er$ice co%p&rtid&. El D&t&4er$ice opcion&l%ente puede de$ol$er los d&tos de un& %e%ori&c&c? del l&do del clienteF o si%ple%ente ll&%&r direct&%ente &l servicio de GWT RPC en el

servidor.

4.2.1- rame;or< $%&

P&r& el des&rrollo de l& $ist& se ?& us&do :; o :oo(le ;e" ool9it. Es un r&%e8or9 cre&do por

:oo(le )ue per%ite ocult&r l& co%ple#id&d de $&rios &spectos de l& tecnolo(H& AA3. Es

co%p&ti"le con $&rios n&$e(&dores. El códi(o es cre&do en &$& y el co%pil&dor se enc&r(& de

tr&ducirlo & ML y &$&4cript.

4.2.2- ,mart$%&

4%&rt:; es un& API )ue per%ite desde :; utili<&r l& li"rerH& AA3 4%&rtlient. Está

co%puest& por un con#unto de co%ponentes c&lend&riosF ár"oles de n&$e(&ciónF (rids... )ue

per%iten conect&r &plic&ciones construid&s con el ser$idorF utili<&ndoF por e#e%ploF ser$icios

RE4.

L& &plic&ción )ue se construirá utili<&rá l& $ersión 4%&rt:; +. con l& $ersión (r&tuit&F l&

Page 23: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 23/56

$ersión de l& li"rerH& :; utili<&d& es 2.,.

P&r& des&rroll&r con este 7r&%e8or9 es neces&rio inst&l&rse un plu(in en el n&$e(&dor.

4.2.3- 7rototipo Intera= Usuario

4e dese& des&rroll&r un& &plic&ción 8e" con un& sencill& inter&< de usu&rio. A continu&ción se

present& un prototipo de l&s princip&les p&nt&ll&s del siste%&F pudiendo $&ri&r en l&s distint&s

&ses de diseGo e i%ple%ent&ciónF incorpor&ndo %e#or&s en l& us&"ilid&d y esttic&.

Este prototipo no pretende ser un& present&ción e?&usti$& de tod&s l&s p&nt&ll&s de l&

&plic&ciónF sino per%itir )ue en est& &se de l& construcción del proyectoF pod&%os tener un&

pri%er& &proi%&ción & lo )ue será el &specto $isu&l del proyecto un& $e< in&li<&do.

"

Page 24: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 24/56

*e6istro de nuevo socio:

Ilustr&ción 12> Re(istro de un nue$o socio

Coneión al sistema(

Ilustr&ción 1+> Introducir credenci&les

#

Page 25: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 25/56

4.2.4-Implementación

iertos co%ponentes s%&rt:; son enl&<&"les & uentes de d&tosF )ue proporcion&n su

estructur& y contenido. Los si(uientes co%ponentes $isu&les están diseG&dos p&r& $isu&li<&rF

consult&r y edit&r d&tos estructur&dos>

>ata,ource

Los o"#etos D&t&4ource proporcion&n un& present&ción independienteF independiente de l&

i%ple%ent&ción de un con#unto de c&%pos de d&tos persistentes. Los D&t&4ources per%iten>

 – o%p&rtir %odelos de d&tos & tr&$s de %0ltiples &plic&ciones y co%ponentesF en el

cliente y ser$idor.

 – Mostr&rF %&nipul&r d&tos persistentes y %odelo de d&tos rel&ciones t&les co%o p&dres e

?i#os & tr&$s de co%ponentes $isu&les co%o ree:rid.

 – E#ecut&r l&s oper&ciones de d&tos est&nd&ri<&d&s "usc&rF orden&rF &(re(&rF &ctu&li<&rF

eli%in&r con un& unción de &poyo t&nto en el cliente y co%o en el ser$idor p&r& escri"ir

d&tosF $&lid&doresF p&(in&ciónF cl&$es 0nic&s y %ás.

 – Eplot&ción &uto%&ti<&d& )ue incluye l& c&r(& de d&tosF &l%&cen&%iento en c&c?F

iltr&doF cl&siic&ciónF loc&li<&ción y $&lid&ción.

 – Un descriptor de D&t&4ource proporcion& los &tri"utos de un con#unto de c&%pos

D&t&4ource. Los descriptores D&t&4ource se pueden especiic&r en or%&to 3ML o 4!J

cre&do en códi(o &$&. El or%&to se interpret& y es co%p&rtido por el cliente y el ser$idorF

%ientr&s )ue los D&t&4ources cre&dos en &$& son utili<&dos 0nic&%ente por el cliente.

&y cu&tro re(l&s "ásic&s p&r& l& cre&ción de d&tos 3ML o 4!J>

1. Especiic&r un ori(en de d&tos co%o 0nico &tri"uto ID. El ID se utili<& p&r& enl&<&r & los

co%ponentes $isu&lesF y co%o un no%"re predeter%in&do p&r& o"#etos rel&cion&les.

2. Especiic&r un ele%ento de c&%po con un no%"re 0nico 0nico en el ori(en de d&tos p&r&

c&d& c&%po )ue se utili<& en un co%ponente de inter&< de enl&ce de d&tos.

+. Especiic&r un tipo de &tri"uto p&r& c&d& ele%ento del c&%po.

5

Page 26: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 26/56

,. M&rc&r e&ct&%ente un c&%po con pri%&ryOey QtrueQ. El c&%po pri%&ryOey de"e tener

un $&lor 0nico p&r& c&d& o"#eto de d&tos re(istro en un D&t&4ource. Un c&%popri%&ryOey no es neces&rio p&r& l& lectur& de los D&t&4ourcesF pero es un& "uen&

práctic&F en (ener&lF p&r& &ctu&li<&r o eli%in&r d&tos con sus correspondientes

oper&ciones.

>ata,ource >ocumentos

El si(uiente D&t&4ource ?& sido i%ple%ent&do p&r& %ostr&r el :rid (ener&l.

Ilustr&ción 1,> D&t&4ource de docu%entos

$

Page 27: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 27/56

>ata,ource Usuarios

D&t&4ource usu&rios i%ple%ent&do p&r& el c&so de uso> KAd%in> eli%in& usu&rio.

Ilustr&ción 15> D&t&4ource de Usu&rios

%

Page 28: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 28/56

4.!- Controlador o lógica)modelo de negocio.L& Ló(ic& de Je(ocio es un tr%ino inor%&l p&r& reerirse & l& c&p& inter%edi& )ue %&ne#& el

interc&%"io de inor%&ción entre l& 'ist& y el Modelo es decirF el ontrol&dor. 4in e%"&r(oF en

este proyecto se deine l& Ló(ic& de Je(ocio co%o un tr%ino )ue no en(lo"& l& tr&nserenci& de

inor%&ción entre c&p&sF sino & l& ló(ic& &plic&ti$& )ue per%ite el correcto uncion&%iento del

siste%&. L& Ló(ic& de Je(ociosF en tr%inos sencillosF es el con#unto de &l(orit%os )ue re&li<&n

el tr&"&#o )ue el usu&rio dese& e#ecut&r. En el proyecto se ?& des&rroll&do con el 7r&%e8or9

4prin(F & continu&ción se cit&n l&s princip&les c&r&cterHstic&s y sus "eneicios cl&$e.

4.3.1- ,prin6 "#!

El 7r&%e8or9 ;e" M' %odelo-$ist&-control&dor de 4prin( está diseG&do &lrededor de un

4er$let Disp&tc?er4er$let enc&r(&do de en$i&r l&s peticiones & los dierentes %&ne#&dores

?&ndlers de l& &plic&ciónF & p&rtir de l& coni(ur&ción del %&peoF es decirF &l coni(ur&r este

ser$let en el ic?ero 8e".%l tod&s l&s peticiones p&s&rán por l y se enc&r(&rá de rediri(ir & los

dierentes %&ne#&dores. Los %&ne#&dores por deecto se "&s&n en l&s &not&ciones Bontroller y

BRe)uestM&ppin( )ue $ere%os & continu&ción.

4prin( 7r&%e8or9 es un contenedor de o"#ectos "&s&ndo en el p&r&di(%& Kin$ersión del control o

Kinyección de dependenci&s )ue será %ás det&ll&do en l& p&rte del AD.

4e eplic&n sus c&r&cterHstic&s princip&lesF sus "eneicios cl&$eF l& coni(ur&ción inici&l p&r&

co%en<&r el proyecto con 4prin( y &not&ciones )ue &cilit&n l& pro(r&%&ción EE.

,ervlet >ispatcer 

El r&%e8or9 M' de 4prin( está diseG&do &lrededor de un ser$let )ue reen$H& l&s peticiones &

los dierentes control&dores. Este ser$let está plen&%ente inte(r&do con el contenedor

Io In$ersion o ontrol lo )ue per%ite us&r tod&s l&s c&r&cterHstic&s del r&%e8or9 4prin(.

El ,ervlet >ispatcer  es un ser$let )ue ?ered& de l& cl&se "&se ttp4er$let y se de"e decl&r&r

en el ic?ero de coni(ur&ción 8e".%l de l& &plic&ción 8e"F en l& si(uiente i%&(en se %uestr& l&

coni(ur&ción del 8e".%l de nuestro proyecto 4prin(>

&

Page 29: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 29/56

Ilustr&ción 16> 8e".%l

En l& ilustr&ción 1+F t&l co%o se puede $er en el %&peo del ser$let %servlet-a!!in$&'F tod&s l&s

peticiones )ue e%piecen por rest url-!attern' serán %&ne#&d&s por el Disp&tc?er4er$let.

!ontroladores

Los control&dores pro$een &cceso &l co%port&%iento de l& &plic&ciónF interpret&n los inputs del

usu&rio y los tr&nsor%&n en un %odelo )ue es represent&do &l usu&rio por un& $ist& %odelo-

$ist&-control&dor.

'

Page 30: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 30/56

!oni6uración

4prin( se coni(ur& & p&rtir del a!!licationConte"t."l. El  Applic&tionontet es un& inter&< )ue

proporcion& inor%&ción de coni(ur&ción & l& &plic&ción. &y $&ri&s cl&ses proporcion&d&s por

4prin( 7r&%e8or9 )ue i%ple%ent&n est& inter&< y nos &yud& & utili<&r l& coni(ur&ción de l&

&plic&ción. En l& si(uiente ilustr&ción se %uestr& el &pplic&tionontet del proyecto.

Ilustr&ción 1> &pplic&tionontet.%l

"!

Page 31: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 31/56

'++ Annotations - ?annotations

 A p&rtir l& $ersión +.F 4prin( introdu#o el %odelo de pro(r&%&ción "&s&do en &not&ciones

En este proyecto se ?& pro(r&%&do %edi&nte &not&ciones p&r& %ini%i<&r l& coni(ur&ción del

códi(o. 'ere%os l&s &not&ciones us&d&s y l&s &not&ciones %ás recuente p&r& &cilit&r l&

pro(r&%&ción EE.

L&s &not&ciones utili<&d&s dur&nte el proyecto se di$iden en dos "lo)ues>

 – &not&ciones 4prin(

 – &not&ciones RE4ul ;e" 4er$ice @ A3-R4.

Anotaciones ,prin6 

En l& si(uiente t&"l& $e%os &l(un&s de l&s &not&ciones us&d&s en el proyecto con 4prin( y sus

i%ports>

Anotacion 7ac<a6e Import

Bo%ponent i%port or(.sprin(r&%e8or9.stereotype.o%ponent

Bontroller i%port or(.sprin(r&%e8or9.stereotype.ontroller

B4er$ice i%port or(.sprin(r&%e8or9.stereotype.4er$ice

BRepository i%port or(.sprin(r&%e8or9.stereotype.Repository

BAuto8ired i%port or(.sprin(r&%e8or9."e&ns.&ctory.&nnot&tion.Auto8ired

B4cope i%port or(.sprin(r&%e8or9.contet.&nnot&tion.4cope

Ilustr&ción 1*> 4prin( B&nnot&tions

?!omponent es el estereotipo princip&lF indic& )ue l& cl&se &not&d& es un co%ponent o Ce&n

de 4prin( y será c&r(&do en el conteto de l& &plic&ción.

?*epository) ?,ervice y ?!ontroller  son especi&li<&ciones de ?!omponent p&r& c&sos

concretos persistenci&F ser$icios y present&ción. Esto si(niic& )ue puede us&rse sie%pre

?!omponent pero lo &decu&do es us&r sus estereotipos.

"1

Page 32: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 32/56

En l& si(uiente i%&(en se %uestr& l& rel&ción entre ellos>

Ilustr&ción 1/> o%ponent y deri$&dos

?Auto;ired

sir$e p&r& inyect&r &uto%átic&%ente l& dependenci& &l cre&r el co%ponente.

?,cope

ene%os l& opción de decl&r&r un scope p&r& c&d& "e&n.

Por de&ultF los "e&ns en 4prin( son 4in(letons. Un sin(leton es un p&trón de diseGo con el )ue

se &se(ur& )ue solo ?&y un& inst&nci& de un "e&n en nuestr& &plic&ción. Esto nor%&l%ente se

lo(r& ?&ciendo )ue el constructor de l& cl&se se& pri$&do y proporcion&ndo un %todo estático de

á"ric& )ue se enc&r(& de control&r )ue solo ?&y& un& inst&nci& de l& cl&se. Eisten 5 tipos de

coni(ur&ción B4cope )ue serán eplic&dos en el AD.

"

Page 33: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 33/56

*+,&ul %e ,ervice - 'A(-*, Annotations

ersey es un& API &$& p&r& ser$icios 8e" RE4 "&s&d& en &not&ciones. 7&cilit& el des&rrollo de

8e" ser$ices.

Proporcion& soporte p&r& Ato%s 3ML or%&tF MIME MultiP&rt %ess&(e or%&t F &$&4cript !"#ect

Jot&tion 4!J entre otros.

Anotación 7ac<a6e Import

B:E i%port #&$&.8s.rs.:E

BProduces i%port #&$&.8s.rs.Produces

BP&t? i%port #&$&.8s.rs.P&t?

BSueryP&r&% i%port #&$&.8s.rs.SueryP&r&%

BP!4 i%port #&$&.8s.rs.P!4

Bonsu%es i%port #&$&.8s.rs.onsu%es

B7or%P&r&% i%port #&$&.8s.rs.7or%P&r&%

BPU i%port #&$&.8s.rs.PU

BDELEE i%port #&$&.8s.rs.DELEE

Ilustr&ción 2> A3-R4 B&nnot&tions

&d& recurso es ll&%&do 7@'@ Pl&in !ld &$& !"#ect están &not&dos por su ?7at el cu&l

desi(n& l& u"ic&ción del recurso. 4e de"e decl&r&r )ue tipo de oper&ción $& & e#ecut&rF co%o

?$+&) ?7@,&) ?>++&+) ?7U&. 4i es neces&rioF se de"e decl&r&r )ue tipo de d&tos produce

?7roduces o consu%e ?!onsumes )ue son especiic&dos con el $&lor MIME type.

""

Page 34: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 34/56

En el e#e%plo de códi(o si(uiente es un e#e%plo %uy si%ple de un recurso utili<&ndo &not&ciones

sprin( con &not&ciones A3-R4 .

Ilustr&ción 21> E#e%plo 4prin( y ersey

"#

Page 35: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 35/56

4.3.2- Implementación de los casos de uso más importantes

 A continu&ción se %uestr&n los %todos i%ple%ent&dos en el %odelo de los distintos usu&rios.

 – Usu&rio in$it&do> El usu&rio in$it&doF tr&s rellen&r un or%ul&rioF se d& de &lt& en l&

&plic&ción.

URI ?ttp>==loc&l?ost>/*=pro#ectUC=rest=users=ne8User=

P&c9&(e co%.u".pro#ectRE4.rest

l&se Lo(in;e"4er$ice.#&$&

Mtodo - ne8User

!per&ción P!4

Ilustr&ción 22> Ll&%&d& RE4 - Re(istro

"5

Page 36: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 36/56

 – Usu&rio co%0n>

lo(in introducir no%"re de usu&rio y p&ss8ordF el usu&rio se lo(& en l& &plic&ción.

URI ?ttp>==loc&l?ost>/*=pro#ectUC=rest=users=(etic9et=

P&c9&(e co%.u".pro#ectRE4.rest

l&se Lo(in;e"4er$ice.#&$&

Mtodo - (etUseric9et

!per&ción :E

Ilustr&ción 2+> Ll&%&d& RE4 - Lo(in

"$

Page 37: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 37/56

Do8nlo&d> 4i el usu&rio y& está lo(&do en l& &plic&ción puede desc&r(&r &rc?i$os %ulti%edi&

del repositorio.

P&r& %ostr&rF )ue se puede ll&%&r direct&%ente &l repositorio de Alresco y& )ue es un M' el

8e" script se in$oc& direct&%ente desde l& c&p& de s%&rt:;.

Ilustr&ción 2,> In$oc&ción 8e" script desde s%&rt:; - Do8nlo&d

"%

Page 38: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 38/56

 – Usu&rio co%0n> 4i el usu&rio y& está lo(&do en l& &plic&ción puede su"ir &rc?i$os

%ulti%edi& &l repositorio.

URI ?ttp>==loc&l?ost>/*=pro#ectUC=rest=ile=uplo&d

P&c9&(e co%.u".pro#ectRE4.rest

l&se 7ile;e"4er$ice.#&$&

Mtodo - iler&nserIn$iteMultiP&rt

!per&ción P!4

Ilustr&ción 25> Ll&%&d& RE4 - Uplo&d

"&

Page 39: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 39/56

 – Usu&rio &d%inistr&dor> deleteUser 

Tnic&%ente el &d%inistr&dor tiene per%isos p&r& eli%in& un usu&rio del repositorio. El

si(uiente %todo de"e eli%in&r un usu&rio co%pro"&ndo pre$i&%ente )ue el usu&rio )ue

?&ce l& &cción es el Ad%inistr&dor.

URI ?ttp>==loc&l?ost>/*=pro#ectUC=rest=users=deleteUserusern&%eVW

P&c9&(e co%.u".pro#ectRE4.rest

l&se Users;e"4er$ice.#&$&

Mtodo - deleteUser

!per&ción DELEE

Ilustr&ción 26> Ll&%&d& RE4 - Delete User 

"'

Page 40: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 40/56

4.4- "odelo

 Anterior%ente se ?&"ló del Modelo co%o p&rte esenci&l de l& &r)uitectur& MVC y se di#o )ue el

Modelo es l& c&p& )ue contiene los d&tos y los proces& & petición del usu&rio p&r& o"tener l&

inor%&ción neces&ri& )ue será desple(&d& in&l%ente &l usu&rio. Es decirF el Modelo es l& p&rte

)ue se enc&r(& de los d&tosF y co%o t&lF necesit& %&ntenerlos &ccesi"les de %&ner& sencill& p&r&

su &l%&cen&%iento y recuper&ción. on t&l propósito se "uscó un& pl&t&or%& )ue &cilit&r& l&s

unciones de persistenci& de d&tos en l& C&se de D&tos y )ue per%itier& tr&nsp&rente%ente

tr&"&#&r sie%pre con o"#etos de &$&. 4e ?& us&do Alresco co%o :estor Docu%ent&l.

4.4.1- Alresco

 Alresco es un siste%& de &d%inistr&ción de contenidos li"reF incluye un repositorio de contenidos.

Este siste%& de (estión de contenido 8e" está des&rroll&do con tecnolo(H& &$&.

4e distri"uye en dos $&ri&ntes dierentes>

 –  Alresco o%%unity Edition> Es sot8&re li"reF con licenci& L:PL de códi(o &"ierto y

estánd&res &"iertos.

 –  Alresco Enterprise Edition> 4e distri"uye "&#o licenci& de códi(o &"ierto y estánd&res

&"iertos con soporte co%erci&l y propiet&rio & esc&l& e%pres&ri&l.

P&r& el proyecto ?& sido neces&rio inst&l&r l& $ersión Alresco o%%unity Edition. Este (estor

docu%ent&l incluye un& serie de 8e"scripts serán eplic&dos & continu&ción )ue &cilit&n el

interc&%"io de d&tos entre nuestro ontrol&dor y el Modelo.

#!

Page 41: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 41/56

4.4.2- %e scripts.

Un 8e" script es un ser$icio 8e" enl&<&do & un& URI. Este ser$icio responde & los %todos P

co%o :EF P!4F PU y DELEE. Es posi"le ll&%&r & los 8e" scripts eistentes en Alresco o

cre&r propios 8e" scripts. Por e#e%ploF se puede cre&r un propio 8e" script p&r& eponer un&

inter&< RE4ul de un repositorio person&li<&do.

Un 8e" script se co%pone de tres &rc?i$os>

 – un &rc?i$o .%l. ontiene l& descripción del 8e" scriptF URIF no%"reF etc.

 – un &rc?i$o .#s. ontiene el códi(o &$&4cript.

 – un &rc?i$o .tl. L& present&ción de l& respuest& 'ist&.

Ilustr&ción 2> ;e" 4cript M' Alresco

En este proyecto se ?&n us&do los 8e" scripts y& eistentes en AlrescoF )ue nos per%ite us&r un

códi(o pro"&do y li"re de errores p&r& %&nipul&r d&tos en l& c&p& de persistenci& o Modelo.

#1

Page 42: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 42/56

4.4.3- ,ite Alresco

Un sitio es un áre& del proyecto donde se puede co%p&rtir contenidos y col&"or&r con otros

%ie%"ros del sitio.

&d& sitio tiene un &#uste de $isi"ilid&d )ue %&rc& el sitio co%o p0"lico o pri$&do. Este &#uste

control& )uin puede $er el sitio y có%o los usu&rios se con$ierten en %ie%"ros del sitio.

P&r& co%p&rtir los &rc?i$os se ?& cre&do un sitio U )ue contiene un& c&rpet& ll&%&d&

>ocumentos.

Ilustr&ción 2*> Alresco - 4ite UC

En l& c&rpet& >ocumentos) es donde se &lo#&r&n todos los &rc?i$os. &d& $e< )ue se ?&(& un

uplo&d o un do8nlo&d se ?&rá so"re est& c&rpet&.

En l& si(uiente i%&(en $e%os el contenido de l& c&rpet& >ocumentos

#

Page 43: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 43/56

Ilustr&ción 2/> Alresco - ontenido c&rpet& Docu%entos

P&r& %ostr&r el contenido de l& c&rpet& desde nuestr& &plic&ciónF se in$oc& &l 8e" script

(etDocu%ents y lo %ostr&%os en el (rid de l& &plic&ción cliente. El result&do se %uestr& en l&

si(uiente i%&(en>

Ilustr&ción +> liente - ontenido c&rpet& Docu%entos desde el :RID de s%&rt:;

#"

Page 44: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 44/56

4.4.4- Invocación de los casos de uso más importantes

L&s ll&%&d&s &l %odelo se ?&cen & tr&$s de l& in$oc&ción de los ;e" 4cripts de Alresco )ue son

in$oc&dos & tr&$s de un& ll&%&d& P.

 A continu&ción se present& l& i%ple%ent&ción en 4prin( de l&s in$oc&ciones & los ;e" 4cripts de

 Alresco & p&rtir de los c&sos de uso deinidos p&r& c&d& tipo de usu&rio.

 Usuario invitado

El usu&rio in$it&doF tr&s rellen&r un or%ul&rioF se d& de &lt& en l& &plic&ción.

P&c9&(e co%.u".pro#ectRE4.ser$ice.i%pl

l&se User4er$iceI%pl.#&$&

Mtodo - ne8User

Ilustr&ción +1> I%ple%ent&ción ;e" 4cript Alresco - Re(istro

##

Page 45: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 45/56

Usuario común

El usu&rio de"e introducir el no%"re y p&ss8ordF si es correcto se lo(& en l& &plic&ción. En c&so

contr&rio de$uel$e %ens&#e de error.

P&c9&(e co%.u".pro#ectRE4.lo(in

l&se Alresco4ession.#&$&

Mtodo - inici&r4essionAlresco

Ilustr&ción +2> I%ple%ent&ción ;e" 4cript Alresco - Lo(in

#5

Page 46: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 46/56

 – 4i el usu&rio y& está lo(&do en l& &plic&ción puede su"ir &rc?i$os %ulti%edi& del

repositorio

P&c9&(e co%.u".pro#ectRE4.ser$ices.i%pl

l&se 7ile4er$iceI%pl.#&$

Mtodo uplo&d7ile

Ilustr&ción ++> I%ple%ent&ción ;e" 4cript Alresco - Uplo&d

#$

Page 47: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 47/56

Usuario Administrador 

Eli%in& un usu&rio del repositorio. o%prue"& pre$i&%enteF )ue el usu&rio se& el Ad%inistr&dor.

P&c9&(e co%.u".pro#ectRE4.ser$ices.i%pl

l&se User4er$iceI%pl.#&$&

Mtodo - deleteUser

Ilustr&ción +,> I%ple%ent&ción ;e" 4cript Alresco - Delete User 

#%

Page 48: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 48/56

B- Ane5osI%á(enes del sitio 8e"

A continuación se muestran algunas capturas de pantalla del sitio web desarrollado siguiendo los

casos de uso por tipo de usuario.

Ilustr&ción +5> P&nt&ll& Inici&l

#&

Page 49: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 49/56

Ilustr&ción +6> 7or%ul&rio de Re(istro y $&lid&ciones

Ilustr&ción +> Entr&d& usu&rio

#'

Page 50: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 50/56

Ilustr&ción +*> Usu&rio desc&r(& contenido

Ilustr&ción +/> Usu&rio su"e contenido

5!

Page 51: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 51/56

Ilustr&ción ,> Lo(in Ad%in

Ilustr&ción ,1> Ad%in Eli%in&r Usu&rios

51

Page 52: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 52/56

Ilustr&ción ,2> Ad%in Men0 Eli%in&r Usu&rios

Ilustr&ción ,+> Ad%in onir%& Eli%in& Usu&rio

5

Page 53: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 53/56

Ilustr&ción ,,> Ad%in :rid Usu&rio Eli%in&do

Ilustr&ción ,5> Ad%in :rid ontenido Eli%in&r 

5"

Page 54: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 54/56

C- !onclusiones4e pretendH& re&li<&r un& introducción & l& pro(r&%&ción de &plic&ciones #$%&  con %pring  +.F

smart*+&  y ,l'resco. on un& Ar)uitectur& ro"ust& y ácil de etender y %&ntener co%o es l&

 Ar)uitectur& "VC 

on el ecelente r&%e8or9 )ue nos "rid& $oo6le . Eli%in&ndo l&s prue"&s del n&$e(&dor y

depur&ciónF tr&"&#o )ue ?&ce el rame;or< $%& nos orece un cl&ro eno)ue orient&do & o"#etos

p&r& el des&rrollo de l& inter&< de usu&rio prote(iendo de los errores del n&$e(&dor y sus

peculi&rid&des. on el %is%o len(u&#e de pro(r&%&ción )ue se ?& us&do en el ser$idor 'A#A.P&r& cre&r un &specto tot&l%ente 0nico y si%pliic&do sólo se re)uiere conoci%ientos "ásicos o

nulos de diseGo &"!,, 'avascript.

ó%o cu&l)uier &plic&ción ,prin6 M'F ?e%os coni(ur&do el Disp&tc?er4er$letF ?e%os

&prendido & decl&r&r control&dores %edi&nte l& &not&ción Bontroller. &%"in ?e%os %&pe&do

peticiones con l& &not&ciones y por 0lti%o ?e%os &soci&do $&lores de $&ri&"les de l& URL &

p&rá%etros de los %todos control&dor %edi&nte su URI. on todo esto pode%os co%en<&r &

construir un& &plic&ción RE4 en l& )ue c&d& recurso se& &ccesi"le %edi&nte un& URL &%i(&"le.

En resu%enF conociendo un len(u&#e de pro(r&%&ción t&n potente co%o 'A#A es posi"le

construir &plic&ciones en poco tie%po con los r&%e8or9s %ás potentes us&dos en l&

pro(r&%&ción co%o son el rame;or< ,prin6 y l& tecnolo(H& )ue nos re(&l& $oo6le con su

rame;or< $%&.

5#

Page 55: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 55/56

D- uentesA'A(

?ttp>==888.8+sc?ools.co%=&#&=

?ttp>==888.?t%le&ndo.co%=&rc?i$o=tutori&l-&#&

$%&

?ttps>==de$elopers.(oo(le.co%=8e"-tool9it=?les

smart$%&

?ttps>==de$elopers.(oo(le.co%= ?ttps>==de$elopers.(oo(le.co%=8e"-

tool9it=tools=(8tdesi(ner=e&tures=(8t=s%&rt(8t?len ?ttp>==code.(oo(le.co%=p=s%&rt(8t=

?ttp>==888.s%&rtclient.co%=s%&rt(8t=s?o8c&se=

,prin6

?ttp>==#ersey.#&$&.net=non&$=docu%ent&tion=sn&ps?ot=#&rs-resources.?t%l

?ttp>==st&tic.sprin(source.or(=sprin(=docs=current=sprin(-r&%e8or9-reerence

In?erit&nce M&ppin( Reerence>

?ttp>==docs.#"oss.or(=?i"ern&te=core=+.5=reerence=en=?t%l=in?erit&nce.?t%l

ersey A3-R4 Annot&tions> ?ttps>==8i9is.or&cle.co%=displ&y=ersey=!$er$ie8XoXA3-

R4X1.X7e&tures

A3C Annot&tions> ?ttp>==docs.or&cle.co%=#&$&ee=6=&pi=#&$&=%l="ind=&nnot&tion=p&c9&(e-

su%%&ry.?t%

Alresco

?ttp>==888.&lresco.co%=resources=docu%ent&tion

?ttp>==8i9i.&lresco.co%=8i9i=+.Y;e"Y4criptsY7r&%e8or 

55

Page 56: Memoria Spring Java

7/23/2019 Memoria Spring Java

http://slidepdf.com/reader/full/memoria-spring-java 56/56

In6enierEa inversa:

?ttp>==888.$isu&l-p&r&di(%.co%=

?ttp>==888.o%ondo.co%=

?ttp>==888.soy&tec.co%=eu%l2=

?ttp>==&r(ou%l.ti(ris.or(=