+ All Categories
Home > Documents > Tema 02 - Web Services - cs.umss.edu.bo 02 - Web Servi… · Servicios Web COM Object Java Bean ......

Tema 02 - Web Services - cs.umss.edu.bo 02 - Web Servi… · Servicios Web COM Object Java Bean ......

Date post: 19-Sep-2018
Category:
Upload: dophuc
View: 226 times
Download: 0 times
Share this document with a friend
29
Ing. Javier Aranda Pantoja Microsoft Certified Professional Tema 02 Tema 02 Servicios Web Servicios Web Ing. Javier Aranda Pantoja Ing. Javier Aranda Pantoja Microsoft Microsoft Certified Certified Professional Professional [email protected] [email protected] Desarrollo de Aplicaciones Distribuidas con Desarrollo de Aplicaciones Distribuidas con Servicios Web Servicios Web Agenda Agenda Necesidad de los Servicios Web Necesidad de los Servicios Web Protocolos de los Servicios Web Protocolos de los Servicios Web UDDI UDDI WSDL WSDL SOAP SOAP XML XML Creaci Creació n de Servicios Web n de Servicios Web
Transcript

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Tema 02 Tema 02 –– Servicios WebServicios Web

Ing. Javier Aranda PantojaIng. Javier Aranda PantojaMicrosoft Microsoft CertifiedCertified [email protected]@softwareandina.com

Desarrollo de Aplicaciones Distribuidas con Desarrollo de Aplicaciones Distribuidas con Servicios WebServicios Web

AgendaAgenda

Necesidad de los Servicios WebNecesidad de los Servicios WebProtocolos de los Servicios WebProtocolos de los Servicios Web

UDDIUDDIWSDLWSDLSOAPSOAPXMLXML

CreaciCreacióón de Servicios Webn de Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

ObjetivosObjetivos

Poder explicar el contexto tPoder explicar el contexto téécnico en el cnico en el cual trabajan los servicios Webcual trabajan los servicios WebEntender los componentes claves de la Entender los componentes claves de la tecnologtecnologíía de Servicios Weba de Servicios WebCrear un Servicio WebCrear un Servicio WebConfigurar un cliente y un ProxyConfigurar un cliente y un ProxyDesplegar y usar un servicio WebDesplegar y usar un servicio WebDepurar un Servicio WebDepurar un Servicio WebDeterminar la conectividad de un Servicio Determinar la conectividad de un Servicio WebWeb

La plataforma .NETLa plataforma .NET

Servicios Web

Servidores

Soluciones

.NET Fram

ework

& H

erramientas

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Tendencia de las aplicacionesTendencia de las aplicaciones

Son mSon máás dependientes de aplicaciones y s dependientes de aplicaciones y servicios que funcionan en Internetservicios que funcionan en InternetExiste la necesidad de trabajar con Existe la necesidad de trabajar con proveedores remotosproveedores remotosDeben realizar operaciones como:Deben realizar operaciones como:

Validar una compra con tarjeta de crValidar una compra con tarjeta de crééditoditoHacer seguimiento de una paquete enviadoHacer seguimiento de una paquete enviadoPagar cuentasPagar cuentasRealizar reservaciones (boletos de aviRealizar reservaciones (boletos de avióón, n, restaurante, juegos deportivos)restaurante, juegos deportivos)

¿¿CuCuáál es la solucil es la solucióón?n?

Para crear aplicaciones distribuidas los Para crear aplicaciones distribuidas los negocios deben de ofrecer interfaces negocios deben de ofrecer interfaces programprogramááticas de la lticas de la lóógica de su negocio.gica de su negocio.

Estas interfaces deben de ser accesibles Estas interfaces deben de ser accesibles remotamente a travremotamente a travéés de la red.s de la red.

++

Ing. Javier Aranda PantojaMicrosoft Certified Professional

OrientaciOrientacióón a Servicios (SOA)n a Servicios (SOA)

SOA es una paradigma, una estrategia no SOA es una paradigma, una estrategia no una tecnologuna tecnologíía o un productoa o un productoUna estrategia de desarrollar sistemas Una estrategia de desarrollar sistemas usando Servicios a los que adherirseusando Servicios a los que adherirseSOA tiene cuatro principiosSOA tiene cuatro principios

Los lLos líímites son explmites son explíícitoscitosLos servicios son autLos servicios son autóónomosnomosLos servicios intercambian Esquemas y Los servicios intercambian Esquemas y Contratos no ClasesContratos no ClasesLa compatibilidad de servicios es determinada La compatibilidad de servicios es determinada en funcien funcióón a una Poln a una Polííticatica

