Sunteți pe pagina 1din 31

Arquitectura de Software

WS Extensions

Agenda

Actividades Mensajera

Orquestacin
Coreografa Seguridad

Web Services
Qu es WS-*?
WS-* son un conjunto de especificaciones que se han publicado en torno a los servicios Web. El trmino WS-* ha sido una abreviacin comnmente utilizada para referirse a la segunda generacin de las especificaciones de los Web Services.

Son extensiones al framework bsico establecido por los estndares de la primera generacin (WSDL, SOAP, UDDI).
El trmino WS-* se ha vuelto muy comn de usar porque las especificaciones de la segunda generacin comienzan con el prefijo WS-.

Web Services
Qu es una Actividad?
Es un trmino genrico 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, mltiples Web Services colaboran para hacer una especfica unidad de trabajo.
Necesito tu ayuda para hacer un trabajo Hey, quiero que nos ayudes a hacer este trabajo

Servicio A

Servicio B

Servicio c

Aqu vamos! El trabajo ha sido realizado!

Ok, aqu est el resultado de mi trabajo

Web Services
Actividad Simple

Una actividad simple es tpicamente una comunicacin sincrnica y por lo tanto consiste en de dos servicios intercambiando informacin usando un estndar request-response. Casi siempre de corta vida.

Service Requestor

Service provider

Actividad Simple

Web Services
Actividad Compleja

Una actividad compleja puede involucrar muchos servicios que colaboran para completar los mltiples pasos de procesamiento sobre un largo periodo de tiempo. Generalmente son estructurados con procesos de Coreografa (Choreography) y Orquestacin (Orchestration).

Initial sender

Intermediary service

Intermediary service

Ultimate receiver

Actividad Compleja

Web Services
WS-Coordination

Framework extensible para coordinar acciones distribuidas entre aplicaciones. Hay dos tipos principales de coordinacin: de corta duracin (WS-AtomicTransaction) y de larga duracin (WSBusinessActivity) Activation Service. Responsable de la creacin de un nuevo contexto y asociacin a una actividad en particular. Registration Service. Permite a los servicios participantes usar la informacin del contexto. Protocol-specific Services. Representan los protocolos soportados por el coordinador. Coordinator. Es el servicio controlador de la composicin de la actividad.

Web Services

WS-Coordination

Vendor Profile Service

Invoice Submission Service

Load Balancing Service

Account Payable Service 4 Ledger Service

Coordination

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 caractersticas complejas o ambiguas que las implementaciones evitan
WS-I Basic Profile: Define buenas prcticas 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 y permitir el enrutado del mensaje:
End

Point References: Informacin sobre el destino de la peticin.


Information Headers: Informacin sobre el origen de la

Message

peticin.

Web Services
Mensajera (con SOAP)
Todas las comunicaciones entre servicios estn basadas en Mensajes entonces el framework de mensajera debe estar estandarizado por lo tanto todos los servicio sin importar su origen deben usar el mismo formato y protocolo de transporte. La especificacin SOAP fue diseada para manejar todos los requerimientos desde que fue universalmente aceptada como el protocolo de transporte estndar 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 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 informacin. Es opcional pero raramente omitido. Su importancia est relacionada con el uso de header blocks a travs de numerosas extensiones que pueden ser implementadas. El contenido real del mensaje est ubicado en el Message Body que tpicamente consiste en datos formateados XML.

Web Services
Attachments.
Para facilitar el requerimiento de entrega de datos que no es fcil 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 comnmente usados para el envo de imgenes, archivos binarios, etc.

Faults.
Los mensajes SOAP ofrecen la habilidad de aadir lgica de manejo de errores brindando una seccin de opcional de Fault que se encuentra dentro del rea del body. El uso tpico para esta seccin es para guardar un mensaje simple a ser usado como informacin 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> <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

Orquestacin
La orquestacin es un concepto comn en ambientes empresariales que han realizado la integracin entre aplicaciones empresariales y Middlewares para automatizar procesos de negocio. Un workflow lgico 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 especificacin que estandariza la orquestacin es el Web Services Business Process Execution Language (WS-BPEL) tambin conocido como BPEL4WS y BPEL.

Web Services

Orquestacin
La orquestacin controla casi todas las facetas de una actividad compleja.

Service D

I am in charge of this process. Follow my rules and there wont be any trouble

Service B

Service A

