BIIT7 - SOA, Servicios Web, MVC Flashcards
¿Qué es SOA?
- Service-Oriented Architecture
- Concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requerimientos de software del usuario
¿SOA es lo mismo que servicios web?
No exactamente. La mayoría de las definiciones de SOA identifican la utilización de Servicios Web (empleando SOAP y WSDL) en su implementación, no obstante se puede implementar una SOA utilizando cualquier tecnología basada en servicios (REST,…)
Características de SOA
- Formadas por servicios de aplicación débilmente acoplados (poca dependencia) y altamente interoperables.
- Los servicios se basan en una definición formal independiente de la plataforma subyacente y del lenguaje de programación.
¿Qué es un servicio web?
Conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.
¿Quién es responsable de desarrollo de servicios web?
- Responsables de la arquitectura y reglamentación de los servicios Web.
- OASIS
- W3C - Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web
El organismo WS-I (Web Service Interoperability).
Servicios web, ¿qué implementaciones existen?
- Servicios web basados en SOAP (emplean XML, WSDL, SOAP,…)
- Servicios web basados en REST (emplean XML y HTTP)
Servicios web basados en SOAP, ¿qué son?
Aplicaciones independientes de la plataforma que pueden ser fácilmente publicadas, localizadas e invocadas mediante protocolos web estándar.
Servicios web basados en SOAP, ¿qué protocolos la usan?
- XML
- SOAP
- WSDL
- UDDI.
Servicios web basados en SOAP, XML ¿qué es?
- eXtensible Markup Language
- Lenguaje de marcas desarrollado por la W3C que deriva del lenguaje SGML (Standard Generalized Markup Language).
Servicios web basados en SOAP, XML ¿qué alternativas actuales hay?
- JSON (JavaScript Object Notation)
- YAML (YAML ain´t Another Markup Language)
Servicios web basados en SOAP, XML ¿qué es DOM?
- Document Object Model
- Modelo de objetos estandarizado (W3C).
- Define la estructura lógica de los documentos y el modo en que se accede y manipula el documento.
- Carga el documento XML completo en memoria y crea un modelo en forma de árbol de los datos XML.
Servicios web basados en SOAP, XML ¿qué es SAX?
- Simple API for XML
- Interfaz para documentos XML.
- Cuando no se desea acceder a todo el contenido del documento XML sino sólo a algunos datos.
Servicios web basados en SOAP, XML ¿qué es JDOM?
Biblioteca de código abierto para manipulaciones de datos XML optimizada para Java.
Servicios web basados en SOAP, XML ¿qué es JSON?
- JavaScript Object Notation
- Formato ligero para el intercambio de datos.
- Subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML.
Servicios web basados en SOAP, XML ¿qué es JAML?
- YAML ain´t Another Markup Language
- Formato de serialización de datos legible por humanos.
Servicios web basados en SOAP, WDSL ¿qué es?
- Web Service Description Language
- Estándar de la W3C, actualmente en versión 2.0
- Se encarga de describir el servicio web cuando es publicado.
- Está basado en el lenguaje XML
Servicios web basados en SOAP, SOAP ¿qué es?
- Simple Object Access Protocol
- Estándar de la W3C.
- Permite que programas que corren en diferentes SSOO se comuniquen.
- Proporciona un mecanismo estándar de empaquetar un mensaje.
Servicios web basados en SOAP, componentes en los que se divide SOAP
- Sobre SOAP (SOAP envelope).
- Reglas de codificación SOAP (SOAP encoding rules).
- Representación RPC SOAP (SOAP RPC representation).
Servicios web basados en SOAP, componentes en los que se divide SOAP ¿qué define el sobre SOAP?
Define un marco general para expresar lo que está en un mensaje, quién debe tratar con él y si es opcional u obligatorio.
Servicios web basados en SOAP, componentes en los que se divide SOAP ¿qué definen las reglas de codificación SOAP?
Definen un mecanismo de serialización que se puede emplear para el intercambio de instancias de tipos de datos definidos en la aplicación.
Servicios web basados en SOAP, componentes en los que se divide SOAP ¿qué define la representación RPC SOAP?
Define una conversión que se puede utilizar para representar llamadas a procedimientos remotos.
Servicios web basados en SOAP, ¿de qué se compone un mensaje SOAP?
- Sobre SOAP (SOAP envelope).
- Cabecera SOAP (SOAP header).
- Cuerpo SOAP (SOAP body).
- Errores SOAP (SOAP fault).
Servicios web basados en SOAP, ¿qué partes del mensaje SOAP son obligatorias?
- Sobre SOAP (SOAP envelope).
- Cuerpo SOAP (SOAP body).
Servicios web basados en SOAP, otros estándares basados en SOAP
- SwA (SOAP with Attachment).
- MTOM (Message Transmision Optimization Mechanism).
- XOP (XML-binary Optimized Packaging)
Servicios web basados en SOAP, otros estándares basados en SOAP ¿para qué se emplea SwA?
Se emplea para describir cómo usar los servicios web basados en SOAP para recibir o enviar ficheros.
Servicios web basados en SOAP, otros estándares basados en SOAP ¿qué describe MTOM?
Describe cómo optimizar el formato de un mensaje SOAP para cierto tipo de contenido.
Servicios web basados en SOAP, otros estándares basados en SOAP ¿qué hace XOP?
Serializa el mensaje con los datos binarios
Servicios web basados en SOAP, UDDI ¿qué es?
- Universal Description Discovery and Integration
- Estándar de OASIS
- Permite la publicación y localización de los servicios. Los directorios UDDI actúan como una guía telefónica de servicios web.
Servicios web basados en SOAP, partes de un registro UDDI
- Páginas blancas – Información relativa a la empresa que suministra los servicios.
- Páginas amarillas – Es una categorización industrial basada en taxonomías.
- Páginas verdes - Se utilizan para describir la forma de acceder a un servicio web, con información sobre los enlaces al servicio.
Servicios web basados en SOAP, UDDI ¿es un elemento obligatorio para implementar servicios web basados en SOAP?
No
Servicios web basados en SOAP, elementos de seguridad en servicios web
-
Autenticación de servicios web
WS-Security Tokens -
Autenticación de usuarios
SAML -
Integridad
- SSL
- WS-Signature
-
No repudio
WS-Signature -
Confidencialidad
- SSL
- WS-Encryption -
Política de seguridad
WS-Policy
Servicios web basados en SOAP, elementos de seguridad en servicios web, ¿qué es WS-Security (WSS)?
- Estándar de OASIS
- Contiene especificaciones sobre cómo debe garantizarse la integridad y seguridad.
- Incorpora características de seguridad en el encabezado de un mensaje SOAP, trabajando en la capa de aplicación y garantizando la seguridad extremo a extremo.
Servicios web basados en SOAP, elementos de seguridad en servicios web, ¿qué es SAML?
- Security Assertion Markup Language.
- Estándar de OASIS
- Define un esquema XML para el intercambio de datos de autenticación y autorización.
Servicios web basados en REST, ¿qué es?
- Representational State Transfer
- NO es un estándar, es un estilo de arquitectura.
- Se basa en un protocolo C/S sin estado (HTTP)
- Se basa en la existencia de recursos accesibles utilizando un identificador global (URI) –> C y S se comunican por HTTP
Servicios web basados en REST, se basa en limitar la interfaz a un conjunto conocido de operaciones estándar a través de HTTP, estas son:
- POST
- GET
- PUT
- DELETE
Servicios web basados en REST, ¿qué emplea para la seguridad?
SSL
Integración de sistemas, ¿qué middleware se utiliza?
A través de middleware como los MOM o Middleware Orientados a Mensajes (Message Oriented Middleware).
Integración de sistemas, ¿qué son los MOM?
- Infraestructura hardware o software que soporta el envío y recepción de mensajes entre sistemas distribuidos.
- Permite que las aplicaciones estén distribuidas sobre plataformas heterogéneas y reduce la complejidad de desarrollo de aplicaciones que abarcan múltiples SO o protocolos de red, aislando las aplicaciones de los detalles de interconexión.
Integración de sistemas, ¿qué tipos de MOM hay?
- EM (Estaciones de mensajería)
- MInt (Motores de integración)
- ESB (Enterprise Service Bus)
Integración de sistemas, MOM ¿cuándo se emplean las EM?
Se pueden emplear cuando todos los sistemas a integrar
* están diseñados bajo la misma arquitectura de comunicación
* se intercambian información empleando el mismo lenguaje.
Integración de sistemas, MOM, ejemplos de EM
- ActiveMQ Apache, incluido en el framework Apache Camel
- Advanced Queueing Oracle
- MSMQ Microsoft
Integración de sistemas, MOM, ¿qué añaden los MInt con respecto a los EM?
Añaden interpretación y tratamiento (traducción) de los mensajes transmitidos por las funciones de un EM.
Esto posibilita que los sistemas a integrar
- sean más complejos
- no empleen el mismo lenguaje de intercambio de información
- no tengan la misma arquitectura de comunicación.
Integración de sistemas, MOM, ¿qué hay siempre en el núcleo de MInt?
Una EM
Integración de sistemas, MOM, ejemplos de MInt
- IBM Websphere MQ Integrator
- TIB/Message Broker de TIBCO.
Integración de sistemas, MOM, ¿qué es el ESB?
Tecnología que proporciona la infraestructura necesaria para la definición de servicios, de forma que éstos puedan ser consumidos de manera uniforme sin conocer los detalles de los sistemas que los proporcionan.
Integración de sistemas, MOM, ¿qué ofrece el ESB?
- Seguridad
- Transformación de mensajes
- Conversión de protocolos
- Administración de colas
- Priorización y enrutamiento de servicios
Integración de sistemas, MOM, ejemplos de ESB
- IBM Websphere ESB
- ServiceMix de Apache del framework Apache Camel
- BEA Aqualogic Service Bus
- Oracle Enterprise Service Bus
- Microsoft Biztalk
- Microsoft Azure Service Bus
Orquestación de servicios web, ¿en qué modelo se basa? ¿por qué?
- Modelo centralizado
- Las interacciones no se realizan directamente entre los servicios web sino
que existe una entidad encargada de definir la lógica de interacción, es por tanto un proceso que se encarga de llamar a servicios web en el orden correcto para dar un resultado.
Orquestación de servicios web, ¿cuál es el lenguaje más representativo?
BPEL (Business Process Execution Language), de OASIS
Orquestación de servicios web, BPEL ¿cuál es la entidad encargada de la orquestación?
El director, que no es otro que el motor de ejecución BPEL.
Coreografía de servicios web, ¿en qué modelo se basa? ¿por qué?
- Modelo de composición de servicios web distribuido
- Hay que definir qué conversaciones se pueden producir entre distintos servicios web.
Coreografía de servicios web, ¿cuál es el estándar de referencia?
WSCI (Web Services Choreography Interface) estandarizado por la W3C.
Coreografía de servicios web, WSCI ¿qué define?
Define un proceso mediante los intercambios de mensajes entre Servicios Web que participan en la realización del mismo. Cada servicio se ve como una caja negra.
El MVC (Model View Controller) es un patrón …
… de diseño
El MVC, ¿en qué consiste?
Divide una aplicación interactiva empleando 3 abstracciones:
* Modelo (Model)
* Vista (View)
* Controlador (Controller)
El MVC, ¿de qué se encarga el Modelo?
- Encapsula los datos y las funcionalidades.
- Responsable de:
- Acceder a la capa de almacenamiento de datos.
- Definir las reglas de negocio (la funcionalidad del sistema).
El MVC, ¿de qué se encarga la Vista?
- Muestra la información al usuario.
- Pueden existir múltiples vistas del modelo.
- Cada vista tiene asociado un componente controlador.
El MVC, ¿de qué se encarga el Controlador?
Reciben las entradas y traduce los eventos en solicitudes de servicio (“service requests”) para el modelo o la vista.