Servicios y SistemasServicios y Sistemas

Un servicio es una entidad con la cual se Un servicio es una entidad con la cual se interactinteractúúa en funcia en funcióón a intercambio de n a intercambio de mensajesmensajes

EstEstáán hechos para durarn hechos para durarDisponibilidad y estabilidad son aspectos Disponibilidad y estabilidad son aspectos crcrííticosticos

Los sistemas son un conjuntos de Los sistemas son un conjuntos de servicios cooperando en una determinada servicios cooperando en una determinada tareatarea

EstEstáán hechos para cambiarn hechos para cambiarDeben poder adaptarse a nuevos serviciosDeben poder adaptarse a nuevos servicios

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Servicios y SistemasServicios y Sistemas

Los servicios son como Los servicios son como fractalesfractalesUn servicios puede estar compuesto por Un servicios puede estar compuesto por subsubserviciosserviciosY a su vez un Y a su vez un subsub servicio compuesto por servicio compuesto por otros otros subsub serviciosservicios

PurchasingPurchasing

FulfillmentFulfillment

HRHR

The Microsoft BetServices EverywhereThe Microsoft BetThe Microsoft BetServices EverywhereServices Everywhere

New YorkNew YorkOperationsOperations

SQL ClusterSQL Cluster

Mobile Mobile Web Web

FrontendFrontend

PurchasingPurchasing

FulfillmentFulfillment

HRHR

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Importancia de SOAImportancia de SOA

Nos da la oportunidad de re prensar la Nos da la oportunidad de re prensar la forma en que diseforma en que diseññamos y desarrollamos amos y desarrollamos las aplicaciones del malas aplicaciones del maññanaana

Minimizando interdependenciasMinimizando interdependenciasMejorando la independenciaMejorando la independenciaFacilitando la distribuciFacilitando la distribucióón de aplicaciones n de aplicaciones compuestascompuestas

Nos posibilita un alto nivel de Nos posibilita un alto nivel de interoperabilidadinteroperabilidad

Beneficios de SOABeneficios de SOADiseDiseñño y Desarrolloo y Desarrollo

Un modelo de interacciUn modelo de interaccióón facilita la simplicidad, n facilita la simplicidad, correctitudcorrectitud, , independencia de la implementaciindependencia de la implementacióón, manejo de dependencia.n, manejo de dependencia.

OperacionesOperacionesPuntos de interacciPuntos de interaccióón especn especííficos son mficos son máás operabless operablesAislar la capacidad de los servicios de los sistemasAislar la capacidad de los servicios de los sistemasDespliegue, manejo de versiDespliegue, manejo de versióón, topologn, topologíía independientesa independientes

NegociosNegociosLos servicios promueven el Los servicios promueven el reusoreuso, resultando en un menor costo, resultando en un menor costoServicios modelan las capacidades de los negociosServicios modelan las capacidades de los negociosLos Servicios sirven a los sistemas no viceversaLos Servicios sirven a los sistemas no viceversaRelaciones Relaciones interinter--departamentales, departamentales, interinter--organizacionales organizacionales formalizadas y expresadas como serviciosformalizadas y expresadas como serviciosFacilita el Facilita el outsourcingoutsourcing y se enfoca en las competencias y se enfoca en las competencias principalesprincipales

Ing. Javier Aranda PantojaMicrosoft Certified Professional

PracticabilidadPracticabilidad de SOAde SOA

Una Una lengua comlengua comúúnn es necesaria para es necesaria para interactuar con otros serviciosinteractuar con otros servicios

LLíímites, esquema, contratos, polmites, esquema, contratos, polííticasticas

Un entorno SOA extiende Un entorno SOA extiende úúnicamente si nicamente si estamos de acuerdo en la expresiestamos de acuerdo en la expresióón del n del llíímitemite

¿¿Hasta dHasta dóónde requiere que sean los lnde requiere que sean los líímites mites de su servicio?de su servicio?

Aplicaciones SO que requieran una mayor Aplicaciones SO que requieran una mayor interoperabilidad pueden construirse con el interoperabilidad pueden construirse con el protocolo WSprotocolo WS--**

Lógica del negocioAplicación

TecnologTecnologíías previasas previas

Plataforma (SO) Plataforma (SO)

SocketsDCOM

RMI.NET Remoting

COM Object

Java Bean

.NET assembly

ProtocoloProtocolo

Windows Linux SUN OS

Cada plataforma tiene asociado un paradigma de Cada plataforma tiene asociado un paradigma de programaciprogramacióón y un determinado protocolo distribuidon y un determinado protocolo distribuido

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Lógica del negocioAplicación

