SlideShare una empresa de Scribd logo
Por :Jorge Gonzalez Ramirez
Introduccion

Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra
su complejidad a la hora de dar una adecuada definición que englobe todo lo que
son e implican. Una posible sería hablar de ellos como un conjunto de
aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas
aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer
unos servicios. Los proveedores ofrecen sus servicios como procedimientos
remotos y los usuarios solicitan un servicio llamando a estos procedimientos a
través de la Web.


La definicion de wikipedia:

Un servicio web (en inglés, Web service) es una pieza de software que utiliza un
conjunto de protocolos y estándares que sirven para intercambiar datos entre
aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de
programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar
los 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 arquitectura
y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre
distintas implementaciones de servicios Web se ha creado el organismo WS-I,
encargado de desarrollar diversos perfiles para definir de manera más exhaustiva
estos 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.
• 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 Funciona




Funcionamiento de los Servicios Web

Según el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro de
los Servicios Web), a través de una aplicación, solicita información sobre un viaje
que desea realizar haciendo una petición a una agencia de viajes que ofrece sus
servicios 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 (otros
Servicios Web) en relación con el hotel y la compañía aérea. La agencia de viajes
obtendrá información de estos recursos, lo que la convierte a su vez en cliente de
esos otros Servicios Web que le van a proporcionar la información solicitada sobre
el hotel y la línea aérea. Por último, el usuario realizará el pago del viaje a través
de la agencia de viajes que servirá de intermediario entre el usuario y el servicio
Web que gestionará el pago.


