Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
El particionamiento arquitectural es el proceso de dividir el sistema en capas de tecnologa y responsabilidad. Cada particin de dominio es nica; algunas son funciones de back office, mientras que otras son distribuidas o departamentales. Existe una variedad de tcnicas para particionar su arquitectura. Cada una tiene consecuencias para su aplicacin. Para cada particin de dominio necesitar definir una arquitectura.
2
CAL/Fundamentos
Es importante que el particionamiento arquitectural se haga antes que el diseo de objetos. Arquitecturas diferentes resultan en requerimientos de diseo diferentes. Problemas tales como latencia, gestin de memoria y comunicaciones cambian con cada arquitectura elegida. Una arquitectura de dos capas no se transforma automticamente en una de tres o n capas. Cada cambio en la arquitectura cambia los requerimientos para el diseo de bajo nivel.
3
CAL/Fundamentos
Arquitectura Tecnologa
Las elecciones a nivel de arquitectura tambin restringen las opciones tecnolgicas que influyen a su vez en el diseo de bajo nivel. Por ejemplo, una decisin de usar Java sobre un servidor y Visual Basic en los clientes elimina las opciones de Java RMI y nos conducira hacia algo como CORBA. De igual forma, la eleccin de manejador de base de datos orientado a objetos elimina la necesidad de la transformacin objeto relacional.
4
CAL/Fundamentos
La tecnologa es una herramienta que hace posible nuevas oportunidades arquitecturales. Por ejemplo, el advenimiento de las PCs distribuy el poder de computacin entre los dispositivos diferentes del gran computador central. Una relacin cooperativa formada entre estas tecnologas, la que es ahora referida como dos capas o cliente servidor.
CAL/Fundamentos
La PC ahora controla la interface del usuario, de este modo los nuevos dispositivos clientes inician solicitudes al computador central, el que ahora, juega el rol de servidor. Un servidor es principalmente pasivo; espera por solicitudes, procesa las solicitudes, regresa una respuesta y espera por otra solicitud.
6
CAL/Fundamentos
Distribuir Responsabilidades
Un aspecto significante de este cambio es la distribucin de responsabilidades. En un nivel muy simple se puede imaginar que el sistema total necesita un espectro que va desde el acceso a datos, pasa por la lgica que interpreta los datos hasta la presentacin de la informacin
7
CAL/Fundamentos
Distribuir Responsabilidades
Presentacin
Lgica
Datos
CAL/Fundamentos
Distribuir Responsabilidades
Dividir estas diferentes responsabilidades soporta el desarrollo de productos especializados. Tambin crea un mercado para productos que proporcionan el pegamento, o conectividad entre las nuevas particiones arquitecturales.
9
CAL/Fundamentos
Distribuir Responsabilidades
Ejemplos de tecnologas especializadas
Presentacin
Componentes visuales como Java AWT y Swing classes, Controles OCX,etc. CORBA, RMI y un nmero de Productos midleware que Proporcionan mecanismos de Comunicacin entre los Componentes de la arquitectura
Lgica
Datos
CAL/Fundamentos
10
Distribuir Responsabilidades
Ejemplos de tecnologas especializadas
Presentacin
Ambientes de programacin Visual que soporten el desarrollo De aplicaciones cliente servidor E interfaces de usuario. Monitores de procesamiento de transacciones como Tivoli y Tuxedo que manejan volmenes de procesamiento y gestin de transacciones
Lgica
Datos
CAL/Fundamentos
Sistemas de gestion de base de datos que soporten datos (objetos) persistentes y su acceso
11
Reuso
Cada producto est para ayudar a resolver una parte de las necesidades totales del procesamiento de datos. Debido a que los productos estan focalizados, tienden a ser muy especializados y reusables. Este cambio en el desarrollo de software es identico en naturaleza al cambio en la manufacturacin, desde la produccin de una pieza a la vez a la lnea de ensamblaje usando partes intercambiables.
12
CAL/Fundamentos
El trmino arquitectura de dos capas se ha referido a una arquitectura que consiste de aplicaciones cliente remotas que conversan con un gran sistema corporativo centralizado. Las aplicaciones cliente que corren sobre PC o estaciones de trabajo remotas han evolucionado para manejar mas y mas tareas de procesamiento y los sistemas que se ejecutan en mainframes centralizados o servidores se han convertido principalmente en gestores de transacciones y servicios de acceso a base de datos.
13
CAL/Fundamentos
Segundo Nivel
El usuario inicia todas las acciones. El resultado se presenta a travs de una interface que est diseada para interpretar y mostrar sobre la PC El sistema legado coordina todas las solicitudes del usuario, proporciona acceso a los datos solicitados y asegura la integridad de la transaccin y los datos
14
Primer Nivel
Respuesta
CAL/Fundamentos
Lo aprendido de la arquitectura de dos capas: Se ha aprendido que las responsabilidades del sistema funcionalmente diferentes se pueden aislar y manejar independiente. Lo que se ha hecho, esencialmente, es partir el espectro de responsabilidades en algn lugar entre las reas de datos y lgica, asignando cada responsabilidad a un ambiente tecnolgico diferente.
15
CAL/Fundamentos
Datos
El sistema central solo maneja la lgica que define las transacciones lgicas y el acceso a datos
CAL/Fundamentos
16
Los desarrolladores tambin han aprendido que cada vez que parten el sistema deben proporcionar una forma de que las diferentes piezas se comuniquen.
CAL/Fundamentos
17
Lgica
Particin de comunicacin
Datos
CAL/Fundamentos
18
Cohesin y acoplamiento: La clave para particionar es decidir con precisin que responsabilidades sern asignadas a cada particin. La base para esta decisin se halla en los principios de alta cohesin y bajo acoplamiento. Alta cohesin destaca la necesidad de tener un nico y muy claro propsito para cada particin.
19
CAL/Fundamentos
Acoplamiento dbil (o bajo) destaca la importancia de reducir las dependencias entre particiones tanto como sea posible. Ahora los principios de cohesin y acoplamiento se aplican a bloque completo de funcionalidad dentro del sistema y no solo a los mdulos de programa.
20
CAL/Fundamentos
Esta prctica ha abierto la puerta para mayores particionamientos y especialilzaciones siguiendo un patrn simple:
CAL/Fundamentos
En la leccin anterior sobre arquitectura de dos capas aprendimos como podra particionar el sistema en dos segmentos. Lo que gui este proceso son los principios de alta cohesin y bajo acoplamiento. Esto identific un problema con la solucin de dos capas.
22
CAL/Fundamentos
El problema es que la lgica que controla el sistema se divide entre el cliente y el computador central. Este arreglo resulta en redundancia entre las dos capas y entre sistemas. Es mas, En gran medida la lgica de un sistema se encuentra en la forma de transacciones; Las mismas transacciones pueden ser utilizadas por muchas aplicaciones clientes.
23
CAL/Fundamentos
Siguiendo nuestro patrn simple, por qu no separar el sistema otra vez y colocar toda esta lgica comn en su propia particin? Entonces se podra proporcionar una interface hacia sta para todas las aplicaciones cliente.
CAL/Fundamentos
24
Lgica
Interface
Datos
CAL/Fundamentos
25
El resultado es un alto grado de reuso (de la lgica del negocio) y de aplicaciones cliente menos inteligentes y simples. La aplicacin cliente no necesita conocer mucho de la lgica del negocio. Ellas slo necesitan conocer que transaccin (o servicios) estn disponibles y son vlidas para lo que ellas estan ayudando a que el usuario logre.
26
CAL/Fundamentos
Dos Capas
CAL/Fundamentos
27
Dos Capas
CAL/Fundamentos
28
Dos Capas
CAL/Fundamentos
29
CAL/Fundamentos
30
Encapsulamiento
Cada particin encapsula un conjunto discreto de funciones. El trabajo interno de cada particin est oculto a otras partes del sistema. Ocultar el diseo interno permite, a los desarrolladores, alterar el diseo interno de la particin sin interferir con otras particiones. Por ejemplo, la base de datos podra cambiar o los servicios de la lgica del negocio podra re-rutear hacia otro servidor sin que la aplicacin cliente se entere o altere.
31
CAL/Fundamentos
Arquitectura N - Capas
Por ahora vemos un patron en formacin. Si podemos partir un sistema en dos capas, luego en tres capas, entonces por qu no en n capas?. De hecho, si ud. mira de nuevo la arquitectura de tres capas, observar que tiene cinco capas. Podramos decir que una interface es solo un protocolo de comunicacin, no es as?, no siempre.
32
CAL/Fundamentos
Arquitectura N - Capas
Por ejemplo, considere una interface entre un servidor de objetos y un servidor de base de datos relacional. La interface es realmente una capa de programacin para manejar la transformacin, dirigiendo y ruteando datos entre las dos particiones. De hecho, este tipo de requerimientos es comn, lo que ha resultado en el desarrollo de recursos como ODBC y JDBC, componentes de interface estandar.
33
CAL/Fundamentos
Arquitectura N - Capas
O mejor an, considere el estandar CORBA, cuyo propsito es proporcionar un servicio de interface estandar entre componentes distribuidos del sistema. No hay lmite al nmero de capas o particiones que no sean las que persiguen el rendimiento, aspectos tecnolgicos y de buen diseo.
34
CAL/Fundamentos
Arquitectura N - Capas
Los principios conductores deberan ser siempre alta cohesin y bajo acoplamiento, junto con rendimiento e integridad del sistema.
CAL/Fundamentos
35
Arquitectura N - Capas
En las arquitecturas de dos y tres capas fue fcil ver que podran haber muchas aplicaciones cliente. Asumamos que la capa intermedia y ltima fueran centralizada. Pero no podran, estas capas, ser tan diversas como las aplicaciones cliente?.
CAL/Fundamentos
36
Arquitectura N - Capas
Por ejemplo, si una empresa a nivel nacional est dividida en regiones, es muy probable que el dato de cada regin est en una localidad diferente. De ser as, entonces la capa mas baja es realmente una coleccin de particiones con responsabilidades similares pero diferente contenido. No solo separa la capa mas baja, sino tambin debe proporcionar una nueva interface entre la capa media y el nuevo conjunto de particiones de datos.
37
CAL/Fundamentos
Arquitectura N - Capas
Presentacin
Interface
Lgica
Acceso Datos distribuidos
Interface
CAL/Fundamentos
38
Arquitectura N - Capas
Multiples Servidores de Transaccin: Considere sistemas departamentales donde diferentes servidores manejan diferentes tipos de transacciones. Procesamiento de rdenes maneja las ordenes, mientras Recepcin de cuentas maneja las transacciones de facturacin y pagos. La capa media tambin es divida en varias particiones.
39
CAL/Fundamentos
Arquitectura N - Capas
Presentacin
Interface Capa Transaccin Distribuida
Interface
Data
CAL/Fundamentos
40
Arquitectura N - Capas
En algunos ambientes existen procesos especializados para casos especiales. Los clientes preferenciales pueden manejar sus ordenes y facturacin de modo diferente. En este caso puede haber una capa dentro de la misma capa de transaccin.
CAL/Fundamentos
41
Arquitectura N - Capas
recuerda, como la arquitectura establece nuevos requerimientos para el diseo?, ejemplo, podra usar la misma interface de diseo para una capa media centralizada que para una distribuida? Es muy diferente, de hecho, una razn de que se halla desarrollado el estandar CORBA fue la necesidad de una arquitectura que soporte el procesamiento distribuido en las capas medias y bajas.
42
CAL/Fundamentos
Arquitectura N - Capas
Presentacin
Interface Logica de Aplicacin Interface Logica de Transaccin Ventas Interface
Proceso Cliente Regular Proceso Cliente Preferente
Interface
Data
CAL/Fundamentos
43
Clientes Ligeros
Clientes ligeros: El advenimiento del Web nos ha conducido a la necesidad de aplicaciones cliente muy pequeas. Lo que las aplicaciones web requieren es separar la interface (la presentacin de la pantalla) de la lgica que gobierna el comportamiento de la interface.
44
CAL/Fundamentos
Clientes Ligeros
Esta solucin permite aplicaciones cliente mucho mas pequeas, mas rpidas descargas y mejores accesos a servicios en las capas mas bajas. Este tipo de particionamiento ha sido conducido por tecnologa como servidores web y aplicaciones Java servlet.
45
CAL/Fundamentos
Arquitectura 4 - Capas
Presentacin
Interface Lgica de Aplicacin Interface Lgica de Transaccin
Interface
Data
CAL/Fundamentos
46
Diagramas De Despliegue
Los diagramas de despliegue proporcionan una representacin visual de la distribucin fsica de la arquitectura. Esta vista puede ser valiosa para describir como soportar el particionamiento resultante de su anlisis arquitectural. Los diagramas de despliegue modelan los tipos de nodos que se usarn y muestra como se deberan conectar.
47
CAL/Fundamentos
Diagramas De Despliegue
En este punto del proyecto, el diagrama de despliegue ser solo un borrador. Sin embargo, an as, proporciona un marco en el cual capturar las restricciones de hardware que se levantan en subsiguientes actividades de diseo.
CAL/Fundamentos
48
Diagramas De Despliegue
En la siguiente diapositiva se muestran dos ejemplos de diagramas de despliegue, uno para una instalacin de tres capas y otra para cuatro capas. Nota sin embargo que tanto la instalacin de tres como de cuatro capas no tienen que instalar cada particin sobre una mquina separada.
49
CAL/Fundamentos
Diagramas De Despliegue
<<Workstation>> <<Workstation>>
Cliente
Cliente
<<ethernet>>
Tres Capas
<<Server>>
Cuatro Capas
Servidor de Transacciones
<<ethernet>> Servidor de Base Datos
<<Sever>>
<<Server>>
CAL/Fundamentos
50
Diagramas De Despliegue
CAL/Fundamentos
51
Diagramas De Despliegue
Configuracin de Hardware: A medida que procede con el diseo estar mas enterado de las necesidades de rendimiento para cada particin. Estos requerimientos sern traducidos algunas veces en requerimientos de hardware en la forma de memoria, velocidad de procesador, velocidades de conecciones de red o modem, etc. Estos requerimientos se pueden modelar directamente en el diagrama de despliegue.
52
CAL/Fundamentos
Resmen
El anlisis arquitectural es el primero de los dos pasos en el proceso de diseo. En esta fase se transforman los requerimientos, colectados en las fases de inicio del proyecto y anlisis del problema, en tecnologas y arquitectura adecuadas para soportar los requerimientos.
53
CAL/Fundamentos
Resmen
Antes se aprendi como particionar el dominio del problema. En esta seccin se aprendi como partir cada particin de dominio (o subsistemas) en capas tecnolgicas o niveles. El proceso de particionamiento sigue un patrn simple de separacin, asignamiento de responsabilidad y reconeccin usando interfaces.
54
CAL/Fundamentos
Resmen
El resultado es un diseo por capas con un conjunto de particiones altamente cohesivas y que estn dbilmente acopladas. Esta forma de arquitectura mejora la modularidad del sistema aislando cada nico tipo de problema de diseo. La modularidad, a su vez, permite un mantenimiento mas fcil del sistema.
55
CAL/Fundamentos
Ejercicio
Diseo - Arquitectura
CAL/Fundamentos
56