TecnologTecnologíías previasas previas

Plataforma (SO) Plataforma (SO)

SocketsDCOM

RMI.NET Remoting

COM Object

Java Bean

.NET assembly

ProtocoloProtocolo

Windows Linux SUN OS

El problema es que no existe un protocolo en comEl problema es que no existe un protocolo en comúún lo n lo cual hace muy complejo cual hace muy complejo interoperarinteroperar con otras aplicacionescon otras aplicaciones

Lógica del negocioAplicación

TecnologTecnologíía de Servicios Weba de Servicios Web

Plataforma (SO) Plataforma (SO)

Protocolo deServicios Web

COM Object

Java Bean

.NET assembly

ProtocoloProtocolo

Windows Linux SUN OS

Usando un protocolo estUsando un protocolo estáándar podemos comunicarnos con ndar podemos comunicarnos con cualquier aplicacicualquier aplicacióón que soporte ese estn que soporte ese estáándarndar

HTTP

XML

SOAP

Ing. Javier Aranda PantojaMicrosoft Certified Professional

EjemploEjemplo

Servicio WebServicio WebBibliotecaBiblioteca

UPBUPB

Servicio WebServicio WebBibliotecaBiblioteca

UMSSUMSS

Servicio WebServicio WebBibliotecaBiblioteca

MUNICIPALMUNICIPAL

Sitio WebSitio WebUPBUPB

AplicaciAplicacióón de n de EscritorioEscritorio

UMSSUMSS

Arquitectura de los Servicios WebArquitectura de los Servicios Web

Protocolo de transporte HTTPProtocolo de transporte HTTP

HTTPHTTP

SOAP/XMLSOAP/XML

WSDLWSDL

UDDIUDDI

Aplicación cliente Servicio Web

httphttp

Es un protocolo estEs un protocolo estáándar ndar soportado por todos los SOsoportado por todos los SONo es bloqueado por No es bloqueado por firewallsfirewalls

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Arquitectura de los Servicios WebArquitectura de los Servicios Web

Formato de los mensajes SOAPFormato de los mensajes SOAP

HTTPHTTP

SOAP/XMLSOAP/XML

WSDLWSDL

UDDIUDDI

Aplicación cliente Servicio Web

httphttp

SOAP encapsula objetos SOAP encapsula objetos usando XMLusando XMLPuede ser interpretado Puede ser interpretado ffáácilmentecilmente

<?<?xmlxml versionversion="1.0" ="1.0" encodingencoding="utf="utf--8"?>8"?><<soap:Envelopesoap:Envelopexmlns:xsixmlns:xsi="http://www.w3.org/2001/XMLSchema="http://www.w3.org/2001/XMLSchema--instance" instance" xmlns:xsdxmlns:xsd="http://www.w3.org/2001/XMLSchema" ="http://www.w3.org/2001/XMLSchema" xmlns:soapxmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">="http://schemas.xmlsoap.org/soap/envelope/"><<soap:Bodysoap:Body>><<HelloWorldHelloWorld xmlnsxmlns="http://tempuri.org/" />="http://tempuri.org/" />

</</soap:Bodysoap:Body>></</soap:Envelopesoap:Envelope>> REQUESTREQUEST

<?<?xmlxml versionversion="1.0" ="1.0" encodingencoding="utf="utf--8"?>8"?><<soap:Envelopesoap:Envelopexmlns:xsixmlns:xsi="http://www.w3.org/2001/XMLSchema="http://www.w3.org/2001/XMLSchema--instance" instance" xmlns:xsdxmlns:xsd="http://www.w3.org/2001/XMLSchema" ="http://www.w3.org/2001/XMLSchema" xmlns:soapxmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">="http://schemas.xmlsoap.org/soap/envelope/"><<soap:Bodysoap:Body>><<HelloWorldResponseHelloWorldResponse xmlnsxmlns="http://tempuri.org/">="http://tempuri.org/"><<HelloWorldResultHelloWorldResult>string</>string</HelloWorldResultHelloWorldResult>>

</</HelloWorldResponseHelloWorldResponse>></</soap:Bodysoap:Body></></soap:Envelopesoap:Envelope>>

RESPONSERESPONSE

Arquitectura de los Servicios WebArquitectura de los Servicios Web

¿¿CCóómo puedo saber que lmo puedo saber que lóógica del gica del negocio comparte el Servicio Web?negocio comparte el Servicio Web?

HTTPHTTP

SOAP/XMLSOAP/XML

WSDLWSDL

UDDIUDDI

