Documente Academic
Documente Profesional
Documente Cultură
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
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
Coordination
Web Services
WS-I: Web Services Interoperability
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
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
Java
Publishes To Siebel
S e r v i c e s
Orchestration Engine
Web Services
Youre approved!
Loan Service 1
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
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:
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
Descanso