SlideShare una empresa de Scribd logo
1 de 20
INSTITUTO TECNOLÓGICO DE TEHUACÁN
PROGRAMACION WEB
CATEDRATICO: Francisco Vázquez Guzmán
SERVICISO WEB
ALCALA HERRERA CHRISTIAN MICHEL
N.C. 10360539
ENERO -AGOSTO 2014
TEHUACAN PUE., A 24 DE MAYO DE 2014
SERVICIOS WEB
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
La principal razón para usar servicios Web es que se pueden utilizar
con HTTP sobre TCP (Transmisión Control Protocolo) 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.
Se espera que para los próximos años mejoren la calidad y cantidad de servicios
ofrecidos basados en los nuevos estándares.
En resumen, nos sirve para poder utilizar datos desde otras plataformas. Por
ejemplo, supongamos que tenemos una aplicación bajo Windows con la que
gestionamos una tienda de camisetas y en un momento dado decidimos montar
una tienda online o que nuestra PDA acceda al catálogo para poder enseñar a los
clientes en tiempo real las tarifas. Una buena solución para compartir los datos es
montar un servicio web.
Otra utilidad sería la de enviar mensajes SMS, por ejemplo. Supongamos una
Plataforma bajo Windows que mediante un módem GSM realiza envío de SMS a
móviles y deseamos que nuestros colaboradores a través de sus páginas web
puedan mandar también. Pues habilitamos un servicio web a través del cual
nuestra base de datos reciba los datos necesarios para mandar los mensajes. De
esta forma, las webs no tendrán acceso directo a nuestro aplicativo pero se les
cede un pequeño protocolo para poder mandar los SMS.
A nivel de programación no es difícil de implementar y el tiempo que nos lleva es
relativamente reducido, en comparación con todo lo que habría que montar para
exportar los datos en un XML, subirlos a un FTP y recogerlos con un cron.
ESTANDARES 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.
VENTAJAS
 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.