Aplicación cliente Servicio Web

httphttp

WSDL WSDL definiedefinie todo acerca de todo acerca de la interfaz pla interfaz púública del SWblica del SW

Tipos de datos, mTipos de datos, méétodos, todos, urlurl

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Arquitectura de los Servicios WebArquitectura de los Servicios Web

¿¿CCóómo descubrir Servicios Web en la mo descubrir Servicios Web en la Red?Red?

HTTPHTTP

SOAP/XMLSOAP/XML

WSDLWSDL

UDDIUDDI

Aplicación cliente Servicio Web

httphttp

DISCODISCOUDDI (Universal, UDDI (Universal, DescriptionDescriptionDiscoveryDiscovery andand IntegrationIntegration) ) directorio centraldirectorio central

EjemploEjemplo

Desea potenciar su portal con una Desea potenciar su portal con una herramienta de bherramienta de búúsqueda por lo que ha squeda por lo que ha decidido usar el Servicio Web de decidido usar el Servicio Web de GoogleGoogle

WSDLWSDLhttphttp://://api.google.comapi.google.com//GoogleSearch.wsdlGoogleSearch.wsdlKeyKeyA4CNrLlQFHKtA4CNrLlQFHKt//W3ypUOW3ypUO//cYvEUIE5g2oAcYvEUIE5g2oA

Ing. Javier Aranda PantojaMicrosoft Certified Professional

EjemploEjemplo

La empresa La empresa BookersBookers posee un Servicio posee un Servicio Web que permite consular el catWeb que permite consular el catáálogo de logo de libros que tiene a disposicilibros que tiene a disposicióón. n. UdUd. desea . desea poder realizar bpoder realizar búúsquedas en ese catalogo squedas en ese catalogo desde su sitio Web.desde su sitio Web.http://localhost:2194/Demo01/libros.asmx?wsdlhttp://localhost:2194/Demo01/libros.asmx?wsdl

Necesito conocer el WSDLNecesito conocer el WSDLCrear las clases Crear las clases proxyproxy en el lenguaje en el lenguaje adecuado o usar el adecuado o usar el wsdlwsdl en VS o crear una en VS o crear una referencia Webreferencia WebInstanciarInstanciar el objeto el objeto proxyproxy y acceder a los y acceder a los mméétodos del Servicio Webtodos del Servicio Web

ComunicaciComunicacióón paso a pason paso a paso

DescubrimientoDescubrimiento

Consumir el servicio (SOAP)Consumir el servicio (SOAP)

Tiempo de diseTiempo de diseññoo Tiempo de Tiempo de ejecucionejecucion

httphttp://://yourservice.comyourservice.com

HTML HTML oror XML con el WSDLXML con el WSDL

Como hablamos con (WSDL)Como hablamos con (WSDL)httphttp://://yourservice.comyourservice.com/?WSDL/?WSDL

XML con XML con descripciondescripcion de serviciode servicio

httphttp://://yourservice.comyourservice.com/svc1/svc1XML/SOAP BODYXML/SOAP BODY

Servicio Servicio WebWeb

ConsumidorConsumidorDelDel

Servicio Servicio webweb

UDDIUDDI

Busco el servicioBusco el serviciohttphttp://://www.uddi.orgwww.uddi.org

enlazo DISCO/WSDL al documentoenlazo DISCO/WSDL al documento

Ing. Javier Aranda PantojaMicrosoft Certified Professional

CreaciCreacióón de Servicios Web n de Servicios Web ASMXASMX

Crear un servicio Web es semejante a Crear un servicio Web es semejante a crear una aplicacicrear una aplicacióón Web con n Web con ASP.NETASP.NETcon la diferencia que el servicio Web no con la diferencia que el servicio Web no tiene una interfaz grtiene una interfaz grááfica sfica sóólo responde a lo responde a solicitudessolicitudesUn servicio Web de Un servicio Web de ASP.NETASP.NET es es compuesto porcompuesto por

Un archivo Un archivo asmxasmxUn archivo de Un archivo de codecode behindbehind

CreaciCreacióón de Servicios Web n de Servicios Web ASMXASMX

Un servicio Web requiere para funcionar Un servicio Web requiere para funcionar en un Servidoren un Servidor

Debe estar alojado en un directorio Virtual de Debe estar alojado en un directorio Virtual de IISIISUsando VS 2005 puede funcionar en un Usando VS 2005 puede funcionar en un BuildBuild--in Server (Sin Server (Sóólo en desarrollo y en la mlo en desarrollo y en la mááquina quina local)local)

