serveis web - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a...

30
Enginyeria del Software III SERVEIS WEB Roberto García Despatx EPS 3.15 [email protected]

Upload: others

Post on 01-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

Enginyeria del Software III

SERVEIS WEB

Roberto García Despatx EPS 3.15 [email protected]

Page 2: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

OBJECTIU

 Necessitat d’estàndards i eines pel desenvolupament d’aplicacions distribuïdes aprofitat l'infraestructura de la World Wide Web

  Banca on-line   Comerç-e   .....

2

Introducció als Serveis W

eb

Page 3: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ANTECEDENTS EVOLUCIÓ DE LA COMPUTACIÓ DISTRIBUÏDA

 Word Wide Web   Inicialment dissenyada per compartir recursos   Estandardització del protocol HTTP

  Sense estat   Navegador-Servidor Web: GET recursos

  Formateig de dades   HTML, CSS, ...

  Diferents tipus de recursos   MIME: text, html, imatges, vídeos,...

  Navegació i localització NO LINIAL   Hipertexte   Hipermèdia

3

Introducció als Serveis W

eb

Page 4: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

LA WEB COM PLATAFORMA PER APLICACIONS DISTRIBUÏDES

 Aplicacions web (bàsicament estàtiques)  HTTP/HTML

  Originalment dissenyat per accedir a recursos compartits i NO per executar aplicacions de forma remota

 Evolució:   Permetre aplicacions a la Web

4

Introducció als Serveis W

eb

Page 5: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

PRIMERS INTENTS DE CONNEXIÓ EN APLICACIONS WEB

 Formularis Web   Pàgina HTML amb un o més camps d’entrada i un botó

d’enviament (submit)   Click sobre “submit” el navegador envia les dades

d’entrada al servidor   Empaqueta un missatge HTTP per fer la sol·licitud i

posteriorment invoca un mètode GET o POST en el costat servidor

  El servidor passa la sol·licitud i els seus paràmetres a un altre programa

  Dificultat d’integració a nivell d’aplicació   En gran part per la falta d’estructura estandarditzada

(XML ho ha solucionat)

5

Introducció als Serveis W

eb

Page 6: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

WEB SERVICES IMPLEMENTACIONS INICIALS

 XML ofereix la possibilitat d’expressar   estructures d’informació complexes   missatges de forma uniforme i autodescriptius   independent del SO i del llenguatge

 XML-RPC (XML Remote Procedure Call)   Permet cridar procediments d’equips remots   Independentment de Sistemes Operatius o llenguatges

de programació   Protocol senzill basat en HTTP   Poc comú, SOAP més utilitzat (presentat a continuació)

6

Introducció als Serveis W

eb

Page 7: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

INTRODUCCIÓ ALS SERVEIS WEB

 Aplicacions modulars, auto-contingudes i auto-descriptives que poden ser publicades, localitzades i invocades mitjançant la Web

 Basat en els estàndards “omnipresents” d’Internet:   XML, HTTP i SMTP

 Combinen les millors prestacions de la programació amb components i la programació Web

  Independents de SO, llenguatge i també del model de component utilitzat

7

Introducció als Serveis W

eb

Page 8: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

INTRODUCCIÓ ALS SERVEIS WEB

 Desavantatges:   Els components que no estan fortament lligats

entre ells (p.e. fets per diferents equips) porten   més problemes pels programadors, i   donen més errors

8

Introducció als Serveis W

eb

Page 9: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

INTRODUCCIÓ ALS SERVEIS WEB

 Els missatges s’intercanvien mitjançant   SOAP (Simple Object Access Protocol)   XML les tecnologies base dels serveis web

 No tenen estat (cada invocació és independent)  Descripció de la interfície mitjançant WSDL  Pot registrar-se en UDDI

9

Introducció als Serveis W

eb

Page 10: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

SERVEIS WEB. VOCABULARIS XML

  SOAP (Simple Object Access Protocol)   Format dels missatges   Protocol basat en XML per enviar missatges   Comunicació síncrona i asíncrona   HTTP (més freqüent) o SMTP com transport

  WSDL (Web Services Description Language)   Descripció dels serveis   Permet especificar en XML les operacions i tipus de dades