En todo este proceso intervienen una serie de tecnologías que hacen posible esta
circulación de información. Por un lado, estaría SOAP (Protocolo Simple de Acceso
a Objetos). Se trata de un protocolo basado en XML, que permite la interacción
entre varios dispositivos y que tiene la capacidad de transmitir información
compleja. Los datos pueden ser transmitidos a través de HTTP , SMTP , etc. SOAP
especifica el formato de los mensajes. El mensaje SOAP está compuesto por un
envelope (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
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 Web

La principal razón para usar servicios Web es que se pueden utilizar con HTTP
sobre TCP (Transmission Control Protocol) en el puerto 80. Dado que las
organizaciones protegen sus redes mediante firewalls -que filtran y bloquean gran
parte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80, que
es, precisamente, el que usan los navegadores. Los servicios Web utilizan este
puerto, por la simple razón de que no resultan bloqueados. Es importante señalar
que 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 para
acceder a las funcionalidades de otros ordenadores en red. Las que había eran ad
hoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC (Remote
Procedure Call), u otras APIs.
Una tercera razón por la que los servicios Web son muy prácticos es que pueden
aportar gran independencia entre la aplicación que usa el servicio Web y el propio
servicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectar
al otro. Esta flexibilidad será cada vez más importante, dado que la tendencia a
construir grandes aplicaciones a partir de componentes distribuidos más
pequeños es cada día más utilizada.



Seguridad En Los Servicios Web

Como todas las aplicaciones, los servicios web requieren de mecanismos de
seguridad, 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 a
personas no autorizadas.

Dado que los servicios web ASP.NET son aplicaciones que se exponen a través de
una página ASP.NET de un servidor web como IIS, y utilizan el protocolo HTTP
como mecanismo de comunicación, se pueden utilizar los mecanismos de
seguridad que éstos proporcionan para la seguridad de la aplicación.

Autenticación

La autenticación es el proceso mediante el cual se identifica a un usuario y se le
concede acceso al sistema. IIS ofrece varios tipos de autenticación:
• Básica. Es un método de autenticación poco o nada seguro, ya que el nombre
de usuario y la contraseña se envían como texto codificado en base 64, que
puede ser fácilmente descodificado.

• Implícita. Utiliza algoritmos de hash para enviar los datos del cliente. Esta
opción no es compatible con todos los sistemas y herramientas de desarrollo de
servicios web.

• Autenticación de Windows integrada. Se utiliza el mismo mecanismo que el que
se utiliza para autenticar usuarios de un sistema Windows remoto. El cliente debe
pertenecer al mismo dominio que el servidor, o a un dominio en el que el servidor
confíe.

En cualquiera de los tipos de autenticación de IIS, se autorizará el acceso a los
servicios web si las credenciales coinciden con una cuenta de usuario valida. Las
páginas ASP.NET también proporcionan varios mecanismos de autenticación que
se pueden combinar con los mecanismos de autenticación de IIS. Los diferentes
tipos de autenticación son los siguientes:

• Autenticación mediante formularios. Las peticiones no autenticadas se redirigen
a un formulario HTML en el que el usuario proporciona sus credenciales y las
envía. Si la aplicación autentica la solicitud, se emite una cookie que contiene las
credenciales o una clave para emitir en posteriores peticiones en los encabezados
del mensaje.

• Autenticación mediante Passport. Se trata de un servicio de autenticación
centralizado, proporcionado por Microsoft, que ofrece a los sitios web suscritos
servicios de perfil básico e inicio de sesión único.

• Autenticación de Windows: ASP.NET utiliza la autenticación de Windows junto
con la autenticación de Servicios de Microsoft Internet Information Server (IIS).
Cuando IIS autentifica un usuario, ASP.NET utiliza sus datos para autorizar el
acceso.

Autorización

La autorización es un mecanismo por el cual se comprueba si un determinado
usuario tiene permiso para realizar una determinada acción solicitada. A
continuación, veremos algunos tipos de autorización que se pueden utilizar para
controlar el acceso a los servicios web:

• Seguridad de Windows NT. Se basa en la identidad del usuario y previene de
accesos no autorizados a recursos del sistema, mediante listas discrecionales de
control 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
acceso o no.

Encriptación

La encriptación evita que los datos que se transmiten entre el consumidor y el
servicio web puedan ser interpretados por usuarios no autorizados. Se puede
utilizar un mecanismo de encriptación como SSL (Secure Sockets Layer) que
encripte toda la comunicación entre el consumidor servicio web, o implementar
una extensión personalizada de SOAP que permita encriptar solamente aquellas
partes del mensaje que lo requieran, para mejorar el rendimiento.



Creacion de Servicios Web

ASP.NET proporciona servicios de aplicación, a los que se puede obtener acceso
en la web, que permiten a las aplicaciones cliente usar la información de
autenticación, rol y perfil del usuario. Las aplicaciones cliente escritas en
lenguajes diferentes y que se ejecutan en sistemas operativos diferentes pueden
tener acceso a los servicios. El único requisito es que estos clientes deben poder
comunicar usando el protocolo SOAP 1.1.


Servicios web de google

Google ofrece Servicios a los desarrolladores para que puedan hacer peticiones a
Google 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
servicio inclasificable que permite añadir cualquier tipo de contenido a su
      base de datos.


Servicios de Microsoft

Los servicios de aplicación ASP.NET son servicios Web integrados que
proporcionan acceso a características como la autenticación de formularios, las
funciones y las propiedades de perfil. Estos servicios forman parte de una
arquitectura orientada a servicios (SOA), donde una aplicación está compuesta de
uno o más servicios que proporciona el servidor y de uno o más clientes. Para
obtener más información sobre SOA, vea Understanding Service-Oriented
Architecture en el sitio web de MSDN.
Una característica importante de los servicios de aplicación ASP.NET es que están
disponibles para diferentes aplicaciones cliente, no sólo para aplicaciones web
ASP.NET. Los servicios de aplicación ASP.NET están disponibles para cualquier
cliente basado en .NET Framework. Además, cualquier aplicación cliente que
puede enviar y recibir mensajes en formato SOAP puede usar los servicios de
aplicación ASP.NET

Las aplicaciones cliente para los servicios de aplicación ASP.NET pueden ser de
diferentes tipos y se pueden ejecutar en sistemas operativos diferentes. Entre
ellas 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 los
servicios.
Comunicación de servicio Web
Los servicios de aplicación que proporciona ASP.NET permiten a las aplicaciones
cliente obtener acceso y compartir información que forma parte de una aplicación
web. 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 cliente


Clientes del servicio de aplicación
Esta sección proporciona detalles sobre los tipos de aplicaciones cliente que
pueden usar servicios de aplicación ASP.NET y alguna información cómo el cliente
se comunica con un servicio de aplicación.

Clientes de AJAX
Los clientes de AJAX (páginas web ASP.NET habilitadas para AJAX) intercambian
datos con servicios de aplicación a través de HTTP mediante solicitudes POST. Los
datos se empaquetan en formato JSON. La aplicación cliente se comunica con los
servicios de aplicación a través de clases de proxy de script de cliente. El servidor
genera las clases de proxy, que se descargan al explorador como parte de
cualquier página que llame a un servicio de aplicación.
Clientes de .NET Framework
Los servicios de aplicación ASP.NET intercambian datos con clientes de .NET
Framework a través de HTTP mediante solicitudes POST. Los datos se empaquetan
en formato JSON. La aplicación cliente se comunica con los servicios de aplicación
mediante el modelo de proveedor de .NET Framework. En los servicios de
aplicación ASP.NET, el modelo de proveedor hace referencia a los tipos de cliente
de .NET Framework y a los proveedores de pertenencia relacionados que
almacenan y recuperan las credenciales de usuario de un origen de datos.La
comunicación entre el cliente y el servidor es sincrónica. Los tipos que se definen
en el espacio de nombres System.Web.ClientServices.Providers implementan los
servicios de aplicación.
Para tener acceso a un servicio de aplicación, una aplicación cliente de .NET
Framework se debe configurar de forma adecuada. La configuración del servidor
es igual que la utilizada para los servicios de aplicación en AJAX.



Clientes de SOAP
Puede tener acceso a los servicios ASP.NET, de autenticación, perfil y servicios
desde cualquier aplicación cliente en cualquier sistema operativo que puede usar
el protocolo SOAP 1.1. Los servicios de aplicación ASP.NET están integrados
en Windows Communication Foundation (WCF) e intercambian datos con el cliente
en formato SOAP. Para obtener más información, vea XML Web Services
Infrastructure en el sitio web de MSDN.
La comunicación entre el cliente y los servicios de aplicación se realiza mediante
clases de proxy que se ejecutan en el cliente y que representan el servicio de
aplicación. Puede generar clases de proxy compatibles con los servicios de
aplicación ASP.NET mediante la utilidad Service Model Metadata Utility Tool
(svcutil.exe)
Conclusiones


Los Servicios web tienen diversas ventajas como interoperabilidad y la
integración. Atravez de los Servicios Web, las empresas pueden compartir
servicios software con sus clientes y sus socios de negocio. Esto permite reducir
costos y la integracion de aplicaciones hce posible obtener la información
demandada en tiempo real, acelerando el proceso de toma de decisiones

Proveedores líderes promocionan los       Web Services como un modelo de
programación para la comunicación entre aplicaciones. Estas compañías piensan
que la conexión de aplicaciones a través de Internet mejorará la capacidad de las
empresas para trabajar conjuntamente con sus socios de negocio, proveedores y
clientes.

.

Más contenido relacionado

PDF
Servicios web(alma y veronica)
PPTX
Web services
PDF
RES - Transferencia de Estado Representacional
PDF
Web services en sistemas distribuidos
PPTX
Presentacion Unidad 6
PPTX
Servicios web
PPTX
Servicios Web
Servicios web(alma y veronica)
Web services
RES - Transferencia de Estado Representacional
Web services en sistemas distribuidos
Presentacion Unidad 6
Servicios web
Servicios Web

La actualidad más candente (19)

PPTX
Servicios web internet
PPT
4 servicios de internet
 
PPTX
Presentación servicios web
PPTX
Diapositivas servicios web
PDF
Servicios web
PPT
Servicios Web
PPTX
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
PPTX
WCF for Dummies (Parte I)
DOCX
Bases de datos en el web
PPTX
Servicios web
PPTX
Introducción a WCF
DOCX
Base de datos en internet
DOCX
Bases de datos en el web
PPTX
Servicios web
PPTX
DOCX
Servicios web
PPTX
Wimdows comunication foundation
PPTX
Servicios web xml
PPTX
Windows communication foundation (wcf)
Servicios web internet
4 servicios de internet
 
Presentación servicios web
Diapositivas servicios web
Servicios web
Servicios Web
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
WCF for Dummies (Parte I)
Bases de datos en el web
Servicios web
Introducción a WCF
Base de datos en internet
Bases de datos en el web
Servicios web
Servicios web
Wimdows comunication foundation
Servicios web xml
Windows communication foundation (wcf)
Publicidad

Similar a Servicios web (20)

PPT
Java2 servicios web
PDF
Manual webservices
PDF
Servicios WEB
PPT
Semana 15 -servicios_web
PDF
Formación WS
PPT
Charla Web Services
PDF
Servicios web
PDF
Servicios web
PPT
4 servicios de internet
 
PPTX
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
PDF
23444719 monografia-de-web-services
PPTX
Servicios web
PPTX
6-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Conceptos Básicos
PDF
Servicios w eb
PDF
Pruebas de Servicios Web, ¿Codificar o No Codificar?
PPTX
LA WEB 2.0
PPTX
web 2.0
Java2 servicios web
Manual webservices
Servicios WEB
Semana 15 -servicios_web
Formación WS
Charla Web Services
Servicios web
Servicios web
4 servicios de internet
 
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
23444719 monografia-de-web-services
Servicios web
6-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Conceptos Básicos
Servicios w eb
Pruebas de Servicios Web, ¿Codificar o No Codificar?
LA WEB 2.0
web 2.0
Publicidad

Último (20)

PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
Diapositiva proyecto de vida, materia catedra
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
unidad 3 tecnología 8° básico: planificación y elaboración de un objeto
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
ccna: redes de nat ipv4 stharlling cande
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PDF
Distribucion de frecuencia exel (1).pdf
PDF
CyberOps Associate - Cisco Networking Academy
PDF
capacitación de aire acondicionado Bgh r 410
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
informe_fichas1y2_corregido.docx (2) (1).pdf
Diapositiva proyecto de vida, materia catedra
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Documental Beyond the Code (Dossier Presentación - 2.0)
Curso de generación de energía mediante sistemas solares
Presentacion de Alba Curso Auditores Internos ISO 19011
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
historia_web de la creacion de un navegador_presentacion.pptx
unidad 3 tecnología 8° básico: planificación y elaboración de un objeto
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
MANUAL de recursos humanos para ODOO.pdf
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Propuesta BKP servidores con Acronis1.pptx
ccna: redes de nat ipv4 stharlling cande
Protocolos de seguridad y mecanismos encriptación
Mecanismos-de-Propagacion de ondas electromagneticas
Distribucion de frecuencia exel (1).pdf
CyberOps Associate - Cisco Networking Academy
capacitación de aire acondicionado Bgh r 410
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj

Servicios web

  • 2. Introduccion Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a través de la Web. La definicion de wikipedia: Un servicio web (en inglés, Web service) es una pieza de software que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los 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 arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos 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 Funciona Funcionamiento de los Servicios Web Según el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro de los Servicios Web), a través de una aplicación, solicita información sobre un viaje que desea realizar haciendo una petición a una agencia de viajes que ofrece sus servicios 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 (otros Servicios Web) en relación con el hotel y la compañía aérea. La agencia de viajes obtendrá información de estos recursos, lo que la convierte a su vez en cliente de esos otros Servicios Web que le van a proporcionar la información solicitada sobre el hotel y la línea aérea. Por último, el usuario realizará el pago del viaje a través de la agencia de viajes que servirá de intermediario entre el usuario y el servicio Web que gestionará el pago. En todo este proceso intervienen una serie de tecnologías que hacen posible esta circulación de información. Por un lado, estaría SOAP (Protocolo Simple de Acceso a Objetos). Se trata de un protocolo basado en XML, que permite la interacción entre 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. SOAP especifica el formato de los mensajes. El mensaje SOAP está compuesto por un envelope (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 Web La principal razón para usar servicios Web es que se pueden utilizar con HTTP sobre TCP (Transmission Control Protocol) en el puerto 80. Dado que las organizaciones protegen sus redes mediante firewalls -que filtran y bloquean gran parte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80, que es, precisamente, el que usan los navegadores. Los servicios Web utilizan este puerto, por la simple razón de que no resultan bloqueados. Es importante señalar que 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 para acceder a las funcionalidades de otros ordenadores en red. Las que había eran ad hoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC (Remote Procedure Call), u otras APIs. Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada vez más importante, dado que la tendencia a construir grandes aplicaciones a partir de componentes distribuidos más pequeños es cada día más utilizada. Seguridad En Los Servicios Web Como todas las aplicaciones, los servicios web requieren de mecanismos de seguridad, 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 a personas no autorizadas. Dado que los servicios web ASP.NET son aplicaciones que se exponen a través de una página ASP.NET de un servidor web como IIS, y utilizan el protocolo HTTP como mecanismo de comunicación, se pueden utilizar los mecanismos de seguridad que éstos proporcionan para la seguridad de la aplicación. Autenticación La autenticación es el proceso mediante el cual se identifica a un usuario y se le concede 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 nombre de usuario y la contraseña se envían como texto codificado en base 64, que puede ser fácilmente descodificado. • Implícita. Utiliza algoritmos de hash para enviar los datos del cliente. Esta opción no es compatible con todos los sistemas y herramientas de desarrollo de servicios web. • Autenticación de Windows integrada. Se utiliza el mismo mecanismo que el que se utiliza para autenticar usuarios de un sistema Windows remoto. El cliente debe pertenecer al mismo dominio que el servidor, o a un dominio en el que el servidor confíe. En cualquiera de los tipos de autenticación de IIS, se autorizará el acceso a los servicios web si las credenciales coinciden con una cuenta de usuario valida. Las páginas ASP.NET también proporcionan varios mecanismos de autenticación que se pueden combinar con los mecanismos de autenticación de IIS. Los diferentes tipos de autenticación son los siguientes: • Autenticación mediante formularios. Las peticiones no autenticadas se redirigen a un formulario HTML en el que el usuario proporciona sus credenciales y las envía. Si la aplicación autentica la solicitud, se emite una cookie que contiene las credenciales o una clave para emitir en posteriores peticiones en los encabezados del mensaje. • Autenticación mediante Passport. Se trata de un servicio de autenticación centralizado, proporcionado por Microsoft, que ofrece a los sitios web suscritos servicios de perfil básico e inicio de sesión único. • Autenticación de Windows: ASP.NET utiliza la autenticación de Windows junto con la autenticación de Servicios de Microsoft Internet Information Server (IIS). Cuando IIS autentifica un usuario, ASP.NET utiliza sus datos para autorizar el acceso. Autorización La autorización es un mecanismo por el cual se comprueba si un determinado usuario tiene permiso para realizar una determinada acción solicitada. A continuación, veremos algunos tipos de autorización que se pueden utilizar para controlar el acceso a los servicios web: • Seguridad de Windows NT. Se basa en la identidad del usuario y previene de accesos no autorizados a recursos del sistema, mediante listas discrecionales de control 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ón La encriptación evita que los datos que se transmiten entre el consumidor y el servicio web puedan ser interpretados por usuarios no autorizados. Se puede utilizar un mecanismo de encriptación como SSL (Secure Sockets Layer) que encripte toda la comunicación entre el consumidor servicio web, o implementar una extensión personalizada de SOAP que permita encriptar solamente aquellas partes del mensaje que lo requieran, para mejorar el rendimiento. Creacion de Servicios Web ASP.NET proporciona servicios de aplicación, a los que se puede obtener acceso en la web, que permiten a las aplicaciones cliente usar la información de autenticación, rol y perfil del usuario. Las aplicaciones cliente escritas en lenguajes diferentes y que se ejecutan en sistemas operativos diferentes pueden tener acceso a los servicios. El único requisito es que estos clientes deben poder comunicar usando el protocolo SOAP 1.1. Servicios web de google Google ofrece Servicios a los desarrolladores para que puedan hacer peticiones a Google 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 Microsoft Los servicios de aplicación ASP.NET son servicios Web integrados que proporcionan acceso a características como la autenticación de formularios, las funciones y las propiedades de perfil. Estos servicios forman parte de una arquitectura orientada a servicios (SOA), donde una aplicación está compuesta de uno o más servicios que proporciona el servidor y de uno o más clientes. Para obtener más información sobre SOA, vea Understanding Service-Oriented Architecture en el sitio web de MSDN. Una característica importante de los servicios de aplicación ASP.NET es que están disponibles para diferentes aplicaciones cliente, no sólo para aplicaciones web ASP.NET. Los servicios de aplicación ASP.NET están disponibles para cualquier cliente basado en .NET Framework. Además, cualquier aplicación cliente que puede enviar y recibir mensajes en formato SOAP puede usar los servicios de aplicación ASP.NET Las aplicaciones cliente para los servicios de aplicación ASP.NET pueden ser de diferentes tipos y se pueden ejecutar en sistemas operativos diferentes. Entre ellas 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 los servicios. Comunicación de servicio Web
  • 9. Los servicios de aplicación que proporciona ASP.NET permiten a las aplicaciones cliente obtener acceso y compartir información que forma parte de una aplicación web. 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 cliente Clientes del servicio de aplicación Esta sección proporciona detalles sobre los tipos de aplicaciones cliente que pueden usar servicios de aplicación ASP.NET y alguna información cómo el cliente se comunica con un servicio de aplicación. Clientes de AJAX Los clientes de AJAX (páginas web ASP.NET habilitadas para AJAX) intercambian datos con servicios de aplicación a través de HTTP mediante solicitudes POST. Los datos se empaquetan en formato JSON. La aplicación cliente se comunica con los servicios de aplicación a través de clases de proxy de script de cliente. El servidor genera las clases de proxy, que se descargan al explorador como parte de cualquier página que llame a un servicio de aplicación.
  • 10. Clientes de .NET Framework Los servicios de aplicación ASP.NET intercambian datos con clientes de .NET Framework a través de HTTP mediante solicitudes POST. Los datos se empaquetan en formato JSON. La aplicación cliente se comunica con los servicios de aplicación mediante el modelo de proveedor de .NET Framework. En los servicios de aplicación ASP.NET, el modelo de proveedor hace referencia a los tipos de cliente de .NET Framework y a los proveedores de pertenencia relacionados que almacenan y recuperan las credenciales de usuario de un origen de datos.La comunicación entre el cliente y el servidor es sincrónica. Los tipos que se definen en el espacio de nombres System.Web.ClientServices.Providers implementan los servicios de aplicación. Para tener acceso a un servicio de aplicación, una aplicación cliente de .NET Framework se debe configurar de forma adecuada. La configuración del servidor es igual que la utilizada para los servicios de aplicación en AJAX. Clientes de SOAP Puede tener acceso a los servicios ASP.NET, de autenticación, perfil y servicios desde cualquier aplicación cliente en cualquier sistema operativo que puede usar el protocolo SOAP 1.1. Los servicios de aplicación ASP.NET están integrados en Windows Communication Foundation (WCF) e intercambian datos con el cliente en formato SOAP. Para obtener más información, vea XML Web Services Infrastructure en el sitio web de MSDN. La comunicación entre el cliente y los servicios de aplicación se realiza mediante clases de proxy que se ejecutan en el cliente y que representan el servicio de aplicación. Puede generar clases de proxy compatibles con los servicios de aplicación ASP.NET mediante la utilidad Service Model Metadata Utility Tool (svcutil.exe)
  • 11. Conclusiones Los Servicios web tienen diversas ventajas como interoperabilidad y la integración. Atravez de los Servicios Web, las empresas pueden compartir servicios software con sus clientes y sus socios de negocio. Esto permite reducir costos y la integracion de aplicaciones hce posible obtener la información demandada en tiempo real, acelerando el proceso de toma de decisiones Proveedores líderes promocionan los Web Services como un modelo de programación para la comunicación entre aplicaciones. Estas compañías piensan que la conexión de aplicaciones a través de Internet mejorará la capacidad de las empresas para trabajar conjuntamente con sus socios de negocio, proveedores y clientes. .