Usando WSE puede correr en un Servicio Usando WSE puede correr en un Servicio Windows o en un componente COMWindows o en un componente COMDesde el Desde el frameworkframework 2.0 puede correr en 2.0 puede correr en una aplicaciuna aplicacióón de escritorion de escritorio

Ing. Javier Aranda PantojaMicrosoft Certified Professional

EjemploEjemplo

La editorial La editorial BookersBookers desea exponer la desea exponer la llóógica de su negocio usando un Servicio gica de su negocio usando un Servicio Web. El servicio debe de implementar una Web. El servicio debe de implementar una interfase programinterfase programáática que permita realizar tica que permita realizar bbúúsquedas en su catsquedas en su catáálogo de libroslogo de libros

Servicios Web de Servicios Web de ASP.NETASP.NETEn el ServidorEn el Servidor

Genera un archivo Genera un archivo asmxasmx con su respectivo con su respectivo codecodebehindbehind que implementa el Servicio Webque implementa el Servicio WebPuede generar automPuede generar automááticamente el WSDLticamente el WSDLGenera automGenera automááticamente pticamente pááginas Web para probar ginas Web para probar los mlos méétodos del Servicio Web que muestran los todos del Servicio Web que muestran los detalles de SOAP y HTTP.detalles de SOAP y HTTP.Soporta depuraciSoporta depuracióónn

En el clienteEn el clienteAl crear una referencia Web ser generan clases Al crear una referencia Web ser generan clases proxyproxy que abstraen la complejidad y generan que abstraen la complejidad y generan mméétodos todos sincronossincronos y asy asííncronosncronos

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Atributo Atributo WebServiceWebService

Pone a disposiciPone a disposicióón una clase para que n una clase para que pueda ser usada por el servicio Webpueda ser usada por el servicio WebPosee los siguientes parPosee los siguientes paráámetrosmetros

DescriptionDescription. Indica el prop. Indica el propóósito del Servicio sito del Servicio WebWebNameName. Indica el nombre del Servicio Web. Indica el nombre del Servicio WebNamespaceNamespace. Indica un nombre . Indica un nombre úúnico para nico para identificar el Servicio Webidentificar el Servicio Web

Atributo Atributo WebServiceBindingWebServiceBinding

Es similar a una interfase o un contratoEs similar a una interfase o un contratoIndica al Servicio Web que defina un Indica al Servicio Web que defina un conjunto de operacionesconjunto de operacionesCada mCada méétodo del Servicio Web es una todo del Servicio Web es una operacioperacióón dentro un n dentro un BindingBinding particularparticular

ConformsToConformsTo = = BasicProfile1BasicProfile1_1 ( Conforma a _1 ( Conforma a una especificaciuna especificacióón bn báásica que publica WSsica que publica WS--I )I )

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Atributo Atributo WebMethodWebMethodPone a disposiciPone a disposicióón un mn un méétodo para que todo para que pueda ser usado por el servicio Webpueda ser usado por el servicio WebPosee los siguientes parPosee los siguientes paráámetrosmetros

BufferResponseBufferResponse. . TrueTrue. No env. No envíía respuesta hasta a respuesta hasta que el buffer se llene. que el buffer se llene. FalseFalse EnvEnvíía respuesta a medida a respuesta a medida que se va generandoque se va generandoCacheDurationCacheDuration. . Almacena en el Almacena en el cachecache el resultado el resultado del mdel méétodo un determinado ntodo un determinado núúmero de segundosmero de segundosDescriptionDescription. Indica el prop. Indica el propóósito del msito del méétodotodoEnableSessionEnableSession. . Permite manejar Permite manejar HttpSessionStateHttpSessionStateMessageNameMessageName. . Identifica mIdentifica méétodos sobrecargadostodos sobrecargadosTransactionOptionTransactionOption. . Habilita manejo de transaccionesHabilita manejo de transacciones

OneWayOneWay MethodMethod

SSóólo envlo envíía su solicitud al servidor.a su solicitud al servidor.El cliente no espera ninguna respuesta del El cliente no espera ninguna respuesta del servidor.servidor.

[[SoapDocumentMethodSoapDocumentMethod(OneWay(OneWay = = truetrue)])][[WebMethodWebMethod]]publicpublic voidvoid Notify(Notify(stringstring message)message){ {

......}}

Ing. Javier Aranda PantojaMicrosoft Certified Professional

WSDLWSDLEs un documento con formato XML que describe Es un documento con formato XML que describe Servicios Web independiente a la plataforma. Servicios Web independiente a la plataforma. Los elementos de WSDL 1.1 son:Los elementos de WSDL 1.1 son:

DefinitionsDefinitions. El elemento ra. El elemento raíízzTypesTypes. Encierra definiciones de tipos de datos. Encierra definiciones de tipos de datosMessagesMessages. Partes l. Partes lóógicas asociadas con tipos de gicas asociadas con tipos de datosdatosportTypesportTypes. Conjunto de operaciones. Conjunto de operacionesBindingsBindings. Define el formato del mensaje, detalles de . Define el formato del mensaje, detalles de operaciones y mensajes definidos por un operaciones y mensajes definidos por un portypeportypePortsPorts. Define un destino mediante una sola direcci. Define un destino mediante una sola direccióónnServicesServices. Conjunto de puertos. Conjunto de puertos

WSDLWSDLDefine

ServicesPortsOperationsMessagesTypes

DefineDefineServicesServicesPortsPortsOperationsOperationsMessagesMessagesTypesTypes

Service

Port

Message

Operation

Type

Ing. Javier Aranda PantojaMicrosoft Certified Professional

WSDLWSDLConcreto

ServicesPortsBindings

AbstractosPortTypeOperationMenssagesType

ConcretoConcretoServicesServicesPortsPortsBindingsBindings

AbstractosAbstractosPortTypePortTypeOperationOperationMenssagesMenssagesTypeType

Service

Port

Binding Port Type

Message

Operation

Type

WSDLWSDLTypes

TipoElemento

Esquema XMLCustomBuilt in

Types Types TipoTipoElementoElemento

EsquemaEsquema XMLXMLCustomCustomBuilt inBuilt in

Service

Port

Binding Port Type

Message

Operation

Part

<<simpleTypesimpleType>>

<<complexTypecomplexType>>(built in type)(built in type)

<element><element>

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Simple Simple ObjectObject Access Access ProtocolProtocol

Es un protocolo inventado para el Es un protocolo inventado para el intercambio de informaciintercambio de informacióón estructurada n estructurada en un ambiente descentralizado y en un ambiente descentralizado y distribuido. SOAP 1.1 SOAP 1.2distribuido. SOAP 1.1 SOAP 1.2SOAP utiliza XML para definir un SOAP utiliza XML para definir un frameworkframework extensible que es extensible que es independiente del lenguaje de independiente del lenguaje de programaciprogramacióón y la plataforma.n y la plataforma.Puede ser usado por una variedad de Puede ser usado por una variedad de protocolos de red (TCP, HTTP, FTP, protocolos de red (TCP, HTTP, FTP, SMTP, MSMQ)SMTP, MSMQ)

SOAP SOAP MessagingMessaging FrameworkFramework

Define una serie de elementos XML para Define una serie de elementos XML para transportar mensajestransportar mensajes

EnvelopeEnvelope. El elemento ra. El elemento raíízzHeaderHeader. Etiqueta opcional. Etiqueta opcionalBodyBody. Contiene el mensaje. Contiene el mensajeFaultFault. Contiene errores en caso de existir. Contiene errores en caso de existir

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Mensaje SOAP Mensaje SOAP -- SolicitudSolicitud<<soap:Envelopesoap:Envelopexmlns:soapxmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">="http://schemas.xmlsoap.org/soap/envelope/"><<soap:Bodysoap:Body>><<x:TransferFundsx:TransferFunds xmlns:xxmlns:x="urn:examples="urn:examples--org:banking">org:banking"><<fromfrom>22>22--342439</342439</fromfrom>><<toto>98>98--283843</283843</toto>><<amountamount>100.00</>100.00</amountamount>>

</</x:TransferFundsx:TransferFunds>></</soap:Bodysoap:Body>>

</</soap:Envelopesoap:Envelope>>

Mensaje SOAP Mensaje SOAP -- RespuestaRespuesta<<soap:Envelopesoap:Envelopexmlns:soapxmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">="http://schemas.xmlsoap.org/soap/envelope/"><<soap:Bodysoap:Body>><<x:TransferFundsResponsex:TransferFundsResponsexmlns:xxmlns:x="urn:examples="urn:examples--org:banking">org:banking"><<balancesbalances>><<accountaccount><><idid>22>22--342439</342439</idid> >

<<balancebalance>33.45</>33.45</balancebalance></></accountaccount></></balancesbalances>></</x:TransferFundsResponsex:TransferFundsResponse>>