d’un servei web

  UDDI (Universal, Description, Discovery and Integration)   Cerca de serveis   Repositori amb operacions (via SOAP) per registrar i cercar

serveis web 10

Introducció als Serveis W

eb

Page 11: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

SERVEIS WEB

11

Introducció als Serveis W

eb

empresa assembladora

Internet

Proveïdor 1

Proveïdor N

.......

SOAP SOAP

SOAP

registre UDDI

SOAP

Page 12: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

SERVEIS WEB COM ARQUITECTURA D’APLICACIONS

12

Introducció als Serveis W

eb

BBDD

Servei Web

XML SOAP

HTML

WML

VoiceML

XSLT

Page 13: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

SERVEIS WEB COM ARQUITECTURA D’APLICACIONS

13

Introducció als Serveis W

eb

Aplicació d’usuari

Internet Facturació

Gestió d’usuaris

Conversió de Monedes

XML SOAP

Page 14: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

APIS PER A SERVEIS WEB

 Disposem d’un ventall d’APIs (comercials i gratuïtes) pels llenguatges més usuals

 No estan estandarditzades, però no afecta a l’interoperativitat   els protocols sí que són estàndards   Java té les APIs estandarditzades

  formen part de J2EE   podem canviar de fabricant sense que afecti al codi font

  .NET incorpora les APIs

14

Introducció als Serveis W

eb

Page 15: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ÀMBIT D’APLICACIÓ DELS SERVEIS WEB

 Els serveis web són una bona tecnologia per fer integracions en Internet   Els firewalls no acostumen a bloquejar HTTP   Ampli ventall APIs i eines per a la invocació i

implementació de serveis web

  Integració B2B   Constitueix la principal proposta per a la integració

d’aplicacions de negoci a nivell global   Aspectes més febles, suport per a

  seguretat (WS-Security)   transaccions (WS-Transaction)

15

Introducció als Serveis W

eb

Page 16: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

INTRODUCCIÓ ALS SERVEIS WEB

Un usuari (que juga el paper de client dintre dels Serveis Web), a través d'una aplicació, sol·licita informació sobre un viatge que desitja realitzar fent una petició a una agència de viatges que ofereix els seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació requerida. Per a proporcionar al client la informació que necessita, aquesta agència de viatges sol·licita al seu torn informació a altres recursos (altres Serveis Web) en relació amb l'hotel i la línia aèria. L'agència de viatges obtindrà informació d'aquests recursos, el que la converteix al seu torn en client d'aquests altres Serveis Web que li van a proporcionar la informació sol·licitada sobre l'hotel i la línia aèria. Finalment, l'usuari realitzarà el pagament del viatge a través de l'agència de viatges que servirà d'intermediari entre l'usuari i el servei Web que gestionarà el pagament

16

Introducció als Serveis W

eb

http://www.w3c.es/Divulgacion/Guiasbreves/ServiciosWeb#funcionamiento

Page 17: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

TÈCNICAMENT, QUÈ OFEREIXEN DE NOU ELS SERVEIS WEB?

  Ubiqüitat   Accés als serveis des de qualsevol lloc de la Web

  Millor interoperabilitat   Fàcil integrar sistemes diferents

  Simplicitat   Reducció dels costos

  Reutilitzar tecnologies XML, infraestructures Web,...

  Permeten passar aplicacions Web típiques (2-capes) a aplicacions més complexes (n-capes)

  Menor acoblament   Menor dependència entre les parts

  Major granularitat   Solució dividida en parts més petites

17

Introducció als Serveis W

eb

Page 18: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

EXEMPLES DE WEB SERVICES

 Recopilacions de serveis:   www.xmethods.net   www.strikeiron.com   ...

 Exemples de serveis:   Conversors (moneda, unitats,distància, volum, ....)   Serveis de cotització en borsa   Calculadores   Predicció del temps   Estat del trànsit   Preus de subhastes   ...

 OBSERVACIÓ IMPORTANT: tots en comú simplicitat i que no necessiten mantenir estat

18

Introducció als Serveis W

eb

Page 19: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

UTILITZACIÓ DELS SERVEIS WEB

 Descobrir-los (discovery)   UDDI – Universal Description, Discovery &

Integration

 Conèixer exactament què fan i cóm s’utilitzen (description)   WSDL – Web Services Description Languaje

 Invocar-los (invocation)   SOAP – Simple Object Access Protocol

