Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Tarea 2 - Arquitectura - Software

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

11-10-2020

PRINCIPIOS FUNDAMENTALES

Los principios comunes que se aplican cuando se diseña para usar este estilo de
arquitectura incluyen:

• Abstracción. La arquitectura basada en capas abstrae la vista del modelo como


un todo mientras que provee suficiente detalle para entender las relaciones entre
capas.

• Encapsulamiento. El diseño no hace asunciones acerca de tipos de datos,


métodos, propiedades o implementación.

• Funcionalidad claramente definida. El diseño claramente define la


separación entre la funcionalidad de cada capa. Capas superiores como la capa de
presentación envía comandos a las capas inferiores como la capa de negocios y la
capa de datos y los datos fluyen hacia y desde las capas en cualquier sentido.

• Alta cohesion. Cada capa contiene funcionalidad directamente relacionas con la


tarea de dicha capa.

• Reutilizable. Las capas inferiores no tienen ninguna dependencia con las capas
superiores, permitiéndoles ser reutilizables en otros escenarios.

• Desacople. La comunicacion entre las capas está basada en la abstracción lo que


provee un desacople entre las capas.

2
11-10-2020

BENEFICIOS

Los principales beneficios del estilo de arquitectura basado en capas son:

• Abstracción. Las capas permiten cambios que se realicen en un nivel abstracto.


Usted puede incrementar o disminuir el nivel de abstracción usado en cada capa de
la “pila” jerárquica.

• Aislamiento. El estilo de arquitectura de capas permite asilar los cambios en


tecnologías a ciertas capas para reducir el impacto en el sistema total.

• Rendimiento. Distribuir las capas entre múltiples sistemas (físicos) puede


incrementar la escalabilidad, la tolerancia a fallos y el rendimiento.

3
11-10-2020

• Mejoras en Pruebas. La capacidad de realizar pruebas se beneficia de tener una


interfaz bien definida para cada capa, así como de la habilidad para cambiar a
diferentes implementaciones de las interfaces de cada capa.

• Independencia. El estilo de arquitectura basado en capas el requerimiento de


considerar el hardware y los problemas de instalación, así como las dependencias
de interfaces externas.

EJEMPLOS

Algunos tipos comunes de aplicaciones por capas incluyen:

• Aplicaciones de línea de negocios (LOB), como contabilidad, y sistemas de gestión


de clientes.

• Aplicaciones web Corporativas y sitios Web

• Aplicaciones corporativas de escritorio o clientes inteligentes con servidores


centralizados de aplicación con lógica de negocios.

Los siguientes son algunas variaciones del estilo de arquitectura basado en capas:

• Capas estrictas (Strict layering). Cada capa solo puede invocar a la capa
directamente debajo de a ella.

• Saltos de Capas (Layer skipping). Las capas pueden invocar otras capas más
profundas que las que están directamente debajo de ellas. Esto puede incrementar
el rendimiento, pero impacta la portabilidad.

• Capa de Caja Negra (Black-box layering). Los límites de las capas y sus
dependencias esta definidas de forma estricta usando interfaces, lo que soporta
extensiones en run-time, intercepción y mejora la capacidad de realiza pruebas.

• Capa de Caja Blanca (White-box layering). Clases que colaboran entre los
límites de las capas y están altamente acopladas.

4
11-10-2020

2. MODELO ORIENTADO A SERVICIOS


ARQUITECTURA DE SOFTWARE
La Arquitectura Orientada a Servicios (SOA, siglas del inglés Service Oriented
Architecture) es un estilo de arquitectura de TI que se apoya en la orientación a
servicios. La orientación a servicios es una forma de pensar en servicios, su
construcción y sus resultados. Un servicio es una representación lógica de una
actividad de negocio que tiene un resultado de negocio específico (ejemplo:
comprobar el crédito de un cliente, obtener datos de clima, consolidar reportes de
perforación).

El estilo de arquitectura SOA se caracteriza por:

 Estar basado en el diseño de servicios que reflejan las actividades del negocio
en el mundo real, estas actividades forman parte de los procesos de negocio
de la compañía.

 Representar los servicios utilizando descripciones de negocio para asignarles


un contexto de negocio.

 Tener requerimientos de infraestructura específicos y únicos para este tipo


de arquitectura, en general se recomienda el uso de estándares abiertos para
la interoperabilidad y transparencia en la ubicación de servicios.

 Estar implementada de acuerdo con las condiciones específicas de la


arquitectura de TI en cada compañía.

 Requerir un gobierno fuerte sobre las representación e implementación de


servicios.

 Requerir un conjunto de pruebas que determinen que es un buen servicio.

El desarrollo e implementación de una arquitectura SOA se rige por los principios


