2. En el mundo de TCP/IP las comunicaciones entre computadoras se
rigen básicamente por lo que se llama modelo Cliente-Servidor, éste
es un modelo que intenta proveer usabilidad, flexibilidad,
interoperabilidad y escalabilidad en las comunicaciones.
El término Cliente/Servidor fue usado por primera vez en 1980 para
referirse a PC’s en red.
Este modelo Cliente/Servidor empezó a ser aceptado a finales de los
80’s. Su funcionamiento es sencillo: se tiene una máquina cliente, que
requiere un servicio de una máquina servidor, y éste realiza la función
para la que está programado (nótese que no tienen que tratarse de
máquinas diferentes; es decir, una computadora por sí sola puede ser
ambos cliente y servidor dependiendo del software de configuración).
3. Sistema distribuido entre múltiples procesadores donde hay clientes
que solicitan servicios y servidores que los proporcionan. Separa los
servicios situando cada uno en su plataforma más adecuada.
Desde el punto de vista funcional, se puede definir la computación
Cliente/Servidor como una arquitectura distribuida que permite a los
usuarios finales obtener acceso a la información en forma
transparente aún en entornos multiplataforma.
En el modelo cliente servidor, el cliente envía un mensaje solicitando
un determinado servicio a un servidor (hace una petición), y este
envía uno o varios mensajes con la respuesta (provee el servicio).
4. En un sistema distribuido cada máquina puede cumplir el rol de
servidor para algunas tareas y el rol de cliente para otras.
La idea es tratar a una computadora como un instrumento, que por
sí sola pueda realizar muchas tareas, pero con la consideración de
que realice aquellas que son mas adecuadas a sus características.
Si esto se aplica tanto a clientes como servidores se entiende que la
forma más estándar de aplicación y uso de sistemas
Cliente/Servidor es mediante la explotación de las PC’s a través de
interfaces gráficas de usuario; mientras que la administración de
datos y su seguridad e integridad se deja a cargo de computadoras
centrales tipo mainframe. Usualmente la mayoría del trabajo pesado
se hace en el proceso llamado servidor y el o los procesos cliente
sólo se ocupan de la interacción con el usuario (aunque esto puede
variar).
5. En otras palabras la arquitectura Cliente/Servidor es una extensión
de programación modular en la que la base fundamental es separar
una gran pieza de software en módulos con el fin de hacer más fácil
el desarrollo y mejorar su mantenimiento.
Esta arquitectura permite distribuir físicamente los procesos y los
datos en forma más eficiente lo que en computación distribuida
afecta directamente el tráfico de la red, reduciéndolo grandemente.
Esta arquitectura consiste básicamente en un cliente que realiza
peticiones a otro programa (el servidor) que le da respuesta.
Aunque esta idea se puede aplicar a programas que se ejecutan
sobre una sola computadora es más ventajosa en un sistema
operativo multiusuario distribuido a través de una red de
computadoras.
6. En esta arquitectura la capacidad de proceso está repartida entre
los clientes y los servidores, aunque son más importantes las
ventajas de tipo organizativo debidas a la centralización de la
gestión de la información y la separación de responsabilidades, lo
que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo
lógico, donde el servidor no se ejecuta necesariamente sobre una
sola máquina ni es necesariamente un sólo programa. Los tipos
específicos de servidores incluyen los servidores web, los
servidores de archivo, los servidores del correo, etc. Mientras que
sus propósitos varían de unos servicios a otros, la arquitectura
básica seguirá siendo la misma.
Una disposición muy común son los sistemas multicapa en los que
el servidor se descompone en diferentes programas que pueden ser
ejecutados por diferentes computadoras aumentando así el grado
de distribución del sistema.
7. La arquitectura cliente-servidor sustituye a la arquitectura monolítica
en la que no hay distribución, tanto a nivel físico como a nivel lógico.
La red Cliente/Servidor es aquella red de comunicaciones en la que
todos los clientes están conectados a un servidor, en el que se
centralizan los diversos recursos y aplicaciones con que se cuenta; y
que los pone a disposición de los clientes cada vez que estos son
solicitados. Esto significa que todas las gestiones que se realizan se
concentran en el servidor, de manera que en él se disponen los
requerimientos provenientes de los clientes que tienen prioridad, los
archivos que son de uso público y los que son de uso restringido, los
archivos que son de sólo lectura y los que, por el contrario, pueden
ser modificados, etc. Este tipo de red puede utilizarse conjuntamente
en caso de que se esté utilizando en una red mixta.
8. 1. Cambios estructurales y organizativos.
2. Cambios en organigramas.
3. Respuesta dinámica de mercado.
4. Cambio en procesos de negocio.
1. La demanda de sistemas fáciles.
2. Precio/rendimiento de estaciones y servidores.
3. Creciente acceso a la información para decisiones:
A.Separación datos-programas.
B.Programas flexibles.
4. Nuevas tecnologías de alta productividad.
9. Un sistema cliente/servidor funciona tal como se detalla en el
siguiente diagrama:
El cliente envía una solicitud al servidor mediante su dirección IP y
el puerto, que está reservado para un servicio en particular que se
ejecuta en el servidor.
El servidor recibe la solicitud y responde con la dirección IP del
equipo cliente y su puerto.
10. 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. En la arquitectura C/S el
remitente de una solicitud es conocido como cliente.
1. Es quien inicia solicitudes o peticiones, tienen por tanto un
papel activo en la comunicación (dispositivo maestro o amo).
2. Espera y recibe las respuestas del servidor.
3. Por lo general, puede conectarse a varios servidores a la vez.
4. Normalmente interactúa directamente con los usuarios finales
mediante una interfaz gráfica de usuario.
11. 5. Al contratar un servicio de redes , se tiene que tener en la
velocidad de conexión que le otorga al cliente y el tipo de cable
que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50
ms.
Es cualquier recurso de cómputo dedicado a responder a los
requerimientos del cliente. Los servidores pueden estar conectados
a los clientes a través de redes, para proveer de múltiples servicios a
los clientes y ciudadanos tales como impresión, acceso a bases de
datos, fax, procesamiento de imágenes, etc. Al receptor de la
solicitud enviada por cliente se conoce como servidor.
12. 1. Al iniciarse esperan a que lleguen las solicitudes de los clientes,
desempeñan entonces un papel pasivo en la comunicación
(dispositivo esclavo).
2. Tras la recepción de una solicitud, la procesan y luego envían la
respuesta al cliente.
3. Por lo general, aceptan conexiones desde un gran número de
clientes (en ciertos casos el número máximo de peticiones puede
estar limitado).
4. No es frecuente que interactúen directamente con los usuarios
finales.
El cliente es el proceso que permite al usuario formular los
requerimientos y pasarlos al servidor, se le conoce con el término
front-end.
13. El Cliente normalmente maneja todas las funciones relacionadas con
la manipulación y despliegue de datos, por lo que están desarrollados
sobre plataformas que permiten construir interfaces gráficas de
usuario (GUI), además de acceder a los servicios distribuidos en
cualquier parte de una red.
Las funciones que lleva a cabo el proceso cliente se resumen en los
siguientes puntos:
• Administrar la interfaz de usuario.
• Interactuar con el usuario.
• Procesar la lógica de la aplicación y hacer validaciones locales.
• Generar requerimientos de bases de datos.
• Recibir resultados del servidor.
• Formatear resultados.
14. Es el proceso encargado de atender a múltiples clientes que hacen
peticiones de algún recurso administrado por él. Al proceso servidor se
le conoce con el término back-end.
El servidor normalmente maneja todas las funciones relacionadas con
la mayoría de las reglas del negocio y los recursos de datos.
Las funciones que lleva a cabo el proceso servidor se resumen en los
siguientes puntos:
• Aceptar los requerimientos de bases de datos que hacen los clientes.
• Procesar requerimientos de bases de datos.
• Formatear datos para trasmitirlos a los clientes.
• Procesar la lógica de la aplicación y realizar validaciones a nivel de
bases de datos.
15. Cualquier combinación de sistemas que pueden colaborar entre sí
para dar a los usuarios toda la información que ellos necesiten sin que
tengan que saber donde está ubicada.
Es una arquitectura de procesamientos cooperativo donde uno de los
componentes pide servicios a otro.
Es un procesamiento de datos de índole colaborativo entre dos o más
computadoras conectadas a una red.
El término cliente/servidor es originalmente aplicado a la arquitectura
de software que describe el procesamiento entre dos o más
programas: una aplicación y un servicio soportante.
16. IBM define al modelo Cliente/Servidor. "Es la tecnología que
proporciona al usuario final el acceso transparente a las aplicaciones,
datos, servicios de cómputo o cualquier otro recurso del grupo de
trabajo y/o, a través de la organización, en múltiples plataformas. El
modelo soporta un medio ambiente distribuido en el cual los
requerimientos de servicio hechos por estaciones de trabajo
inteligentes o "clientes'', resultan en un trabajo realizado por otros
computadores llamados servidores".
"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"
17. Combinación de un cliente que interactúa con el usuario, y un
servidor que interactúa con los recursos compartidos. El proceso
del cliente proporciona la interfaz entre el usuario y el resto del
sistema. El proceso del servidor actúa como un motor de software
que maneja recursos compartidos tales como bases de datos,
impresoras, módems, etc.
Las tareas del cliente y del servidor tienen diferentes requerimientos
en cuanto a recursos de cómputo como velocidad del procesador,
memoria, velocidad y capacidades del disco y input-output devices.
Se establece una relación entre procesos distintos, los cuales
pueden ser ejecutados en la misma máquina o en máquinas
diferentes distribuidas a lo largo de la red.
18. Existe una clara distinción de funciones basada en el concepto de
"servicio", que se establece entre clientes y servidores.
La relación establecida puede ser de muchos a uno, en la que un
servidor puede dar servicio a muchos clientes, regulando su acceso
a recursos compartidos.
Los clientes corresponden a procesos activos en cuanto a que son
éstos los que hacen peticiones de servicios a los servidores. Estos
últimos tienen un carácter pasivo ya que esperan las peticiones de
los clientes.
No existe otra relación entre clientes y servidores que no sea la que
se establece a través del intercambio de mensajes entre ambos. El
mensaje es el mecanismo para la petición y entrega de solicitudes
de servicio.
19. El ambiente es heterogéneo. La plataforma de hardware y el
sistema operativo del cliente y del servidor no son siempre la
misma. Precisamente una de las principales ventajas de esta
arquitectura es la posibilidad de conectar clientes y servidores
independientemente de sus plataformas.
El concepto de escalabilidad tanto horizontal como vertical es
aplicable a cualquier sistema Cliente/Servidor. La escalabilidad
horizontal permite agregar más estaciones de trabajo activas sin
afectar significativamente el rendimiento. La escalabilidad vertical
permite mejorar las características del servidor o agregar múltiples
servidores.
20. Front/end : Es la parte de la aplicación que interactúa con el usuario.
Basados en una interfaz gráfica con el usuario (GUI). El Cliente corre
la aplicación que ofrece la interfaz con el usuario.
Back/end: Es la parte no-interactiva de la aplicación. La mayor parte
reside en las Bases de Datos (relacionales o no).
No requieren una gran Base de Datos compartida, pueden ser
elaboradas solamente en el Cliente.
Exigen dos capas, una para la aplicación del usuario (Cliente) y otra
para la base de datos (Servidor).
21. Nivel Responsabilidad Funciones Herramientas
Aplicativo del
Usuario
Interfaz
Incomprensible y
Eficiente
Presentación, Navegación,
Manejo y Análisis
Herramientas Graficas
y Lenguaje de
Programación
Reglas de Negocio Políticas, Reglas y
Heurística
Toma de Decisiones, Políticas
y Administración de Recursos
Lenguaje de
Programación
Base de Datos Datos Consistentes y
Seguros
Mantenimiento,
Actualización, Integridad y
Seguridad
Base de Datos,
Lenguaje de Base de
Datos
1. Generalmente usa los modelos de función distribuida o datos
distribuidos.
2. Muy productivo.
3. Distribución no flexible.
4. Dependiente del suministrador.
22. La Arquitectura de tres niveles es lógica y no física. Se preocupa con
las funciones y no con la implantación.
La Arquitectura puede ser utilizada para desarrollar sistemas
Centralizados o Distribuidos.
La Arquitectura facilitará la distribución de los componentes del
sistema.
1. Modelo presentación-negocio-datos
2. Distribución flexible.
3. Sistema abierto. No dependiente.
23. Estructura para la elaboración de aplicativos flexibles y fáciles de
modificar, según las necesidades del negocio(cambio).
Alto nivel de reutilización del software y datos.
Fácil y rápido desarrollo de aplicativos grandes y complejos, para
las transacciones y los SSD.
Fácil y rápido desarrollo de sistemas distribuidos que dan soporte a
la administración central y a equipos auto-gestionados.
24. Esconde de cada nivel los detalles contenidos en los niveles inferiores:
Desarrollo simplificado del aplicativo: Al desarrollar un nivel no
precisa preocuparse por el otro.
Mayor seguridad y protección: El desarrollador de un nivel no puede
controlar físicamente otra camada en ningún nivel de detalle.
Es la superficie entre los componentes adyacentes de un aplicativo y
el dispositivo por medio del cual ellos interactúan a través de las
siguientes funciones:
Informa lo que el otro componente debe hacer, pregunta el
estado actual del otro componente, recibe el resultado de
las operaciones solicitadas.
25.
26. Nivel Interfaz Foco del Proyecto
Aplicativo del Usuario GUI Objetos del Aplicativo
Independiente del Proyecto
Proceso de Reglas del
Negocio
Proceso Solicitud de Decisiones
Independientes de la Interfaz,
Usuario y Datos
Administración de Base
de Datos
Transacción y
Consultas
Datos Independiente de la Decisión
27. El desarrollo de un buen sistema Cliente / Servidor exige
especialización de:
1. Interfaz gráfica
2. Redes de computadora
3. Programación de Negocios
4. Base de Datos
5. Programación de Base de Datos
6. Distribución de sistemas
28.
29. En la arquitectura Cliente/Servidor se como los tres niveles de
aplicación se relacionan. Focaliza sobre la estructura y la adaptación.
Y determina qué entra en cada nivel y cómo la aplicación se
relaciona con otras aplicaciones.
*Distribución de Datos
*Distribución de Procesamiento
*Interfaz gráfica con el usuario
30.
31. Históricamente el área de informática elabora los sistemas de
aplicación de forma completa, estando los usuarios obligados a
“tomarlos o dejarlos”.
En el futuro, el área informática elaborará la infraestructura, o sea:
La base de Datos, los módulos de los procesos de negocio, y kits de
herramientas; para que el usuario pueda elaborar sus propias
aplicaciones.
1. Proveer los procesos de las reglas del negocio.
2. Proveer las estructuras fundamentales de las Bases de Datos
3. Proveer los elementos de la interfaz.
4. Proveer la infraestructura general de los sistemas, sobre la cual los
equipos de trabajo puedan montar sus aplicaciones.
32. Conceptual Lógico Físico
Aplicación
del Usuario
Flujo de
trabajo
Secuencia de
Formularios
Formularios
Reglas del
Negocio
Flujo de
Procesos
Modelo de
procesos
Programas
Base de
Datos
Modelo de
Datos
Esquema de
Base de Datos
Tablas e
índices
33.
34. 1. Uno de los aspectos que más ha promovido el uso de sistemas
Cliente/Servidor, es la existencia de plataformas de hardware cada
vez más baratas.
2. El esquema Cliente/Servidor facilita la integración entre sistemas
diferentes y comparte información permitiendo, por ejemplo que las
máquinas ya existentes puedan ser utilizadas pero utilizando
interfaces mas amigables al usuario.
3. Al favorecer el uso de interfaces gráficas interactivas, los sistemas
construidos bajo este esquema tienen mayor interacción más intuitiva
con el usuario.
4. Es más rápido el mantenimiento y el desarrollo de aplicaciones,
pues se pueden emplear las herramientas existentes (por ejemplo los
servidores de SQL o las herramientas de más bajo nivel como los
sockets o el RPC ).
35. La estructura inherentemente modular facilita además la integración de
nuevas tecnologías y el crecimiento de la infraestructura
computacional, favoreciendo así la escalabilidad de las soluciones.
El esquema Cliente/Servidor contribuye además, a proporcionar, a los
diferentes departamentos de una organización, soluciones locales,
pero permitiendo la integración de la información relevante a nivel
global.