Modelat d’aplicacions web -...

21
Modelat d’aplicacions web Enric Galceran i Sandra Vinyas [email protected], [email protected] Assignatura: Enginyeria del Software II Professor: Toni Sellar` es Enginyeria Inform` atica Universitat de Girona 31 de mar¸ c de 2009

Transcript of Modelat d’aplicacions web -...

Page 1: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

Modelat d’aplicacions web

Enric Galceran i Sandra [email protected], [email protected]

Assignatura: Enginyeria del Software IIProfessor: Toni SellaresEnginyeria InformaticaUniversitat de Girona

31 de marc de 2009

Page 2: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

2

Page 3: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

Index

1 Introduccio i historia 5

1.1 Que es la Web? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Web 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Web 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Comparacio entre el web 1.0 i el web 2.0 . . . . . . . . . . . . . . . . . . . . . . 5

2 Metodologies de disseny web 7

2.1 OOWS: Un metode de desenvolupament d’aplicacions web . . . . . . . . . . . . 8

2.2 Model de navegacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1 Diagrama d’usuaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.2 Mapes de navegacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Model de presentacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.1 Paginacio d?informacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.2 Ordenacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3 Patro de presentacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Que es i com funciona un servei web 15

3.1 Estandards utilitzats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Avantatges dels serveis web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 Inconvenients dels serveis web . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3

Page 4: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

4 INDEX

4 Arquitectures web 17

4.1 Introduccio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2 Conceptes d’arquitectures web . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2.1 XML-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2.2 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2.3 REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.3 Comparativa d’XML-RPC, SOAP i REST . . . . . . . . . . . . . . . . . . . . . 21

4.4 El futur de les arquitectures web . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 5: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

Capıtol 1

Introduccio i historia

1.1 Que es la Web?

Xarxa de pagines escrites en hipertext mitjancant el llenguatge de marcatge HTML i connec-tades entre si mitjancant vincles, de manera que formin un sol cos de coneixement pel qual s’hipot navegar facilment.

1.2 Web 1.0

Web nomes de lectura, els usuaris no poden interactuar amb el contingut de la pagina. Estatotalment limitat al que vol el propietaria que vegis.

1.3 Web 2.0

Web basada en comunitats d’usuaris i una gamma especial de serveis, com xarxes socials, blogs,wikis,... Que fomenten la col·laboracio i l’intercanvi agil d’informacio entre els usuaris. El quepreten aquesta evolucio del web 1.0, es que totes les aplicacions i llocs comuns tingui en comuque els seu principal actiu es l’usuari. A mes nombre d’usuaris augmenta el valor del lloc i elseu contingut.

5

Page 6: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

6 CAPITOL 1. INTRODUCCIO I HISTORIA

1.4 Comparacio entre el web 1.0 i el web 2.0

Web 1.0 Web 2.0Enciclopedies Wikipedia

Webs personals BlogsEspeculacio de noms de dominis Optimitzacio dels motors de cerca

Pagines visitades Cost per clicScreen scrapping Serveis web

Publicacions ParticipacioSistema de gestio de continguts Wiki

Directoris Etiquetes

Taula 1.1: Comparacio entre el web 1.0 i el web 2.0.

Page 7: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

Capıtol 2

Metodologies de disseny web

Avui en dia, amb la rapidesa expansio d’Internet i els avencos en l’area de les tecnologies webhan aparegut un nou tipus d’aplicacions. Degut a l’acceleracio i a l’alta competitivitat de lesactivitats comercials a la xarxa, aquests sistemes son construıts en perıodes temporals moltcurts, sense l’ajuda d’eines de treball adequades i utilitzant solucions ad-hoc, el que ha portata construir sistemes de software de baixa qualitat i de difıcil manteniment i evolucio. En elsultims anys han aparegut una gran quantitat d’aproximacions metodologiques que intentenajudar a la construccio de solucions web, proporcionen mecanismes d’abstraccio que faciliten eldesenvolupament d’aquest tipus de sistemes. Pero actualment no existeix cap metode totalmentestablert. Hi ha dues tendencies clares:

