Características de las aplicaciones orientadas a servicios (SOA)
Alumno: Valentin Carrera Montserrat
La arquitectura orientada a los servicios o mejor conocido como SOA es un tipo de
diseño de software que permite reutilizar sus elementos gracias a las interfaces de
servicios los cuales se comunican a través de una red con un lenguaje común.
Contiene las integraciones de datos y código que se necesitan para llevar a cabo
una función empresarial completa y diferenciada.
Servicios XML
XML mejor conocido como lenguaje de mercado extensible, el cual permite
almacenar los datos de forma compatible; admite el intercambio de información
entre sistemas de computación, como sitios web, base de datos y/o otras
aplicaciones.
Es importante recalcar que este lenguaje proporciona reglas para cualquier dato por
ejemplo:
• Ponga el título en negrita
• Esta oración es un encabezado
• Esta palabra es el autor
Algunas ventajas de usar este servicio son:
• Es un lenguaje fácilmente leído por los navegadores.
• Separa el contenido de la presentación. Es decir no es un documento de
representación gráfica como puede ser el HTML, el CSS o el Javascript. Este
formato es ideal para presentar datos.
• Diseñado para cualquier lenguaje y alfabeto. Es universal.
• Fácilmente entendible para software y para personas humanas.
• Tiene unas sencillas pero estrictas reglas de composición. Esto hace sencillo
su análisis ya que siempre el proceso para realizar este tipo de archivos está
muy definido.
• Estructura jerárquica.
Un archivo de lenguaje de marcado extensible (XML) es un documento basado en
texto que se puede guardar con la extensión .xml. Puede escribir XML de forma
similar a otros archivos de texto. Para crear o editar un archivo XML, puede usar
cualquiera de las siguientes opciones:
• Editores de texto como Notepad o Notepad++
• Editores XML en línea
• Navegadores web
• Cualquier archivo XML incluye los siguientes componentes
Servicios SOAP
SOAP (anteriormente conocido como Simple Object Access Protocol) es un
protocolo ligero para el intercambio de información en entornos descentralizados y
distribuidos. Un estándar basado en XML para la mensajería por HTTP y otros
protocolos de Internet. Es un protocolo ligero para el intercambio de información en
un entorno descentralizado y distribuido. Está basado en XML y consta de tres
componentes:
• Un sobre que define una infraestructura para describir lo que hay en el
mensaje y cómo procesarlo.
• Un conjunto de reglas de codificación para expresar instancias de tipos de
datos definidos por la aplicación.
• Un convenio para representar las llamadas a procedimiento remoto (RPC) y
sus respuestas.
Estilos de comunicación distintos:
Llamada a procesamiento remoto (RCP). Es una operación que devuelve un
resultado, normalmente se utiliza con la decodificación SOAP la cual no es
compatible con WS-I.
Estilos de documento. Conocido como estilos orientados a documentos u mensajes,
este proporciona una capa de abstracción más baja y exige más trabajo de
programación.
Codificación SOAP. Permite serializar/deserializar valores de tipos de datos del
modelo de datos SOAP. Este estilo de codificación está definido en el estándar
SOAP 1.1 y no está en conformidad con WS-I.
Servicios WSDL
WSDL ( Web Services Description Language). Es una notación XML para describir
un servicio web. Una definición WSDL indica a un cliente cómo componer una
solicitud de servicio web y describe la interfaz que proporciona el proveedor del
servicio web.
WSDL define un formato XML para describir servicios de red como un conjunto de
puntos finales que operan en mensajes que contienen información orientada a
documentos u orientada a procedimientos. Los puntos finales concretos
relacionados se combinan en puntos finales abstractos.
WSDL permite a los proveedores de servicios especificar las siguientes
características de un servicio Web:
• El nombre del servicio Web y la información de direccionamiento
• El protocolo y el estilo de codificación que se van a utilizar al acceder a las
operaciones públicas del servicio Web
• La información de tipos, como las operaciones, los parámetros y los tipos de
datos que componen la interfaz del servicio Web
Los documentos permiten a los desarrolladores exponer sus aplicaciones como
servicios accesibles de red en Internet. Mediante UDDI y WSIL, otras aplicaciones
pueden encontrar documentos WSDL y enlazarlos para ejecutar transacciones o
realizar otros procesos de empresa. También pueden generar esqueletos de Java
y de enterprise bean a partir del archivo WSDL existente. Los clientes de servicios
de empresa pueden generar un proxy Java a partir de un documento WSDL, de ese
modo proporcionan al servicio Web una interfaz Java sencilla de utilizar.
Servicios UDDI
UDDI (Universal Description, Discovery, and Integration) define un modo de
publicar y encontrar información sobre servicios Web.
Tiene dos funciones:
• Es un protocolo basado en SOAP el cual define como se comunican los
clientes con los registros UDDI.
• Es un conjunto de registros duplicados globales en particular.
UDDI incluye un esquema XML para mensajes SOAP que define un conjunto de
documentos para describir información de empresas y servicios, un conjunto común
de API para consultar y publicar información en los directorios y una API para
duplicar entradas de directorio entre nodos UDDI iguales.
Registro UDDI
UDDI gestiona el descubrimiento de servicios Web, que confía en un registro
distribuido de empresas y sus descripciones de servicio implementado en un
formato XML común. Antes de poder publicar la entidad de empresa y el servicio
Web a un registro público, primero debe registrar la entidad de empresa con un
registro UDDI.
Los registros UDDI tienen dos formatos: público y privado. Ambos tipos se ajustan
a las mismas especificaciones. Un registro privado permite publicar y probar las
aplicaciones e-business internas en un entorno seguro y privado.
Un registro público es una colección de directorios iguales que contienen
información sobre empresas y servicios. Localiza servicios que se registran en uno
de sus nodos iguales y facilita el descubrimiento de servicios Web publicados. Se
duplican los datos en todos los registros de forma regular. Esto asegura la
coherencia en los formatos de descripción de servicios y facilita el seguimiento de
los cambios a medida que se producen. IBM mantiene dos registros públicos
llamados IBM UDDI Business Registry e IBM UDDI Test Registry. IBM UDDI Test
Registry permite desarrollar el servicio Web y experimentar el proceso de registro
UDDI sin poner el servicio Web en un registro oficial. Utilice IBM UDDI Test Registry
para experimentar con UDDI y para probar y validar el servicio Web. Para obtener
más información en los registros públicos de IBM.
Los registros privados permiten publicar y probar las aplicaciones internas en
entornos privados seguros.
UDDI Business Registry actúa como un directorio B2B que enlaza mercados,
compradores y vendedores. La información proporcionada en el registro consta de
tres componentes: páginas blancas, páginas amarillas y páginas verdes. Las
páginas blancas incluyen el nombre de la empresa, la información de contacto y una
descripción de texto de los servicios de la empresa. Las páginas amarillas incluyen
categorizaciones industriales basándose en taxonomías estándar, como NAICS,
ISO 3166 y UNSPSC. Las páginas verdes incluyen referencias a especificaciones
para servicios Web y punteros a distintos mecanismos de descubrimiento basados
en archivo y URL. Esto facilita a las empresas la integración en los mercados. Dado
que la información se registra, se pone a disposición en todas las aplicaciones.
Servicios REST
REST es una interfaz para conectar varios sistemas basados en el protocolo
HTTP (uno de los protocolos más antiguos) y nos sirve para obtener y generar datos
y operaciones, devolviendo esos datos en formatos muy específicos, como XML y
JSON.
El formato más usado en la actualidad es el formato JSON, ya que es más ligero y
legible en comparación al formato XML. Elegir uno será cuestión de la lógica y
necesidades de cada proyecto.
REST se apoya en HTTP, los verbos que utiliza son exactamente los mismos, con
ellos se puede hacer GET, POST, PUT y DELETE. De aquí surge una alternativa a
SOAP.
Ventajas de Rest
• Nos permite separar el cliente del servidor. Esto quiere decir que nuestro
servidor se puede desarrollar en Node y Express, y nuestra API REST con
Vue por ejemplo, no tiene por qué estar todos dentro de un mismo.
• En la actualidad tiene una gran comunidad como proyecto en Github.
• Podemos crear un diseño de un microservicio orientado a un dominio (DDD)
• Es totalmente independiente de la plataforma, así que podemos hacer uso
de REST tanto en Windows, Linux, Mac o el sistema operativo que nosotros
queramos.
• Podemos hacer nuestra API pública, permitiendo darnos visibilidad si la
hacemos pública.
• Nos da escalabilidad, porque tenemos la separación de conceptos de
CLIENTE y SERVIDOR, por tanto, podemos dedicarnos exclusivamente a la
parte del servidor.
Características de las aplicaciones orientadas a servicios
La Arquitectura Orientada a Servicios, conocida también como SOA por sus siglas
en inglés (Service-Oriented Architectures), es un tipo de arquitectura de software
que permite reutilizar sus elementos gracias a las interfaces de servicios que se
comunican a través de una red con un lenguaje común. Define la utilización de
servicios (programas concretos o tareas con una función específica) para dar
soporte a los requisitos de negocio.
• Los servicios son autónomos. Cada servicio SOA se mantiene y desarrolla
de forma independiente.
• Los servicios son distribuibles. Se pueden ubicar en cualquier parte sobre la
red siempre que este soporte los protocolos de comunicación requeridos.
• Los servicios se pueden descomponer. Cada servicio SOA es independiente
de los otros y puede ser remplazado o actualizado sin romper con las
aplicaciones que conecta.
• Los servicios no comparten clases. En una arquitectura SOA, los servicios
comparten y contratos y esquemas cuando se comunican, no clases
internas.
• Los servicios son compatibles con políticas. Entiendo políticas como la
definición de características como el transporte, protocolo o seguridad.
• Compartición de componentes: Mientras que los Microservicios minimizan el
uso compartido de componentes a través de la red, SOA le saca todo el
partido que puede. Algo que impacta en la latencia del entorno, haciendo que
los sistemas basados en SOA sean más lentos.
• Granularidad del servicio: En una arquitectura SOA, los servicios son más
versátiles en cuanto a su funcionalidad empresarial, mientras que los
Microservicios se componen de servicios muy especializados y con un
propósito único.
• Coordinación: En una arquitectura SOA, es necesario coordinar con varios
grupos para atender a las solicitudes de negocio, mientras que los
Microservicios generalmente no presentan coordinación entre sí.
• Middleware: Los microservicios trabajan con una capa de API creada entre
los servicios y consumidores de servicios, mientras que en una arquitectura
SOA utiliza el Middleware para su comunicación, hecho que le agrega
capacidades adicionales como la mediación y enrutamiento, mejora de
mensajes, mensajes y transformación de protocolos, etc.
• Interoperabilidad heterogénea: Si nuestro objetivo es lograr la
integración de varios sistemas utilizando diferentes protocolos en un entorno
heterogéneo, la mejor opción es un enfoque SOA. Sin embargo, será
preferible recurrir a un enfoque de microservicios si todos los
servicios pueden quedar expuestos y se deba usar el mismo protocolo de
acceso remoto, ya que con Microservicios intentamos simplificar el patrón de
arquitectura al reducir el número de opciones de integración.
Provee de servicios de datos flexibles y escalables, entre los que se encuentran:
• Servicios de infraestructura para la autenticación, control de acceso y
registro.
• Servicios CRUD para crear, leer y actualizar datos de todos los sistemas de
back-end, incluyendo datos estructurados, no estructurados, semi-
estructurados, mainframe y la nube.
• Servicios de integración que proporcionan la gama completa de funciones de
integración de datos, tales como el acceso a datos, el perfilado, la
transformación, los procesos de calidad y la entrega, incluyendo la federación
de datos.
• Servicios de metadatos para la gestión y el uso de metadatos técnicos y de
negocio para el descubrimiento, la auditoría, el linaje y el análisis del impacto.
Entrega a tiempo datos de alta calidad. Para ello:
• Informatica SOA proporciona una amplia gama de transformaciones de
calidad de datos integradas, incluyendo la limpieza de datos, el matching y la
validación, para asegurar la fiabilidad de los datos.
• Además, suministra herramientas basadas en roles que comparten
metadatos comunes para identificar de forma proactiva, analizar y solucionar
problemas complejos de calidad de datos.
3. Garantiza la flexibilidad, necesaria para ganar rapidez en el desarrollo y apoyar
el cambio cuando las circunstancias lo requieren. Lo consigue:
• Proporcionando un entorno de desarrollo libre de codificación, impulsado por
metadatos y basado en un asistente, que permite crear rápidamente
cualquier tipo de servicios de datos, de los más simples a los más
sofisticados.
• Dando soporte a toda clase de mecanismos de entrega de datos flexible (ya
sea por lotes, o en base a una captura de datos modificados, incuso en
tiempo real) incluyendo la federación y la virtualización de datos.
• Apoyando la participación de los usuarios de negocios en la validación de
términos de negocio y creación de reglas, desde los primeros estadios del
diseño y la planificación.
• Aportando una gestión de metadatos y análisis de gran riqueza orientada al
linaje de datos y al análisis de impacto de los cambios potenciales.
Aplicaciones web hibridas MASHUP
Una Mashup o aplicación web híbrida es una aplicación que combina servicios de
varias páginas web en una sola para ofrecer un nuevo servicio. Es habitual que la
integración de datos se obtenga desde APIs abiertas. La libertad para integrar todas
estas fuentes supone una oportunidad para desarrollar nuevos servicios en muy
poco tiempo, al basarse en funcionalidades ya existentes.
Típicamente los mashups se basan en utilizar contenido de terceros a través de
fuentes o interfaces públicas. Entre las fuentes más utilizadas para
crear mashups destacan Google Maps, Amazon, Flickr, Youtube, Ebay y Yahoo. La
facilidad con la que estas plataformas permiten integrar su contenido ha propiciado
un gran éxito para las aplicaciones web híbridas.
El término proviene de una expresión anglosajona para designar la creación de una
canción a partir de la mezcla de otras composiciones, normalmente de estilos muy
diferentes. Este origen ilustra muy bien en que consiste un mash up y cómo se
forma. El término musical ha dado lugar al nombre de la aplicación web híbrida a
partir del desarrollo de la web 2.0.
Entre las principales ventajas de las mashups vemos las siguientes:
• Generación rápida de contenido. La integración con soluciones ya
existentes permite acortar los tiempos de desarrollo. Lo que
antiguamente podía llevar semanas de trabajo ahora se puede
implementar en tan solo unos minutos.
• Facilidad de uso. Cualquiera con conocimientos de desarrollo puede
crear servicios novedosos integrando las funcionalidades ya
existentes con otras propias. Los requisitos de diseño de las mismas
son mínimos por lo que es más importante la creatividad que el perfil
técnico.
• Sinergias. Las marcas pueden crear experiencias innovadoras sin que
los usuarios tengan que salir de sus páginas web. A su vez, las fuentes
de mashup logran una mayor visibilidad que si sus servicios solo se
ofrecieran a través de su página web.
Como ejemplos de mashups podemos destacar:
• Wikimapia.org. Mashup que combina una wiki con Google Maps que
permite a los usuarios aportar información sobre lugares geográficos.
• Chicago Crime. Mashup del departamento de policía de Chicago que
integra datos internos de criminalidad en Chicago con Google maps
para monitorizar zonas con más crímenes.
• Healthmap. Herramienta con mapas sobre epidemias.
• Flickr. Es una de las mash ups más habituales. Permite integrar
galerías de fotos en páginas web sin añadir ningún tipo de
funcionalidad que pueda entorpecer el correcto funcionamiento del
sitio.
Características de Mashup
En la actualidad conforme la Web 2.0 comienza a ser adoptada en las empresas,
empezamos a ver su evolución, que lleva las siguientes características en el futuro
de mashups en las organizaciones entre ellas tenemos:
• Hecho por y para el usuario y compartirlo con más usuarios.
• Capacidad dinámica de compartir e integrar de la misma manera con
otras fuentes.
• Utilización tanto de servicios Web públicos, así como servicios
internos.
• Orientado hacia la empresa, sus clientes y aliados de negocio.
• combinación, la visualización y la agregación
FIREBASE
Firebase de Google es una plataforma en la nube para el desarrollo de
aplicaciones web y móvil.
Firebase dispone de diferentes funcionalidades, que se pueden dividir básicamente
en 3 grupos: Desarrollo (Develop), Crecimiento (Grow) y Monetización (Earn), a los
que hay que sumar la Analítica (Analytics).
Desarrollo
El primer grupo de funciones es conocido como Desarrollo o Develop en Firebase.
Como su nombre indica, incluye los servicios necesarios para el desarrollo de un
proyecto de aplicación móvil o web
REALTIME DATABASE
Una de las herramientas más destacadas y esenciales de Firebase son las bases
de datos en tiempo real. Estas se alojan en la nube, son No SQL y almacenan los
datos como JSON. Permiten alojar y disponer de los datos e información de la
aplicación en tiempo real, manteniéndolos actualizados aunque el usuario no realice
ninguna acción.
AUTENTICACIÓN DE USUARIOS
La identificación de los usuarios de una app es necesaria en la mayoría de los casos
si estos quieren acceder a todas sus características.
ALMACENAMIENTO EN LA NUBE
Firebase cuenta con un sistema de almacenamiento, donde los desarrolladores
pueden guardar los ficheros de sus aplicaciones (y vinculándolos con referencias a
un árbol de ficheros para mejorar el rendimiento de la app) y sincronizarlos.
CRASH REPORTING
Para mantener y mejorar la calidad de la app, hay que prestar especial atención a
los fallos, por lo que los seguimientos de errores (y también del rendimiento general
de la app) son clave para poder actuar y solucionarlos.
TEST LAB
El Laboratorio de pruebas permite testear la app en dispositivos Android virtuales
basados en los parámetros que configuremos. De esta forma, es mucho más
sencillo detectar posibles errores antes de lanzar la aplicación.
REMOTE CONFIG.
La configuración remota sirve para modificar ciertas funciones, aspectos o incluso
la apariencia de la aplicación sin que sea necesario publicar una actualización de la
misma. De esta forma, no se requiere ningún tipo de acción por parte del usuario y
se trata de cambios mucho más dinámicos.
CLOUD MESSAGING
Su utilidad es el envío de notificaciones y mensajes a diversos usuarios en tiempo
real y a través de varias plataformas.
HOSTING
Firebase también ofrece un servidor para alojar las apps de manera rápida y
sencilla, esto es, un hosting estático y seguro. Proporciona certificados de
seguridad SSL y HTTP2 de forma automática y gratuita para cada dominio,
reafirmando la seguridad en la navegación. Funciona situándolas en
el CDN (Content Delivery Network) de Firebase, una red que recibe los archivos
subidos y permite entregar el contenido.
Crecimiento
El segundo bloque está enfocado al proceso de crecimiento de la aplicación, que
contempla tanto la gestión de aquellos que ya son usuarios de la misma, como
herramientas para la captación de nuevas audiencias.
NOTIFICATIONS
Las notificaciones son parte esencial de muchas aplicaciones para informar al
usuario de eventos, que pueden ir desde un mensaje recibido hasta una información
relevante según el tipo de usuario. Con esta herramienta, se pueden diseñar y
enviar las notificaciones push en el momento preciso, con la posibilidad, además,
de segmentarlas y personalizarlas (por ejemplo, en base al usuario, su idioma o el
tipo de dispositivo que utiliza).
APP INDEXING
App Indexing posibilita la integración de la aplicación en los resultados arrojados por
el buscador de Google, con el cual está vinculado Firebase. De este modo, las
búsquedas sobre contenido relacionado pueden mostrar la app indexada como
resultado, impulsando el tráfico orgánico y dando a conocer el proyecto.
DYNAMIC LINKS
Se trata de links “inteligentes”, que permiten redirigir al usuario a zonas o contenidos
concretos de la aplicación en función del objetivo que se quiera conseguir y de la
personalización que se otorgue a diversos parámetros de esta URL.
INVITES
Mediante Invites, los usuarios tienen la posibilidad de invitar a sus contactos a
utilizar la app o de compartir contenidos específicos con ellos. Esto se realiza por
diferentes medios, como e-mails o SMS. Es interesante la posibilidad de cuantificar
las invitaciones enviadas y la repercusión de las mismas.
ADWORDS
Con AdWords y la posibilidad de realizar campañas de publicidad online, es más
sencillo dar a conocer la aplicación, impactando a usuarios potenciales para activar
el crecimiento.
Monetización
La monetización en Firebase es la tercera pata contemplada. En este caso, la
búsqueda de ganancias viene ligada a la publicidad que se puede insertar en las
aplicaciones, consiguiendo que los usuarios de las mismas reciban anuncios
relevantes en función de la segmentación que se le haya dado a la campaña.
Para integrar estos anuncios en la app, Firebase cuenta con AdMob, muy
interesante para rentabilizar la aplicación.
Servicios de Firebase
Firebase te permite desarrollar apps de alta calidad, aumentar tu base de usuarios
y ganar más dinero. Cada función es independiente, pero juntas brindan mejores
resultados.
REFERENCIAS:
• beServices, Consultora TIC especializada en servicios cloud computing.
(2021, 14 de diciembre). ¿Qué es la arquitectura orientada a servicios
(SOA)? ¿Cuáles son los beneficios en la empresa? Servicios Cloud
Computing para empresas | beServices. https://www.beservices.es/soa-
arquitectura-orientada-servicios-que-es-beneficios-n-5513-es
• IBM Documentation. (s.f.). IBM - Deutschland |
IBM. https://www.ibm.com/docs/es/rsas/7.5.0?topic=standards-web-
services-description-language-wsdl
• Informatica SOA: características y productos. (s.f.). El Valor de la Gestión de
Datos. https://blog.powerdata.es/el-valor-de-la-gestion-de-
datos/bid/397549/informatica-soa-caracter-sticas-y-productos
• Qué es Firebase: funcionalidades, ventajas y conclusiones. (s.f.).
DIGITAL55. https://digital55.com/blog/que-es-firebase-funcionalidades-
ventajas-conclusiones/
• Qué es REST: Conoce su potencia. (s.f.).
OpenWebinars.net. https://openwebinars.net/blog/que-es-rest-conoce-su-
potencia/#:~:text=Qué%20significa%20REST,específicos,%20como%20XM
L%20y%20JSON.
• ¿Qué es XML? - Explicación de XML - AWS. (s.f.). Amazon Web Services,
Inc. https://aws.amazon.com/es/what-
is/xml/#:~:text=El%20lenguaje%20de%20marcado%20extensible,datos%20
y%20aplicaciones%20de%20terceros.
• ▷ Qué es XML y para qué se utiliza ✅. (s.f.). Borja Aranda
Vaquero. https://borjaarandavaquero.com/que-es/xml/