descritos en el manifiesto SOA. Por otra parte, la aplicación de la orientación a
servicios se divide en 2 grandes etapas:

 Análisis orientado a servicios (Modelado de servicios)


 Diseño orientado a servicios

El diseño orientado a servicios cuenta con 8 principios de diseño que se aplican


sobre cada uno de los servicios modelados, esto principios de diseño son:

 Contrato de servicio estandarizado: Los contratos de servicio cumplen con los


mismos estándares de diseño.
 Bajo acoplamiento: Los servicios evitan acoplarse a la tecnología que los
implementa y a su vez reducen el acoplamiento impuesto a los consumidores.
 Abstracción: Los contratos presentan la información mínima requerida y la
información de los servicios se limita a los expuesto en el contrato.

5
11-10-2020

 Reusabilidad: Los servicios expresan y contienen lógica de negocio independiente


del consumidor y su entorno, por lo tanto, se convierten en activos de la empresa.
 Autonomía: Los servicios deben tener un gran control de los recursos tecnológicos
sobre los cuales están implementados.
 Sin estado: El servicio reduce el consumo de servicios al delegar el manejo de
estados (sesiones) cuando se requiera.
 Garantizar su descubrimiento: Lo servicios cuentan con metadata que permite
descubrirlos e interpretar el servicio en términos de negocio.
 Preparado para ser usado en composiciones: Los servicios pueden hacer parte
de una composición sin importar el tamaño y complejidad de la misma.

6
11-10-2020

BENEFICIOS DE LA ARQUITECTURA ORIENTADA A SERVICIOS


(SOA)

La arquitectura SOA ayuda a mejorar la agilidad y flexibilidad de las


organizaciones. Las empresas deben ser capaces de crear y producir nuevos
productos y servicios para unos clientes y ciudadanos que son cada vez más
exigentes. El aumento de la colaboración con los clientes y proveedores, y la mayor
capacidad para interpretar los datos de los clientes, proporcionan a las
organizaciones los medios necesarios para interpretar los cambios del mercado de
una forma más precisa y rápida. El pensamiento tecnológico tradicional, que
normalmente intentaba crear una aplicación nueva para cada proceso nuevo, nunca
ha sido capaz de generar tal agilidad. Las aplicaciones se desarrollaban
normalmente en momentos diferentes, con diferentes intenciones, plataformas,
conjuntos de usuarios y niveles de servicio, y suponían diferentes ciclos de
mantenimiento, mejoras y presupuestos.

La arquitectura SOA se centra en las capacidades, no en las aplicaciones. SOA


contempla la arquitectura de toda la empresa, incluidos los procesos de negocio y
las tecnologías de la información. Además, el alto nivel de desacoplamiento e
interoperabilidad proporcionado por la arquitectura SOA permite un alto grado de
reutilización (interno y externo) y de parametrización. Todo ello redunda en una
mayor facilidad y flexibilidad para adaptar y mejorar los procesos de las
organizaciones según los cambios de prioridad del negocio.

7
11-10-2020

Beneficios para el negocio

 Eficiencia. Transforma los procesos de negocio en servicios compartidos con


un menor coste de mantenimiento.
 Capacidad de respuesta. Rápida adaptación y despliegue de servicios, clave
para responder a las demandas de clientes, partners y empleados.
 Adaptabilidad. Facilita la adopción de cambios añadiendo flexibilidad y
reduciendo el esfuerzo.

Beneficios Tecnológicos

 Reduce la complejidad gracias a la compatibilidad basada en estándares


frente a la integración punto a punto.
 Reutiliza los servicios compartidos que han sido desplegados previamente.
 Integra aplicaciones heredadas limitando así el coste de mantenimiento e
integración.
 Beneficios en el desarrollo, ya que las aplicaciones son reutilizables, más
fácil de mantener y tienen la capacidad de ampliación de las funcionalidades
del sistema, exponiéndolas de una forma segura.
 Permite la creación y cambio de servicios de forma incremental, evitando
proyectos de larga duración y alto costo.

8
11-10-2020

En conclusión, la arquitectura de software, con alrededor de 28 años de vida (si


consideramos su nacimiento a partir de 1992), ha emergido como una disciplina de
gran importancia dentro de la ingeniería de software. Una arquitectura adecuada
es pieza clave para lograr tanto los requerimientos funcionales como no funcionales
de un sistema. Por otro lado, una arquitectura no adecuada puede ser catastrófica.

La arquitectura también juega un papel importante en otros aspectos del desarrollo


de software:

 Mejora la comprensión de sistemas grandes y complejos.


 Permite una mejor comunicación entre los diferentes interesados
(stakeholders) en el sistema.
 Mejora las posibilidades de reuso.
 Proporciona planos para la construcción.
 Toma en cuenta la posible evolución del sistema.

También podría gustarte