Service D

Service C

Web Services

Orquestacin
Design Tool .NET

Process Designer BPEL Process

<process> <sequence> <receive /> <invoke /> </sequence> </process>

Java

Publishes To Siebel

S e r v i c e s

Orchestration Engine

Web Services

Youre approved!

Loan Service 1

<process> <sequence> <receive /> <invoke /> </sequence> </process>

Loan Service (Orchestration)

Credit Validation Service

Web Services

Coreografa
Los requerimientos para las organizaciones de interoperar con servicios est creciendo y est creciendo en complejidad. Esto es especialmente verdad cuando la interoperacin requiere extenderse al campo de la colaboracin donde mltiples servicios de diferentes organizaciones requieren trabajar juntos para lograr el objetivo comn.

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

Web Services

Coreografa
La colaboracin es una importante caracterstica de la coreografa. El nfasis de la coreografa es la interaccin B2B sin embargo tambin puede aplicarse entre aplicaciones de una misma organizacin. En una coreografa un Web Service asume un rol de un conjunto de roles definidos. Cada accin que se define en una coreografa 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 conversacin y para eso existe los canales, definiendo las caractersticas del intercambio de mensajes entre dos roles especficos.

Finalmente, la lgica actual detrs de un intercambio de mensajes es encapsulado en una interaccin que son los building blocks de la coreografa porque el completar una interaccin representa el progreso actual dentro de una coreografa.

Web Services

Coreografa
La coreografa habilita la colaboracin entre sus participantes.

Application A

I want to Collaborate

Organization A choreography

Here are the Collaboration rules

Application B

I want to Collaborate

Web Services

Seguridad
Los requerimientos de seguridad para una solucin 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 informacin y asegurarse que el acceso a la lgica 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 comunicacin entre Web Services sea segura usando los mecanismos que se describen en WS-Security. Para asegurar un intercambio seguro de informacin se debe cumplir con 4 requerimientos: Confidencialidad: El intercambio de informacin no debe estar expuesto a fisgones. Integridad: El mensaje no debe ser modificado Autenticacin: El acceso debe ser slo para aquellos que puedan identificarse No repudiacin: 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 tecnologa de llave pblica que puede ser adecuada para la integridad y confidencialidad, sin embargo para eventos de alta frecuencia es mejor usar los mecanismos de seguridad de WSTrust y WS-SecureConversation.

Web Services

Seguridad
Tipo de ataques comunes: Message alteration. La alteracin 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

Criptografa
Proveen una base para la proteccin de los mensajes intercambiados.

La Confidencialidad e Integridad pueden ser aseguradas con la encriptacin y firmas digitales. Existen dos tipos de encriptacin : Simtrica y Asimtrica. Encriptacin Simtrica: Requiere el uso de la misma llave para encriptar y desencriptar. Ejm. 3DES, AES, RC4, etc.

Web Services

Criptografa
Encriptacin Asimtrica: Permite hacer pblica su llave de cifrado para facilitar su distribucin. Se tiene una llave pblica y una llave privada. Ejemplo de este tipo de algoritmo es RSA-15.

Web Services

Criptografa
Message Authentication Code (MAC): Se basa en algoritmos matemticos para asegurar su integridad. Una funcin de tipo Hashing toma los datos como entrada y produce una salida como un pequeo 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

Criptografa
Digital Signature: La tecnologa de firma digital se refiere a la firma como digital. 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 pblica comparando el valor con la firma digital que viene con el mensaje. Ejemplo de este tipo de algoritmos es el RSA-SHA1.

Web Services

Protocolos de Seguridad
Las llaves simtricas y asimtricas tienen sus ventajas y desventajas por lo tanto es una mejor idea la combinacin de ellas. El protocolo SSL (Socket Secure Layer) definido por Netscape es el protocolo mas utilizado en Internet. Con el SSL dos entidades comparten una llave simtrica y adems se realiza la autenticacin: El cliente accede al servidor. El servidor devuelve su certificado. El cliente prepara un nmero aleatorio que es una semilla para generar la clave simtrica, encripta la semilla con una llave pblica contenida en el certificado y enva 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 simtrica a partir de esta.

Web Services

Infraestructura de Llave Pblica (PKI)


Las llaves asimtricas 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 pblicas. 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 confas en la CA entonces confas en sus certificados.

Descanso

S-ar putea să vă placă și