Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

51
Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas

Transcript of Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Page 1: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web y Arquitectura 4+1 Vistas

M.C. Juan Carlos Olivares Rojas

Page 2: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Arquitectura 4+1 Vistas• En esta arquitectura de desarrollo de

software un producto a ser desarrollado tiene 4 puntos de vistas dependiendo del tipo de personal involucrado en el proyecto.

• Las 4 vistas se concentran en el desarrollo de escenarios que describen el análisis y los requerimientos del sistema.

Page 3: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Arquitectura 4+1 Vistas

Vista Lógica Vista de Desarrollo

Vista del Proceso Vista Física

Escenarios

Arquitectos Desarrolladores

Integradores Ingenieros deInfraestructura

Analistas Del

Negocio

Page 4: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Vista Lógica• Se maneja el estilo arquitectónico de la

aplicación:– Orientado a objeto– Basado en Componentes– Basado en servicios

• La implementación de esta vista utiliza generalmente patrones arquitectónicos como el MVC (Modelo-Vista-Controlador)

Page 5: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Modelo MVC

Page 6: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Vista de Desarrollo• Define los módulos de software ha ser

construidos.

• Se deben definir con claridad las interfaces de E/S de los módulos.

• La modularización de componentes depende del estilo arquitectónico seleccionado en la vista lógica

Page 7: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Vista Física• Mapea los componentes de software con

el hardware (fase de despliegue)

• Un buen diseño promueve la flexibilidad de mapear componentes de software con diferentes confiuraciones físicas dentro de las diferentes fases del ciclo de vida del software.

• La vista de proceso está relacionada en la forma de darle seguimiento, control y dirección a las etapas del desarrollo del producto.

Page 8: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Escenarios• Son abstracciones de los requerimientos

más importantes.

• Están estrechamente relacionados con el uso de casos de uso

• La vista del escenario es redundante entre las otras vistas.

Page 9: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

9

La nueva arquitectura 4+1 SOA

Estructural Empaquetado/Implementación

Comportamiento Infraestructura/Entorno

Requerimientos, Pruebas/Criterios de Validación

Contratos de Servicios

Clases y Componentesque representan el servicio

Flujos de trabajo que muestranla forma de trabajo de una unidadorganizativa guiada por procesosde negocios

Interfaz del Servicio

Despliegue en .NET o J2EE considerando aspectos como laseguridad y el rendimiento

Page 10: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Modelo de servicios Web

Servicios SOServicios SOServicios SOServicios SO

BrowsersBrowsersestándarestándar

BrowsersBrowsersestándarestándar

DispositivosDispositivosmóvilesmóviles

DispositivosDispositivosmóvilesmóviles

ClientesClientesricosricos

ClientesClientesricosricos

Lógica aplicaciónLógica aplicaciónLógica aplicaciónLógica aplicación

Servicios WebServicios WebServicios WebServicios Web

OtrosOtrosserviciosservicios

OtrosOtrosserviciosservicios

Formularios WebFormularios WebFormularios WebFormularios Web

XMLXML

Page 11: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Los servicios Web van de la mano de las

tecnologías XML.

• XML nos sirve para estandarizar el marshalling de los datos.

• Utilizar la Web nos permite tener un puerto no bloqueando por Firewall

Page 12: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web

• Son la invocación de código remoto utilizando protocolos estandarizados.

• En conclusión, realizan la misma función que los sockets, RPC, RMI, Corba y demás tecnologías distribuidas.

• Se puede ver a los servicios Web como una analogía de un procedimiento almacenado en una base de datos.

Page 13: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

¿Qué son los Servicios Web?• "A Web service is a software system designed

to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards."

Page 14: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Definición de SW• La aplicación que actúa como cliente

debe conocer:–La URL del servidor remoto que ofrece

el servicio, –El nombre del servicio que se solicita, y –Los parámetros que se deben enviar

junto con la llamada al servicio.

• Estos datos se enviarán mediante HTTP

Page 15: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Definición de SW• El servidor que ofrece el servicio web

leerá los parámetros que se le han enviado, llamará a un componente o programa encargado de implementar el servicio, y los resultados que se obtengan de su ejecución serán devueltos al servidor que solicitó la ejecución del servicio.

Page 16: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Un servicio Web no es un XML RPC como

tal, se diferencia en la forma en que trabajan.