CREACION
Vamos a usar el Visual Studio .NET para crear un cliente de Windows para usar
un servicio Web publicado en el localhost.
El servicio Web que vamos a usar será el conversor de grados Centígrados
(Celsius) a Fahrenheit y lo usaremos desde localhost (el servidor de Internet local)
o bien desde la siguiente dirección Web:
http://www.elguille.info/Net/WebServices/CelsiusFahrenheit.asmx
(para que compruebes que funciona en casos reales y no solamente con
ejemplos de prueba)
Para crear el cliente de Windows, necesitaremos iniciar Visual Studio .NET y crear
una nueva aplicación de Windows, el lenguaje que vamos a usar es C#, El
aspecto del formulario de prueba tendrá el siguiente aspecto:
Figura 1, El formulario en tiempo de diseño
Los nombres de los controles serán los que asigna automáticamente el Visual Studio
.NET y son los relacionados a continuación:
Nombre del Control Texto mostrado
label1 º Centígrados
textBox1 textBox1
button1 a º F
label2 º Fahrenheit
textBox2 textBox2
button2 a º C
label3 label3
Ahora vamos a localizar el servicio Web que queremos usar con nuestra aplicación de
escritorio.
Para localizar un servicio Web podemos hacerlo de dos formas, usando los directorios
UDDI o bien escribiendo la dirección en la que está localizado ese servicio Web,
usaremos esta segunda forma de localizar el servicio Web.
Nota:
En los siguientes pasos se va a indicar una dirección de localhost, pero también
podemos especificar la dirección del servicio Web indicada al principio de este
documento.
En los casos en que sea diferente lo que tengamos que escribir dependiendo de que el
servicio Web esté en localhost o en una dirección real de Internet, se indicará en notas
como esta.
Cuando estamos trabajando con Visual Studio .NET o cualquier otro entorno de
desarrollo, cuando queremos usar las clases que están contenidas en una librería (DLL)
tenemos que localizar dicha librería dinámica y crear una referencia, de forma que el
entorno de desarrollo sepa qué clases contiene dicha librería para que podamos usarla
en nuestro proyecto.
Cuando queramos usar un servicio Web también tenemos que crear una referencia
(llamada referencia Web), al crear esta referencia el Visual Studio .NET sabrá cómo
localizar dicho servicio Web además de que sabrá que interfaces se exportan en esa
clase, es decir sabrá todo lo que tiene que saber sobre la clase contenida en el servicio
Web.
Ahora veamos los pasos que seguiremos para añadir una referencia Web:
1- En el Explorador de soluciones, pulsa con el botón secundario del ratón sobre el
elemento indicado con References, del menú mostrado selecciona la opción Agregar
referencia Web...(ver la figura 2)
Figura 2, Agregar referencia Web
2- Se mostrará una ventana desde la cual podemos acceder a los directorios UDDI o
bien podríamos escribir la dirección en la que se encuentra el servicio Web, en la figura
3 se muestra el diálogo antes de escribir ninguna dirección ni seleccionar los
directorios UDDI:
Figura 3, Agregar referencia Web
Como vemos, podemos consultar los directorios UDDI o bien podemos escribir la
dirección en la que se encuentra el servicio Web.
3- En este caso vamos a escribir la dirección del servicio Web que se encuentra en el
localhost, para ello habrá que escribir en la barra de direcciones:
http://localhost/celsiusfahrenheit.asmx (si queremos probar el servicio Web en nuestro
propio equipo) o bien la dirección de ese servicio Web que está en mi
sitio: http://www.elguille.info/Net/WebServices/CelsiusFahrenheit.asmx, en ambos
casos el código incluido en los servicios Web es el mismo, pero para poder usar el
segundo tendremos que tener conexión a Internet.
4- Cuando escribimos esa dirección en el cuadro de Agregar referencia Web, se
mostrará la descripción del servicio Web, así como la de cada una de las funciones que
contiene, tal como podemos comprobar en la figura 4:
Figura 4, Información sobre el servicio Web antes de agregar la referencia
Web
Nota:
La información mostrada es la misma que mostraría si se indicara en la barra de
direcciones del Internet Explorer.
4- Una vez que tenemos creada la referencia al servicio Web podemos acceder a la
clase incluida en el servicio. Para poder acceder directamente a la clase sin tener que
indicar el espacio de nombres en el que está incluida, habrá que agregar una
importación de espacio de nombres, la importación que hay que hacer es al nombre
que se ha indicado en la referencia.
Para saber qué nombre se ha usado, le echaremos un vistazo al Explorador de
soluciones, tal como vemos en la figura 5, si hemos usado el servicio de localhost, el
nombre usado es precisamente localhost, en el caso de que hagamos la referencia al
servicio Web publicado en una dirección de Internet, el nombre será otro, por tanto
hay que comprobar qué nombre es el que se ha usado en la referencia Web para saber
cual usar.
Figura 5
En la figura 6 vemos cómo crear esa importación, si el espacio de nombres que hemos
usado se llama wsEjemplo2.
Figura 6, El espacio de nombres de la clase incluida en el servicio Web
5- Una vez que tenemos la importación del espacio de nombres en el que está la clase
del servicio Web, podemos usar esa clase como cualquier otra de .NET, por ejemplo
para crear una variable de dicha clase (llamada Conversor) y crear un nuevo objeto,
habría que hacer lo siguiente, según el lenguaje usado:
Para C# se usará este código:
Conversor conv = new Conversor();
Para Visual Basic .NET usaríamos esta otra sintaxis:
Dim conv As New Conversor()
6- El siguiente paso es crear el código a ejecutar cuando se haga click en el botón
superior (para convertir de ºC a ºF), lo que tenemos que hacer es tomar el contenido
de la caja de textos, convertirlo a un valor doble, crear un nuevo objeto de la clase
conversora, llamar a la función que nos interese, le pasamos como parámetro el valor
de los grados a convertir (que está en una de las cajas de textos) y el resultado
devuelto, (una vez convertido a tipo string), se asigna en la otra caja de textos.
¿Mucho lío?
Cuando veas el código lo entenderás mejor... ya que está comentado en cada una de
las acciones indicadas anteriormente.
Este es el código del evento Click del botón de convertir de grados centígrados
(Celsius) a Fahrenheit:
private void button1_Click(object sender, System.EventArgs e)
{
// Convertir de Centígrados a Fahrenheit
this.label3.Text ="";
try
{
// convertir el contenido del textBox en un valor doble
// usando la función Parse de la clase Double
double c = Double.Parse(textBox1.Text );
// creamos un nuevo objeto de la clase conversora
Conversor conv = new Conversor();
// llamamos a la función de convertir ºC a ºF
// el resultado que devuelve es un valor double
// por tanto creamos una nueva variable y
// le asignamos el valor devuelto por la función
double f = conv.CaF(c);
// asignamos a la otra caja de textos
// el valor de la variable f,
// pero convertido a una cadena
textBox2.Text = f.ToString("0.##");
}
catch(Exception ex)
{
label3.Text = ex.Message;
}
}
7- Ahora sólo falta el código de convertir de grados Fahrenheit a Celsius
CONSUMO
Una vez que diseñe y distribuya un servicio web XML en un servidor, cualquier
persona podría llegar y beneficiarse con su funcionalidad.
Suponiendo que el desarrollador de un sitio web bancario quiere usar uno de esos
servicios para hacer cálculos de interés para los certificados de depósito. Su
aplicación bancaria deberá usar o consumir su servicio, es decir, acceder y utilizar
los métodos disponibles de un servicio web XML. Los visitantes del sitio pueden
usar la calculadora sin siquiera saber de donde provino.
Cuando va a una gasolinera, los encargados le dan un servicio. Por ello usted es
el consumidor del servicio. Puede aprovechar cualquier recurso que la gasolinera
le ofrezca, como la bomba de gasolina, el tiempo y servicio de los encargados, así
como otros elementos. Esto le ahorra el problema de crear su propia bomba de
gasolina o de dar servicio a su propio automóvil.
El consumidor de un servicio web XML puede hacer exactamente lo mismo. Visita
un servicio y consume los recursos disponibles. Su equipo podría acceder a un
servicio para el procesamiento de textos, por poner un ejemplo. Todas las
características de este servicio estarían disponibles para usted, y no tendría que
adquirir e instalar un procesador de textos.
El consumidor de un servicio web XML puede ser casi cualquier aplicación de
escritorio, una pagina ASP.NET o un dispositivo móvil con un teléfono portátil.
Hay 3 etapas para consumir un servicio web xml
1. Obtener información del servicio (descubrimiento).
2. Generar un proxy o intermediario para el servicio.
3. Usar el proxy para invocar los servicios disponibles.
El descubrimiento es el proceso por el que un cliente encuentra información de un
servicio web xml. Por ejemplo, cuando va a un restaurante, primero lee el menú
para ver que ofrecen. Los consumidores hacen lo mismo con los servicios web
XML necesitan saber que hace un servicio antes de usarlo.
Figura 5.1 El proxy funge como intermediario entre un cliente y
un servicio
Figura 5.2 Pasos para consumir un servicio web XML
EJEMPLOS
SERVICIOS WEB GOOGLE
Google API Chart es un servicio de Google para la creación de todo tipo de gráficas de
una manera rápida y sencilla, que no requiere instalación ninguna.
Vamos a mostrar otro de los API de Google, puestos a disposición de los desarrolladores
de páginas web. Este API que nos ocupa sirve para hacer gráficos para la representación
de datos, es decir, las típicas gráficas de barras, lineas, etc. que sirven para presentar
datos estadísticos. Lo interesante de este sistema es que permite la creación de las
gráficas de una manera muy sencilla y sin la instalación de ningún componente adicional
en el servidor web.
En este artículo de DesarrolloWeb.com vamos a presentar algunos ejemplos de gráficas y
expresar algunas de las generalidades y características de este API para crear gráficos.
API Chart permite la creación de gráficas a partir de imágenes, con lo que, para mostrar
en la página una gráfica, lo único que tenemos que hacer es utilizar la etiqueta IMG de
HTML. Para configurar la forma y datos del gráfico se debe definir simplemente la URL de
la imagen en el atributo SRC de la etiqueta IMG.
Así pues, para crear una gráfica en una página web, no hay que instalar ningún
componente en el servidor, simplemente colocar una imagen en la página, con un código
como este:
<img
src="http://chart.apis.google.com/chart?chs=400x100&cht=p&chd=t:45,25,10,20&chl=Vale
ncia|Madrid|Barcelona|Lugo" width="400" height="100">
Con lo que aparecerá una gráfica como la siguiente:
Como se puede ver, para configurar la gráfica, lo único que tenemos que definir es el
atributo SRC, que debería tener un formato como el siguiente (vamos a separar por partes
la URL para generar la imagen, de modo que se puedan ver cada uno de los
componentes):
La URL del servicio de Google para el API de gráficas:
http://code.google.com/intl/es/apis/chart/
Luego, una serie de parámetros en la URL de acceso al API, para indicar los datos de la
gráficas, estilos, leyendas y esas cosas:
Tamaño de la imagen:
chs=400x100
Tipo de gráfico (en este caso de tarta o circular):
cht=p
Datos del gráfico:
chd=t:45,25,10,20
Los nombres de los campos que acompañan al gráfico:
chl=Valencia|Madrid|Barcelona|Lugo
Por poner otro ejemplo de gráfico generado con el API de Google Chart, vamos a ver
cómo se crearía una gráfica de barras.
<img
src="http://chart.apis.google.com/chart?chs=400x100&cht=bhg&chco=e5f867|aaaaaa|596
605&chd=t:60,10,30&chdl=Me+gusta+%286+votos%29|no+me+gusta+%281+voto%29|ns
nc+%283+votos%29" width="400" height="100">
Este código mostraría una gráfica como esta:
Posibilidades de las gráficas de Google API Chart
Veamos ahora un resumen de las características y posibilidades de esta API para la
creación de gráficas.
Tipos de Gráficas:
API Chart soporta una cantidad grande de tipos de gráficos distintos, como gráficas de
barras, de tarta, (2D y 3D), de líneas, puntos, etc. tiene además algunos tipos de gráficos
bastante originales, como el Google O-Meter, que tiene una forma similar a un
velocímetro, con un abanico de posibilidades y una flecha que apunta al lugar de la
estadística.
Personalización de las gráficas:
Existen varios elementos con los que se pueden personalizar las gráficas, como tamaño
de la imagen, colores, tamaño de los elementos, como las barras en las gráficas de
barras, espaciado, títulos del gráfico, etc.
Etiquetas y leyendas:
Dispone de varias maneras para asignar textos a los valores de las gráficas, que además
dependen del tipo de gráfica, pudiendo crear etiquetas y leyendas para identificar los
elementos que se contabilizan en el gráfico.
Datos contabilizados:
Existe la posibilidad de configurar varios juegos de datos en la misma gráfica (en las
gráficas que lo permiten) y la carga de datos se puede realizar de varias maneras.
Documentación de Google API Chart
Este servicio de gráficas ofrecido por Google tiene una completa documentación, que
también se encuentra disponible en Español. Por ello, os dejamos un enlace a la página
de documentación dentro de Google Code, donde podréis aprender a generar todo tipo de
gráficas.
CREACIÓN DE SERVICIOS WCF PARA AJAX DE ASP.NET MICROSOFT
AJAX de ASP.NET de Microsoft le permite crear rápidamente páginas web para que la
experiencia del usuario sea más satisfactoria gracias a elementos de la interfaz de usuario
más familiares y receptivos. AJAX de ASP.NET proporciona bibliotecas de scripts de
cliente que incorporan las tecnologías ECMAScript (JavaScript) y HTML dinámico
(DHTML) para varios exploradores, y las integra en la plataforma de desarrollo para
servidores de ASP.NET 2.0. Gracias a las características de AJAX de ASP.NET puede
mejorar la experiencia del usuario y la eficacia de sus aplicaciones web.
AJAX de ASP.NET consta de bibliotecas de scripts de cliente y de componentes de
servidor que se integran para proporcionar un marco de desarrollo robusto. Para tener
acceso a un servicio desde una página ASP.NET: una vez que se agrega la URL de
servicio al control del administrador de scripts de ASP.NET en la página, las operaciones
de servicio se pueden invocar usando código JavaScript que tiene la misma apariencia
que una llamada de función de JavaScript normal. Vea Obtener información sobre
ASP.NET AJAX para obtener información sobre el uso de servicios Web dentro del marco
de AJAX.
La mayoría de los servicios de Windows Communication Foundation (WCF) se pueden
exponer como servicio compatible con AJAX de ASP.NET agregando un extremo de
AJAX de ASP.NET adecuado.
Si está usando Visual Studio, puede utilizar una plantilla precompilada para servicios WCF
compatibles AJAX, disponible en el cuadro de diálogo Agregar nuevo elemento al trabajar
con sitios web de ASP.NET o aplicaciones web.
Si no está utilizando las plantillas Visual Studio, hay dos maneras de crear un extremo de
AJAX de ASP.NET:
- Cree el extremo utilizando la activación de host dinámica sin utilizar ninguna
configuración. Éste es el enfoque más básico si no se está muy familiarizado con el
sistema de configuración de WCF. Para obtener más información, vea Cómo
agregar un extremo AJAX de ASP.NET sin usar la configuración.
- Agregue un extremo compatible con AJAX a un servicio de WCF mediante
configuración. Para obtener más información, vea Uso de la configuración para
agregar un extremo AJAX de ASP.NET.
El modelo de programación web descrito en Información general del modelo de
programación web HTTP de WCF se puede utilizar con servicios de AJAX de ASP.NET.
De manera específica:
- Puede utilizar los atributos WebGetAttribute y WebInvokeAttribute para seleccionar
entre los verbos HTTP GET y HTTP POST. Si se utiliza correctamente, esto podría
mejorar significativamente el rendimiento de la aplicación. Para obtener más
información, vea Cómo elegir entre solicitudes HTTP POST y HTTP GET para
extremos AJAX de ASP.NET.
- Puede usar las propiedades ResponseFormat y ResponseFormat para que su
servicio devuelva datos XML en lugar de hacerlo en el formato JSON (Javascript
Object Notation) predeterminado. Si hace esto con el marco de AJAX de ASP.NET,
el cliente JavaScript va a recibir un objeto DOM XML.
A continuación se muestra un ejemplo de una operación que devuelve datos XML con el
tipo de contenido establecido adecuadamente:
[OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
public XElement GetData()
{
XElement x;
//Get some data here...
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
return x;
}
- No se pueden cambiar otras propiedades de los atributos de las clases
WebGetAttribute y WebInvokeAttribute si es necesaria la compatibilidad con AJAX
de ASP.NET. Se pueden utilizar otros aspectos del modelo de programación web
con tal de que no se infrinjan las convenciones de llamada de AJAX de ASP.NET.
Los escenarios más avanzados requieren que se comprendan algunos detalles
adicionales de compatibilidad de AJAX en WCF:
- Para entender cómo se transfieren los datos entre un cliente de página de AJAX y
un servicio de WCF utilizando JavaScript y para obtener detalles acerca de cómo se
asignan los tipos de .NET Framework a los tipos de JavaScript, vea Compatibilidad
con JSON y otros formatos de transferencia de datos.
- Para aprovecharse de las características de ASP.NET, como, por ejemplo, la
autenticación basada en URL y obtener acceso a la información de sesión de
ASP.NET, puede que desee habilitar el modo de compatibilidad de ASP.NET
mediante configuración.
Los extremos de AJAX en WCF incluso se pueden utilizar sin el marco de AJAX de
ASP.NET. Para hacer esto es necesario comprender la arquitectura de compatibilidad de
AJAX en WCF. Para ver una discusión sobre esta arquitectura, vea Modelo de objetos de
programación web HTTP de WCF. Para ver un ejemplo de código que muestra este
enfoque, vea Servicio AJAX con ejemplo JSON y XML.
SEGURIDAD EN LOS SERVICIOS WEB
Autenticación:
La autenticación es el proceso por el que se comprueba la identidad de alguien o algo,
para ver si es lo que dice ser. Ese "alguien" o "algo" se denomina principal. La
autenticación requiere pruebas de identidad, denominadas credenciales. Por ejemplo, una
aplicación cliente puede presentar una contraseña como sus credenciales. Si la aplicación
cliente presenta las credenciales correctas, se asume que es quien dice ser.
Autorización:
Una vez que se ha autenticado la identidad de un principal, deben tomarse decisiones
sobre la autorización. El acceso se determina comparando la información del principal con
información de control de acceso, como listas de control de acceso (ACL. Es posible que
los clientes tengan distintos grados de acceso. Por ejemplo, algunos clientes pueden
tener acceso total a los servicios Web XML, mientras que otros estarían autorizados sólo
a ciertas operaciones. A algunos clientes se les permitirá un acceso total a todos los
datos, mientras que a otros sólo se les permitirá acceso a un subconjunto de los datos y
otros tendrán acceso de sólo lectura.
Un modo sencillo de implementar servicios Web XML Web consiste en aprovechar las
características de autenticación del protocolo que se utilice para intercambiar mensajes.
Para la mayoría de los servicios Web XML, esto significa aprovechar las características de
autenticación disponibles en HTTP. Microsoft Internet Información Server (IIS) e ISA
Server funcionan en conjunción con Windows 2000 Server y ofrecen soporte para varios
mecanismos de autenticación en HTTP.
 Básica: utilizada para identificación no segura o poco segura de clientes, 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. IIS autorizará el acceso a los servicios
Web XML si las credenciales coinciden con las de una cuenta de usuario válida.
 Básica sobre SSL: igual que la autenticación básica, excepto que el canal de
comunicación está cifrado y protege de ese modo el nombre de usuario y la
contraseña. Una buena opción para entornos en Internet; sin embargo, el uso de
SSL influye negativamente en el rendimiento.
 Implícita: utiliza algoritmos hash para transmitir las credenciales del cliente de
forma segura. Sin embargo, es posible que no sea compatible con todas las
herramientas de desarrollo para generar clientes de servicios Web XML. IIS
autorizará el acceso a los servicios Web XML si las credenciales coinciden con las
de una cuenta de usuario válida.
 Autenticación de Windows integrada: resulta útil sobre todo en entornos en
Intranet. Utiliza NTLM o Kerberos. El cliente debe pertenecer al mismo dominio
que el servidor o a un dominio en el que el dominio del servidor confía. IIS
autorizará el acceso a los servicios Web XML si las credenciales coinciden con las
de una cuenta de usuario válida.
 Certificados de cliente a través de SSL: requiere que cada cliente obtenga un
certificado. Los certificados se asignan a las cuentas de usuario, que son utilizadas
por IIS para autorizar el acceso a los servicios Web XML. Se trata de una solución
viable para entornos en Internet, aunque el uso de certificados digitales no está
muy extendido actualmente. Es posible que no sea compatible con todas las
herramientas de desarrollo para generar clientes de servicios Web XML. Sólo está
disponible en conexiones SSL, de modo que el rendimiento puede verse afectado.
Desde la perspectiva de alguien que intenta implementar servicios Web XML, una de las
ventajas de utilizar estos mecanismos de autenticación es que no se necesita escribir
nuevo código. IIS/ISA Server completa todo el proceso de autenticación y autorización
ACL antes de llamar a los servicios Web XML. Sin embargo, al implementar el cliente será
necesario realizar algunas tareas adicionales. La aplicación cliente necesitará responder a
las peticiones de autenticación y credenciales del servidor.
Entre los métodos para la implementación de autenticación en servicios Web XML
también se incluyen servicios de terceros, como los que se encuentran en Microsoft® .
NET Passport, características de sesión de Microsoft ASP.NET o la creación de métodos
de autenticación personalizados.
Interoperabilidad
Como puede ver, las técnicas habituales para crear aplicaciones Web seguras se pueden
aplicar por separado o combinadas a la hora de proteger servicios Web XML. Estas
técnicas ya se han utilizado en el pasado y resultan bastante efectivas. Sin embargo, no
ofrecen una solución integrada dentro de la arquitectura de servicios Web XML. Conforme
aumenta la complejidad del entorno de servicios Web XML (sobrepasando los límites de
la confianza, extendiéndose a múltiples sistemas o empresas) los responsables de
implementarlos tienen que recurrir a soluciones personalizadas que, si bien resultan
eficaces, no ofrecen una interoperabilidad total.
Para hacer frente a estas necesidades y mejorar la interoperabilidad entre servicios Web
XML, Microsoft y sus socios están trabajando en un conjunto de especificaciones de
seguridad basadas en el mecanismo de extensibilidad de la especificación SOAP para
ofrecer funciones de seguridad mejoradas e integradas en el núcleo mismo de los
servicios Web XML.
Una de las principales especificaciones que se están desarrollando es el lenguaje de
seguridad de servicios Web XML (WS-Security) que proporciona mejoras en la mensajería
SOAP, consistentes en tres funcionalidades: transferencia de credenciales, integridad de
mensajes y confidencialidad. Estas funcionalidades no proporcionan por sí mismas una
solución de seguridad completa; WS-Security es una pieza que se puede utilizar en
conjunción con la infraestructura y otros protocolos de servicios Web XML para hacer
frente a un gran número de requisitos de seguridad de aplicaciones.
La arquitectura de servicios Web XML globales de Microsoft alberga a WS-Security
y otras especificaciones relacionadas y proporciona un marco para la evolución de la
infraestructura de los servicios Web XML.

Más contenido relacionado

La actualidad más candente

23444719 monografia-de-web-services
23444719 monografia-de-web-services23444719 monografia-de-web-services
23444719 monografia-de-web-servicescasper088
 
SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Servicesedmodi
 
WEB 2.0 Y RED SOCIAL
WEB 2.0 Y RED SOCIALWEB 2.0 Y RED SOCIAL
WEB 2.0 Y RED SOCIALguest0b46115
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Antonio Torres
 
Implantación de aplicaciones web en entornos internet, intranet y extranet.
Implantación de aplicaciones web en entornos internet, intranet y extranet.Implantación de aplicaciones web en entornos internet, intranet y extranet.
Implantación de aplicaciones web en entornos internet, intranet y extranet.Jomicast
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completoANGIEZAMBRANO57
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET Universidad
 
7 soap y wsdl
7 soap y wsdl7 soap y wsdl
7 soap y wsdlbrccq
 
Windows communication foundation wcf
Windows communication foundation  wcfWindows communication foundation  wcf
Windows communication foundation wcfelvis mendieta
 

La actualidad más candente (15)

Desarrollo y consumo de web services
Desarrollo y consumo de web servicesDesarrollo y consumo de web services
Desarrollo y consumo de web services
 
23444719 monografia-de-web-services
23444719 monografia-de-web-services23444719 monografia-de-web-services
23444719 monografia-de-web-services
 
SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Services
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
WEB 2.0
WEB 2.0WEB 2.0
WEB 2.0
 
WEB 2.0 Y RED SOCIAL
WEB 2.0 Y RED SOCIALWEB 2.0 Y RED SOCIAL
WEB 2.0 Y RED SOCIAL
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
 
Implantación de aplicaciones web en entornos internet, intranet y extranet.
Implantación de aplicaciones web en entornos internet, intranet y extranet.Implantación de aplicaciones web en entornos internet, intranet y extranet.
Implantación de aplicaciones web en entornos internet, intranet y extranet.
 
Asp.net
Asp.netAsp.net
Asp.net
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completo
 
1. Introduccion A Asp .Net
1.  Introduccion A Asp .Net1.  Introduccion A Asp .Net
1. Introduccion A Asp .Net
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET
 
7 soap y wsdl
7 soap y wsdl7 soap y wsdl
7 soap y wsdl
 
Windows communication foundation wcf
Windows communication foundation  wcfWindows communication foundation  wcf
Windows communication foundation wcf
 
Manual webservices
Manual webservicesManual webservices
Manual webservices
 

Destacado

Week 4
Week 4Week 4
Week 4A VD
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Title block analysis Laurelle
Title block analysis LaurelleTitle block analysis Laurelle
Title block analysis Laurellereidyluc
 
Presentacion De La Propuesta De Solucion
Presentacion De La Propuesta De SolucionPresentacion De La Propuesta De Solucion
Presentacion De La Propuesta De SolucionNubia P.
 
Natee613
Natee613Natee613
Natee613natee5
 
Pasos Para Hacer Una Pàg
Pasos Para Hacer Una PàgPasos Para Hacer Una Pàg
Pasos Para Hacer Una Pàgnoelia velmor
 
Presentacion De La Propuesta De Solucion
Presentacion De La Propuesta De SolucionPresentacion De La Propuesta De Solucion
Presentacion De La Propuesta De SolucionNubia P.
 
Modelos aa candileja
Modelos aa candilejaModelos aa candileja
Modelos aa candilejaCandileja
 
Centro Juvenil y Biblioteca Las Mañanitas
Centro Juvenil y Biblioteca Las MañanitasCentro Juvenil y Biblioteca Las Mañanitas
Centro Juvenil y Biblioteca Las MañanitasExalumnas Las Esclavas
 
PresentacióN Diplomado Competencias Primaria 2010
PresentacióN Diplomado Competencias Primaria 2010PresentacióN Diplomado Competencias Primaria 2010
PresentacióN Diplomado Competencias Primaria 2010jmravelo
 
Experement
ExperementExperement
Experementintedant
 
Tugas tugas perkembangan mata kuliah psikologi perkembangan stain salatiga
Tugas tugas perkembangan mata kuliah psikologi perkembangan stain salatigaTugas tugas perkembangan mata kuliah psikologi perkembangan stain salatiga
Tugas tugas perkembangan mata kuliah psikologi perkembangan stain salatigaALphind's Adaadaaja
 
Plataformas para la plublicacion de documentos
Plataformas para la plublicacion de documentosPlataformas para la plublicacion de documentos
Plataformas para la plublicacion de documentosdanielsierra_
 

Destacado (20)

Week 4
Week 4Week 4
Week 4
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Festival de Talentos
Festival de TalentosFestival de Talentos
Festival de Talentos
 
Sk 지원
Sk 지원Sk 지원
Sk 지원
 
Fw Builder
Fw BuilderFw Builder
Fw Builder
 
Curso creación de portales web
Curso creación de portales webCurso creación de portales web
Curso creación de portales web
 
Esidec, France
Esidec, FranceEsidec, France
Esidec, France
 
Title block analysis Laurelle
Title block analysis LaurelleTitle block analysis Laurelle
Title block analysis Laurelle
 
Presentacion De La Propuesta De Solucion
Presentacion De La Propuesta De SolucionPresentacion De La Propuesta De Solucion
Presentacion De La Propuesta De Solucion
 
Natee613
Natee613Natee613
Natee613
 
Pasos Para Hacer Una Pàg
Pasos Para Hacer Una PàgPasos Para Hacer Una Pàg
Pasos Para Hacer Una Pàg
 
Presentacion De La Propuesta De Solucion
Presentacion De La Propuesta De SolucionPresentacion De La Propuesta De Solucion
Presentacion De La Propuesta De Solucion
 
Modelos aa candileja
Modelos aa candilejaModelos aa candileja
Modelos aa candileja
 
Centro Juvenil y Biblioteca Las Mañanitas
Centro Juvenil y Biblioteca Las MañanitasCentro Juvenil y Biblioteca Las Mañanitas
Centro Juvenil y Biblioteca Las Mañanitas
 
PresentacióN Diplomado Competencias Primaria 2010
PresentacióN Diplomado Competencias Primaria 2010PresentacióN Diplomado Competencias Primaria 2010
PresentacióN Diplomado Competencias Primaria 2010
 
Experement
ExperementExperement
Experement
 
Tugas tugas perkembangan mata kuliah psikologi perkembangan stain salatiga
Tugas tugas perkembangan mata kuliah psikologi perkembangan stain salatigaTugas tugas perkembangan mata kuliah psikologi perkembangan stain salatiga
Tugas tugas perkembangan mata kuliah psikologi perkembangan stain salatiga
 
Explicacion11
Explicacion11Explicacion11
Explicacion11
 
Motore 24 volt per rulliera
Motore 24 volt per rullieraMotore 24 volt per rulliera
Motore 24 volt per rulliera
 
Plataformas para la plublicacion de documentos
Plataformas para la plublicacion de documentosPlataformas para la plublicacion de documentos
Plataformas para la plublicacion de documentos
 

Similar a Servicios web itt

9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y CaracterísticasLuis Fernando Aguas Bucheli
 
9-Unidad 3: Diseños de Vista-3.1 Creación Web Services
9-Unidad 3: Diseños de Vista-3.1 Creación Web Services9-Unidad 3: Diseños de Vista-3.1 Creación Web Services
9-Unidad 3: Diseños de Vista-3.1 Creación Web ServicesLuis Fernando Aguas Bucheli
 
Servicios web
Servicios webServicios web
Servicios webjogoram
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3ballesterosymendoza
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaPedro Arteaga
 
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores WebC:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Weblosmassueltos
 
Web services
Web servicesWeb services
Web servicesjam c
 
san lorenzo
san lorenzosan lorenzo
san lorenzoCabes
 

Similar a Servicios web itt (20)

Servicios web soap java
Servicios web soap javaServicios web soap java
Servicios web soap java
 
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
 
9-Unidad 3: Diseños de Vista-3.1 Creación Web Services
9-Unidad 3: Diseños de Vista-3.1 Creación Web Services9-Unidad 3: Diseños de Vista-3.1 Creación Web Services
9-Unidad 3: Diseños de Vista-3.1 Creación Web Services
 
Webservice
WebserviceWebservice
Webservice
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
Web service
Web serviceWeb service
Web service
 
Web service
Web serviceWeb service
Web service
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con java
 
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores WebC:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
 
Servidores web
Servidores webServidores web
Servidores web
 
Servidores web
Servidores webServidores web
Servidores web
 
Web services
Web servicesWeb services
Web services
 
Presentacion
PresentacionPresentacion
Presentacion
 
Web services
Web servicesWeb services
Web services
 
san lorenzo
san lorenzosan lorenzo
san lorenzo
 

Último

Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 

Último (20)

Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 

Servicios web itt

  • 1. INSTITUTO TECNOLÓGICO DE TEHUACÁN PROGRAMACION WEB CATEDRATICO: Francisco Vázquez Guzmán SERVICISO WEB ALCALA HERRERA CHRISTIAN MICHEL N.C. 10360539 ENERO -AGOSTO 2014 TEHUACAN PUE., A 24 DE MAYO DE 2014
  • 2. SERVICIOS WEB 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 La principal razón para usar servicios Web es que se pueden utilizar con HTTP sobre TCP (Transmisión Control Protocolo) 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. Se espera que para los próximos años mejoren la calidad y cantidad de servicios ofrecidos basados en los nuevos estándares. En resumen, nos sirve para poder utilizar datos desde otras plataformas. Por ejemplo, supongamos que tenemos una aplicación bajo Windows con la que gestionamos una tienda de camisetas y en un momento dado decidimos montar una tienda online o que nuestra PDA acceda al catálogo para poder enseñar a los clientes en tiempo real las tarifas. Una buena solución para compartir los datos es montar un servicio web.
  • 3. Otra utilidad sería la de enviar mensajes SMS, por ejemplo. Supongamos una Plataforma bajo Windows que mediante un módem GSM realiza envío de SMS a móviles y deseamos que nuestros colaboradores a través de sus páginas web puedan mandar también. Pues habilitamos un servicio web a través del cual nuestra base de datos reciba los datos necesarios para mandar los mensajes. De esta forma, las webs no tendrán acceso directo a nuestro aplicativo pero se les cede un pequeño protocolo para poder mandar los SMS. A nivel de programación no es difícil de implementar y el tiempo que nos lleva es relativamente reducido, en comparación con todo lo que habría que montar para exportar los datos en un XML, subirlos a un FTP y recogerlos con un cron. ESTANDARES 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. VENTAJAS  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.
  • 4. CREACION Vamos a usar el Visual Studio .NET para crear un cliente de Windows para usar un servicio Web publicado en el localhost. El servicio Web que vamos a usar será el conversor de grados Centígrados (Celsius) a Fahrenheit y lo usaremos desde localhost (el servidor de Internet local) o bien desde la siguiente dirección Web: http://www.elguille.info/Net/WebServices/CelsiusFahrenheit.asmx (para que compruebes que funciona en casos reales y no solamente con ejemplos de prueba) Para crear el cliente de Windows, necesitaremos iniciar Visual Studio .NET y crear una nueva aplicación de Windows, el lenguaje que vamos a usar es C#, El aspecto del formulario de prueba tendrá el siguiente aspecto: Figura 1, El formulario en tiempo de diseño Los nombres de los controles serán los que asigna automáticamente el Visual Studio .NET y son los relacionados a continuación: Nombre del Control Texto mostrado label1 º Centígrados textBox1 textBox1 button1 a º F label2 º Fahrenheit
  • 5. textBox2 textBox2 button2 a º C label3 label3 Ahora vamos a localizar el servicio Web que queremos usar con nuestra aplicación de escritorio. Para localizar un servicio Web podemos hacerlo de dos formas, usando los directorios UDDI o bien escribiendo la dirección en la que está localizado ese servicio Web, usaremos esta segunda forma de localizar el servicio Web. Nota: En los siguientes pasos se va a indicar una dirección de localhost, pero también podemos especificar la dirección del servicio Web indicada al principio de este documento. En los casos en que sea diferente lo que tengamos que escribir dependiendo de que el servicio Web esté en localhost o en una dirección real de Internet, se indicará en notas como esta. Cuando estamos trabajando con Visual Studio .NET o cualquier otro entorno de desarrollo, cuando queremos usar las clases que están contenidas en una librería (DLL) tenemos que localizar dicha librería dinámica y crear una referencia, de forma que el entorno de desarrollo sepa qué clases contiene dicha librería para que podamos usarla en nuestro proyecto. Cuando queramos usar un servicio Web también tenemos que crear una referencia (llamada referencia Web), al crear esta referencia el Visual Studio .NET sabrá cómo localizar dicho servicio Web además de que sabrá que interfaces se exportan en esa clase, es decir sabrá todo lo que tiene que saber sobre la clase contenida en el servicio Web. Ahora veamos los pasos que seguiremos para añadir una referencia Web: 1- En el Explorador de soluciones, pulsa con el botón secundario del ratón sobre el elemento indicado con References, del menú mostrado selecciona la opción Agregar referencia Web...(ver la figura 2)
  • 6. Figura 2, Agregar referencia Web 2- Se mostrará una ventana desde la cual podemos acceder a los directorios UDDI o bien podríamos escribir la dirección en la que se encuentra el servicio Web, en la figura 3 se muestra el diálogo antes de escribir ninguna dirección ni seleccionar los directorios UDDI:
  • 7. Figura 3, Agregar referencia Web Como vemos, podemos consultar los directorios UDDI o bien podemos escribir la dirección en la que se encuentra el servicio Web. 3- En este caso vamos a escribir la dirección del servicio Web que se encuentra en el localhost, para ello habrá que escribir en la barra de direcciones: http://localhost/celsiusfahrenheit.asmx (si queremos probar el servicio Web en nuestro propio equipo) o bien la dirección de ese servicio Web que está en mi sitio: http://www.elguille.info/Net/WebServices/CelsiusFahrenheit.asmx, en ambos casos el código incluido en los servicios Web es el mismo, pero para poder usar el segundo tendremos que tener conexión a Internet. 4- Cuando escribimos esa dirección en el cuadro de Agregar referencia Web, se mostrará la descripción del servicio Web, así como la de cada una de las funciones que contiene, tal como podemos comprobar en la figura 4:
  • 8. Figura 4, Información sobre el servicio Web antes de agregar la referencia Web Nota: La información mostrada es la misma que mostraría si se indicara en la barra de direcciones del Internet Explorer. 4- Una vez que tenemos creada la referencia al servicio Web podemos acceder a la clase incluida en el servicio. Para poder acceder directamente a la clase sin tener que indicar el espacio de nombres en el que está incluida, habrá que agregar una importación de espacio de nombres, la importación que hay que hacer es al nombre que se ha indicado en la referencia. Para saber qué nombre se ha usado, le echaremos un vistazo al Explorador de soluciones, tal como vemos en la figura 5, si hemos usado el servicio de localhost, el nombre usado es precisamente localhost, en el caso de que hagamos la referencia al servicio Web publicado en una dirección de Internet, el nombre será otro, por tanto hay que comprobar qué nombre es el que se ha usado en la referencia Web para saber cual usar.
  • 9. Figura 5 En la figura 6 vemos cómo crear esa importación, si el espacio de nombres que hemos usado se llama wsEjemplo2. Figura 6, El espacio de nombres de la clase incluida en el servicio Web 5- Una vez que tenemos la importación del espacio de nombres en el que está la clase del servicio Web, podemos usar esa clase como cualquier otra de .NET, por ejemplo para crear una variable de dicha clase (llamada Conversor) y crear un nuevo objeto, habría que hacer lo siguiente, según el lenguaje usado:
  • 10. Para C# se usará este código: Conversor conv = new Conversor(); Para Visual Basic .NET usaríamos esta otra sintaxis: Dim conv As New Conversor() 6- El siguiente paso es crear el código a ejecutar cuando se haga click en el botón superior (para convertir de ºC a ºF), lo que tenemos que hacer es tomar el contenido de la caja de textos, convertirlo a un valor doble, crear un nuevo objeto de la clase conversora, llamar a la función que nos interese, le pasamos como parámetro el valor de los grados a convertir (que está en una de las cajas de textos) y el resultado devuelto, (una vez convertido a tipo string), se asigna en la otra caja de textos. ¿Mucho lío? Cuando veas el código lo entenderás mejor... ya que está comentado en cada una de las acciones indicadas anteriormente. Este es el código del evento Click del botón de convertir de grados centígrados (Celsius) a Fahrenheit: private void button1_Click(object sender, System.EventArgs e) { // Convertir de Centígrados a Fahrenheit this.label3.Text =""; try { // convertir el contenido del textBox en un valor doble // usando la función Parse de la clase Double double c = Double.Parse(textBox1.Text ); // creamos un nuevo objeto de la clase conversora Conversor conv = new Conversor(); // llamamos a la función de convertir ºC a ºF // el resultado que devuelve es un valor double // por tanto creamos una nueva variable y // le asignamos el valor devuelto por la función double f = conv.CaF(c); // asignamos a la otra caja de textos // el valor de la variable f, // pero convertido a una cadena textBox2.Text = f.ToString("0.##"); } catch(Exception ex) { label3.Text = ex.Message; } } 7- Ahora sólo falta el código de convertir de grados Fahrenheit a Celsius
  • 11. CONSUMO Una vez que diseñe y distribuya un servicio web XML en un servidor, cualquier persona podría llegar y beneficiarse con su funcionalidad. Suponiendo que el desarrollador de un sitio web bancario quiere usar uno de esos servicios para hacer cálculos de interés para los certificados de depósito. Su aplicación bancaria deberá usar o consumir su servicio, es decir, acceder y utilizar los métodos disponibles de un servicio web XML. Los visitantes del sitio pueden usar la calculadora sin siquiera saber de donde provino. Cuando va a una gasolinera, los encargados le dan un servicio. Por ello usted es el consumidor del servicio. Puede aprovechar cualquier recurso que la gasolinera le ofrezca, como la bomba de gasolina, el tiempo y servicio de los encargados, así como otros elementos. Esto le ahorra el problema de crear su propia bomba de gasolina o de dar servicio a su propio automóvil. El consumidor de un servicio web XML puede hacer exactamente lo mismo. Visita un servicio y consume los recursos disponibles. Su equipo podría acceder a un servicio para el procesamiento de textos, por poner un ejemplo. Todas las características de este servicio estarían disponibles para usted, y no tendría que adquirir e instalar un procesador de textos. El consumidor de un servicio web XML puede ser casi cualquier aplicación de escritorio, una pagina ASP.NET o un dispositivo móvil con un teléfono portátil. Hay 3 etapas para consumir un servicio web xml 1. Obtener información del servicio (descubrimiento). 2. Generar un proxy o intermediario para el servicio. 3. Usar el proxy para invocar los servicios disponibles.
  • 12. El descubrimiento es el proceso por el que un cliente encuentra información de un servicio web xml. Por ejemplo, cuando va a un restaurante, primero lee el menú para ver que ofrecen. Los consumidores hacen lo mismo con los servicios web XML necesitan saber que hace un servicio antes de usarlo. Figura 5.1 El proxy funge como intermediario entre un cliente y un servicio Figura 5.2 Pasos para consumir un servicio web XML
  • 13. EJEMPLOS SERVICIOS WEB GOOGLE Google API Chart es un servicio de Google para la creación de todo tipo de gráficas de una manera rápida y sencilla, que no requiere instalación ninguna. Vamos a mostrar otro de los API de Google, puestos a disposición de los desarrolladores de páginas web. Este API que nos ocupa sirve para hacer gráficos para la representación de datos, es decir, las típicas gráficas de barras, lineas, etc. que sirven para presentar datos estadísticos. Lo interesante de este sistema es que permite la creación de las gráficas de una manera muy sencilla y sin la instalación de ningún componente adicional en el servidor web. En este artículo de DesarrolloWeb.com vamos a presentar algunos ejemplos de gráficas y expresar algunas de las generalidades y características de este API para crear gráficos. API Chart permite la creación de gráficas a partir de imágenes, con lo que, para mostrar en la página una gráfica, lo único que tenemos que hacer es utilizar la etiqueta IMG de HTML. Para configurar la forma y datos del gráfico se debe definir simplemente la URL de la imagen en el atributo SRC de la etiqueta IMG. Así pues, para crear una gráfica en una página web, no hay que instalar ningún componente en el servidor, simplemente colocar una imagen en la página, con un código como este: <img src="http://chart.apis.google.com/chart?chs=400x100&cht=p&chd=t:45,25,10,20&chl=Vale ncia|Madrid|Barcelona|Lugo" width="400" height="100"> Con lo que aparecerá una gráfica como la siguiente: Como se puede ver, para configurar la gráfica, lo único que tenemos que definir es el atributo SRC, que debería tener un formato como el siguiente (vamos a separar por partes la URL para generar la imagen, de modo que se puedan ver cada uno de los componentes): La URL del servicio de Google para el API de gráficas: http://code.google.com/intl/es/apis/chart/
  • 14. Luego, una serie de parámetros en la URL de acceso al API, para indicar los datos de la gráficas, estilos, leyendas y esas cosas: Tamaño de la imagen: chs=400x100 Tipo de gráfico (en este caso de tarta o circular): cht=p Datos del gráfico: chd=t:45,25,10,20 Los nombres de los campos que acompañan al gráfico: chl=Valencia|Madrid|Barcelona|Lugo Por poner otro ejemplo de gráfico generado con el API de Google Chart, vamos a ver cómo se crearía una gráfica de barras. <img src="http://chart.apis.google.com/chart?chs=400x100&cht=bhg&chco=e5f867|aaaaaa|596 605&chd=t:60,10,30&chdl=Me+gusta+%286+votos%29|no+me+gusta+%281+voto%29|ns nc+%283+votos%29" width="400" height="100"> Este código mostraría una gráfica como esta: Posibilidades de las gráficas de Google API Chart Veamos ahora un resumen de las características y posibilidades de esta API para la creación de gráficas. Tipos de Gráficas: API Chart soporta una cantidad grande de tipos de gráficos distintos, como gráficas de barras, de tarta, (2D y 3D), de líneas, puntos, etc. tiene además algunos tipos de gráficos
  • 15. bastante originales, como el Google O-Meter, que tiene una forma similar a un velocímetro, con un abanico de posibilidades y una flecha que apunta al lugar de la estadística. Personalización de las gráficas: Existen varios elementos con los que se pueden personalizar las gráficas, como tamaño de la imagen, colores, tamaño de los elementos, como las barras en las gráficas de barras, espaciado, títulos del gráfico, etc. Etiquetas y leyendas: Dispone de varias maneras para asignar textos a los valores de las gráficas, que además dependen del tipo de gráfica, pudiendo crear etiquetas y leyendas para identificar los elementos que se contabilizan en el gráfico. Datos contabilizados: Existe la posibilidad de configurar varios juegos de datos en la misma gráfica (en las gráficas que lo permiten) y la carga de datos se puede realizar de varias maneras. Documentación de Google API Chart Este servicio de gráficas ofrecido por Google tiene una completa documentación, que también se encuentra disponible en Español. Por ello, os dejamos un enlace a la página de documentación dentro de Google Code, donde podréis aprender a generar todo tipo de gráficas.
  • 16. CREACIÓN DE SERVICIOS WCF PARA AJAX DE ASP.NET MICROSOFT AJAX de ASP.NET de Microsoft le permite crear rápidamente páginas web para que la experiencia del usuario sea más satisfactoria gracias a elementos de la interfaz de usuario más familiares y receptivos. AJAX de ASP.NET proporciona bibliotecas de scripts de cliente que incorporan las tecnologías ECMAScript (JavaScript) y HTML dinámico (DHTML) para varios exploradores, y las integra en la plataforma de desarrollo para servidores de ASP.NET 2.0. Gracias a las características de AJAX de ASP.NET puede mejorar la experiencia del usuario y la eficacia de sus aplicaciones web. AJAX de ASP.NET consta de bibliotecas de scripts de cliente y de componentes de servidor que se integran para proporcionar un marco de desarrollo robusto. Para tener acceso a un servicio desde una página ASP.NET: una vez que se agrega la URL de servicio al control del administrador de scripts de ASP.NET en la página, las operaciones de servicio se pueden invocar usando código JavaScript que tiene la misma apariencia que una llamada de función de JavaScript normal. Vea Obtener información sobre ASP.NET AJAX para obtener información sobre el uso de servicios Web dentro del marco de AJAX. La mayoría de los servicios de Windows Communication Foundation (WCF) se pueden exponer como servicio compatible con AJAX de ASP.NET agregando un extremo de AJAX de ASP.NET adecuado. Si está usando Visual Studio, puede utilizar una plantilla precompilada para servicios WCF compatibles AJAX, disponible en el cuadro de diálogo Agregar nuevo elemento al trabajar con sitios web de ASP.NET o aplicaciones web. Si no está utilizando las plantillas Visual Studio, hay dos maneras de crear un extremo de AJAX de ASP.NET: - Cree el extremo utilizando la activación de host dinámica sin utilizar ninguna configuración. Éste es el enfoque más básico si no se está muy familiarizado con el sistema de configuración de WCF. Para obtener más información, vea Cómo agregar un extremo AJAX de ASP.NET sin usar la configuración. - Agregue un extremo compatible con AJAX a un servicio de WCF mediante configuración. Para obtener más información, vea Uso de la configuración para agregar un extremo AJAX de ASP.NET. El modelo de programación web descrito en Información general del modelo de programación web HTTP de WCF se puede utilizar con servicios de AJAX de ASP.NET. De manera específica: - Puede utilizar los atributos WebGetAttribute y WebInvokeAttribute para seleccionar entre los verbos HTTP GET y HTTP POST. Si se utiliza correctamente, esto podría mejorar significativamente el rendimiento de la aplicación. Para obtener más información, vea Cómo elegir entre solicitudes HTTP POST y HTTP GET para extremos AJAX de ASP.NET.
  • 17. - Puede usar las propiedades ResponseFormat y ResponseFormat para que su servicio devuelva datos XML en lugar de hacerlo en el formato JSON (Javascript Object Notation) predeterminado. Si hace esto con el marco de AJAX de ASP.NET, el cliente JavaScript va a recibir un objeto DOM XML. A continuación se muestra un ejemplo de una operación que devuelve datos XML con el tipo de contenido establecido adecuadamente: [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)] public XElement GetData() { XElement x; //Get some data here... WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"; return x; } - No se pueden cambiar otras propiedades de los atributos de las clases WebGetAttribute y WebInvokeAttribute si es necesaria la compatibilidad con AJAX de ASP.NET. Se pueden utilizar otros aspectos del modelo de programación web con tal de que no se infrinjan las convenciones de llamada de AJAX de ASP.NET. Los escenarios más avanzados requieren que se comprendan algunos detalles adicionales de compatibilidad de AJAX en WCF: - Para entender cómo se transfieren los datos entre un cliente de página de AJAX y un servicio de WCF utilizando JavaScript y para obtener detalles acerca de cómo se asignan los tipos de .NET Framework a los tipos de JavaScript, vea Compatibilidad con JSON y otros formatos de transferencia de datos. - Para aprovecharse de las características de ASP.NET, como, por ejemplo, la autenticación basada en URL y obtener acceso a la información de sesión de ASP.NET, puede que desee habilitar el modo de compatibilidad de ASP.NET mediante configuración. Los extremos de AJAX en WCF incluso se pueden utilizar sin el marco de AJAX de ASP.NET. Para hacer esto es necesario comprender la arquitectura de compatibilidad de AJAX en WCF. Para ver una discusión sobre esta arquitectura, vea Modelo de objetos de programación web HTTP de WCF. Para ver un ejemplo de código que muestra este enfoque, vea Servicio AJAX con ejemplo JSON y XML.
  • 18. SEGURIDAD EN LOS SERVICIOS WEB Autenticación: La autenticación es el proceso por el que se comprueba la identidad de alguien o algo, para ver si es lo que dice ser. Ese "alguien" o "algo" se denomina principal. La autenticación requiere pruebas de identidad, denominadas credenciales. Por ejemplo, una aplicación cliente puede presentar una contraseña como sus credenciales. Si la aplicación cliente presenta las credenciales correctas, se asume que es quien dice ser. Autorización: Una vez que se ha autenticado la identidad de un principal, deben tomarse decisiones sobre la autorización. El acceso se determina comparando la información del principal con información de control de acceso, como listas de control de acceso (ACL. Es posible que los clientes tengan distintos grados de acceso. Por ejemplo, algunos clientes pueden tener acceso total a los servicios Web XML, mientras que otros estarían autorizados sólo a ciertas operaciones. A algunos clientes se les permitirá un acceso total a todos los datos, mientras que a otros sólo se les permitirá acceso a un subconjunto de los datos y otros tendrán acceso de sólo lectura. Un modo sencillo de implementar servicios Web XML Web consiste en aprovechar las características de autenticación del protocolo que se utilice para intercambiar mensajes. Para la mayoría de los servicios Web XML, esto significa aprovechar las características de autenticación disponibles en HTTP. Microsoft Internet Información Server (IIS) e ISA Server funcionan en conjunción con Windows 2000 Server y ofrecen soporte para varios mecanismos de autenticación en HTTP.  Básica: utilizada para identificación no segura o poco segura de clientes, 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. IIS autorizará el acceso a los servicios Web XML si las credenciales coinciden con las de una cuenta de usuario válida.  Básica sobre SSL: igual que la autenticación básica, excepto que el canal de comunicación está cifrado y protege de ese modo el nombre de usuario y la contraseña. Una buena opción para entornos en Internet; sin embargo, el uso de SSL influye negativamente en el rendimiento.  Implícita: utiliza algoritmos hash para transmitir las credenciales del cliente de forma segura. Sin embargo, es posible que no sea compatible con todas las herramientas de desarrollo para generar clientes de servicios Web XML. IIS autorizará el acceso a los servicios Web XML si las credenciales coinciden con las de una cuenta de usuario válida.  Autenticación de Windows integrada: resulta útil sobre todo en entornos en Intranet. Utiliza NTLM o Kerberos. El cliente debe pertenecer al mismo dominio que el servidor o a un dominio en el que el dominio del servidor confía. IIS autorizará el acceso a los servicios Web XML si las credenciales coinciden con las de una cuenta de usuario válida.
  • 19.  Certificados de cliente a través de SSL: requiere que cada cliente obtenga un certificado. Los certificados se asignan a las cuentas de usuario, que son utilizadas por IIS para autorizar el acceso a los servicios Web XML. Se trata de una solución viable para entornos en Internet, aunque el uso de certificados digitales no está muy extendido actualmente. Es posible que no sea compatible con todas las herramientas de desarrollo para generar clientes de servicios Web XML. Sólo está disponible en conexiones SSL, de modo que el rendimiento puede verse afectado. Desde la perspectiva de alguien que intenta implementar servicios Web XML, una de las ventajas de utilizar estos mecanismos de autenticación es que no se necesita escribir nuevo código. IIS/ISA Server completa todo el proceso de autenticación y autorización ACL antes de llamar a los servicios Web XML. Sin embargo, al implementar el cliente será necesario realizar algunas tareas adicionales. La aplicación cliente necesitará responder a las peticiones de autenticación y credenciales del servidor. Entre los métodos para la implementación de autenticación en servicios Web XML también se incluyen servicios de terceros, como los que se encuentran en Microsoft® . NET Passport, características de sesión de Microsoft ASP.NET o la creación de métodos de autenticación personalizados. Interoperabilidad Como puede ver, las técnicas habituales para crear aplicaciones Web seguras se pueden aplicar por separado o combinadas a la hora de proteger servicios Web XML. Estas técnicas ya se han utilizado en el pasado y resultan bastante efectivas. Sin embargo, no ofrecen una solución integrada dentro de la arquitectura de servicios Web XML. Conforme aumenta la complejidad del entorno de servicios Web XML (sobrepasando los límites de la confianza, extendiéndose a múltiples sistemas o empresas) los responsables de implementarlos tienen que recurrir a soluciones personalizadas que, si bien resultan eficaces, no ofrecen una interoperabilidad total. Para hacer frente a estas necesidades y mejorar la interoperabilidad entre servicios Web XML, Microsoft y sus socios están trabajando en un conjunto de especificaciones de seguridad basadas en el mecanismo de extensibilidad de la especificación SOAP para ofrecer funciones de seguridad mejoradas e integradas en el núcleo mismo de los servicios Web XML. Una de las principales especificaciones que se están desarrollando es el lenguaje de seguridad de servicios Web XML (WS-Security) que proporciona mejoras en la mensajería SOAP, consistentes en tres funcionalidades: transferencia de credenciales, integridad de mensajes y confidencialidad. Estas funcionalidades no proporcionan por sí mismas una solución de seguridad completa; WS-Security es una pieza que se puede utilizar en conjunción con la infraestructura y otros protocolos de servicios Web XML para hacer frente a un gran número de requisitos de seguridad de aplicaciones.
  • 20. La arquitectura de servicios Web XML globales de Microsoft alberga a WS-Security y otras especificaciones relacionadas y proporciona un marco para la evolución de la infraestructura de los servicios Web XML.