</</soap:Bodysoap:Body>></</soap:Envelopesoap:Envelope>>

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Mensaje SOAP Mensaje SOAP -- ErrorError<<soap:Envelopesoap:Envelopexmlns:soapxmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">="http://schemas.xmlsoap.org/soap/envelope/"><<soap:Bodysoap:Body>><<soap:Faultsoap:Fault>><<faultcodefaultcode>soap:Server</>soap:Server</faultcodefaultcode>><<faultstringfaultstring>Insufficient funds</>Insufficient funds</faultstringfaultstring>><<detaildetail> <> <x:TransferErrorx:TransferError xmlns:xxmlns:x="urn:examples="urn:examples--

org:banking">org:banking"><<sourceAccountsourceAccount>22>22--342439</342439</sourceAccountsourceAccount>><<transferAmounttransferAmount>100.00</>100.00</transferAmounttransferAmount>><<currentBalancecurrentBalance>89.23</>89.23</currentBalancecurrentBalance>>

……..

Procesamiento de SOAPProcesamiento de SOAP

Ing. Javier Aranda PantojaMicrosoft Certified Professional

SOAP SOAP BindingBindingSOAP posibilita el intercambio de mensajes por SOAP posibilita el intercambio de mensajes por varios protocolos. HTTP, FTP, SMTP, TCP.varios protocolos. HTTP, FTP, SMTP, TCP.Un protocolo Un protocolo bindingbinding define exactamente como define exactamente como los mensajes SOAP son transmitidos en un los mensajes SOAP son transmitidos en un determinado protocolo.determinado protocolo.

EjemploEjemplo

La empresa La empresa BookersBookers desea proveer desea proveer formas de usar su catalogo de libros desde formas de usar su catalogo de libros desde dispositivos mdispositivos móóviles.viles.

Usando una aplicaciUsando una aplicacióón Webn WebUsando una aplicaciUsando una aplicacióón n SmartSmart ClientClient

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Despliegue de un Servicio WebDespliegue de un Servicio Web

Nuevo modelo de ejecuciNuevo modelo de ejecucióón de n de ASP.NETASP.NET2.0 compila din2.0 compila dináámicamente los micamente los ensambladosensambladosPara desplegar un Servicio Web se debe Para desplegar un Servicio Web se debe antes antes prepre--compilarlo para generar los compilarlo para generar los ensambladosensamblados

Aplicabilidad de los SWAplicabilidad de los SWAplicaciones Aplicaciones MulticapasMulticapas

AplicaciAplicacióón de una capan de una capa

Smart Client

Lógica del Negocio

Manejo de Datos

Interfaz

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Aplicabilidad de los SWAplicabilidad de los SWAplicaciones Aplicaciones MulticapasMulticapas

AplicaciAplicacióón de dos capasn de dos capas

Servicio WebSmart Client

Interfaz

Manejo de Datos

ProtocoloProtocolo

Lógica del Negocio

Servicio Web

Aplicabilidad de los SWAplicabilidad de los SWAplicaciones Aplicaciones MulticapasMulticapas

AplicaciAplicacióón de tres capasn de tres capasServidor Web - IISSmart Client

Interfaz

Manejo de Datos

HTTPHTTP

Lógica del Negocio SO

AP

SO

AP

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Servicio Web

Aplicabilidad de los SWAplicabilidad de los SWInteroperabilidad con Interoperabilidad con legacylegacy codecode

Smart Client

Interfaz Gateway

HTTPHTTP

Legacy Application

Unmanged code

ConclusionesConclusiones

DiseDiseññar con Orientaciar con Orientacióón a Serviciosn a ServiciosMejorar las posibilidades de Mejorar las posibilidades de interoperarinteroperarIncrementar la autonomIncrementar la autonomíía de sus sistemasa de sus sistemasLos sistemas creados son mLos sistemas creados son máás flexibless flexiblesFFáácil de manejar la versicil de manejar la versióónnTendrTendráán una migracin una migracióón simplificada a n simplificada a IndigoIndigo

Construir sistemas Orientados a Servicios Construir sistemas Orientados a Servicios hoy puede ser confusohoy puede ser confuso

WSE puede ser una soluciWSE puede ser una solucióónn

Ing. Javier Aranda PantojaMicrosoft Certified Professional

ConclusionesConclusiones

Implementar estImplementar estáándares abiertos en los ndares abiertos en los llíímites de sus serviciosmites de sus servicios

Standard transports: HTTP, TCPStandard transports: HTTP, TCPStandard data formats: XML, XSD, SOAPStandard data formats: XML, XSD, SOAPStandard protocols: WSStandard protocols: WS--Security, WSSecurity, WS--Addressing, WSAddressing, WS--Policy, WSPolicy, WS--*, *, ……

TrabajoTrabajo

