• Like
Servicios web
Upcoming SlideShare
Loading in...5
×

Servicios web

  • 210 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
210
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
15
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Por :Jorge Gonzalez Ramirez
  • 2. IntroduccionExisten múltiples definiciones sobre lo que son los Servicios Web, lo que muestrasu complejidad a la hora de dar una adecuada definición que englobe todo lo queson e implican. Una posible sería hablar de ellos como un conjunto deaplicaciones o de tecnologías con capacidad para interoperar en la Web. Estasaplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecerunos servicios. Los proveedores ofrecen sus servicios como procedimientosremotos y los usuarios solicitan un servicio llamando a estos procedimientos através de la Web.La definicion de wikipedia:Un servicio web (en inglés, Web service) es una pieza de software que utiliza unconjunto de protocolos y estándares que sirven para intercambiar datos entreaplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes deprogramación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizarlos servicios web para intercambiar datos en redes de ordenadores como Internet.La interoperabilidad se consigue mediante la adopción de estándares abiertos.Las organizaciones OASIS y W3C son los comités responsables de la arquitecturay reglamentación de los servicios Web. Para mejorar la interoperabilidad entredistintas implementaciones de servicios Web se ha creado el organismo WS-I,encargado de desarrollar diversos perfiles para definir de manera más exhaustivaestos estándares.Estándares empleados • Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios Web. • XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar. • SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio. • Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol). • WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web. • UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles.
  • 3. • WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados.Como FuncionaFuncionamiento de los Servicios WebSegún el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro delos Servicios Web), a través de una aplicación, solicita información sobre un viajeque desea realizar haciendo una petición a una agencia de viajes que ofrece susservicios a través de Internet. La agencia de viajes ofrecerá a su cliente (usuario)la información requerida. Para proporcionar al cliente la información que necesita,esta agencia de viajes solicita a su vez información a otros recursos (otrosServicios Web) en relación con el hotel y la compañía aérea. La agencia de viajesobtendrá información de estos recursos, lo que la convierte a su vez en cliente deesos otros Servicios Web que le van a proporcionar la información solicitada sobreel hotel y la línea aérea. Por último, el usuario realizará el pago del viaje a travésde la agencia de viajes que servirá de intermediario entre el usuario y el servicioWeb que gestionará el pago.En todo este proceso intervienen una serie de tecnologías que hacen posible estacirculación de información. Por un lado, estaría SOAP (Protocolo Simple de Accesoa Objetos). Se trata de un protocolo basado en XML, que permite la interacciónentre varios dispositivos y que tiene la capacidad de transmitir información
  • 4. compleja. Los datos pueden ser transmitidos a través de HTTP , SMTP , etc. SOAPespecifica el formato de los mensajes. El mensaje SOAP está compuesto por unenvelope (sobre), cuya estructura está formada por los siguientes elementos:header (cabecera) y body (cuerpo).Ventajas de los servicios web • Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen. • Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento. • Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.Inconvenientes de los servicios Web • Para realizar transacciones no pueden compararse en su grado de desarrollo con los estándares abiertos de computación distribuida como CORBA (Common Object Request Broker Architecture). • Su rendimiento es bajo si se compara con otros modelos de computación distribuida, tales como RMI (Remote Method Invocation), CORBA o DCOM (Distributed Component Object Model). Es uno de los inconvenientes derivados de adoptar un formato basado en texto. Y es que entre los
  • 5. objetivos de XML no se encuentra la concisión ni la eficacia de procesamiento. • Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas reglas tratan de bloquear o auditar la comunicación entre programas a ambos lados de la barrera.Razones para crear servicios WebLa principal razón para usar servicios Web es que se pueden utilizar con HTTPsobre TCP (Transmission Control Protocol) en el puerto 80. Dado que lasorganizaciones protegen sus redes mediante firewalls -que filtran y bloquean granparte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80, quees, precisamente, el que usan los navegadores. Los servicios Web utilizan estepuerto, por la simple razón de que no resultan bloqueados. Es importante señalarque los servicios web se pueden utilizar sobre cualquier protocolo, sin embargo,TCP es el más común.Otra razón es que, antes de que existiera SOAP, no había buenas interfaces paraacceder a las funcionalidades de otros ordenadores en red. Las que había eran adhoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC (RemoteProcedure Call), u otras APIs.Una tercera razón por la que los servicios Web son muy prácticos es que puedenaportar gran independencia entre la aplicación que usa el servicio Web y el propioservicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectaral otro. Esta flexibilidad será cada vez más importante, dado que la tendencia aconstruir grandes aplicaciones a partir de componentes distribuidos máspequeños es cada día más utilizada.Seguridad En Los Servicios WebComo todas las aplicaciones, los servicios web requieren de mecanismos deseguridad, tanto para los procesos de autenticación y autorización de usuarios,como para impedir el acceso a la información que se transmite por Internet apersonas no autorizadas.Dado que los servicios web ASP.NET son aplicaciones que se exponen a través deuna página ASP.NET de un servidor web como IIS, y utilizan el protocolo HTTPcomo mecanismo de comunicación, se pueden utilizar los mecanismos deseguridad que éstos proporcionan para la seguridad de la aplicación.AutenticaciónLa autenticación es el proceso mediante el cual se identifica a un usuario y se leconcede acceso al sistema. IIS ofrece varios tipos de autenticación:
  • 6. • Básica. Es un método de autenticación poco o nada seguro, ya que el nombrede usuario y la contraseña se envían como texto codificado en base 64, quepuede ser fácilmente descodificado.• Implícita. Utiliza algoritmos de hash para enviar los datos del cliente. Estaopción no es compatible con todos los sistemas y herramientas de desarrollo deservicios web.• Autenticación de Windows integrada. Se utiliza el mismo mecanismo que el quese utiliza para autenticar usuarios de un sistema Windows remoto. El cliente debepertenecer al mismo dominio que el servidor, o a un dominio en el que el servidorconfíe.En cualquiera de los tipos de autenticación de IIS, se autorizará el acceso a losservicios web si las credenciales coinciden con una cuenta de usuario valida. Laspáginas ASP.NET también proporcionan varios mecanismos de autenticación quese pueden combinar con los mecanismos de autenticación de IIS. Los diferentestipos de autenticación son los siguientes:• Autenticación mediante formularios. Las peticiones no autenticadas se redirigena un formulario HTML en el que el usuario proporciona sus credenciales y lasenvía. Si la aplicación autentica la solicitud, se emite una cookie que contiene lascredenciales o una clave para emitir en posteriores peticiones en los encabezadosdel mensaje.• Autenticación mediante Passport. Se trata de un servicio de autenticacióncentralizado, proporcionado por Microsoft, que ofrece a los sitios web suscritosservicios de perfil básico e inicio de sesión único.• Autenticación de Windows: ASP.NET utiliza la autenticación de Windows juntocon la autenticación de Servicios de Microsoft Internet Information Server (IIS).Cuando IIS autentifica un usuario, ASP.NET utiliza sus datos para autorizar elacceso.AutorizaciónLa autorización es un mecanismo por el cual se comprueba si un determinadousuario tiene permiso para realizar una determinada acción solicitada. Acontinuación, veremos algunos tipos de autorización que se pueden utilizar paracontrolar el acceso a los servicios web:• Seguridad de Windows NT. Se basa en la identidad del usuario y previene deaccesos no autorizados a recursos del sistema, mediante listas discrecionales decontrol de acceso (DACL).• Seguridad basada en roles. Se basa en los roles que un usuario puede asumir.En función de los roles del usuario se determinan las acciones a las que este tiene
  • 7. acceso o no.EncriptaciónLa encriptación evita que los datos que se transmiten entre el consumidor y elservicio web puedan ser interpretados por usuarios no autorizados. Se puedeutilizar un mecanismo de encriptación como SSL (Secure Sockets Layer) queencripte toda la comunicación entre el consumidor servicio web, o implementaruna extensión personalizada de SOAP que permita encriptar solamente aquellaspartes del mensaje que lo requieran, para mejorar el rendimiento.Creacion de Servicios WebASP.NET proporciona servicios de aplicación, a los que se puede obtener accesoen la web, que permiten a las aplicaciones cliente usar la información deautenticación, rol y perfil del usuario. Las aplicaciones cliente escritas enlenguajes diferentes y que se ejecutan en sistemas operativos diferentes puedentener acceso a los servicios. El único requisito es que estos clientes deben podercomunicar usando el protocolo SOAP 1.1.Servicios web de googleGoogle ofrece Servicios a los desarrolladores para que puedan hacer peticiones aGoogle desde sus propias aplicaciones.Esta es una lista de los servicios. • Google Trends se trata de una herramienta orientada a webmasters y profesionales creada para realizar análisis cualitativos de las búsquedas, pudiendose consultar estos por ciudades, regiones y por idioma. También permite comparar varios términos. • Google Website Optimizer: Una herramienta para mejorar los ratios de conversiones de adwords de nuestras páginas • Google Web Search motor de búsqueda de Google. • Google Analytics analiza las páginas web, a través de un código javascript, guardando todo tipo de estadísticas de los visitantes. Permite la integración con una cuenta de AdWords. • Google AdSense es el servicio de publicidad contextual de Google. • Google AdWords es la otra parte de AdSense. Mientras AdSense permite a los webmasters poner los anuncios en sus web, Adwords permite la publicación de estos en la red de AdSense. Además el pasado 21 de noviembre Google liberó el "Onsite Advertiser Sign-Up" que permite a un anunciante publicar sus anuncios en sitios específicos de la red AdSense. • Google Base Libreria de contenidos, portal de anuncios clasificados o
  • 8. servicio inclasificable que permite añadir cualquier tipo de contenido a su base de datos.Servicios de MicrosoftLos servicios de aplicación ASP.NET son servicios Web integrados queproporcionan acceso a características como la autenticación de formularios, lasfunciones y las propiedades de perfil. Estos servicios forman parte de unaarquitectura orientada a servicios (SOA), donde una aplicación está compuesta deuno o más servicios que proporciona el servidor y de uno o más clientes. Paraobtener más información sobre SOA, vea Understanding Service-OrientedArchitecture en el sitio web de MSDN.Una característica importante de los servicios de aplicación ASP.NET es que estándisponibles para diferentes aplicaciones cliente, no sólo para aplicaciones webASP.NET. Los servicios de aplicación ASP.NET están disponibles para cualquiercliente basado en .NET Framework. Además, cualquier aplicación cliente quepuede enviar y recibir mensajes en formato SOAP puede usar los servicios deaplicación ASP.NETLas aplicaciones cliente para los servicios de aplicación ASP.NET pueden ser dediferentes tipos y se pueden ejecutar en sistemas operativos diferentes. Entreellas se incluyen los siguientes tipos de clientes: • Clientes de AJAX. Son páginas web ASP.NET (archivos .aspx) que se ejecutan en el explorador y que tienen acceso a los servicios de aplicación desde script de cliente. Generalmente los clientes de AJAX usan el formato JSON para intercambiar datos. • Clientes de .NET Framework. Son aplicaciones para Windows de .NET Framework que tienen acceso a los servicios de aplicación a través de HTTP mediante la infraestructura de modelo del proveedor y que usan el protocolo JSON para intercambiar datos. • Clientes de SOAP. Son clientes que pueden obtener acceso a los servicios de la aplicación a través de SOAP 1.1. Esto resulta útil para los clientes que se ejecutan en otros sistemas operativos o que usan otras tecnologías, como las aplicaciones Java.La ilustración siguiente muestra cómo diferentes clientes se comunican con losservicios.Comunicación de servicio Web
  • 9. Los servicios de aplicación que proporciona ASP.NET permiten a las aplicacionescliente obtener acceso y compartir información que forma parte de una aplicaciónweb. ASP.NET dispone de los servicios de aplicación siguientes: • Servicio de autenticación. Este servicio permite conceder a los usuarios el inicio de sesión en una aplicación. El servicio acepta las credenciales de usuario y devuelve un vale de autenticación (cookie). • Servicio de funciones. Este servicio determina las funciones relacionadas con la aplicación para un usuario autenticado, basándose en la información que proporciona un proveedor de funciones de ASP.NET. Esto puede ser útil si desea proporcionar una interfaz de usuario específica o si desea permitir el acceso a recursos específicos según la función del usuario. • Servicio de perfil. Este servicio proporciona información por usuario como el perfil de un usuario que está almacenado en el servidor. Esto permite a la aplicación tener acceso a la configuración de un usuario en diferentes momentos y desde diferentes componentes de la interfaz de usuario clienteClientes del servicio de aplicaciónEsta sección proporciona detalles sobre los tipos de aplicaciones cliente quepueden usar servicios de aplicación ASP.NET y alguna información cómo el clientese comunica con un servicio de aplicación.Clientes de AJAXLos clientes de AJAX (páginas web ASP.NET habilitadas para AJAX) intercambiandatos con servicios de aplicación a través de HTTP mediante solicitudes POST. Losdatos se empaquetan en formato JSON. La aplicación cliente se comunica con losservicios de aplicación a través de clases de proxy de script de cliente. El servidorgenera las clases de proxy, que se descargan al explorador como parte decualquier página que llame a un servicio de aplicación.
  • 10. Clientes de .NET FrameworkLos servicios de aplicación ASP.NET intercambian datos con clientes de .NETFramework a través de HTTP mediante solicitudes POST. Los datos se empaquetanen formato JSON. La aplicación cliente se comunica con los servicios de aplicaciónmediante el modelo de proveedor de .NET Framework. En los servicios deaplicación ASP.NET, el modelo de proveedor hace referencia a los tipos de clientede .NET Framework y a los proveedores de pertenencia relacionados quealmacenan y recuperan las credenciales de usuario de un origen de datos.Lacomunicación entre el cliente y el servidor es sincrónica. Los tipos que se definenen el espacio de nombres System.Web.ClientServices.Providers implementan losservicios de aplicación.Para tener acceso a un servicio de aplicación, una aplicación cliente de .NETFramework se debe configurar de forma adecuada. La configuración del servidores igual que la utilizada para los servicios de aplicación en AJAX.Clientes de SOAPPuede tener acceso a los servicios ASP.NET, de autenticación, perfil y serviciosdesde cualquier aplicación cliente en cualquier sistema operativo que puede usarel protocolo SOAP 1.1. Los servicios de aplicación ASP.NET están integradosen Windows Communication Foundation (WCF) e intercambian datos con el clienteen formato SOAP. Para obtener más información, vea XML Web ServicesInfrastructure en el sitio web de MSDN.La comunicación entre el cliente y los servicios de aplicación se realiza medianteclases de proxy que se ejecutan en el cliente y que representan el servicio deaplicación. Puede generar clases de proxy compatibles con los servicios deaplicación ASP.NET mediante la utilidad Service Model Metadata Utility Tool(svcutil.exe)
  • 11. ConclusionesLos Servicios web tienen diversas ventajas como interoperabilidad y laintegración. Atravez de los Servicios Web, las empresas pueden compartirservicios software con sus clientes y sus socios de negocio. Esto permite reducircostos y la integracion de aplicaciones hce posible obtener la informacióndemandada en tiempo real, acelerando el proceso de toma de decisionesProveedores líderes promocionan los Web Services como un modelo deprogramación para la comunicación entre aplicaciones. Estas compañías piensanque la conexión de aplicaciones a través de Internet mejorará la capacidad de lasempresas para trabajar conjuntamente con sus socios de negocio, proveedores yclientes..