Tema 6 - Servicios Web (Parte 1- Introducción)

download Tema 6 - Servicios Web (Parte 1- Introducción)

of 49

Transcript of Tema 6 - Servicios Web (Parte 1- Introducción)

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    1/49

    Tema VI. Servicios WebI. Introduccin

    Desarrollo de Aplicaciones para InternetCurso 12|13

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    2/49

    ndice

    1.Introduccin

    2.Llamada a Procedimientos Remotos (RPC)

    3.er!icios "e#

    i. Introduccin

    ii. "DL

    iii.$AP

    i!.%DDI

    &.Re'erencias

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    3/49

    ndice

    1.Introduccin

    2.Llamada a Procedimientos Remotos (RPC)

    3.er!icios "e#

    i. Introduccin

    ii. "DL

    iii.$AP

    i!.%DDI

    &.Re'erencias

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    4/49

    Introduccin

    Los ser!icios "e# son una tecnoloa dellamada a procedimientos remotos(RemoteProcedure Call, RPC)

    us caractersticas principalesson %so las tecnoloas * protocolos "e#

    (especialmente +,,P)

    -uertemente #asado en /L

    Independiente del lenua0e

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    5/49

    ndice

    1.Introduccin

    2.Llamada a Procedimientos Remotos (RP!

    3.er!icios "e#

    i. Introduccin

    ii. "DL

    iii.$AP

    i!.%DDI

    &.Re'erencias

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    6/49

    Llamada a Procedimientos Remotos

    "b#etivo principal In!ocacin de procedimientos (o'unciones o mtodos etc.) entre dos procesos

    on tecnoloas cliente$servidor

    %bstraenal proramador de las comunicacionessub&acentesmediante 4estin del medio de comunicacin(estin de

    soc5ets estin de 'lu0os etc.)

    4estin de los protocolos de comunicacin 4estin de la seriali'acin de los datos

    (aplanamiento6marshalling*desaplanamiento6unmarshalling)

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    7/49

    -uncionamiento de RPC

    Aun7ue depende de la tecnoloa el procesode una llamada en RPsuele ser

    1.8l cliente in!oca un procedimiento del stub*

    cliente (llamada local)2.8l stubcliente empa7ueta los par9metros * el

    identi'icador del procedimiento en un mensa0e

    3.8l stubcliente :ace una llamada al sistema RPC

    para en!iar el mensa0e * 7ueda a la espera&.8l mensa0e se en!a al proceso remoto

    ;.8l proceso remoto reci#e el mensa0e

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    8/49

    -uncionamiento de RPC

    Proceso de una llamada en RP (cont.!

    =.8l mensa0e es pasado al stubser!idor (skeleton.8l stubser!idor in!oca el procedimiento del real conlos par9metros reci#idos

    ?.8l stubser!idor recoe el resultado de la llamada * loempa7ueta en un mensa0e

    @.8l mensa0e de respuesta se en!a al cliente1.8l cliente reci#e el mensa0e * lo pasa al stubcliente

    11.8l stubcliente desempa7ueta el mensa0e * de!uel!ecomo resultado de la llamada

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    9/49

    -uncionamiento de RPC

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    10/49

    Componentes RPC

    Los componentes ms )abitualesson Inter*a' del servicio

    Los procedimientos servidosse suelen de'inir en una

    inter*a' Pueden de'inirse en el mismo len+ua#e7ue las

    implementar9 o un len+ua#e +en,rico(IDL, InterfaceDefinition Language)

    Los stubs* skeletonsse eneran a partir de estas

    inter'aces /ediante un compilador de inter*aces 7ue crea * compila

    las implementaciones /edianteproxystransparentescreados durante la e0ecucin

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    11/49

    Componentes RPC

    Los componentes ms )abitualesson(cont.) Stub

    Representantes del ser!idor en el cliente ,iene la misma inter'a 7ue el ser!icio remoto uele ser transparente para el proramador (actEa

    como un o#0eto local)

    Skeleton Representante de los clientes en el ser!idor Conoce a los procedimientos locales ser!idos por RPC 8s 7uien :ace las llamadas reales

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    12/49

    Componentes RPC

    Los componentes ms )abitualesson(cont.) Servicio de binding

    AFade transparencia de localiacin Permite asociar un procedimiento remoto con una

    u#icacin en la m97uina ser!idor (%RL) 4estiona las in!ocaciones remotas para 7ue lleuen al

    procedimiento real 7ue de#e e0ecutarse Decide 7u skeletonde#e estionar cada peticin

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    13/49

    ,ecnoloas RPC

    Alunas de las tecnolo+as RPm9s conocidas son $pen GetBor5 Computin RPC ($GC RPC 6 un RPC)

    Common $#0ect Re7uest Hro5er Arc:itecture (C$RHA)

    %ni Remote Procedure Call (RPC)

    Ja!a Remote /et:od In!ocation (Ja!a R/I)

    /L Remote Procedure Call (/LKRPC)

    J$G Remote Procedure Call

    Distri#uted Component $#0ect /odel (DC$/)

    "indoBs Communication -oundation

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    14/49

    ndice

    1.Introduccin

    2.Llamada a Procedimientos Remotos (RPC)

    -.Servicios Web

    i. Introduccin

    ii. "DL

    iii.$AP

    i!.%DDI

    &.Re'erencias

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    15/49

    er!icios "e#

    %n servicio Webes un sistema so'tBare diseFadopara soportar interacciones interoperablesmuina/a/muinaso#re una red

    ,iene una inter*a'descrita en un 'ormato procesablepor muinas(concretamente WS0L)

    "tros sistemas interactancon el ser!icio "e# delmodo 7ue se prescri#e en su descripcin usandomensa#es S"%P tpicamente transportados usando

    TTPcon una seriali'acin de 34Len con0unto conotros est9ndares "e# relacionados

    De'inicin tomada de :ttp66BBB.B3.or6,R62&6G$,8KBsKlossK2&2116Be#ser!ice

    http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservicehttp://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservicehttp://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservice
  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    16/49

    er!icios "e# !s $tros RPC

    Problemas de otros RP

    Comple0idad

    Coste

    -lei#ilidad oporte

    Dependientes de un lenua0e

    8st9ndares cerrados -alta de acuerdo en la industria

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    17/49

    er!icios "e#

    Venta#as de los Serivicos Web

    Cuanto aparecieron las empresas *a :a#an adoptado+,,P M ,CP6IP como est9ndar de comunicaciones

    /L cu#ri la necesidad de un sistema de codi'icacin *

    'ormato de mensa0es Independiente del lenua0e

    Independiente de la plata'orma

    imples * etensi#les

    Comunicacin en 'ormato teto (/L)

    %so de est9ndares a#iertos ("3C)

    /enos pro#lemas con los 'ireBalls

    u uso se etendi r9pidamente (acuerdo en la industria)

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    18/49

    er!icios "e#

    Creados a partir de 34L/RP(por /icroso't e IH/) e #asan en tres estndares

    Simple "b#ect %ccess Protocol (S"%P!

    Protocolo de comunicaciones

    Web Service 0escription Lan+ua+e (WS0L!

    Lenua0e de descripcin de ser!icios

    5niversal 0escription6 0iscover& and Inte+ration (500I!

    Pu#licacin * solicitud de ser!icios

    Adem9s todos se #asan en 34L Descripcin de los ser!icios

    Representar los mensa0es en!iados

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    19/49

    7lu#o de 8#ecucin

    1.8l ser!idor pu#lica el ser!icio * loreistra en el reistro %DDI

    2.8l cliente #usca un ser!icio en elreistro %DDI

    3.8l cliente o#tiene la descripcin("DL) del ser!icio

    &.8l cliente in!oca el ser!icio

    ;.8l ser!idor de!uel!e la respuesta

    8s :a#itual 7ue no eista un

    ser!idor %DDI con lo 7ue el"DL es ser!ido por el propioser!idor

    8s7uema 4eneral

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    20/49

    Ar7uitectura er!icios "e#

    De'inicin tomada de :ttp66BBB.B3.or6,R6BsKarc:6Bsasd

    http://www.w3.org/TR/ws-arch/#gwsasdhttp://www.w3.org/TR/ws-arch/#gwsasd
  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    21/49

    ndice

    1.Introduccin2.Llamada a Procedimientos Remotos (RPC)

    -.Servicios Web

    i. Introduccin

    ii.WS0L

    iii.$AP

    i!.%DDI&.Re'erencias

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    22/49

    "DL

    8s el lenua0e 7ue permite de*inir los servicios Puede !erse como un I0L Los ser!icios se de'inen utiliando 34L

    Permiten descri#ir Servicios

    Gom#res de ser!icio (puertos) * arumentos ,ipos de los arumentos * del retorno

    Protocolo de transportea utiliar con cada ser!icio 5bicacin del servicio(%RI)

    8s una recomendacin W-

    Nersin 1.1 (m9s etendida) :ttp66BBB.B3.or6,R6Bsdl

    Nersin 2. (actual) :ttp66BBB.B3.or6,R6Bsdl26

    http://www.w3.org/TR/wsdlhttp://www.w3.org/TR/wsdl20/http://www.w3.org/TR/wsdl20/http://www.w3.org/TR/wsdl
  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    23/49

    Documentos "DL

    0escriben un servicio 9eb

    8st9 compuesto por una serie de puertos7uerepresentan los puntos *inales(endpoint) decomunicacin (e7ui!alen a un procedimiento enRPC)

    e distinuen dos partes Seccin abstracta Contiene las de'iniciones de tipos

    mensa0es * las inter'aces (tipos de puerto) Seccin concreta Contiene los bindings* los

    ser!icios concretos

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    24/49

    80emplo O Cdio -uente

    Inter*a' del Servicio (S8I! Publicacin del Servicio

    liente del Servicio (Perl!Implementacin del Servicio (SI:!

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    25/49

    80emplo O "DL

    8n -aitic podis encontrar los siuientes 'ic:eros TimeService.tar.gz Contiene un pro*ecto 8clipse

    con el cdio del e0emplo. 8ste pro*ecto inclu*e lose0emplos de "DL * de $AP

    wsdlRPC.xml Contiene el "DL enerado utiliandoel estilo RPC

    wsdlDocument.xml Contiene el "DL eneradoutiliando el estilo D$C%/8G,

    xsdDocument.xml Contiene el /L c:emaenerado utiliando el estilo D$C%/8G,

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    26/49

    8lementos "DL

    definitions

    8s el elemento ra'

    types(seccin a#stracta)

    Contiene la de'inicin de los tipos usados por el servicio9eb

    uelen utiliarse los tipos deXML Schema

    8s opcional

    message(seccin a#stracta) Contiene la de'inicin de los mensa#es intercambiados

    Representan tanto a peticionescomo a respuestas

    8st9 compuesto una serie de elementos part

    ,ienen un nombre* un tipo(atri#utos name* type)

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    27/49

    8lementos "DL

    portType(seccin a#stracta) Descri#e las operaciones7ue puede realiar el

    ser!icio Be#

    Puede !erse como una #i#lioteca de 'unciones Cada operacin (operation!tiene unos

    mensa#es asociados

    8ntrada (input! 8s el mensa0e 7ue espera reci#ir el

    ser!idor Salida (output! 8s el mensa0e 7ue responder9 el

    ser!idor

  • 7/21/2019 Tema 6 - Servicios Web (Parte 1- Introduccin)

    28/49

    8lementos "DL

    portType(continuacin) 8l orden * presencia de input* outputde'inen

    el modelo de operacin