• Los servicios Web forman la base de la arquitectura orientada a servicios (SOA)

• Los servicio Web utilizan generalmente el método POST de HTTP para enviar los datos de la invocación del servicio.

Page 17: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

SOA (Arquitectura Orientada a Servicios)

Proveedor de Servicios

Registro de Servicios Solicitante de Servicio

PublicarPublicar ConectarConectar

EncontrarEncontrar

ClienteClienteDescripciónDescripción

ServicioServicio

Page 18: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Arquitectura de Servicios Web

Proveedor del Servicio

Consumidor el Servicio

Directorio de Servicios

Publicación del Servicio

Descubrimiento del Servicio

Invocación y respuesta

1

3

2

UDDI

4

SOAP

Definición del Servicio

WSDL

Page 19: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Los datos viajan envueltos en un protocolo

llamado SOAP (Simple Object Access Protcol) que hace el marshalling de los datos.

• Una de las principales características que tienen los servicios Web radica en su ubicuidad, ya que pueden ser accedidos desde cualquier sitio, utilizando inclusive cualquier otro protocolo de transporte SMTP, FTP, etc.

Page 20: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

SOAP• Indica cómo se deben codificar los

mensajes que circularán entre las dos aplicaciones.

• SOAP define dos modelos de mensajes:– Un mensaje de solicitud.– Un mensaje de respuesta.

Page 21: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Mensaje de solicitud<?xml version="1.0" encoding="UTF-8" ?><SOAP-ENV:Envelope

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> </SOAP-ENV:Header> <SOAP-ENV:Body>

<catalogo:buscaIsbn xmlns:catalogo="http://catalogo.org/cat">

<catalogo:isbn>84-4553-3334-2X

</catalogo:isbn> </catalogo:buscaIsbn>

</SOAP-ENV:Body></SOAP-ENV:Envelope>

Page 22: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Mensaje de respuesta<?xml version="1.0" encoding="UTF-8" ?><SOAP-ENV:Envelope

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> </SOAP-ENV:Header> <SOAP-ENV:Body>

<catalogo:buscaIsbnResponse xmlns:catalogo="http://catalogo.org/cat">

<catalogo:titulo>Catalogar materiales especiales

</catalogo:titulo> <catalogo:autor>Marta de Juanes</catalogo:autor> </catalogo:buscaIsbnResponse>

</SOAP-ENV:Body></SOAP-ENV:Envelope>

Page 23: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Los servicios Web necesitan ser descritos (saber

que parámetros reciben, devuelven) para poderlos utilizar en diversos clientes. Esta descripción se realiza a través de WSDL (Web Service Definition Language).

• Generalmente esas descripciones los clientes las conocen o bien, puede descubrirlas haciendo uso de UDDI (Universal Description, Discovery and Integration).

Page 24: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• La UDDI no es otra cosa que un

repositorio en donde se almacenan servicios Web que pueden ser invocados por diversos clientes.

• Muchas empresas ofrecen servicios Web como amazon, google, http://www.xmethods.com

Page 25: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

¿Por qué utilizar Servicios Web?

• Múltiples tecnologías para hacer lo mismo: – No interoperables entre sí.

– Ligados a una plataforma.

DCOM CORBA

RPC IIOP

NDR CDR

IDL OMG IDL

Protocolo

Formato del mensaje

Descripción

Windows Registry Naming ServiceDescubrimiento

Java RMI

IIOP or JRMP

Java Ser. Format

Java

RMI Registry or JNDI

Page 26: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Pila de protocolos de SW

• Redefinición de toda la pila de comunicaciones– Basado en tecnologías estándares

Servicio web

HTTP

SOAP

WSDL

Protocolo

Formato del mensaje

Descripción

UDDIDescubrimiento

Page 27: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Ventajas de los Servicios Web• Basados en estándares.

– Fácil integración.

• Desarrollo de actividades modularizadas.

• Independencia de plataforma.

• Puede ser usado tanto en clientes ligeros como pesados (clientes heterogéneos).

Page 28: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Desventajas de los Servicios Web

• Es que no son seguros...

• Es que no tienen estado...

• Es que no son transaccionales...

• “Los servicios Web no hacen más que reinventar la rueda, pero esta vez usando XML”.

Page 29: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Protocolos Servicios Web