• Orientades al disseny hipermedia (navegacio): introduccio d’expressivitat per dotar dedinamisme als sistemes. L’objectiu es construir aplicacions d’hipermedies on s’uneixi elconcepte de navegacio amb la multimedia, en sistemes estatics (sense funcionalitat).

Metodologies: OOHDM, WebML, ADM, AutoWeb y RMM.

• Orientades a aplicacions dinamiques (funcionalitats): intenten introduir la semantica dela hipermedia com a caracterıstica inherent, en aquest nou tipus de sistema de software.Aquest tipus intenta introduir les caracterıstiques de navegacio al model OO.

Metologies: UWE, WSDM, EORM, OOH i OO-Method.

El problema de totes aquestes metodologies es que les caracterıstiques hipermedia i propietatsfuncionals son estudiades de manera separada, per tant, dificulten el desenvolupament de lesaplicacions web. Una de les propostes per donar solucio es OOWS.

7

Page 8: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

8 CAPITOL 2. METODOLOGIES DE DISSENY WEB

2.1 OOWS: Un metode de desenvolupament d’aplicaci-

ons web

Els sistemes software per ambients web son aplicacions que tenen una base comu amb els sis-temes tradicionals: la funcionalitat del sistema i la interaccio amb l’usuari, tot hi que, lesaplicacions web introdueixen noves caracterıstiques de navegacio que han de ser capturades perrepresentar d’una manera mes precisa i aproxima el sistema. Aquestes aplicacions necessitengestionar essencialment, requisits de navegacio dins de l’aplicacio, representacio de la informa-cio, gestio d’informacio (filtres, cerques, ...), tractament d’usuaris, ... Per entendre be que espreten cal tenir clar que es la navegacio. Per tant la navegacio es un salt d’una pagina web auna altre pagina web, provocada per la seleccio d’un enllac, en el que es canvia el contingut. Lescaracterıstiques de la navegacio son l’acces a informacio i la construccio de serveis. El metodeutilitzat com a base per definir aquesta aproximacio es OO-Method. El que preten aquestanova metodologia es desenvolupar aplicacions web correctes i de qualitat, crear un entorn detreball integrat i finalment que tingui una perspectiva funcional del sistema de navegacio i derepresentacio de la informacio.

Figura 2.1: Esquema del proces de desenvolupament de OOWS.

Amb color groc correspon a tota la part de requeriments, casos d’us i escenaris, tot segui podemveure amb color blau el que seria la part corresponent a la metodologia OO-Method i finalmenten color verd correspon el que s’ha incorporat i a passat a ser la metodologia OOWS. Per tantpodem veure que en l’especificacio dels sistema s’ha d’introduir un model de navegacio i unmodel de representacio.

Page 9: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

2.2. MODEL DE NAVEGACIO 9

2.2 Model de navegacio

L’objectiu es definir com se li proporcionara a cada usuari del sistema l’acces a la informacioi la funcionalitat que li es rellevant per portar a terme les seves tasques dins del sistema iquines sequencies de camins haura de seguir per aconseguir-ho. Per tal de modelar aquestesfuncionalitats el model de navegacio esta compost per un conjunt mapes de navegacio i undiagrama d’usuaris.

2.2.1 Diagrama d’usuaris

Aquest tipus de diagrama es on s’hauran de detectar els diferents tipus d’usuaris que intervin-dran en l’aplicacio, especificar quines son les inter-relacions entre els diferents tipus d’usuaris(taxonomies d’usuaris) i quina sera la visibilitat dels atributs i operacions per a cada tipusd’usuari.

En els diagrames que es mostren tot seguit es pot veure un exemple de diagrames d’usaris.

