viernes, 9 de septiembre de 2011

DIFERENTES CARACTERÍSTICAS DE LA ARQUITECTURA CLIENTE-SERVIDOR.

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.



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) (Ver Figura 5.1). En un sistema distribuido cada máquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras.

Características de la arquitectura Cliente/Servidor

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.

En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son:
  • Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).
  • Espera y recibe las respuestas del servidor.
  • Por lo general, puede conectarse a varios servidores a la vez.
  • Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario.
  • 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.
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.

Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son:
  • Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
  • Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
  • 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).
  • No es frecuente que interactúen directamente con los usuarios finales.
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.



CARACTERÍSTICAS DE LA ARQUITECTURA CLIENTE/SERVIDOR

·         Las características básicas de una arquitectura Cliente/Servidor son: 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.

Características Físicas

La característica principal es la potencia de los ordenadores personales para realizar, sobre todo, los servicios de presentación y, según el nivel, algunos procesos o incluso algún acceso a datos locales. También existe una plataforma de servidores que sustituye al ordenador central tradicional y que da servicio a los clientes autorizados. Incluso a veces el antiguo ordenador central se integra en dicha plataforma como un servidor más. Estos servidores suelen estar especializados por funciones (seguridad, cálculo, bases de datos, comunicaciones, etc.).

Para la comunicación de todos estos elementos se emplea un sistema de red que se encarga de transmitir la información entre clientes y servidores. Físicamente consiste en un cableado (coaxial, par trenzado, fibra óptica, etc.) o en conexiones mediante señales de radio o infrarrojas, dependiendo de que la red sea local (LAN o RAL), metropolitana (MAN) o de área extensa (WAN).

Características Lógicas
·         Una de las principales aportaciones de esta arquitectura a los sistemas de información, es la interfaz gráfica de usuario. Gracias a ella se dispone de un manejo más fácil e intuitivo de las aplicaciones mediante el uso de un dispositivo tipo ratón. En esta arquitectura los datos se presentan, editan y validan en la parte de la aplicación cliente.

·         En cuanto a los datos, cabe señalar que en la arquitectura cliente / servidor se evitan las duplicidades (copias y comparaciones de datos), teniendo siempre una imagen única y correcta de los mismos, disponible en línea para su uso inmediato.
  • Todo esto tiene como fin que el usuario de un sistema de información soportado por una arquitectura cliente / servidor, trabaje desde su estación de trabajo con distintos datos y aplicaciones, sin importarle dónde están o dónde se ejecuta cada uno de ellos.

Ventajas del esquema Cliente/Servidor

Entre las principales ventajas del esquema Cliente/Servidor están:

·         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.

·         Una ventaja adicional del uso del esquema Cliente/Servidor es que 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.


Desventajas del esquema Cliente/Servidor

Entre las principales desventajas del esquema Cliente/Servidor están:
·         El mantenimiento de los sistemas es más difícil pues implica la interacción de diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnóstico de fallas.

·         Se cuenta con muy escasas herramientas para la administración y ajuste del desempeño de los sistemas.

·         Es importante que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo sockets o RPC), lo cual implica que se deben tener mecanismos generales que existan en diferentes plataformas.

·         Además, hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos.

·         La seguridad de un esquema Cliente/Servidor es otra preocupación importante. Por ejemplo, se deben hacer verificaciones en el cliente y en el servidor.

·         El desempeño es otro de los aspectos que se deben tener en cuenta en el esquema Cliente/Servidor. Problemas de este estilo pueden presentarse por congestión en la red, dificultad de tráfico de datos, etc.

Elaborado por: Jose roberto Dominguez Betancourt

REFERENCIAS BIBLIOGRAFICAS

jueves, 8 de septiembre de 2011

COMPONENTES DE UN GESTOR DE BASE DE DATOS EN UN MANEJADOR COMERCIAL Y LAS DIFERENCIAS ENTRE ESTE Y UN LENGUAJE DE PROGRAMACIÓN.

Estructura general.
Un sistema de bases de datos se divide en módulos que se encargan de cada una de las responsabilidades del sistema completo. Algunas de estas funciones del sistema de bases de datos las puede proporcionar el sistema operativo de la computadora. En la mayoría de los casos los sistemas operativos de la computadora proporcionan solo los servicios más básicos y los sistemas de bases de datos deben construirse sobre esta base. Así, el diseño de un sistema de bases de datos debe incluir consideraciones de la interfaz entre el sistema de base de datos y el sistema operativo.

