Arquitectura de Software
Arquitectura de Software
Arquitectura de Software
ANALISIS DE SISTEMAS
PRESENTADO POR:
CODIGO 20131078098
CODIGO 20111078089
CODIGO: 20131078045
PRESENTADO A:
5.1 Descripción
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que
las tareas se reparten entre los proveedores de recursos o servicios,
llamados servidores, y los demandantes, llamados clientes. Un cliente realiza
peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también
se puede aplicar a programas que se ejecutan sobre una sola computadora,
aunque es más ventajosa en un sistema operativo multiusuario distribuido a través
de una red de computadoras.
Algunos ejemplos de aplicaciones computacionales que usen el modelo cliente-
servidor son el Correo electrónico, un Servidor de impresión y la World Wide Web
Infraestructura de redes
Componentes Hardware y Software que garantizan la conexión física y la
transferencia de datos entre los distintos equipos de la red.
Infraestructura de comunicaciones
Componentes Hardware y Software que permiten la comunicación y su gestión,
entre los clientes y los servidores.
La arquitectura Cliente/Servidor es el resultado de la integración de dos culturas.
Por un lado, la del Mainframe que aporta capacidad de almacenamiento,
integridad y acceso a la información y, por el otro, la del computador que aporta
facilidad de uso (cultura de PC), bajo costo, presentación atractiva (aspecto lúdico)
y una amplia oferta en productos y aplicaciones.
6. Nombre:
6.1 Descripción
6.3 Estructura
En él se integran.
La plataforma de proceso. Una vez diseñado el sistema, es el elemento
encargado de proporcionar los recursos físicos y el software de base para
ejecutarlo. Está formado por los Mainframe, PC’s, PDA’s, teléfonos, etc… Los
elementos de la conectividad. Son los encargados se proporcionar el transporte
para comunicar e integrar los elementos de la plataforma de proceso. Son
básicamente las redes y las comunicaciones. El almacenamiento de datos,
formado por los datos en si y los gestores donde se localizan. Los elementos de
software donde se incluyen las aplicaciones, los servicios que ayudan a crearlas y
las interfaces que ayudan a usarlas.
6.4 Funcionamiento
La arquitectura distribuida funciona sobre cinco enfoques.
6.4. 1. La Perspectiva de Negocios (Business Perspective). Describe como trabaja
la compañía. Incluye las relaciones con terceros y los planes de evolución desde
el estado actual al objetivo deseado. Son componentes clásicos de la perspectiva
de negocio: y Los procesos de negocio. y Los Manuales de Procedimientos. y
Objetivos a corto, medio y largo plazo. y Las estructuras organizativas y sus
condicionamientos. y Las funciones de negocio que se realizan. y Las relaciones
entre estos componentes. y Los organigramas de la empresa, etc. @EMG/10 -
Enric Martínez Gomàriz 8 La perspectiva de negocios puede expresarse mediante
la modelización de los procesos empresariales desarrollándolos mediante un
modelo de procesos, siguiendo un esquema como el de la figura de la derecha.
Los procesos se gestionan mediante Bussines Process Management (BPM). Entre
otros, los elementos a gestionar dentro de un proceso BPM son, entre otros: •
Mapas de procesos.
• Modelización de los procesos.
• Reglas de negocio.
• Modelo conceptual de datos.
• Integración de datos y procesos.
• Descripción de procesos dentro de un marco SOA.
• Diseño de los procesos dentro de aplicaciones distribuidas SOA..
• Mapa de eventos-respuestas.
• Análisis de afinidad y integraci ón de procesos ., etc..
6.4. 2. La Perspectiva de Aplicación (Aplication Perspective). Define las
aplicaciones de la empresa. Son componentes clásicos de la perspectiva de
aplicación: y Descripción de las aplicaciones existentes. y Descripción de los
servicios (en el sentido que introduciremos más adelante) disponibles, internos o
externos, y sobre los que se soportan los procesos de negocio. y Forma de
obtener esos servicios. y Planes para el desarrollo de nuevas aplicaciones y
reingeniería de las antiguas para alinearlas con los objetivos y retos de los
negocios.
6.4.3. La Perspectiva de la Información (Information Perspective). Define que
necesita saber la organización para funcionar. Son componentes clásicos de la
perspectiva de información: Procesos Terceros Clientes Proveedores
Colaboradores Sistema Distribuido basado en servicios Sistema Distribuido
basado en servicios Procedimientos Recursos Humanos Calidad Cuadro de
mandos. Arquitectura para organizar los procesos de negocio. @EMG/10 - Enric
Martínez Gomàriz 9 y La descripción y contenido de los datos. y Diccionario de
conceptos donde se explican todos los términos utilizados en la información de la
aplicación. Por ejemplo, como se evalúa el seguimiento del presupuesto de ventas
o que se entiende por venta real. Observe que esta información pueden ser
atributos de más de una entidad u obtenerse como integración de varios de ellos.
y Los modelos de datos y las estructuras de las bases de datos. y Las políticas de
administración de datos. y Descripción de las diferentes visiones con que esos
datos se crean, manipulan y consultan por la organización. y Procesos de
Workflow de datos.
6.4. 4. La Perspectiva de Gestión (Management Perspective). Define los
condicionamientos de gestión y administración de toda la plataforma distribuida.
Aunque su contenido es muy amplio, son componentes clásicos de la perspectiva
de gestión: y Lugares donde existe administración informática. y
Condicionamientos organizativos. y Políticas de soporte a usuario. y Gestión de
adquisición de recursos. y Horarios de disponibilidad. y Políticas de medición y
análisis de rendimientos, etc.
6.4. 5. La Perspectiva Tecnológica (Techology Perspective). Propone el software
básico, el hardware, las redes y las comunicaciones que soportan el sistema
distribuido y por tanto a la organización. Son componentes clásicos de la
perspectiva tecnológica: y Hardware y software básico de los puestos clientes y de
los puestos servidores. y Estándares adoptados por la organización y Recursos de
impresión. y Ofimática. y PDA’s y telefonía móvil, etc…
6.4.6. Relación entre las perspectivas. @EMG/10 - Enric Martínez Gomàriz 10 La
integración y relación entre las perspectivas de la arquitectura de empresa se
muestra en la figura. Los puntos de entrada simbolizan los inputs externos por la
evolución de los objetivos de negocio y la tecnológica. Cuando el input es a través
de la arquitectura de negocio, los inputs funcionales y operativos para las nuevas
aplicaciones o los cambios de las actuales se generan desde allí. La flecha entre
las arquitecturas de aplicación y de gestión simboliza la instalación de nuevas
aplicaciones o cambios de las actuales que han de ser administradas y
gestionadas.
6.5. CARACTERÍSTICAS:
1.- Compartición de Recursos.- Un sistema informático es abierto si el sistema
puede ser extendido de diversas maneras. La apertura de los sistemas distribuidos
se determina primariamente por el grado hacia el que nuevos servicios de
compartición de recursos se pueden añadir sin perjudicar ni duplicar a los ya
existentes.
2.- Concurrencia.- Esta característica de los sistemas distribuidos permite que los
recursos disponibles en la red puedan ser utilizados simultáneamente por los
usuarios y/o agentes que interactúan en la red.
7. Nombre
ARQUITECTURA EN CAPAS
7.1 Descripción
Los sistemas o arquitecturas en capas constituyen uno de los estilos que aparecen
con mayor frecuencia mencionados como categorías mayores del catálogo, o, por
el contrario, como una de las posibles encarnaciones de algún estilo más
envolvente. En [GS94] Garlan y Shaw definen el estilo en capas como una
organización jerárquica tal que cada capa proporciona servicios a la capa
inmediatamente superior y se sirve de las prestaciones que le brinda la
inmediatamente inferior. Instrumentan así una vieja idea de organización
estratigráfica que se remonta a las concepciones formuladas por el patriarca
Edsger Dijkstra en la década de 1960, largamente explotada en los años
subsiguientes. En algunos ejemplares, las capas internas están ocultas a todas las
demás, menos para las capas externas adyacentes, y excepto para funciones
puntuales de exportación; en estos sistemas, los componentes implementan
máquinas virtuales en alguna de las capas de la jerarquía. En otros sistemas, las
capas pueden ser sólo parcialmente opacas. En la práctica, las capas suelen ser
entidades complejas, compuestas de varios paquetes o subsistemas. El uso de
arquitecturas en capas, explícitas o implícitas, es frecuentísimo; solamente en
Pattern Almanac 2000 [Ris00] hay cerca de cien patrones que son variantes del
patrón básico de capas. Patrones de uso común relativos al estilo son Façade,
Adapter, Bridge y Strategy [Gof95] [MS04c]. 25 En un estilo en capas, los
conectores se definen mediante los protocolos que determinan las formas de la
interacción. Los diagramas de sistemas clásicos en capas dibujaban las capas en
adyacencia, sin conectores, flechas ni interfaces; en algunos casos se suele
representar la naturaleza jerárquica del sistema en forma de círculos concéntricos
[GS94: 11]. Las restricciones topológicas del estilo pueden incluir una limitación,
más o menos rigurosa, que exige a cada capa operar sólo con capas adyacentes,
y a los elementos de una capa entenderse sólo con otros elementos de la misma;
se supone que si esta exigencia se relaja, el estilo deja de ser puro y pierde algo
de su capacidad heurística [MS04c]; también se pierde, naturalmente, la
posibilidad de reemplazar de cuajo una capa sin afectar a las restantes, disminuye
la flexibilidad del conjunto y se complica su mantenimiento. Las formas más
rígidas no admiten ni siquiera pass-through: cada capa debe hacer algo, siempre.
En la literatura especializada hay multitud de argumentos a favor y en contra del
rigor de esta clase de prescripciones. A veces se argumenta que el cruce
superfluo de muchos niveles involucra eventuales degradaciones de performance;
pero muchas más veces se sacrifica la pureza de la arquitectura en capas
precisamente para mejorarla: colocando, por ejemplo, reglas de negocios en los
procedimientos almacenados de las bases de datos, o articulando instrucciones de
consulta en la capa de la interface del usuario.
7.4 funcionamiento
Principios Fundamentales.
Los siguientes son los principios fundamentales del estilo de arquitectura basado
en N-capas/3-capas:
• Es un estilo para definir el despliegue de las capas en una instalación.
• La arquitectura de N-capas está caracterizada por la descomposición funcional
de la aplicación, los componentes de servicio y su instalación distribuida.
Mejorando la escalabilidad, disponibilidad, administración, y utilización de
recursos.
• Cada capa es completamente independiente de las otras capas, excepto aquella
que esta inmediatamente debajo de ella. La capa n solo necesita saber cómo
manejar una solicitud de la capa n+1, como hacer la solicitud a la capa n-1 (si
existe) y cómo manejar el resultado de la petición.
• La arquitectura de N-capas tiene al menos tres capas separadas o partes, cada
una de ellas con su responsabilidad y está localizada en diferentes servidores.
• Una capa es desplegada en un nivel específico si más de un servicio o aplicación
está expuesto por esa capa.
Beneficios.
Los principales beneficios del estilo de arquitectura de N-capas/3-capas son:
• Mejoras en las posibilidades de mantenimiento. Debido a que cada capa es
independiente de la otra los cambios o actualizaciones pueden ser realizados sin
afectar la aplicación como un todo.
• Escalabilidad. Como las capas están basadas en diferentes maquinas, el
escalamiento de la aplicación hacia afuera es razonablemente sencillo.
• Flexibilidad. Como cada capa puede ser manejada y escalada de forma
independiente, la flexibilidad se incrementa.
• Disponibilidad. Las aplicaciones pueden aprovechar la arquitectura modular de
los sistemas habilitados usado componentes que escalan fácilmente lo que
incrementa la disponibilidad.
7.5 Características
Las características principales que se resaltan en esta arquitectura son.
• 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 cohesión. 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 comunicación entre las capas está basada en la abstracción lo
que provee un desacople entre las capas.
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.
• Mejoras en Pruebas. La capacidad de realizar pruebas se beneficia de tener una
interfaces bien definidas 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.
8. Estilos Arquitectónicos
Indican: Los tipos de componentes y conectores involucrados. Patrones y
restricciones de interconexión o composición entre ellos:
Invariantes del estilo (restricciones)
Asociados a cada estilo hay una serie de propiedades que lo caracterizan,
determinando sus ventajas e inconvenientes, condicionando la elección de uno u
otro estilo.
8.1 Descripciones
9.1 Conceptos
Un LDA es un lenguaje o notación para describir una arquitectura software:
Descripción de componentes, conectores y enlaces entre ellos.
Herramientas para la verificación de la arquitectura y el prototipado rápido.
Existen LDAs de propósito general y otros de dominio específico (DSLs)
Requisitos
Composición
Debe describir el sistema como una composición de partes
Configuración
Debe describir la arquitectura independientemente de los componentes
Abstracción
Debe describir los roles abstractos que juegan los componentes
Reutilización
Debe permitir reutilizar componentes, conectores, y arquitecturas
Heterogeneidad
Debe permitir combinar descripciones heterogéneas
Análisis
Debe permitir diversas formas de análisis de la arquitectura
9.2 Características
Principales características de los ADL’s
• Composición: que permiten la representación del sistema como la composición
de una serie de partes.
• Configuración y Abstracción: Mediante las cuales se describen los roles o
papeles abstractos que juegan los componentes dentro de la arquitectura.
• Flexibilidad: Ya que permiten la definición de nuevas formas de interacción entre
componentes.
• Reutilización: Pues permiten la reutilización tanto de los componentes como de la
propia arquitectura, Heterogeneidad ya que pueden combinar descripciones
heterogéneas.
• Análisis: Permiten diversas formas de análisis de la arquitectura y de los
sistemas desarrollados a partir de ella.
9.3 Descripción
Lenguajes de descripción arquitectónica (ADLs) Los ADLs permiten modelar una
arquitectura mucho antes que se lleve a cabo la programación de las aplicaciones
que la componen, analizar su adecuación, determinar sus puntos críticos y
eventualmente simular su comportamiento.
•Aparecieron a principios de los 90´s •Lo integran un conjunto de propuestas,
ampliamente conocidas en el ámbito académico
•Se fundamentan en la incapacidad de expresar conectores en UML •Alrededor de
20 ADLs han sido reconocidos
•Son poco utilizados en la industria del software Ejemplos: AADL, Acme, Rapide,
LILEANA, etc.
Riesgos y no riesgos
Los riegos son decisiones arquitectónicas potencialmente problemáticas.
Los no riesgos son buenas decisiones, que confían en asunciones que
con frecuencia son implícitas en la arquitectura.
El ATAM también puede ser utilizado para analizar sistemas legados. Esta
necesidad nace cuando el sistema legado necesita ser modificado, integrado
con otro sistema, entre otras necesidades. Aplicar el ATAM incrementa el
entendimiento de los atributos de calidad del sistema legado.
Presentación
1. Presentar el ATAM
El líder del equipo de evaluación describe el método a los participantes,
fija las expectativas y responde las preguntas que puedan surgir.
3. Presentar la arquitectura
El arquitecto describe la arquitectura, enfocándose en como esta sigue
las pautas del negocio.
Investigación y análisis
Pruebas
Informes
CONCLUSIONES
http://babel.ls.fi.upm.es/~fred/sbc/arquitecturas_sw.pdf
http://www.ecured.cu/index.php/Arquitectura_de_software
http://www.ecured.cu/index.php/Arquitectura_de_software#Caracter.C3.ADsticas
http://faustovideos.blogspot.com/p/historia-cliente-servidor.html
http://www.fing.edu.uy/tecnoinf/mvd/cursos/ingsoft/material/teorico/is05-
ArquitecturaDeSoftware.pdf
http://www.fing.edu.uy/inco/cursos/tsi/TSI1/2010/teorico/01-Arquitectura-de-
software.pdf
http://es.slideshare.net/calderonperaza/disenando-sistemas-empleando-el-modelo-
de-capas-en-desarrollo-de-software
http://www.essi.upc.edu/~gomariz/index_archivos/IntroduccionSD-
EnricMartinez.pdf
http://www.monografias.com/trabajos16/sistemas-distribuidos/sistemas-
distribuidos.shtml#CARACT
https://radyel.wordpress.com/3/
http://es.slideshare.net/rogervillegas90/fundamentos-de-la-arquitectura-de-
software-30497462
http://es.slideshare.net/landeta_p/2-2-estilos-arquitectonicos
http://es.slideshare.net/bjjuarez/estilos-de-software