Seguin els exemples anteriors es pot veure a l?esquerra un diagrama d?usuaris, no deixa de serun diagrama on es mostren les relacions d?herencia entre els diferenst usuaris, es a dir, queprimer de tot tenim un usuari Anonim on quest pot ser un membre o un invitat, es a dir, quepot ser un membre registrar a la pagina o un usuari qualsebol. Despres tenim que un membrepot ser administrador de l?aplicacio, on es suposa que aquest tindra mes privilegis sobre la web.

Page 10: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

10 CAPITOL 2. METODOLOGIES DE DISSENY WEB

2.2.2 Mapes de navegacio

El model de navegacio esta compost per un conjunt de mapes de navegacio que representen iestructuren la visio global del sistema per a cada tipus d?usuari, definint una navegacio permesa.Aquests tipus de diagrames es respresenten directament utilitzant un graf dirigit en el que elsnodes son els contextos de navegacio i les arcs son els enllacos de navegacio. En aquest nivelld?abstraccio interess especificar quins contextos formen el mapa de navegacio i com arribar finsa ells. Existeixen dos possibilitats:

• Exploracio (E): Els que si pugui arribar des de qualsebol ubicacio del sistema

• Sequencia (S): Que nomes es pugui arribar als nodes seguin un cami predeterminat depasos de navegacio.

Els contextos d?exploracio defineixen uns enllacos de navegacio implicits (representats per unafletxa amb linies discontinues) que surten de l?usuari i acaben a un context. On es pot marcarun dels enllacos d?exploracio per defecte. Un context de navegacio es una unitat de interaccioabstracta que representa una vista sobre un conjunt de dades i serveis on es accesible perun usuari determinat en un cert moment. Un context de navegacio es representa com unpaquet UML estereotipat amb la paraula context i esta format per un conjunt de clases denavegacio, estereotipades amb la paraula view, que fa referencia a classes especificades en elmodel d?objectes. En aquests es pot definir la visibilitat que tindra l?usuari en aquest node,tant els atributs de la clase com els serveis que pugui activar. Aquest conjunt d?atributs iserveis ha de ser un subconjunt valid d?atributs i serveis amb els que l?agent tingui definits unarelacio d?usuari en el model d?objectes. Associat en els serveis pot apareixer enllacos de serveis.Aquets enllacos indiquen el context destı que s?hi arriba despres de l?execucio del servei.

Page 11: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

2.2. MODEL DE NAVEGACIO 11

Figura 2.2: Mapa de navegacio.

En el context de navegacio hi ha d’apareixer una classe de navegacio principal, anomenadaclase directora i opcionalment altres que ajudin a completar la informacio d’aquesta clase,aquestes anomenades classes complementaries. Les classes de navegacio estan unides entre siper relacions binaries unidireccionats que poden ser definides sobre una relacio d’agregacio od’herencia existent entre les dos clases del model d’objectes. Es poden definir dos tipus derelacions entre les classes de navegacio:

• Relacio de dependencia de context (representada mitjancant fletxes discontinues): nodefineixen navegacio

• Relacio de Context (representada mitjancant fletxes continues): defineixen una navegacioa un context destı.

Page 12: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

12 CAPITOL 2. METODOLOGIES DE DISSENY WEB

Figura 2.3: Context de navegacio.

Les relacions del context tenen les seguents propietats:

• Atributs de context: indiquen el context de destı de la navegacio

• Atributs d’enllac: especifiquen quin atribut s’utilitza com ancora per activar la navegacioal context destı

• Atribut de rol: indica el rol de la navegacio d’agregacio o herencia que s’esta utilitzant.

Figura 2.4: Relacio entre classes de navegacio

Page 13: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

2.3. MODEL DE PRESENTACIO 13

2.3 Model de presentacio