19

Introducció als Serveis W

eb

Page 20: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB

 Bassada sobre la interacció entre tres rols:

  Proveïdor del servei web (Service provider)   des del punt de vista de negoci és el propietari del

servei   des del punt de vista de l’arquitectura és la plataforma

que allotja el servei

20

Introducció als Serveis W

eb

Page 21: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB

  Registre (Service registry)   Registre de descripcions de serveis “cercable” on els

proveïdors publiquen els seus serveis   Els “sol·licitants” del serveis cerquen serveis

o  de forma estàtica: en temps de desenvolupament o  de forma dinàmica: en temps d’execució

  Estrictament “es tracta d’un rol opcional” ja que o  el proveïdor pot enviar la informació del servei directament als

clients o  els clients també poden obtenir descripcions de serveis per vies

alternatives (ftp, lloc web, publicitat, ... )

21

Introducció als Serveis W

eb

Page 22: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB

  Consumidor de Servei (WebService requestor)

  des del punt de vista de negoci és qui necessita certes funcionalitats

  des del punt de vista de l’arquitectura és l’aplicació que està mirant, invocant o iniciant una interacció amb un servei

  aquest rol pot ser realitzat per un navegador dirigit per una persona o un altre programa sense interfície d’usuari

22

Introducció als Serveis W

eb

Page 23: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB

 Aquests 3 rols comporten les operacions de:   Publicar (publish)

  per ser accessible un servei ha d’estar publicat

  Cercar (find)   el consumidor els busca mitjançant el directori de serveis

o  En temps de disseny el programador o  En temps d’execució el programa per invocació

  Crida (bind)

23

Introducció als Serveis W

eb

Page 24: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB

24

Introducció als Serveis W

eb

Registre

Consumidor de Servei Web

Petició SOAP (XML)

Resposta SOAP (XML)

bind (SOAP)

Proveïdor de Servei Web

Page 25: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB CICLE DE VIDA

 Construcció (Build)   Disseny, desenvolupament i test del servei   Definició de la descripció de la interfície

 Desplegament (Deploy)   Publicació i registre del servei   Desplegament dels executables en la Web

 Execució (Run)   El servei està operatiu i accessible, pot ésser invocat

 Gestió (Manage)   Gestió i administració del servei

25

Introducció als Serveis W

eb

Page 26: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

ARQUITECTURA DELS SERVEIS WEB INVOCACIÓ

  Invocació utilitzant SOAP sobre HTTP

26

Introducció als Serveis W

eb

Internet

Stub Skeleton

Client (service requestor)

Implementació del Servei

(service provider)

SOAP SOAP http

Page 27: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

QUAN TRIAR ELS SERVEIS WEB?

 On millor encaixen és a l’hora   de proporcionar accés des de l’exterior a

aplicacions distribuïdes, i   d’invocar serveis externs molt específics

27

Introducció als Serveis W

eb

Page 28: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

PLATAFORMES TECNOLÒGIQUES

 Es disposa de varies plataformes de SW:   Apache Axis   Sun’s Java Enterprise Edition 5+   Microsoft .NET   IBM WebSphere   Macromedia ColdFusion MX   WebLogic   Novell exteNd   ObjectWeb JOnAS   Etc.

28

Introducció als Serveis W

eb

Page 29: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

REFERÈNCIES WEB

 Sun Java Technology and Web Services   http://java.sun.com/webservices

 Microsoft Web Services   http://msdn.microsoft.com/webservices

  IBM Web Services Technologies   http://www.alphaworks.ibm.com/webservices

 StylusStudio Web Service Tools   http://www.stylusstudio.com/web_services.html

 Més informació a Wikipedia   http://en.wikipedia.org/wiki/Web_service

29

Introducció als Serveis W

eb

Page 30: SERVEIS WEB - ocw.udl.catocw.udl.cat/enginyeria-i-arquitectura/enginyeria... · seus serveis a través d'Internet. L'agència de viatges oferirà al seu client (usuari) la informació

BIBLIOGRAFIA

R. Monson-Haefe “J2EE Web services” Addison-Wesley, 2004

W. Iverson “Real World Web Services” O’Reilly, 2004 (recurs electrònic)

30

Introducció als Serveis W

eb