Anda di halaman 1dari 31

Arquitectura de Software

Arquitectura de Software WS Extensions

WS Extensions

Agenda  Actividades  Mensajería  Orquestación  Coreografía  Seguridad

Agenda

Actividades

Mensajería

Orquestación

Coreografía

Seguridad

Web Services ¿Qué es WS-*?  WS-* son un conjunto de especificaciones que se han publicado

Web Services

¿Qué es WS-*?

  • WS-* son un conjunto de especificaciones que se han publicado en torno a los servicios Web.

  • El término WS-* ha sido una abreviación comúnmente utilizada para referirse a la segunda generación de las especificaciones de los Web Services.

  • Son extensiones al framework básico establecido por los estándares de la primera generación (WSDL, SOAP, UDDI).

  • El término “WS-*” se ha vuelto muy común de usar porque las especificaciones de la segunda generación comienzan con el prefijo “WS-”.

Web Services ¿Qué es una Actividad?  Es un término genérico que es frecuentemente asociado con

Web Services

¿Qué es una Actividad?

  • Es un término genérico que es frecuentemente asociado con una unidad de trabajo completada por un conjunto de servicios.

  • Las actividades pueden ser de dos tipos :

    • Simples

    • Complejas

  • En una actividad, múltiples Web Services colaboran para hacer una específica unidad de trabajo.

  • “Necesito tu ayuda para hacer un trabajo” “Hey, quiero que nos ayudes a hacer este trabajo”
    “Necesito tu ayuda para
    hacer un trabajo”
    “Hey, quiero que nos ayudes a
    hacer este trabajo”
    Servicio A
    Servicio B
    Servicio c
    Web Services ¿Qué es una Actividad?  Es un término genérico que es frecuentemente asociado con

    “Aquí vamos! El trabajo ha sido realizado!

    Web Services ¿Qué es una Actividad?  Es un término genérico que es frecuentemente asociado con

    “Ok, aquí está el resultado de mi trabajo”

    Web Services Actividad Simple  Una actividad simple es típicamente una comunicación sincrónica y por lo

    Web Services

    Actividad Simple

    • Una actividad simple es típicamente una comunicación sincrónica y por lo tanto consiste en de dos servicios intercambiando información usando un estándar request-response.

    • Casi siempre de corta vida.

    Service

    Requestor

    Service

    provider

    Web Services Actividad Simple  Una actividad simple es típicamente una comunicación sincrónica y por lo

    Actividad Simple

    Web Services Actividad Compleja  Una actividad compleja puede involucrar muchos servicios que colaboran para completar

    Web Services

    Actividad Compleja

    • Una actividad compleja puede involucrar muchos servicios que colaboran para completar los múltiples pasos de procesamiento sobre un largo periodo de tiempo.

    • Generalmente son estructurados con procesos de Coreografía (Choreography) y Orquestación (Orchestration).

    Intermediary Intermediary service service
    Intermediary
    Intermediary
    service
    service
    Initial sender
    Initial
    sender
    Ultimate receiver
    Ultimate
    receiver

    Actividad Compleja

    Web Services WS-Coordination  Framework extensible para coordinar acciones distribuidas entre aplicaciones. Hay dos tipos principales

    Web Services

    WS-Coordination

    • Framework extensible para coordinar acciones distribuidas entre aplicaciones. Hay dos tipos principales de coordinación: de corta duración (WS-AtomicTransaction) y de larga duración (WS- BusinessActivity)

    • Activation Service. Responsable de la creación de un nuevo contexto y asociación a una actividad en particular.

    • Registration Service. Permite a los servicios participantes usar la información del contexto.

    • Protocol-specific Services. Representan los protocolos soportados por el coordinador.

    • Coordinator. Es el servicio controlador de la composición de la actividad.

    Web Services WS-Coordination Invoice Submission Service 3 Vendor Profile Service 1 2 Load Account Balancing Payable

    Web Services

    WS-Coordination

    Invoice Submission Service
    Invoice
    Submission
    Service
    3 Vendor Profile Service 1 2 Load Account Balancing Payable Service Service Ledger 4 Service 5
    3
    Vendor
    Profile
    Service
    1
    2
    Load
    Account
    Balancing
    Payable
    Service
    Service
    Ledger
    4
    Service
    5

    Coordination

    Web Services WS-I: Web Services Interoperability  Esfuerzo de diferentes agentes de la industria para definir

    Web Services

    WS-I: Web Services Interoperability

    • Esfuerzo de diferentes agentes de la industria para definir servicios Web interoperables.

    • Debido a que en ocasiones las especificaciones incorporan características complejas o ambiguas que las implementaciones evitan

    • WS-I Basic Profile: Define buenas prácticas en torno a SOAP, WSDL o UDDI para garantizar interoperabilidad y evitar implementaciones deficientes.

    Web Services WS-Addressing  Define dos elementos para incluir en las cabeceras de los mensajes SOAP

    Web Services

    WS-Addressing

    • Define dos elementos para incluir en las cabeceras de los mensajes SOAP y permitir el enrutado del mensaje:

      • End Point References: Información sobre el destino de la petición.

      • Message Information Headers: Información sobre el origen de la petición.

    Web Services Mensajería (con SOAP)  Todas las comunicaciones entre servicios están basadas en Mensajes entonces

    Web Services

    Mensajería (con SOAP)

    • Todas las comunicaciones entre servicios están basadas en Mensajes entonces el framework de mensajería debe estar estandarizado por lo tanto todos los servicio sin importar su origen deben usar el mismo formato y protocolo de transporte.

    • La especificación SOAP fue diseñada para manejar todos los requerimientos desde que fue universalmente aceptada como el protocolo de transporte estándar para los mensajes procesados por los Web Services.

    • Desde su inicial lanzamiento, SOAP ha sido revisado para soportar estructuras de sofisticados mensajes y soportar aplicaciones distribuidas empresariales y SOA.

    Web Services Que es un Mensaje?.  La estructura de un mensaje es simple y consta

    Web Services

    Que es un Mensaje?.

    • La estructura de un mensaje es simple y consta de 3 partes :

      • Envelope.

      • Header

      • Body

  • Cada mensaje SOAP esta empaquetado en un contenedor conocido como Envelope y es responsable por albergar a todas las partes del mensaje.

  • Cada mensaje puede contener un Header, es un área dedicada a guardar meta información. Es opcional pero raramente omitido. Su importancia está relacionada con el uso de header blocks a través de numerosas extensiones que pueden ser implementadas.

  • El contenido real del mensaje está ubicado en el Message Body que típicamente consiste en datos formateados XML.

  • Web Services Attachments .  Para facilitar el requerimiento de entrega de datos que no es

    Web Services

    Attachments.

    • Para facilitar el requerimiento de entrega de datos que no es fácil de formatear en un documento XML existe el uso de SOAP Attachment.

    • Provee un mecanismo diferente de encoding usado para poder transportar los datos en su formato original dentro de un mensaje SOAP.

    • Son comúnmente usados para el envío de imágenes, archivos binarios, etc.

    Faults.

    • Los mensajes SOAP ofrecen la habilidad de añadir lógica de manejo de errores brindando una sección de opcional de Fault que se encuentra dentro del área del body.

    • El uso típico para esta sección es para guardar un mensaje simple a ser usado como información cuando ocurra un error.

    Web Services Ejemplo de Mensaje SOAP <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bean="http://beans.ws.integracionarial.yanbal.com"> <soapenv:Header/> <soapenv:Body> <bean:consultaAuditObj> <integracionWSReq> <cabecera> <codigoInterfaz>CAUDIT</codigoInterfaz> <usuarioAplicacion>ARIAL</usuarioAplicacion>

    Web Services

    Ejemplo de Mensaje SOAP

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bean="http://beans.ws.integracionarial.yanbal.com"> <soapenv:Header/> <soapenv:Body> <bean:consultaAuditObj> <integracionWSReq> <cabecera> <codigoInterfaz>CAUDIT</codigoInterfaz> <usuarioAplicacion>ARIAL</usuarioAplicacion> <codigoAplicacion>ARIAL</codigoAplicacion> <codigoPais>PER</codigoPais> <codigosPaisOD> <CodigoPaisOD> <valor>PER</valor> </CodigoPaisOD> </codigosPaisOD> </cabecera> <detalle> <parametros>

    <codigoConsultora>8348916</codigoConsultora>

    <tipoCodigoBusqueda>CCN</tipoCodigoBusqueda>

    </parametros>

    </detalle>

    </integracionWSReq>

    </bean:consultaAuditObj>

    </soapenv:Body>

    </soapenv:Envelope>

    Web Services Orquestación  La orquestación es un concepto común en ambientes empresariales que han realizado

    Web Services

    Orquestación

    • La orquestación es un concepto común en ambientes empresariales que han realizado la integración entre aplicaciones empresariales y Middlewares para automatizar procesos de negocio.

    • Un workflow lógico centralizado facilita la interoperatibilidad entre dos o mas aplicaciones diferentes.

    • Diferentes procesos pueden ser conectados sin tener que volver a desarrollar las soluciones que originalmente automatizaban los procesos.

    • Una primera especificación que estandariza la orquestación es el Web Services Business Process Execution Language (WS-BPEL) también conocido como BPEL4WS y BPEL.

    Web Services Orquestación  La orquestación es un concepto común en ambientes empresariales que han realizado
    Web Services Orquestación  La orquestación controla casi todas las facetas de una actividad compleja. “I

    Web Services

    Orquestación

    • La orquestación controla casi todas las facetas de una actividad compleja.

    “I am in charge of this process. Follow my rules and there won’t be any trouble”
    “I am in charge of this process.
    Follow my rules and there
    won’t be any trouble”
    Service D
    Service B
    Service A
    Service D
    Service C
    Web Services Orquestación Design Tool Process Designer <process> <sequence> <receive … /> <invoke BPEL … />

    Web Services

    Orquestación

    Design Tool

    Web Services Orquestación Design Tool Process Designer <process> <sequence> <receive … /> <invoke BPEL … />

    Process Designer

    <process> <sequence> <receive … /> <invoke BPEL … /> Process </sequence> </process>
    <process>
    <sequence>
    <receive
    … />
    <invoke
    BPEL
    … />
    Process
    </sequence>
    </process>
    Web Services Orquestación Design Tool Process Designer <process> <sequence> <receive … /> <invoke BPEL … />

    Publishes To

    Web Services Orquestación Design Tool Process Designer <process> <sequence> <receive … /> <invoke BPEL … />

    Orchestration Engine

    .NET Java Siebel
    .NET
    Java
    Siebel
    Web Services Orquestación Design Tool Process Designer <process> <sequence> <receive … /> <invoke BPEL … />

    S

    e

    r

    v

    i

    c

    e

    s

    Web Services You’re approved! Loan Service 1 <process> <sequence> <receive … /> <invoke … /> </sequence>

    Web Services

    You’re approved! Loan Service 1 <process> <sequence> <receive … /> <invoke … /> </sequence> </process> Credit
    You’re
    approved!
    Loan
    Service 1
    <process>
    <sequence>
    <receive
    … />
    <invoke
    … />
    </sequence>
    </process>
    Credit
    Validation
    Loan Service
    (Orchestration)
    Service
    Web Services Coreografía  Los requerimientos para las organizaciones de interoperar con servicios está creciendo y

    Web Services

    Coreografía

    • Los requerimientos para las organizaciones de interoperar con servicios está creciendo y está creciendo en complejidad. Esto es especialmente

    verdad cuando la interoperación requiere extenderse al campo de la colaboración donde múltiples servicios de diferentes organizaciones requieren trabajar juntos para lograr el objetivo común.

    • El Web Service Choreography Description Language (WS-CDL) es una de las especificaciones que intentan organizar el intercambio de información entre organizaciones.

    Web Services Coreografía  Los requerimientos para las organizaciones de interoperar con servicios está creciendo y
    Web Services Coreografía  La colaboración es una importante característica de la coreografía.  El énfasis

    Web Services

    Coreografía

    • La colaboración es una importante característica de la coreografía.

    • El énfasis de la coreografía es la interacción B2B sin embargo también puede aplicarse entre aplicaciones de una misma organización.

    • En una coreografía un Web Service asume un rol de un conjunto de roles definidos.

    • Cada acción que se define en una coreografía puede ser implementada por una serie de mensajes entre dos servicios.

    • Una vez que se ha definido quien puede hablar con quien, se requiere definir la naturaleza de la conversación y para eso existe los canales, definiendo las características del intercambio de mensajes entre dos roles específicos.

    • Finalmente, la lógica actual detrás de un intercambio de mensajes es encapsulado en una interacción que son los building blocks de la coreografía porque el completar una interacción representa el progreso actual dentro de una coreografía.

    Web Services Coreografía  La coreografía habilita la colaboración entre sus participantes. Application A Organization A

    Web Services

    Coreografía

    • La coreografía habilita la colaboración entre sus participantes.

     

    Application A

    Organization A

     
     

    Application B

    “I want to

    Collaborate” choreography
    Collaborate”
    choreography
    “I want to
    “I want to

    Collaborate”

    “Here are the

    Collaboration rules”

    Web Services Seguridad  Los requerimientos de seguridad para una solución automatizada no es algo nuevo

    Web Services

    Seguridad

    • Los requerimientos de seguridad para una solución automatizada no es algo nuevo en el mundo IT. Similarmente en las aplicaciones orientada a servicios se debe manejar los mismo tipos de problemas como proteger la información y asegurarse que el acceso a la lógica es aquella que está permitida.

    • Existen un conjunto de especificaciones de seguridad para las aplicaciones orientada a servicios:

      • WS-Security

      • WS-SecurityPolicy

      • WS-trust

      • WS-SecureConversation

      • WS-Federation

      • XML-Signature

      • XML-Encryption

      • SSL, etc.

    Web Services Seguridad  Es altamente recomendado hacer que la comunicación entre Web Services sea segura

    Web Services

    Seguridad

    • Es altamente recomendado hacer que la comunicación entre Web Services sea segura usando los mecanismos que se describen en WS-Security.

    • Para asegurar un intercambio seguro de información se debe cumplir con 4 requerimientos:

      • Confidencialidad: El intercambio de información no debe estar expuesto a fisgones.

      • Integridad: El mensaje no debe ser modificado

      • Autenticación: El acceso debe ser sólo para aquellos que puedan identificarse

      • No repudiación: Garantiza que el remitente del mensaje no pueda negar que lo envió.

  • Dependiendo de la frecuencia de intercambio de mensajes se puede

  • utilizar diferentes mecanismos de seguridad, por ejemplo para mensajes poco frecuentes se puede usar la tecnología de llave pública que puede ser adecuada para la integridad y confidencialidad, sin embargo para eventos de alta frecuencia es mejor usar los mecanismos de seguridad de WS- Trust y WS-SecureConversation.

    Web Services Seguridad  Tipo de ataques comunes:  Message alteration. La alteración es prevista utilizando

    Web Services

    Seguridad

    • Tipo de ataques comunes:

      • Message alteration. La alteración es prevista utilizando firmas del mensaje utilizando WS-Security.

      • Message disclosure. La confidencialidad es preservada encriptando datos sensibles utilizando WS-Security.

      • Key Integrity. Es mantenida usando algoritmos fuertes con WS-Policy o WS-SecurityPolicy.

      • Authentication. Es establecida usando los mecanismos descritos en WS-Security y WS-Trust.

      • Availability. Los servicios de metadata son sujetos a una variedad de ataques, se recomienda usar WS-Security para mitigar esos ataques.

    Web Services Criptografía  Proveen una base para la protección de los mensajes intercambiados. La Confidencialidad

    Web Services

    Criptografía

    • Proveen una base para la protección de los mensajes intercambiados.

    Web Services Criptografía  Proveen una base para la protección de los mensajes intercambiados. La Confidencialidad

    La Confidencialidad e Integridad pueden ser aseguradas con la

    encriptación y firmas digitales.

    • Existen dos tipos de encriptación : Simétrica y Asimétrica.

    • Encriptación Simétrica: Requiere el uso de la misma llave para encriptar y desencriptar. Ejm. 3DES, AES, RC4, etc.

    Web Services Criptografía  Proveen una base para la protección de los mensajes intercambiados. La Confidencialidad
    Web Services Criptografía  Encriptación Asimétrica: Permite hacer pública su llave de cifrado para facilitar su

    Web Services

    Criptografía

    • Encriptación Asimétrica: Permite hacer pública su llave de cifrado

    Web Services Criptografía  Encriptación Asimétrica: Permite hacer pública su llave de cifrado para facilitar su

    para facilitar su distribución. Se tiene una llave pública y una llave

    privada.

    • Ejemplo de este tipo de algoritmo es RSA-15.

    Web Services Criptografía  Encriptación Asimétrica: Permite hacer pública su llave de cifrado para facilitar su
    Web Services Criptografía  Message Authentication Code (MAC): Se basa en algoritmos matemáticos para asegurar su

    Web Services

    Criptografía

    • Message Authentication Code (MAC): Se basa en algoritmos matemáticos para asegurar su integridad.

    Web Services Criptografía  Message Authentication Code (MAC): Se basa en algoritmos matemáticos para asegurar su

    Una función de tipo Hashing toma los datos como entrada y produce una salida como un pequeño dato llamado Digest.

    • Si el mensaje cambia entonces el Digest será diferente.

    • Ejemplos de este tipo de algoritmos son HMAC-SHA1, HMAC-MD5.

    Web Services Criptografía  Message Authentication Code (MAC): Se basa en algoritmos matemáticos para asegurar su
    Web Services Criptografía  Digital Signature: La tecnología de firma digital se refiere a la firma

    Web Services

    Criptografía

    • Digital Signature: La tecnología de firma digital se refiere a la firma como digital.

    Web Services Criptografía  Digital Signature: La tecnología de firma digital se refiere a la firma

    Se firma el mensaje con la clave privada y luego el destinatario verifica

    la integridad del mensaje generando el valor de la firma con la clave

    pública comparando el valor con la firma digital que viene con el mensaje.

    • Ejemplo de este tipo de algoritmos es el RSA-SHA1.

    Web Services Criptografía  Digital Signature: La tecnología de firma digital se refiere a la firma
    Web Services Protocolos de Seguridad  Las llaves simétricas y asimétricas tienen sus ventajas y desventajas

    Web Services

    Protocolos de Seguridad

    • Las llaves simétricas y asimétricas tienen sus ventajas y desventajas por lo tanto es una mejor idea la combinación de ellas. El protocolo SSL (Socket Secure Layer) definido por Netscape es el protocolo mas utilizado en Internet.

    Web Services Protocolos de Seguridad  Las llaves simétricas y asimétricas tienen sus ventajas y desventajas
    • Con el SSL dos entidades comparten una llave simétrica y además se realiza la autenticación:

      • El cliente accede al servidor.

      • El servidor devuelve su certificado.

      • El cliente prepara un número aleatorio que es una semilla para generar la clave simétrica, encripta la semilla con una llave pública contenida en el certificado y envía los datos encriptados al servidor.

      • El servidor desencripta los datos recibidos para obtener la semilla.

      • Finalmente el cliente y el servidor tienen la misma semilla para poder crear una llave simétrica a partir de esta.

    Web Services Infraestructura de Llave Pública (PKI)  Las llaves asimétricas tienen la ventaja de poder

    Web Services

    Infraestructura de Llave Pública (PKI)

    • Las llaves asimétricas tienen la ventaja de poder ser mostradas a todos y no tenemos que preocuparnos por su entrega. PKI (Public Key Infrastructure). provee una base para el mecanismo del manejo de llaves públicas.

    Web Services Infraestructura de Llave Pública (PKI)  Las llaves asimétricas tienen la ventaja de poder
    • Certificado. Es una prueba de identidad para relacionar a una entidad como parte del intercambio de llaves. El certificado está firmado digitalmente entonces se puede confiar en su contenido.

    • Autoridad Certificadora (CA). Es una entidad que emite los certificados digitales. Si confías en la CA entonces confías en sus certificados.

    Web Services Infraestructura de Llave Pública (PKI)  Las llaves asimétricas tienen la ventaja de poder
    Descanso …

    Descanso …

    Descanso …