Aquest nou model complementa la informacio capturada en el model de navegacio per la creaciod?interficies amb informacio de presentacio. En aquest model s?utilitzen els nodes i contextosde navegacio com entitats basiques on es defineixen les propietats de representacio adicionals.Existeixen propietats de presentacio que podran ser aplicades a nivell d?un context de navegacio,a nivell d?estructura d?acces i/o mecanismes de cerca (filtres), i a relacions (de navegacio) entreclasses. Els patrons de representacio d?informacio que es poden especificar son:

2.3.1 Paginacio d?informacio

Aquest patro pemet capturar la semantica de la informacio. Quan s?especifica paginacio, elconjunt d?instancies que han de ser presentades seran truncades en blocs logics, de maneraque en una mateixa pantalla nomes apareixin unes quantes instancies del conjunt de totesles possibles. Es proporcionen mecanismes per abancar i tornar endarrera entre les diferentspagines logiques. Els tipus de paginacio poden ser:

• Sequencials: proporcionen acces al seguent, anterior i ultim

• Aleatori: a mes dels anteriors, l?usuari pot accedir directament a un bloc intermig.

En la paginacio es podra tambe indicar:

• Cardinalitat: numero d?instancies a recuperar i podran ser

Una altra propietat de la paginacio es la circulacio, si es pagina amb aquesta propietat, laseguent instancia de la ultima instancia sera la primera instancia, i la instancia anterior a laprimera instancia sera la ultima.

2.3.2 Ordenacio

Aquest patro permet definir una ordenacio de la poblacio d?una classe segons el valor d?un omes atributs sobre els que s?hi aplica. L?ordenacio podra ser accendent o descendent. En casd?aplicar l?ordenacio a varis atributs aquest s?aplicaran de manera jerarquica, comencant delprimer i seguint per els seguents.

2.3.3 Patro de presentacio

Existeixen quatre maneres : registre, tabular, mestre-detall i arbre i es poden aplicar a:

Page 14: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

14 CAPITOL 2. METODOLOGIES DE DISSENY WEB

• Relacions de navegacio: El patro de presentacio definira la manera en que la informaciode les instancies relacionades sera presentada.

• Clase directora: indica la manera en que es veuran les instancies de clase.

Figura 2.5: Patro de presentacio sobre un context de navegacio.

Page 15: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

Capıtol 3

Que es i com funciona un servei web

Un servei web (tambe conegut com Web Service en angles) es una col·leccio de protocols iestandards que serveix per intercanviar dades entre aplicacions. Diferents aplicacions de pro-gramari desenvolupades en llenguatges de programacio diferents i executades sobre qualsevolplataforma poden utilitzar els serveis web per l’intercanvi de dades en una xarxa com Internet.Aquesta gran interoperatibilitat s’aconsegueix gracies a l’adopcio d’estandards oberts. Les or-ganitzacions OASIS i W3C son les responsables de l’arquitectura i reglamentacio dels serveisweb. Per garantir la interoperatibilitat entre les diferents implementacions existeix un organis-me, el WS-I, que es l’encarregat d’especificar de forma exhaustiva tots els aspectes d’aquestsestandards.

3.1 Estandards utilitzats

• Web Services Protocol Stack: Amb aquest nom fem referencia al conjunt de protocols iestandards relacionats amb els serveis web.

• XML: Es el format estandard que es fa servir per representar les dades que s’han detransmetre.

• SOAP o XML-RPC: Principals protocols que es fan servir per establir la comunicacioentre les diferents parts.

• Altres protocols: Tambe es poden fer servir altres protocols per enviar les dades en XML.Per exemple es poden fer servir protocols com HTTP, FTP, o SMTP.

• WSDL: Es el llenguatge que es fa servir per definir la interfıcie publica del servei. Esuna descripcio, feta en XML, que ens defineix tots els aspectes necessaris per establir laconnexio amb un web service en concret.

• UDDI: Protocol per publicar la informacio dels serveis web que estan disponibles. Aixopermet a les aplicacions localitzar quins serveis estan disponibles.

