Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 2
Índice Bibliografía
? 1. Antecedentes ? R. Orfali, D.Harkey, J. Edwards
? 2. Nociones generales de la arq. C/S Cliente/Servidor y objetos : Guía de Supervivencia
? 3. Características de los sistemas C/S 3. Edición McGraw -Hill Interamericana México D.F.
? 4. Estructura de una aplicación y su relación con C/S 2002
? 5. Diseño de aplicaciones C/S
? 6. Ventajas y Desventajas de C/S ? G. Hamilton, R. Catell, M. Fisher
? 7. Componentes de la arquitectura C/S JDBC Database Access with Java. A tutorial and
Annotated Reference
? 8. Middleware Addison Wesley 1997
? 9. Arquitectura de 3 niveles
? 10. Evolución de C/S. P2P
3 4
5 6
1
Arquitectura Cliente/Servidor.
Antecedentes 2. Arquitectura C/S
Conceptualmente son parte de la noción de
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 sistemas abiertos.
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 Conectar una variedad de ordenadores con diferentes
oferta en productos y aplicaciones. hardware y software para trabajar coordinadamente con
el fin de lograr los objetivos del usuario.
El objetivo de los sistemas abiertos consiste en
lograr la interoperabilidad.
Estado que caracteriza a múltiples sistemas
heterogéneos que se comunican y contribuyen a la
terminación de una tarea común.
7 8
2. Arquitectura Cliente/Servidor (2
2. Filosofía Cliente/Servidor
niveles)
Desde un punto de vista conceptual:
? «Es un modelo para construir sistemas de información, que se
sustenta en la idea de repartir el tratamiento de la informaci ón y
los datos por todo el sistema informático, permitiendo mejorar el
rendimiento del sistema global de informaci ón». Provee una clara
separación de funciones con base en la idea de servicio .
Cada usuario tiene la libertad de obtener la Es la integración distribuida de un sistema en red, con los
recursos, medios y aplicaciones que definidos modularmente en
información que requiera en un momento dado los servidores, administran, ejecutan y atienden las solicitudes de
proveniente de una o varias fuentes locales o los clientes; todos interrelacionados física y l ógicamente,
distantes y de procesarla como según le compartiendo datos, procesos e informaci ón; estableciendo así
un enlace de comunicaci ón transparente entre los elementos que
convenga. Los distintos servidores también conforman la estructura.
pueden intercambiar información dentro de esta
arquitectura.
11 12
2
2. ¿Qué es Cliente/Servidor? 2. ¿Qué es C/S: requisitos b ásicos?
? IBM define al modelo Cliente/Servidor
? «Es la tecnología que proporciona al usuario final el ?Cliente y servidor pueden estar en dos
acceso transparente a las aplicaciones, datos, servicios ordenadores distintos
de cómputo o cualquier otro recurso del grupo de trabajo
y/o, a través de la organización, en múltiples ?Cliente y servidor no son aplicaciones
plataformas. El modelo soporta un medio ambiente completas ? se complementan
distribuido en el cual los requerimientos de servicio
hechos por estaciones de trabajo inteligentes o ?Cada subsistema de la aplicación en el
"clientes'', resultan en un trabajo realizado por otros sitio más adecuado
computadores llamados servidores".
?Varios clientes ? replicado del servidor
13 14
?La potencia descansa en el concepto de ? La arquitectura Cliente/Servidor requiere una determinada especialización
de cada uno de los diferentes componentes que la integran.
División de Funciones.
Cliente. Ofrece un GUI y ejecuta programas de
interés para el usuario. ?
Servidor. Gestiona el acceso a los datos y
realiza funciones de control y seguridad.
15 16
17 18
3
3. Características de los sistemas 3. Características de los sistemas
Cliente/Servidor Cliente/Servidor
? Protocolos Asimétricos: Hay una relación 1 a n entre ?Independencia: El software cliente/servidor
el servidor y los clientes. Los clientes siempre inician el
diálogo pidiendo servicios. Los servidores esperan ideal es independiente del hardware y del
pasivamente las peticiones de los clientes. sistema operativo.
19 20
21 22
? Toda aplicación de software tiene tres funciones Existe un conjunto de variantes de la arquitectura Cliente/Servidor,
fundamentales: administración de los datos, lógica de la dependiendo d ónde se ejecutan las diversas funciones de una
aplicaci ón (qué asume el cliente y qué el servidor)
aplicación (procesos) y lógica de la presentación
(interfaz de usuario).
? Presentación Distribuida. En este modelo, se distribuye la
presentaci ón entre el cliente y el servidor, pero éste último ejecuta
todos los procesos y almacena la totalidad de los datos.
? Presentación Remota. Aquí, la interfaz del usuario est á
completamente en el cliente, la presentación soporta la captura de
datos, incluyendo una validaci ón parcial de los mismos y una
presentaci ón de las consultas. La l ógica de la aplicación y los datos
está en el servidor.
23 24
4
4. La Estructura de una Aplicación y su 4. La Estructura de una Aplicación y su
Relación con Cliente/Servidor Relación con Cliente/Servidor. Modelos Básicos
25 26
27 28
29 30
5
5.1 Planificación y Análisis de Sistemas 5.1 Planificación y Análisis de Sistemas
31 32
33 34
35 36
6
5.4 Desarrollo 5.5 Aplicaciones de Prueba
?Principales elementos a verificar:
?Interfaz gráfica de usuario
?Se efectuarán las gestiones respectivas a
?Ayuda de contexto y otra documentación en línea
la adquisición de los componentes físicos ?Manejo de errores
y/o software que se requieran ?Integración
?Realizar la instalación e interconexión ?Impacto al entorno de operació n
real, integrando y distribuyendo ?Flujo de información
?Ejecución
físicamente todos los recursos dentro de
?Administración y operación
la red. ?Seguridad
37 38
39 40
41 42
7
Ventajas para las Organizaciones Ventajas para las Organizaciones
? Al favorecer la construcción de interfaces gráficas interactivas y el acceso ? Hace algunos años cuando una organización decidía comprar un equipo,
transparente a diferentes nodos de la red, se facilita el uso de las no podía evitar quedar casada con la compañía vendedora, pues ésta era
aplicaciones por parte de los usuarios, lo cual aumenta su productividad. la única que podía prestar servicios de mantenimiento y actualización.
Dado que los equipos de diferentes vendedores no tenían nada en com ún,
? Favorece la adaptación a cambios en la tecnología, pues facilita la cualquier desarrollo posterior a la primera compra implicaba com pras al
migración de las aplicaciones a otras plataformas y, al aislar clarament e las mismo vendedor, por factores de compatibilidad. Por esta razón se reduc ía
diferentes funciones de una aplicación, hace más f ácil incorporar nuevas la competencia, pues las grandes compañías acaparaban el mercado y los
tecnologías en ésta. clientes o ciudadanos no podían cambiar de proveedor.
Con este panorama surgió la idea de la implantación de estándares, porque
ellos posibilitan el intercambio de información de manera coherente entre
? Hoy en día tienen mucha importancia los conceptos de sistemas abiertos e
interoperabilidad, los cuales est án íntimamente ligados con el concepto de productos de diferentes vendedores. Esto permite a nuevos proveedores la
Cliente/Servidor. oportunidad de entrar al mercado y a los clientes, la oportunidad de
cambiar de proveedor.
43 44
?Complejidad ?Cliente
?Falta de estándares. Necesidad de trabajar con
diferentes productos ?Servidor
?Uso intensivo de los recursos en la parte cliente ?Middleware. Infraestructura de
?Acceso distribuido comunicaciones
?Congestión de la red
?Difícil asegurar un grado elevado de seguridad
45 46
7. Componentes 7. Clientes
? Entidad por medio de la cual un usuario solicita un servicio , realiza
una petición o demanda el uso de recursos. Este elemento se
encarga, b ásicamente, de la presentaci ón de los datos y/o
información al usuario en un ambiente gráfico.
? Soportan el código de aplicaci ón no relacionado directamente con
los datos. El código se genera utilizando herramientas de desarrollo
de aplicaciones. Implementan los di álogos interactivos con los
usuarios, los tratamientos de los mensajes y la presentaci ón de
resultados.
? Es el que inicia un requerimiento de servicio. El requerimiento inicial
puede convertirse en múltiples requerimientos de trabajo a través
de redes LAN o WAN. La ubicaci ón de los datos o de las
aplicaciones es totalmente transparente para el cliente.
47 48
8
7. Funciones del cliente 7. Servidores
?Administrar la interfaz de usuario
? El servidor es la entidad física que provee un servicio y
?Aceptar datos usuario. devuelve resultados ; ejecuta el procesamiento de datos,
?Procesar la lógica de la aplicación aplicaciones y manejo de la información o recursos.
? Aseguran el almacenamiento, distribución, gestión de la
?Generar las solicitudes para la BD disponibilidad y de la seguridad de los datos. Permiten el
?Transmitir las solicitudes de la BD al servidor acceso a los datos.
?Recibir los resultados del servidor. ? El proceso del servidor es reactivo, es decir, realiza una
función posterior a una petición o la ejecución de una
?Dar formato a los resultados. transacción requerida por el cliente, o bien por otro
servidor.
?Captura y validación de los datos de entrada
49 50
51 52
53 54
9
7. Diferentes tipos de servidores 7. Diferentes tipos de servidores
? Servidores de Web
La Web es la primera aplicación cliente/servidor.
Consta de clientes “universales ” que se comunican con
grandes servidores.
Clientes y servidores se ponen en contacto a través del
protocolo HTTP.
55 56
57 58
59 60
10
8 Middleware 8 Middleware. Transport Stack
?Consiste en los protocolos de transporte que
proporcionan comunicaciones punto a punto
fiables en Redes WAN y LAN
?NetBIOS? Redes Microsoft
?TCP/IP ? Internet
?IPX/SPX ? Netware
?SNA ? Redes de IBM
Por encima de este nivel se pueden tener APIs
independientes, por ejemplo Sockets.
61 62
63 64
65 66
11
8. Middleware 8. Transparencia a las redes
?Software construido sobre el protocolo de ?Se deben soportar todo tipo de redes. El
transporte con el fin de permitir el intercambio middleware se construirá sobre los niveles
de peticiones y respuestas entre el cliente y el OSI y ocultará la heterogeneidad de las
servidor de manera transparente.
redes y protocolos de transporte que se
usen ofreciendo una interfaz estándar de
?En resumen, trata de asegurar la transparencia dialogo a la aplicación.
respecto a las redes, los SGBD y en cierta
medida a los lenguajes de acceso.
67 68
69 70
71 72
12
8. Funciones del Middleware 8. Técnicas del Middleware
?Ejecución de la petición ?Cacheo de Resultados
Operación que permite enviar una orden de ejecución de Técnica que permite transferir los resultados por bloques
con los parámetros instanciados y conservarlos sobre el cliente o servidor a fin de re-
utilizarlos para responder a peticiones.
?Recuperación de los resultados ?Cacheo de Peticiones
Operación que permite traer todo o parte del resultado al Conjuntos de instrucciones y lógica de procedimientos
cliente. de SQL compilado, verificado y almacenado en la Base
?Procedimiento de Desconexión de Datos del servidor. El cliente invoca un procedimiento
remoto y le transmite los parámetros requeridos a un
Operación que permite cerrar el camino abierto desde el procedimiento almacenado. Problema NO son estándar
cliente al servidor.
73 74
75 76
77 78
13
8. Elementos importantes del Acceso a servidores SQL
middleware SQL heterogéneos
? La API de SQL del cliente. Es la parte del cliente por medio de la cual se
invoca un servicio, y comprende la transmisión de la solicitud por la red y la SERVIDOR
respuesta resultante. Pero, no incluye el software que presta el servicio CLIENTE
como tal.
? El controlador de SQL. Es un pequeño elemento que en tiempo de
ejecución del cliente acepta las llamadas de la API, da formato a un Aplicación
mensaje de SQL y maneja los intercambios con el servidor. SGBD
? Soporte de FAP (Formats and Protocols) para pilas de protocolos. La
mayoría de los proveedores soportan m últiples pilas de protocolos API Adaptador
? Gateways a Base de Datos de otros proveedores. (hacen que las BD de
otros proveedores se vuelvan semejantes a las suyas )
? Herramientas de administraci ón de bases de datos. (mediante GUI FAP FAP
desde una estación de trabajo remota)
? Herramientas frontales de desarrollo de aplicaciones gr áficas y
consultas. Protocolo Red
79 80
81 82
83 84
14
8. JDBC 8. Módulos de JDBC
? API de JAVA para acceder a una B.D. usando SQL. API ?API JDBC interfaz que accede a las funciones
de bajo nivel (se usara llamando directamente a que se pueden realizar con el JDBC
sentencias SQL). Define cómo una aplicación JAVA ?Gestor de drivers JDBC encargado de realizar la
puede comunicarse con una BD. llamada al driver correspondiente dependiendo
? Clases y métodos para: de lo que se haya programado a través de la
? establecer una conexi ón con una BD aplicación JAVA.
? enviar sentencias SQL a dicha BD
?Driver JDBC encargado de realizar la traducción
? procesar los resultados
de la llamada que se ha hecho a una sentencia
? Los desarrolladores de SGBD proporcionan drivers SQL que entienda el SGBD.
JDBC
? Código no cambia si cambiamos de SGBD, excepto la
referencia al driver. JDBC se compone de clases incluidas dentro del
paquete java.sql*
85 86
?Basado en el X/Open SQL Call Level ?ODBC está escrito en C por lo tanto los
Interface (CLI) para interacciones programas escritos en JAVA deberían hacer
cliente/servidor llamadas a código en C y esto crea problemas
?Traducción directa de ODBC a JDBC es difícil.
?Basado en el standard ANSI SQL-92
(ODBC hace un uso intensivo de punteros mientras que JDBC es
?Adoptado por la mayoría de los una interfaz orientada al objeto )
vendedores de SGBD. ?Al estar escrito JDBC en JAVA permite su
exportabilidad
87 88
89 90
15
Tipos de drivers 8. Funcionalidades de JDBC
JDBC-ODBC
?Creación de conexiones. Pasos a realizar
Puente ODBC
TODO JAVA
91 92
95 96
16
Arquitectura JDBC (2 capas) Arquitectura JDBC (3 capas)
97 98
99 100
101 102
17
Aplicaciones basadas en ¿Cuándo se debe utilizar el modelo
componentes. Ventajas de tres capas?
? Poder desarrollar aplicaciones grandes en pasos ?Las aplicaciones de tres capas deben
pequeños emplearse si tienen alguna de las
características siguientes:
? Las aplicaciones pueden reciclar los componentes ?Proveen muchos servicios
?Aplicaciones escritas por organizaciones distintas
? Las aplicaciones hechas a la medida pueden incorporar ?La aplicación tiene un tiempo de vida mayor de tres
años
componentes comerciales
?Alto volumen de carga de trabajo
?Expectativa de que la aplicación crecerá con el tiempo
? Los entornos de componentes pueden ir mejorando ?………………………….
103 104
Cliente/ Cliente/
Servidor Servidor Todos los procesos
desempeñan tareas
semejantes, interactuando ?Modelo peer to Peer
cooperativamente como
iguales para realizar una
Cliente/ actividad distribuida o
Servidor cómputo sin distinci ón
entre clientes y servidores
105 106
107 108
18
Conclusión
? La arquitectura cliente/servidor ha dejado atrás sus
orígenes departamentales. Ahora se distribuyen
aplicaciones cliente/servidor que sirven a miles de
clientes. Estas aplicaciones suelen ejecutarse en
muchos servidores y constan de cientos de
componentes software. Ejecutan las funciones
sustanciales de una empresa. Y sin duda llegarán a ser
intergalácticas. Con Internet, pueden hacerse solicitudes
a los servidores desde cualquiera de los millones de
computadoras personales conectadas a esa red en el
mundo.
109
19