Implementar el lado cliente del Servicio Implementar el lado cliente del Servicio Web de Web de BookersBookers en los en los sgtessgtes leguajes:leguajes:

Java (Java (desktopdesktop))J2EE Java (J2EE Java (webweb))PHP (PHP (webweb))UnmanagedUnmanaged CC++ (desktop)++ (desktop)JavascriptJavascript (web)(web)ColdFusionColdFusion (web)(web)

Ing. Javier Aranda PantojaMicrosoft Certified Professional

¿¿ Preguntas ?Preguntas ?

RepasoRepaso1.1. ¿¿CuCuáál es el propl es el propóósito de las clases sito de las clases

proxyproxy??2.2. ¿¿CuCuáál es el propl es el propóósito general de SOAP?sito general de SOAP?3.3. Describa el propDescriba el propóósito de UDDI y DISCOsito de UDDI y DISCO4.4. Describa el propDescriba el propóósito general de WSDLsito general de WSDL5.5. ¿¿En que formas puede crear clases En que formas puede crear clases

proxyproxy??6.6. ¿¿QuQuéé herramientas puede usar para herramientas puede usar para

construir y probar Servicios Web?construir y probar Servicios Web?7.7. ¿¿CuCuáál es la ventaja de enviar mensajes l es la ventaja de enviar mensajes

SOAP a travSOAP a travéés de HTTP?s de HTTP?

Ing. Javier Aranda PantojaMicrosoft Certified Professional

RepasoRepaso

You create an XML Web service named PostalCode. Your projectsource includes a code-behind file and a file namedPostalCode.asmx. During implementation, you use the Debug classto record debugging log messages, to verify values, and to reportdebugging failures.You want to deploy PostalCode to a production computer. You do not want any of the debugging code to execute on the productioncomputer.

A. Set the project’s active configuration to Release and rebuild the DLL

B. Modify the trace element of the Web.config file by setting the enabled attribute to “false”

C. Modify the compilation element of the Web.config file by setting the debug attribute to “false”

D. Add code to the constructor of the PostalCode class to set the AutoFlash property of the Debug class to false

E. Add code to the constructor of the PostalCode class to call the Clear method of the Debug.Listeners property

RepasoRepaso

You are creating an XML Web service named InventoryService for a TestKing Ltd. Each branch of TestKing Ltd. will build its own client application to consume InventoryService. Each branch connects to the main office of the dealership by using a virtual private network (VPN). All computers in the dealership run on Microsoft Windows operating systems. You need to ensure that callers of Inventory Service are authenticated based on their Windows logon name and password. You configure Internet Information Services (IIS)according to your security needs. You need to configure the authentication type in the Web.config file. Which code segment should you use?

A. <authentication mode=”Basic” />B. <authentication mode=”Forms” />C. <authentication mode=”Integrated” />D. <authentication mode=”Windows” />

Ing. Javier Aranda PantojaMicrosoft Certified Professional

RepasoRepaso

You are preparing to deploy an XML Web service named TestKingInventoryService. This service queries a Microsoft SQL Server database and returns information to the caller. You use Visual Studio .NET to create a setup project. You need to install InventoryService. You also need to run a script to create the necessary SQL Server database and tables to store the data. To accomplish this, you need to configure the project to have administrator rights to the SQL Server database. You add a custom dialog box to the project that prompts the user for the administrator user name and password that are used to connect to the SQL Server database. You need to make the user name and passwordavailable to a custom Installer class that will execute the script. What should you do?

A. Add a launch condition that passed the user name and password to the Install subroutine.

B. Add a merge module to the project that captures the user name and password. Use the merge module to access these values in the Install subroutine.

C. Retrieve the user name and password from the savedState object in the Install subroutine.

D. Create a custom install action. Set the CustomActionData property to the entered user name and password. Then access these values in the Install subroutine.

ReferenciasReferencias

ChapterChapter 4 Basic Web 4 Basic Web ServicesServices. . DevelopingDevelopingXML Web XML Web ServicesServices andand Server Server ComponentsComponents withwithVisual Visual C#C#

Entendiendo WSDLEntendiendo WSDLhttp://msdn.microsoft.com/archive/default.asp?url=/archive/enhttp://msdn.microsoft.com/archive/default.asp?url=/archive/en--us/dnarxml/html/wsdlexplained.aspus/dnarxml/html/wsdlexplained.asp

Entendiendo Entendiendo SoapSoaphttp://http://msdn.microsoft.com/library/default.asp?urlmsdn.microsoft.com/library/default.asp?url=/library/en=/library/en--us/us/dnsoap/html/understandsoap.aspdnsoap/html/understandsoap.asp


Recommended