15

Page 16: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

16 CAPITOL 3. QUE ES I COM FUNCIONA UN SERVEI WEB

• WS-Security: Es el protocol de seguretat que garanteix la autenticitat dels diferents actorsi la confidencialitat de les dades que s’envien. Es un protocol acceptat per l’OASIS.

3.2 Avantatges dels serveis web

• Aporten interoperatibilitat entre aplicacions molt diverses, en diverses plataformes, di-versos llenguatges de programacio i de diversos propietaris.

• Els serveis web fomenten l’us dels estandards i protocols basats en text, cosa que fa mesfacil accedir al seu contingut i entendre’n el seu funcionament.

• Al funcionar sobre HTTP, poden aprofitar-se de tots els sistemes de seguretat firewallexistents sense la necessitat de canviar les regles de filtrat.

• Permeten facilment oferir serveis integrats que es basin en serveis de diferents propietarisi distribuıts geograficament.

• Permeten interoperar de forma transparent diferents plataformes.

3.3 Inconvenients dels serveis web

• Per realitzar transaccions no poden comparar-se amb el grau de desenvolupament quetenen els estandards oberts de computacio distribuıda com per exemple el CORBA.

• El seu rendiment es baix si es compara amb altres models de computacio distribuıda comson RMI, CORBA, o DCOM. Aquest es el principal desavantatge derivat d’adoptar unformat basat en text.

Page 17: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

Capıtol 4

Arquitectures web

4.1 Introduccio

Com hem vist al capıtol 3, el principal avantatge dels serveis web es que doten a la informaciode la xarxa de metainformacio estandard intel·ligible per a les maquines, de manera que resultamolt facil integrar-la i utilitzar-la en noves aplicacions. Per exemple, si tenim un lloc web quete habilitats serveis web (suposem una base de dades de preus d’objectes quotidians) podemenviar-li una peticio amb els parametres necessaris per a cercar-hi informacio. A continuacioel lloc web retornara una resposta en un format estandard (generalment un document XML)amb les dades resultants (preus, ubicacio, caracterıstiques, etc). Com que les dades rebudesestan en un format estandaritzat i processable per una maquina, aquestes poden ser integradesdirectament en un altre lloc web per donar-los-hi un us diferent.

Tot seguit es presenten les tres principals maneres per a fer l’intercanvi d’informacio entreserveis web (el que anomenem una arquitectura web) que s’empren actualment, sense entrarexcessivament en detalls tecnics.

4.2 Conceptes d’arquitectures web

4.2.1 XML-RPC

XML-RPC es un protocol de crida a procediments remots (RPC, Remote Procedure Calls)que utilitza el llenguatge XML per a codificar les dades i el protocol HTTP per a transmetremissatges.

Es un protocol molt simple, ja que nomes defineix uns quants tipus de dades i operacions utils, ames d’una senzilla descripcio completa de poca extensio. La simplicitat d’XML-RPC contrastafortament amb la majoria de protocols RPC, que tenen una documentacio molt extensa i

17

Page 18: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

18 CAPITOL 4. ARQUITECTURES WEB

requereixen d’un considerable suport de programari per ser utilitzats.

Aquest protocol va ser creat per Dave Winer de l’empresa UserLand Software en associacioamb Microsoft l’any 1998. En considerar Microsoft que era massa simple, va decidir afegir-lifuncionalitats, i despres de diverses etapes de desenvolupament aquest estandard va deixar deser senzill i es va convertir en el que avui es coneix com SOAP (veure seccio 4.2.2).

Figura 4.1: Esquema de funcionament del protocol XML-RPC.

Veiem un exemple de peticio en XML-RPC:

1 <?xml version ="1.0"? >2 <methodCall >3 <methodName >edu.einf.intercanviDeDades </ methodName >4 <params >5 <param >6 <value ><i4 >360 </i4 ></value >7 </param >8 <param >9 <value ><i4 >221 </i4 ></value >