Los componentes funcionales de un sistema de bases de datos se pueden dividir a grandes rasgos en:
Ø  Componentes de procesamiento de consultas.
Compilador de LMD: traduce las instrucciones del LMD en lenguaje de consultas a instrucciones a bajo nivel que entiende el motor de evaluación de consultas.
Pre compilador del LMD incorporado: Convierte las instrucciones de LMD incorporadas en un programa de aplicación en llamadas a procedimientos normales en el lenguaje anfitrión. El pre compilador del LMD para generar el código apropiado.
Intérprete del LDD: Interpreta las instrucciones del LDD y las registra en un conjunto de tablas que contiene metadatos.
Motor de evaluación de consultas: Ejecuta las instrucciones a bajo nivel generadas por el compilador del LMD.

Ø  Componentes de gestión de almacenamiento.
Un gestor de almacenamiento es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel en la base de datos y los programas de aplicación y consultas emitidas al sistema. El gestor de almacenamiento es responsable de la interacción con el gestor de archivos.
Gestor de autorización e integridad: Comprueba que se satisfagan las ligaduras de integridad y la autorización de los usuarios para acceder a los datos.
Gestor de transacciones: Asegura que la base de datos quede en un estado consistente a pesar de los fallos del sistema, y que las ejecuciones de transacciones concurrentes ocurran sin conflicto.
Gestor de archivos: Gestiona la reserva de espacio de almacenamiento de disco, y las estructuras de datos usadas para representar la información almacenada en disco
Gestor de memoria intermedia: Es responsable de traer los datos del disco de almacenamiento a memoria principal y decidir qué datos tratar en la memoria caché.
 Índices, que proporcionan acceso rápido a elementos de datos que tienen valores particulares.
DIFERENCIA DE UN GESTOR DE BASE DE DATOS Y UN LENGUAJE DE PROGRAMACIÓN.
Pues como sabemos un gestor de base de datos es un software que permite introducir, organizar y recuperar la información de las bases de datos; en definitiva, administrarlas. Existen distintos tipos de gestores de bases de datos: relacional, jerárquico, red, etc. Y sin embargo un lenguaje de programación es un conjunto de símbolos junto a un conjunto de reglas para combinar dichos símbolos que se usan para expresar programas. Constan de un léxico, una sintaxis y una semántica.
Léxico: Conjunto de símbolos permitidos o vocabulario.Sintaxis: Reglas que indican cómo realizar las construcciones del lenguaje.Semántica: Reglas que permiten determinar el significado de cualquier construcción del lenguaje.
Pues como sabemos, mediante los programas se indica a la computadora que tarea debe realizar y cómo efectuarla, pero para ello es preciso introducir estas órdenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el específico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel.
¿Cuál es la diferencia fundamental entre los lenguajes de alto nivel y bajo nivel?

Investigar analogías y diferencias entre el código máquina y el lenguaje ensamblador.

Buscar información que permita decidir cuáles serían los lenguajes de programación más apropiados para realizar: aplicaciones para gestión de oficinas, complejos cálculos científicos, un sistema experto en medicina, un simulador de vuelo, manipulación de bases de datos, control de un robot industrial.

En si pues una de las grandes diferencias es que una base de datos necesita de un sistema Operativo para poder ser ejecutada la B.D. y Un sistema operativo gracias a que existen los lenguajes de programación en la actualidad hay diversos  tipos de sistemas operativos.
Toda computadora para que funcione requiere de un S.O y de programas, es por eso que un gestor de base de datos siempre será elaborado de acuerdo aúna plataforma que sea compatible con dicho Sistema.
Al momento de realizar una base de datos es necesario hacer uso de programas que nos facilitan la elaboración de las mismas, pero estos programas fueron hechos con un lenguaje de programación lo cual nos indica que todo gestor de base de datos es desarrollado (programado) en un lenguaje de programación y por lo tanto un lenguaje de programación siempre será la base para desarrollar cualquier tipo de software para nuestra PC.
Elaborado por: Jose roberto Dominguez Betancourt
Bibliografía
Ø  Fundamentos de bases de datos, Cuarta edición, Abraham Silberschatz