Comunicaciones ubicuasComunicaciones ubicuas: Internet: Internet

Formato de datosFormato de datos universal: universal: XMLXML

Interacción de servicios:Interacción de servicios: SOAPSOAP

Publicar, buscar serviciosPublicar, buscar servicios: UDDI: UDDI

Descripción de servicios:Descripción de servicios: WSDLWSDL

Page 30: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Creando Servicios Web• Los servicios Web XML se exponen en el

Framework .NET como archivos con una extensión .asmx.

• Los servicios se pueden consumir a través de páginas Web, clientes ligeros en una PC o clientes inteligentes en dispositivos móviles.

Page 31: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Hola mundo!!!<%@ WebService Language="C#“

class="Helloweb" %>using System.Web.Services;[WebService

(Namespace="http://sybex.com/webservices")]public class Helloweb: WebService{[WebMethod]public string HelloWebService() {return "Holla Mundo!";}

Page 32: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Otro servicio Web<%@ WebService Language="C#" class="Fibonacci" %>using System.Web.Services;public class Fibonacci : WebService{[WebMethod]public int GetSeqNumber(int fibIndex){if (fibIndex < 2)return fibIndex;int[] FibArray = {0,1};for (int i = 1; i< fibIndex; i++){FibArray[1] = FibArray[0] + FibArray[1];FibArray[0] = FibArray[1] - FibArray[0];}return FibArray[1];}}

Page 33: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Cliente del serviciousing System;

class ClienteFecha{

public static void Main(){

ServicioFecha s = new ServicioFecha();

Console.WriteLine(“Fecha actual: {0}”, s.Fecha(false));Console.WriteLine(“Fecha actual detallada: {0}”,

s.Fecha(true));}

}

Page 34: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Cliente de servicio Web Windows C# .NET

Page 35: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Agregar referencia Web

Page 36: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Cliente de servicio Web en una Pocket PC

Page 37: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Página Web del Servicio HelloWorld

Page 38: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Respuesta del servicio Web par

Page 39: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Página Web del Servicio 1

Page 40: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

WSDL del servicio Web 1

Page 41: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Ejecución del servicio Web suma

Page 42: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Ejecución del servicio Web par

Page 43: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Crear proxy del servicio Web

Page 44: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Ejemplo de archivo WSDL de amazon

• <operation name=“AuthorSearchRequest”/>

• <input message=“typens:AuthorSearchRequest”/>

• <output message=“typens:AuthorSearchResponse”>

• </operation> ….

Page 45: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios WebLos tipos de datos se definen en otra parte

<xsd:complexType name=“AuthorRequest”> <xsd:all> <xsd:element name=“autor”

type=“xsd:string”/><xsd:element name=“sort” type=“xsd:string”

minOccurs=“0”/> </xsd:all></xsd:complexType>

Page 46: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Cuando se traduce a Java queda:

public class AuthorRequest {public AuthorRequest(String author, String

page, String mode, String tag, String sort, String locale, String word, String price) {…}

public String getAuthor() {…}public String getPage() {…} ….}

Page 47: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios WebPara ejecutar el servicio se utiliza:

AmazonSearchPort puerto = (AmazonSearchPort) (new AmazonSearchService_Impl().getAmazonSearchPort());

AuthorRequest solicitud = new AuthorRequest(name, “1”, books, “”, “lite”, “”, token, “”, “”, “”);

ProductInfo res= puerto.autorSearchRequest(solicitud);

Page 48: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• Se ocupa en las versiones viejas el JWSDP

(Java Web Service Developer Pack)

• Se necesita un archivo config.xml

<?xml version=“1.0” encoding=“UTF-8”?><configuration xmlns=

http://java.sun.com/xml/ns/jax-rpc/ri/config>

Page 49: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Servicios Web• <wsdl location=

“http://soap.amazon.com/schemas3/AmazonWebServices.wsdl” packageName=“com.amazon” />

• </configuration>

• wscompile –import config.xml• wscompile –gen –keep config.xml

Page 50: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

Tarea• Próximo Jueves:

• Presentación sobre diferencias entre arquitecturas WOA, Clound Computing y Software as a Service.

• Repaso de metodologías ágiles.

Page 51: Servicios Web y Arquitectura 4+1 Vistas M.C. Juan Carlos Olivares Rojas.

¿Preguntas?