10 </param >11 </params >12 </methodCall >

Com pot veure’s, la peticio consisteix en la crida a un metode concret (anomenat edu.einf.intercanviDeDades)del servei web, on indiquem els parametres d’entrada (que en aquest exemple son ”360ı ”221”).Noteu que els parametres no tenen nom, i per tant l’ordre en el qual apareixen es importanttant en la peticio com en la resposta (es l’ordre el que els identifica).

Veiem un exemple de resposta que podrıem obtenir havent fet l’anterior peticio XML-RPC:

1 <?xml version ="1.0"? >2 <methodResponse >3 <params >4 <param >5 <value >6 <string >Intercanviades dades n. 360 por 221</string >7 </value >8 </param >9 </params >

10 </methodResponse >

Page 19: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

4.2. CONCEPTES D’ARQUITECTURES WEB 19

La resposta senzillament envia una llista de valors resultat de la crida. Com veiem l’esquemaXML-RPC es forca senzill.

4.2.2 SOAP

SOAP, originalment definit com (Simple Object Access Protocol, tot i que no es en absolut simpleni tampoc cal un llenguatge orientat a objecte per utilitzar-lo) es un protocol per intercanviarinformacio estructurada entre serveis web a traves de la xarxa. Utilitza el llenguatge XML perenviar els missatges, i habitualment es basa en altres protocols d’aplicacio (tıpicament RPC iHTTP) per negociacio de missatges i transmissio.

SOAP va ser impulsat per Microsoft a partir d’XML-RPC, el qual es considera massa senzilli se li van afegir funcionalitats. SOAP es un estandard del W3C des del 24 de juny de 2003.A causa de les funcionalitats afegides, SOAP resulta altament complex i afegeix un importantoverhead en les transmissions de dades, i per aixo ha estat durament criticat pels experts.

Un servei web SOAP es basa en la definicio d’un document WSDL (Web Services DescriptionLanguage) on s’especifica quins metodes ofereix el servei web i quins parametres i de quin tipuscal passar-li.

Veiem un exemple de peticio en SOAP, extret de l’API del servei web de fotografies Flickr:

1 <s:Envelope2 xmlns:s="http ://www.w3.org /2003/05/ soap -envelope"3 xmlns:xsi="http ://www.w3.org /1999/ XMLSchema -instance"4 xmlns:xsd="http ://www.w3.org /1999/ XMLSchema"5 >6 <s:Body >7 <x:FlickrRequest xmlns:x="urn:flickr">8 <method >flickr.test.echo </method >9 <name >value </name >

10 </x:FlickrRequest >11 </s:Body >12 </s:Envelope >

I la resposta que obtindrıem es:

1 <?xml version ="1.0" encoding ="utf -8" ?>2 <s:Envelope3 xmlns:s="http ://www.w3.org /2003/05/ soap -envelope"4 xmlns:xsi="http ://www.w3.org /1999/ XMLSchema -instance"5 xmlns:xsd="http ://www.w3.org /1999/ XMLSchema"6 >

Page 20: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

20 CAPITOL 4. ARQUITECTURES WEB

7 <s:Body >8 <x:FlickrResponse xmlns:x="urn:flickr">9 [escaped -xml -payload]

10 </x:FlickrResponse >11 </s:Body >12 </s:Envelope >

4.2.3 REST

La Transferencia d’Estat Representacional (Representational State Transfer) o REST es unatecnica d’aquitectura software per a sistemes hipermedia distribuıts com la World Wide Web.El terme es va originar l’any 2000, en una tesi doctoral sobre la web escrita per Roy Fielding,un dels principals autors de l’especificacio del protocol HTTP i ha passat a ser ampliamentutilitzat per la comunitat de desenvolupadors.

