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