Entrada - UNIDAD 6

Instituto Tecnológico de Reynosa

Carrera: TIC

Grado y Grupo: 6 Semestre
Materia: Programacion Web
Nombre del Maestro: Ing. Mario Santiago
Nombre del Alumno: Edilberto Gonzalez Rios
Nombre del Proyecto: Unidad 6 - Servicios Web

=====================================================================


SERVICIOS WEB
Son tecnologías que sirven para intercambiar datos entre diferentes aplicaciones. Esos servicios están desarrollados en diferentes lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma. Estas redes de servicios pueden usarse para intercambiar datos entre ordenadores o dispositivos móviles inteligentes o tablets  atraves de internet.
http://es.wikipedia.org/wiki/Servicio_web
VIDEO


CONCEPTOS GENERALES
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. 
Servicios Web utilizan este puerto, por la simple razón de que no resultan bloqueados.
Es importante señalar que:
 W3C define un "servicio web" como "un sistema de software diseñado para soportar la interacción interoperable de máquina a máquina en una red".
 Cuenta con una interfaz descrita en un formato procesable por máquina (específicamente Servicios Web de lenguaje de descripción, conocido por el acrónimo WSDL).
Otros sistemas interactúan con el servicio Web de una manera prescrita por su descripción utilizando mensajes SOAP,  típicamente transportados utilizando HTTP con una serialización XML en conjunción con otros estándares relacionados con la Web. 

Además W3C indica que podemos identificar dos clases principales de servicios Web, servicios Web REST-compliant, en la que el objetivo principal del servicio es de manipular representaciones XML de recursos web utilizando un conjunto uniforme de "operacionesn stateless"; y servicios Web arbitrariOS , en el que el servicio puede exponer un conjunto arbitrario de operaciones.
=================================================
REFERENCIA
http://www.prograweb.com.mx/pweb/0601ServiciosWeb.php

=================================================

ESTANDARES


Internet se compone de tecnologías heterogéneas que operan conjuntamente de modo satisfactorio mediante protocolos compartidos. Esto impide que los proveedores individuales impongan un estándar en Internet. El desarrollo del software de código fuente abierto desempeña un rol fundamental para proteger la interoperatividad de implementaciones de estándares del proveedor.
Los estándares siguientes desempeñan roles clave en servicios Web:
 UDDI (Universal Description, Discovery and Integration),
WSDL (Web Services Description Language),
 WSIL (Web Services Inspection Language),
SOAP y WS-I (Web Services Interoperability).
La relación entre estos estándares se describe en la Figura siguiente.

 La especificación UDDI define estándares abiertos independientes de la plataforma que permiten a las empresas compartir información en un registro de empresa global, encontrar servicios en el registro y definir cómo actúan conjuntamente en Internet.


WSIL: es una especificación abierta basada en XML que define un método de descubrimiento de servicios distribuidos que suministra referencias a descripciones de servicio en el punto de ofertas del proveedor de servicios, especificando cómo comprobar si hay servicios Web disponibles en un sitio Web.
WSDL: es una especificación abierta basada en XML que describe las interfaces y las instancias de servicios Web en la red. Es ampliable, de modo que se pueden describir los puntos finales independientemente de los formatos de mensaje o de los protocolos de red que se utilicen para comunicarse.
SOAP es un estándar basado en XML para la transmisión de mensajes en HTTP y otros protocolos de Internet. Es un protocolo ligero para el intercambio de información en un entorno descentralizado y distribuido. Se basa en XML y consta de tres partes:
*Un sobre que define una infraestructura para describir el contenido del mensaje y cómo procesarlo.
*Un conjunto de normas de codificación para expresar instancias de tipos de datos definidos por la aplicación.

*Una convención para representar llamadas y respuestas a procedimiento remoto.

=================================================
REFERENCIA
http://www.prograweb.com.mx/pweb/0602Estandar.php


=================================================

SEGURIDAD E INTEROPERABILIDAD

