Académique Documents
Professionnel Documents
Culture Documents
Arquitectura Cliente/Servidor
Definicin?
GUI DB
DB Access
Network
Apps
Clientes? Componentes?
Servidores?
2
Arquitectura Cliente/Servidor - Definicin Arquitectura de diseo de software que es el resultado de la subdivisin de un sistema de informacin en un conjunto de PROCESOS SERVIDORES, generalmente especializados, que pueden ejecutarse en variadas plataformas (hardware+software) y que proveen servicios a un gran nmero de PROCESOS CLIENTES sobre diferentes plataformas (hardware+software), interconectados a travs de redes de rea local o de rea extendida y utilizando uno o varios protocolos para comunicarse. 3
Los sistemas de informacin que son desarrollados hoy en da, dentro del mundo de los negocios, contienen 3 elementos que NUNCA estn ausentes:
Lgica de presentacin Lgica de negocios (lgica de la aplicacin o lgica de procesamiento) Lgica de acceso a los datos (propuestas de L/E) Y los Datos? y las operaciones de L/E?
La arquitectura del sistema de informacin depende de cmo estos elementos son agrupados y conceptualmente dnde son ubicados
4
Lgica de Presentacin
Enfocada en la interaccin con el usuario El cdigo que implementa esta lgica debe:
Tomar informacin del usuario Mostrar informacin al usuario Efectuar ciertas validaciones del lado del usuario Realizar animaciones y efectos de presentacin Ejecutar ciertas tareas de background
Lgica de Negocios
Las reglas del negocio son: Aquel conjunto de prcticas y polticas, algunas veces explcito y otras implcito, que define cmo una organizacin hace negocios Restricciones propias del negocio que deben ser reflejadas en la base de datos y sus aplicaciones La
lgica de negocios es usada para forzar que se cumplan las reglas del negocio
Establecer conexiones con el database server o cualquier otra fuente de datos Enviar rdenes para la toma de informacin de la (s) fuente (s) de datos Enviar rdenes para guardar informacin en la (s) fuente (s) de datos Cerrar las conexiones con el database server o cualquier otra fuente de datos 7
Generar en tiempo de ejecucin sentencias SQL Enviar rdenes de ejecucin de procedimientos almacenados
IMPORTANTE: No se incluyen las operaciones de L/E, como tales, sobre los repositorios o databases
8
Two-Tier
Three-Tier N-Tier
Sistemas Multiusuarios
Mainframe
El diseo de Mainframes estuvo orientado hacia Redes de Terminales y difcilmente se adaptan a los sistemas de informacin de hoy Problema Principal:
Recursos se agotan rpidamente nica solucin: Upgrade de Hardware, es decir, next size computer
10
Sistemas Multiusuarios
Aplicacin 1 Aplicacin n Aplicacin 2
Aplicacin 3
Red de Terminales
11
Problema:
Aplicacin 2 Aplicacin 5
Aplicacin 3
Aplicacin 6
Aplicacin n
12
Upgrade Requerido !
Sistemas de Informacin sirven a pequeos grupos, pero usan los recursos de todos los dems Computador central escogido pensando en Mximo Nmero posible de usuarios (terminales)
Incremento exponencial
Crecimiento es costoso Host asume la carga de TODO el procesamiento por lo que los recursos se agotan rpidamente
14
Sistemas Multiusuarios
Sistema Multiusuario Files
Terminal
Aplicaciones
Las 3 lgicas eran ejecutadas en el mainframe; tambin las operaciones de L/E sobre los repositorios 15
File Server
Files
File Server
Cliente
Cliente es responsable de buscar informacin en los archivos Quin es el Cliente? Quin el File Server?
16
Pobre utilizacin del CPU donde corre el File Server NO existe un balance de carga entre los computadores donde corren File Servers y Clientes
17
Network Bottleneck
Sobrecarga en el NIC
18
Se ha comprobado que no ayuda casi en nada No mejora velocidad de transferencia Slo permite un mayor nmero de clientes Segmentacin de la LAN: Server --> Bridge/Router Sobrecarga al Servidor Produce contencin en el Disco
19
3. Aadir NICs
File Server
CC
Estacin
Semidistribucin:
Coordina con el S.O. (el File Server) del computador central (CC) 20
Cliente/Servidor
CC
DataBase Server
Base Datos
Estacin
Protocolos de Comunicacin (NetBIOS, IPX/SPX, TCP/IP, etc.)
Lgica de Presentacin + Lgica de Negocios + Lgica de Acceso a Datos ==> Estacin Operaciones de L/E sobre las bases de datos ==> CC 21
Arquitectura Clsica o Estndar Proceso cliente implementa lgica de presentacin, lgica de procesamiento y lgica de acceso de datos Base de datos generalmente centralizada Proceso Cliente se conecta directamente al Proceso Servidor (DataBase Server), frecuentemente por el tiempo de vida de la aplicacin. Trabaja bien en ambientes controlados
No ms de 100 usuarios Si el nmero de usuarios es desconocido o muy grande, los tiempos de respuesta se ven afectados
22
Resultado
Estacin Cliente
Estacin Cliente
Estacin Cliente
23
24
Actualizaciones y arreglo de problemas se complica Conexiones limitadas Distribucin se complica Se expone las reglas del negocio a los usuarios Especficos Database Servers y formatos de datos25
Confidencialidad comprometida
Server
Dependencia a un DataBase
Aumenta
Trfico en la red
26
Incluso se puede llegar a duplicar el nmero de usuarios, con respecto al modelo two-tier fat client
27
28
No se transfieren los datos hacia el cliente El proceso cliente ya no accede directamente a la estructura
Seguridad mejorada
Reuso es mejorado haciendo que en mltiples lugares dentro del cdigo del proceso cliente se llame al mismo stored procedure
29
Escalabilidad se ve limitada
Stored procedures muy grandes no liberan rpidamente las conexiones La sintaxis de los stored procedures estn ntimamente ligadas al fabricante del DBMS
Se complica la portabilidad
30
GUI
Aplicacin
Data
Fat Client
Lgica del Proceso/Apl.
Fat Server
Lgica del Proceso/Apl.
31
Modelo Three-Tier
Primera
capa: lgica de presentacin Segunda capa: lgica de negocios y lgica de acceso a datos Tercera capa: DataBase Servers y otras fuentes de datos
32
Modelo 3-Tier
33
Facilidad de desarrollo, mantenimiento e implantacin Piezas de cdigo de capa 2 pueden ubicarse en mltiples computadores, mejorando la escalabilidad y disponibilidad Problema de limitacin de conexiones es minimizado
Balanceo de carga
Seguridad mejorada
Modelo N-Tier
Es una generalizacin del modelo Three-Tier Se logra mediante la divisin de la capa 2 en capas ms especializadas:
Sub-capa 2 ms relacionada a la interfaz de usuario Sub-capa 2 especializada en procesamiento netamente del negocio Sub-capa 2 ms relacionada a la interaccin con el DBMS
Performance
Reliability Reusability
Maintainability Extensibility
Scalability
Availability
36
Performance
Velocidad
y eficiencia con la cual el sistema de informacin hace sus tareas Las necesidades de rendimiento son evaluadas desde 2 puntos de vista:
Mejorar
Un
sistema de informacin es confiable cuando no detiene a los usuarios de realizar sus tareas debido a fallas de hardware o software
Reliability
Reusability Una pieza de cdigo es reusable cuando tiene la capacidad de ser empleada en la mayor cantidad posible de ubicaciones dentro del cdigo del sistema de informacin
38
Maintainability
La capacidad de un sistema de informacin de encontrar las nuevas necesidades del negocio con el menor esfuerzo posible del grupo de desarrollo
39
Las 2 reglas bsicas para mejorar el mantenimiento pueden percibirse como contradictorias:
Maintainability (2)...
Centralizar la ubicacin de las piezas de cdigo de capa 2, de tal manera que haya la menor cantidad de copias de la misma entidad de software Dividir los servicios dentro de piezas de cdigo de capa 2 medianas, que tengan interfaces bien definidas. Tal modularizacin mantendr problemas aislados para reas especficas del sistema de informacin
40
Maintainability (3)...
La
aparente contradiccin entre estas 2 reglas puede ser resuelta unindolas en una sola:
Dividir servicios dentro de piezas de cdigo de capa 2 medianas y ponerlas en una ubicacin centralizada, es decir, tener mdulos de cdigo especializados en la menor cantidad de lugares posibles
41
Maintainability (4)...
Solucin que debe ser distribuida a los usuarios en discos y que dependa de ellos para correr una rutina setup Internet download: Tan pronto como el usuario se conecta invocando a la pgina web No dependa de ninguna accin del usuario
42
Extensibility
Capacidad de usar un conjunto ncleo de servicios de aplicacin para nuevos propsitos en el futuro, propsitos que los desarrolladores pudieron no haber anticipado
Predisposicin a la reusabilidad: Piezas de cdigo de capa 2 medianas y bien especializadas que representen unidades de funcionalidad particular Para hacer estas piezas de cdigo ms flexibles, deben ser altamente parametrizadas, de tal manera que su comportamiento pueda ser controlado lo ms posible por 43 el desarrollador
Scalability
Se refiere a la facilidad con la cual un sistema de informacin o conjunto de servicios pueden ser movidos a un ambiente ms demandante, con un pequeo impacto en el rendimiento del sistema
44
Availability
La capacidad de que los servicios de un sistema de informacin puedan ser alcanzados desde la mayor cantidad posible de ubicaciones y durante la mayor cantidad posible de tiempo La disponibilidad es afectada por la infraestructura de comunicaciones que pueda existir entre el proceso cliente y los servicios del sistema de informacin: LAN (Intranet) WAN (Intranet, Extranet, Internet)
45
Clientes: Procesos que solicitan servicios Servidores: Procesos que proveen servicios Se requiere de un mecanismo de comunicacin Middleware: Procesos de Comunicacin
S
46
Yo soy el ms importante !
Componentes
Network
No, yo soy el ms importante !
47
Componentes Bsicos
CLIENTE SERVIDOR
NETWORK
48
SERVIDOR
A D A P T A D O R A D A P T A D O R
S. OPERATIVO
D R I V E R
R E D
D R I V E R
P R O T O C O L O
D B A C C E S S
D B
49
File Servers DataBase Servers Transaction Processing Server (APP Server) GroupWare Server Web Server Object Server
50
File Server
Generalmente sus servicios vienen embebidos, junto con otros, como parte de los sistemas operativos
Slo provee el servicio de dar acceso a archivos para propsitos de L/E Datos comunes, pero el sistema de informacin NO est subdividido Si bien el concepto de computador dedicado a la tarea de file server (NetWare) ya no es aplicable, el servicio file server sigue y seguir siendo implementado en los sistemas operativos 51
DataBase Server
El ms fundamental de todos Generalmente es el que NUNCA falta en todo sistema de informacin Recibe requerimientos de los clientes (tpicamente en lenguaje SQL) a los que devuelve el resultado Es quien implementa finalmente la insercin, modificacin, eliminacin y consulta de datos En ciertos casos participa dentro de la arquitectura junto con un proceso intermediario Pasara de ser un modelo 2-Tier a uno 3-Tier o incluso n-Tier 52
Mediador entre procesos clientes y servidores Administrador de Transacciones Proceso que permite ejecutar otros procesos
53
Administrador de Pool de Conexiones con un DataBase Server Encolamiento y prioridades a los requerimientos de los procesos clientes Control de Concurrencia Mecanismos de seguridad y privilegios
54
55
Server con stored procedures que implementen transacciones Es decir, modelo 2-and-a-half-tier
TP Heavy
Basados
personas Mail, herramientas de colaboracin entre grupos de trabajo, videoconferencia, workflow, etc. Permiten el manejo de informacin no estructurada Datos + Imgenes + Voz + Video La Unidad de Trabajo: El Documento Administra bases de datos de documentos Permite a los miembros de una organizacin: integrarse, complementarse, coordinar Migrar la mayor cantidad posible de trabajo que anteriormente se realizaba de manera manual a alternativas electrnicas y digitales
57
Web Server
Recibe requerimientos HTTP del proceso cliente (Web Browser) Retorna al cliente la respuesta en cdigo HTML
HTML puede residir de manera esttica HTML puede ser generado dinmicamente y existen muchas tecnologas disponibles para su implementacin, tanto del lado del cliente como del lado del servidor
Son la ms clara prueba de que los sistemas de informacin distribuidos son posibles y necesarios
58
Object Server
Es la nueva tendencia en el desarrollo de aplicaciones C/S Facilitan el desarrollo de Sistemas de Informacin Distribuidos con esquemas 3-Tier y n-Tier Basado en el concepto de ORB (Object Request Broker) Estn sujetos a 2 arquitecturas bsicas: CORBA (Common ORB Architecture) DCOM (Distributed Component Object Model) NUNCA antes la tecnologa orientada a objetos y la tecnologa C/S se haban complementado como lo 59 estn haciendo en la actualidad
NetWork
60
CORBA
61
DCOM
62
Independientes (standalone)
No necesitan de un contenedor para ser ejecutados Emplea API propio del sistema operativo
Clientes
Dependientes
Qu es Middleware?
Todo el software que est entre clientes y servidores, y que soporta la interaccin entre ellos Conjunto de procesos intermedios entre clientes y servidores Dnde comienza? Dnde termina?
64
Middleware
Se
Middleware genrico
Procesos de apoyo que extienden el alcance y la capacidad de los sistemas operativos de los computadores empleados en clientes y servidores + protocolos de comunicacin de capas 3, 4 y 5
Middleware especfico
Procesos muy ligados y dependientes del tipo de servidor con el que se est operando
65
MiddleWare Genrico
Incluye a protocolos de comunicacin a nivel de sesin, transporte y red Ejs: NetBIOS/NetBEUI, Named Pipes, Sockets (TCP/IP), Sockets (IPX/SPX) Complementos a los NOS Servicios de archivos, servicios para la invocacin de procedimientos remotos, servicios de encolamiento, servicios de seguridad, servicios de directorios distribuidos, servicios para manejo del tiempo en forma distribuida, entre otros
66
Middleware Especfico
Necesario
67
App
App
App
App
68
UI
UI
UI UI
UI
UI
UI
UI
UI
69
Business Tier
Data Tier
SQL
OLE DB
ADO
Oracle
Data Services
70