REST afirma que l’escalabilitat de la web es el resultat d’una serie de conceptes de dissenyclau:

• Un protocol client/servidor sense estat: cada missatge HTTP conte tota la informacionecessaria per comprendre la peticio. Com a resultat, ni el client ni el servidor necessitenrecordar cap estat de les comunicacions entre missatges.

• Un conjunt d’operacions ben definides que s’apliquen a tots els recursos d’informacio:HTTP en sı defineix un conjunt petit pero suficient d’operacions: POST, GET, PUT iDELETE. Com veurem REST utilitza aquestes mateixes operacions en els paquets HTTPper a operar amb els recursos.

• Una sintaxi universal per identificar els recursos. En un sistema REST, cada recurs esadrecable unicament a traves de la seva URI.

• La utilitzacio d’hipermedia, tant per a la informacio de l’aplicacio com per a les transicionsd’estat de l’aplicacio: la representacio d’aquest estat en un sistema REST es tıpicamentHTML o XML. En consequencia, es possible navegar d’un recurs REST a molts altres,senzillament seguin enllacos sense requerir l’us de registres o altra infraestructura addici-onal.

Veiem un exemple concret d’aplicacio, el que seria l’equivalent REST als vistos als punts 4.2.1i 4.2.2 per a XML-RPC i SOAP, respectivament.

Peticio al servei web (acces a un recurs):

1 http :// api.flickr.com/services/rest/? method=flickr.test.echo&name=value

Page 21: Modelat d’aplicacions web - UdGima.udg.edu/~sellares/einf-es2/present0809/modelat_web_sandra_enric.pdf · Web basada en comunitats d’usuaris i una gamma especial de serveis, com

4.3. COMPARATIVA D’XML-RPC, SOAP I REST 21

I rebem la seguent resposta:

1 <?xml version ="1.0" encoding ="utf -8" ?>2 <rsp stat="ok">3 [xml -payload -here]4 </rsp >

Com veiem la utilitzacio de REST es absolutament senzilla en comparacio a XML-RPC iSOAP, i a mes te l’aventatge que no defineix pesades definicions de protocol sino que utilitzala infraestructura natural ja existent a la web.

4.3 Comparativa d’XML-RPC, SOAP i REST

XML-RPC es un protocol senzill, pero precisament la seva senzillesa el fa incomplet per amoltes aplicacions (heus aquı la seva extensio i derivacio cap a SOAP).

SOAP es una especificacio completa, amb moltes funcionalitats, que permet fer l’intercanvid’informacio de tot tipus, pero per contra es complex i pesat. El seu us esta decaient actualmenten favor del concepte REST.

REST es un concepte senzill, complet i potent que aprofita la infraestructura web actual per afer l’intercanvi d’informacio, i que es natural a la web. Actualment s’esta extenent rapidamentla utilitzacio de REST en el desenvolupament de serveis Web, i podem dir que es l’arquitecturaweb amb mes futur.

4.4 El futur de les arquitectures web

Ja fa una colla d’anys enrere va apareixer el que avui anomenem Web 1.0, aquella teranyinamundial d’informacio dispersa, desordenada i sovint mostrada amb un nul sentit de l’estetica peraquells usuaris que es feien al seva web personal, tot i que tambe molts llocs web corporatiusseguien aquest corrent. Amb els serveis web que permeten als usuaris de la web no nomesnavegar-hi sino tambe participar-hi i crear continguts ha esdevingut la web 2.0. Que ensdepara, doncs, la web 3.0?

Ja fa temps que es parla de la web semantica, una idea que el creador de la World Wide Web,Tim Berners-Lee, ja va voler incorporar en les primeres especificacions de la web. La idea de laweb semantica consisteix (breument) en incorporar metainformacio al contingut que els humansvisualitzem, de manera que resulti immediat per a les maquines processar aquesta informacioa fi de poder-hi treballar de manera eficient. Veurem que es el que ens depara el futur.