La seguridad es un concepto considerado clave dentro de los que comprenden el aseguramiento de calidad dentro del servicio Web.
Si se realiza una catalogación básica de los servicios de seguridad son la confidencialidad, integridad, autenticidad de origen, no repudio y control de acceso.
Autenticación de los participantes. Los servicios Web por definición tienen mucha heterogeneidad, lo que provoca que los sistema de autenticación tengan que ser flexibles. Si imaginamos un servicio Web que necesita comunicarse con otro servicio, este podría solicitar al demandante credenciales junto a una demostración de que es el propietario de las mismas. Resulta necesario conseguir un estandarización de los protocolos y en los formatos a utilizar.
Autorización. Con frecuencia, es necesario aplicar unos criterios que permitan controlar el acceso a los diferentes recursos. Es necesario definir los usuarios que pueden realizar diversas acciones sobre los diferentes recursos. En combinación con la autenticación, permite a las identidades conocidas realizar las acciones para las que tienen permisos.
Confidencialidad. Es necesario asegurar que el contenido incluido en los mensajes que se intercambian se mantiene como información confidencial. Es muy habitual emplear técnicas de cifrado, ya muy extendidas. Obviamente, la confidencialidad del mensaje va más allá que el canal por el que es transmitido.
Integridad. Esta propiedad garantiza que la información que se ha recibido, es exactamente la misma que se envió desde el cliente.
No repudio. En una comunicación que se realizan transacciones, es necesario registrar que las mismas se han producido y registrar el autor que lo ejecutó. En el caso de los servicios Web, trasladamos esta política la uso del servicio. Se comprueba que cierto cliente hizo uso de un servicio a pesar de que éste lo niegue (no repudio del solicitante) así como probar la ejecución se llevó a cabo (no repudio del receptor).
Disponibilidad. Uno de los ataques mas frecuentes a las aplicaciones se basa en la denegación de servicios. Se lanzan múltiples solicitudes falsas para inundar el servicio y provocar su caída. Es necesario contemplar la disponibilidad, como punto muy importante en el diseño de servicio web, ya que permiten cierta redundancia de los sistemas.
Auditabilidad. El registro de las acciones en los servicios Web permite mantener una traza de las mismas de manera que se puedan realizar análisis posteriores de los datos.
Seguridad extremo-a-extremo. Cuando se ejecuta un servicio es necesario garantizar la seguridad durante todo el recorrido que efectúan los mensajes. Dado que normalmente existen Routers como intermediarios de la comunicación, esto provoca un aumento de la política de seguridad que garantice que se realiza el transporte de forma segura y confirme la seguridad de los intermediarios. Es importante disponer de un contexto de seguridad único y que incluya el canal de comunicación.
Requisitos de Seguridad
Si realizamos una abstracción sobre la problemática, el objetivo principal es conseguir un entorno para las transacciones y los procesos que sea seguro para todo el canal de comunicación. Obviamente, es necesario garantizar la seguridad durante el tránsito de la comunicación, ya sea con intermediarios o sin ellos durante la misma. Por otra parte, se necesita asegurar la seguridad de la información en los procesos de almacenamiento: A continuación se ofrece una revisión breve de los principales requisitos para asegurar la seguridad en la comunicación.
Interoperabilidad
La interoperabilidad entre los servicio web de ASP.NET y los servicio web de Windows Communication Foundation (WCF) se puede lograr asegurando que los servicios implementados usen ambas tecnologías de acuerdo con la especificación WS-I Basic.
El uso de esta opción es preferible, porque la interfaz con el atributo WebService constituye un contrato para las operaciones realizadas por el servicio, que puede reutilizarse con diferentes clases que podrían implementar ese mismo contrato de distintas maneras. 
·         Evite usar el atributo SoapDocumentServiceAttribute para que los mensajes se enruten a métodos en función del nombre completo del elemento de cuerpo del mensaje SOAP en lugar del encabezado HTTP SOAPAction.
·         El XML en el que XmlSerializer se realiza de forma predeterminada un tipo es semánticamente idéntico al XML, dando por hecho que el espacio de nombres para el XML se define explícitamente. Cuando defina un tipo de datos para su uso con los servicios web de ASP.NETy en previsión de que se adoptará WCF, haga lo siguiente:
Defina el tipo mediante las clases de .NET Framework en lugar de mediante el Esquema XML. 
Agregue solo SerializableAttribute y XmlRootAttribute a la clase, utilizando el último para definir explícitamente el espacio de nombres del tipo.
No agregue atributos adicionales del espacio de nombres System.Xml.Serialization para controlar cómo se traducirá la clase de .NET Framework a XML.

=================================================
REFERENCIA
http://www.prograweb.com.mx/pweb/0603Seguridad.php

=================================================