martes, 7 de diciembre de 2010

ARQUITECTURA CLIENTE SERVIDOR



ARQUITECTURA CLIENTE/SERVIDOR
INTRODUCCIÓN
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).
DEFINICIÓN:
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.
EL MODELO CLIENTE – SERVIDOR
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).
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).
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.
CLIENTE / SERVIDOR
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.
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.
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.
¿CUÁNDO IMPLANTAR CLIENTE/SERVIDOR?
1. Cambios estructurales y organizativos.
2. Cambios en organigramas.
3. Respuesta dinámica de mercado.
4. Cambio en procesos de negocio.
¿QUÉ AYUDA A LA IMPLEMENTACIÓN?
1. La demanda de sistemas fáciles.
2. Precio/rendimiento de estaciones y servidores.
3. Creciente acceso a la información para decisiones:
  1. Separación datos-programas.
  2. Programas flexibles.
4. Nuevas tecnologías de alta productividad.
FUNCIONAMIENTO DEL SISTEMA CLIENTE / SERVIDOR
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.
CLIENTE
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.
CARACTERÍSTICAS DEL 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.
  5. 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.
SERVIDOR
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.
CARACTERÍSTICAS DEL SERVIDOR:
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.
FUNCIONES
CLIENTE:
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.
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.
SERVIDOR:
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.


ARQUITECTURA CLIENTE/SERVIDOR
CONCEPTOS:
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.
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"
CARACTERÍSTICAS DE LA ARQUITECTURA CLIENTE/SERVIDOR:
Ø  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.
Ø  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.
Ø  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.
MODELO DE ARQUITECTURA CLIENTE/SERVIDOR
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).
APLICACIONES SIMPLES
No requieren una gran Base de Datos compartida, pueden ser elaboradas solamente en el Cliente.
APLICACIONES COMPLEJAS
Exigen dos capas, una para la aplicación del usuario (Cliente) y otra para la base de datos (Servidor).
FUNCIONES DE LOS NIVELES EN LA ARQUITECTURA C/S


Arquitectura de 2 niveles:
1. Generalmente usa los modelos de función distribuida o datos distribuidos.
2. Muy productivo.
3. Distribución no flexible.
4. Dependiente del suministrador.
Arquitectura de 3 niveles:
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.



BENEFICIOS:
ü  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.
NIVELES DE ABSTRACCIÓN 


BENEFICIOS DE LA ABSTRACCIÓN:
Esconde de cada nivel los detalles contenidos en los niveles inferiores:
q  Desarrollo simplificado del aplicativo: Al desarrollar un nivel no precisa preocuparse por el otro.
q  Mayor seguridad y protección: El desarrollador de un nivel no puede controlar físicamente otra camada en ningún nivel de detalle.

INTERFAZ ENTRE CAMADAS
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.
TIPOS DE INTERFACES

PROYECTO DE CADA NIVEL







DIVISIÓN DEL TRABAJO:
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
METODOLOGÍA ACTUAL DE PROYECOS: 


DIAGRAMA PARA UN PROYECTO DE SISTEMAS


CONCLUSIÓN DE ARQUITECTURA C/S
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.
ES POSIBLE CREAR UN SISTEMA DIRTRIBUIDO
*Distribución de Datos
*Distribución de Procesamiento
*Interfaz gráfica con el usuario
SISTEMA DIRTRIBUIDO 


CAMBIOS EN LA NATURALEZA DE LOS SISTEMAS DE APLICACIÓN
Ø  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.
FUNCIONES DEL ÁREA DE INFORMÁTICA
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.
UN MODELO PARA EL PLANTEAMIENTO Y DESARROLLO 


VENTAJAS DEL MODELO CLIENTE SERVIDOR
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 ).
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.

VIDEO DE INSTALACION DE SISTEMA OPERATIVO DE RED WINDOWS SERVER PARA UNA ARQUITECTURA CLIENTE SERVIDOR 
BIBLIOGRAFÍA
es.wikipedia.org/wiki/Cliente-servidor
www.monografias.com/trabajos24/arquitectura-cliente-servidor/arquitectura-cliente-servidor.shtml
www.desarrolloweb.com/articulos/arquitectura-cliente-servidor.html
www.csae.map.es/csi/silice/Global71.html
temariotic.wikidot.com/la-arquitectura-cliente-servidor


Caso de Estudio C/S:

La Empresa “Autónica” es una empresa Nicaragüense que se dedica a vender repuestos automotrices, esta tiene su sede principal en Managua con sucursales en Estelí, Chinandega y en Rivas, dicha empresa desea implementar un sistema de ventas en línea y quiere conservar su información automatizada y bien organizada entre todas sus sucursales, mediante la implementación de un modelo C/S para esto se requiere:

1)    Modelo de Negocio

Entradas
Datos del Cliente: Los datos del cliente serán ingresados por el sistema, con el objetivo de mantener un control de los clientes. En el momento en que un cliente realiza un pedido sus datos personales son solicitados y almacenados, dichos datos son los siguientes: Nombre, Apellido, Departamento, Dirección y Correo electrónico. Y un Id_cliente que es asignado por el sistema.
Datos del Vehículo: Cuando el cliente decide realizar una compra debe seleccionar los datos del vehículo si dichos datos coinciden con los vehículos disponibles se realiza la solicitud de repuesto entre los datos del vehículo solicitados son: año del vehículo, marca, modelo y se solicita el número de chasis.
Datos del Repuesto: El cliente debe seleccionar el o los repuestos que necesita, seleccionando de una lista presentada por el sistema, dichos datos son: nombre del repuesto, cantidad y color (si es necesario). Solamente se solicitaran estos datos ya que la marca y modelo quedan almacenados anteriormente.  
Procesos
Registrar Cliente: En cada venta se solicitan los datos generales del cliente esto para hacer más sencillo el proceso de facturación en próximas ventas. Los datos solicitados a cada cliente son: nombre, apellido, departamento, dirección, correo electrónico y un código que es proporcionado por el sistema. En el caso de ser un cliente cuyos datos ya fueron  almacenados en la BD estos solo serán verificados y actualizados.

Registrar Datos de Vehículo: El registro de vehículo lo realiza únicamente el administrador del sistema, si se trata de un dato de vehículo nuevo se solicita la ubicación del dato ya sea: año del vehículo, marca, modelo, etc. y se almacenan los datos.

Registrar Repuestos: El registro de repuestos lo realiza únicamente el administrador del sistema, si se tratase de un repuesto nuevo se almacena el nombre del repuesto, color si lo amerita y un código que solo será visible para el administrador.

Registro de Factura de Venta: En los registros de la factura de venta se almacenan los datos del cliente, vehículo, y los datos del repuesto, además de la cantidad de repuestos comprados para realizar el cálculo y agregar el pago realizado.

Salidas

Factura de Ventas: Esta factura debe reflejar la fecha en que se realizó la venta, a su vez la cantidad del repuestos vendidos y la descripción de estos (nombre y color), también deben los datos del cliente (Código, nombre y apellido), los datos del vehículo (año del vehículo, marca, modelo y numero de chasis), se debe indicar si se realizó algún tipo de descuento y el porcentaje de este, además se deben realizar los cálculos del pago y el pago total. Dicha factura de ventas es emitida por el sistema en el departamento en que se realizará la entrega y ser entregada al cliente por el sistema de envío.     

Modelo de Datos
descripcion de la base de datos




1)sucursal



Campo
Descripción
Tipo de Dato
Tamaño
Restricción
Código
        Llave principal
Nchar
5
Primary key
Departamento
Nombre de la sucursal
Nvarchar
30
Not null
Teléfono
Teléfono de la sucursal
Int
Gerente
Nombre del gerente
Nvarchar
30
Not Null


2)cliente


Campo
Descripción
Tipo de Dato
Tamaño
Restricción
Id_cliente
Llave principal
Nchar
5
Primary key
Nombre
Nombre del cliente
Nvarchar
30
Not null
Apellido
Apellido del cliente
Nvarchar
30
Not null
Departamento
Departamento en que se hará la entrega
Nvarchar
30
Not Null
Dirección
Dirección del cliente
Nvarchar
100
Not Null
Correo
Correo electrónico del cliente
Nvarchar
30
Not Null

3)vehiculo






Campo
Descripción
Tipo de Dato
Tamaño
Restricción
Id_chasis
Llave principal
Nchar
5
Primary key
año
Año de fabricación del vehiculo
Int
Not null
marca
Marca del vehiculo
Nvarchar
30
Not Null
modelo
Modelo del vehiculo
Int
Not Null


4)repuesto
Campo
Descripción
Tipo de Dato
Tamaño
Restricción
Nombre
Nombre del repuesto
Nvarchar
30
Not null
color
Color del repuesto
Nvarchar
100

Cantidad
Cantidad de dichos repuestos
Int
Not Null
Id_repuesto
Llave principal
Nchar
5
Foreign key



No hay comentarios:

Publicar un comentario