Arquitectura de servidor de archivos. Tecnologías de archivo - servidor y cliente - servidor. Distribuir una aplicación entre cliente y servidor.

Se construye un modelo físico basado en el modelo datalógico.

La organización física de los datos tiene un impacto importante en las características operativas de la base de datos. Los desarrolladores de DBMS intentan crear los modelos de datos físicos más productivos, ofreciendo a los usuarios una u otra herramienta para personalizar el modelo para una base de datos específica.

En particular, para una base de datos relacional ya se tiene en cuenta:

1. aspectos físicos del almacenamiento de tablas en archivos específicos,

2. crear índices que optimicen la velocidad de realización de operaciones con datos utilizando la aplicación,

3. realizar diversas acciones sobre datos ante ciertos eventos definidos por el usuario utilizando activadores y procedimientos almacenados.

Arquitectura de base de datos

Según los principios del procesamiento de datos, las bases de datos se clasifican en centralizadas y distribuidas.

Una base de datos centralizada significa que trabajar con la base de datos sólo es posible localmente. Si la computadora opera en una red, se puede acceder a la información de forma remota desde otras computadoras en la red. Las bases de datos centralizadas son las más comunes hoy en día. En este caso, son posibles varias opciones para el procesamiento de datos.

Arquitectura del servidor de archivos asume la presencia de un servidor en la red en el que se almacenan los archivos de la base de datos centralizada. De acuerdo con las solicitudes de los usuarios, los archivos se transfieren desde el servidor de archivos a las estaciones de trabajo de los usuarios, donde se lleva a cabo la mayor parte del procesamiento de datos.

El servidor central desempeña principalmente únicamente la función de almacenamiento de archivos, sin participar en el procesamiento de los datos en sí. Después de completar el trabajo, los usuarios copian los archivos con los datos procesados ​​al servidor, desde donde otros usuarios pueden tomarlos y procesarlos. Las desventajas de organizar los datos de esta manera son obvias. Cuando muchos usuarios acceden simultáneamente a los mismos datos, el rendimiento cae drásticamente, porque... debes esperar hasta que el usuario que trabaja con los datos termine su trabajo. De lo contrario, es posible que las correcciones realizadas por un usuario sean sobrescritas por cambios realizados por otros usuarios.

En el centro del concepto cliente-servidor La idea es que, además de almacenar los archivos de la base de datos, el servidor central realice la mayor parte del procesamiento de datos. Los usuarios acceden al servidor mediante un lenguaje de consulta estructurado especial (SQL, Structured Query Language), que describe la lista de tareas realizadas por el servidor. Las solicitudes son aceptadas por el servidor y generan procesos de procesamiento de datos. En respuesta, el usuario recibe un conjunto de datos ya procesados. La tecnología cliente-servidor le permite evitar la transmisión de grandes cantidades de información a través de la red al trasladar todo el procesamiento a un servidor central. Este enfoque también evita conflictos cuando varios usuarios editan los mismos datos.

Arquitectura de tres niveles("Cliente ligero" - servidor de aplicaciones - servidor de base de datos) opera en redes de Intranet e Internet. La parte del cliente ("cliente ligero"), que interactúa con el usuario, es una página HTML en un navegador web o una aplicación de Windows, que interactúa con. Servicios web. Toda la lógica del programa se transfiere al servidor de aplicaciones, lo que garantiza la formación de consultas a la base de datos que se transfieren al servidor de la base de datos para su ejecución. El servidor de aplicaciones puede ser un servidor web o un programa especializado.

Base de datos distribuida ubicado en varias computadoras. La información de estos ordenadores puede superponerse e incluso duplicarse. Un sistema de gestión de bases de datos distribuidas está diseñado para gestionar dichas bases de datos. El sistema oculta a los usuarios el acceso a los datos ubicados en otras computadoras. Para el usuario, todo parece como si toda la información estuviera en un servidor.

Una de las funciones básicas del sistema de información de una organización de cualquier tamaño es asegurar el intercambio de información tanto dentro como fuera de la organización. Sin embargo, en este proceso existen problemas asociados con la velocidad del intercambio de información y el trabajo con información en modo de acceso compartido. Estos problemas se resuelven mediante productos de software que organizan el procesamiento de la información utilizando determinadas tecnologías. Actualmente, las tecnologías más utilizadas son:

Tecnología de servidor de archivos;

Tecnología cliente-servidor.

Servidor de archivos La tecnología funciona en un espacio de red con acceso a archivos DBMS almacenados en un servidor.

Procesamiento de una solicitud de usuario único:

· Acceder a la base de datos (consulta)

· Transferencia de datos mientras se bloquea el acceso de otros usuarios

· Tratamiento de datos en el ordenador del usuario

En una organización de servidor de archivos, el cliente trabaja con archivos remotos, lo que provoca una sobrecarga de tráfico significativa (dado que DBMS-FS opera en el lado del cliente, para recuperar datos útiles, en el caso general, es necesario ver todo archivo correspondiente en el lado del cliente).

En general, en una arquitectura de servidor de archivos tenemos un cliente "grueso" y un servidor muy "ligero" en el sentido de que casi todo el trabajo se realiza en el lado del cliente y el servidor sólo requiere suficiente capacidad de almacenamiento en disco.

Defectos servidor de archivos Los sistemas son obvios:

· Carga muy alta en la red, mayores requisitos de ancho de banda. En la práctica, esto hace que sea casi imposible que un gran número de usuarios trabajen con grandes cantidades de datos simultáneamente.

· El tratamiento de los datos se realiza en el ordenador del usuario. Esto implica mayores requisitos de hardware para cada usuario. Cuantos más usuarios haya, más dinero tendrás que gastar en equipar sus ordenadores.

· El bloqueo de datos cuando los edita un usuario hace imposible que otros usuarios trabajen con estos datos.

· Seguridad. Para poder trabajar con un sistema de este tipo, deberá otorgar a cada usuario acceso completo a todo el archivo, en el que puede estar interesado en un solo campo.

Tecnología cliente-servidor Divide la aplicación en dos partes, aprovechando las mejores características de ambos lados. La parte del cliente proporciona una interfaz interactiva, fácil de usar y generalmente gráfica, ubicada en la computadora del usuario. El servidor (programa) proporciona gestión de datos, intercambio de información, administración sofisticada y seguridad (ubicado en una computadora especialmente dedicada (servidor).

Tenga en cuenta que la interfaz entre la parte cliente de la aplicación y la parte cliente del servidor de la base de datos generalmente se basa en el uso del lenguaje SQL. Por lo tanto, funciones como, por ejemplo, el preprocesamiento de formularios destinados a consultas a la base de datos, o la generación de informes resultantes, se realizan en el código de la aplicación, y todas las llamadas al servidor de la base de datos se reducen a transmitir el texto de las declaraciones SQL. .

Dado que todo el trabajo con la base de datos (seleccionar, agregar, ejecutar activadores y procedimientos) ocurre en el lado del servidor, en una organización cliente-servidor los clientes pueden ser bastante "delgados" y el servidor debe ser "grueso" para poder satisfacer las necesidades de todos los clientes.

Si es necesario procesar información almacenada en la base de datos, una aplicación cliente que se ejecuta en la computadora del usuario que trabaja con la base de datos genera una consulta en SQL. El servidor de la base de datos acepta la solicitud y la procesa él mismo. No se transmite ninguna matriz de datos (archivo) a través de la red. Después de procesar la solicitud, solo el resultado se transfiere a la computadora del usuario, es decir, en el ejemplo anterior, una lista de órdenes de pago que cumplen con los criterios necesarios. El propio fichero, en el que se almacenaron los datos que sirvieron de fuente para el tratamiento, queda desbloqueado para su acceso por parte del propio servidor a petición de otros usuarios.

En los DBMS cliente-servidor serios, existen mecanismos adicionales que reducen la carga en la red y reducen los requisitos para las computadoras de los usuarios. Como ejemplo, daremos procedimientos almacenados, es decir, programas completos para procesar datos almacenados en una base de datos. En este caso ni siquiera se transfieren expresiones SQL del usuario al servidor: se transfiere una llamada de función con parámetros de llamada. De este modo, el lugar de trabajo del usuario se simplifica aún más y la lógica del programa se transfiere al servidor. El espacio de usuario se convierte simplemente en un medio para mostrar información. Todo esto significa una mayor reducción de la carga en la red y en las estaciones de trabajo de los usuarios.

Por lo tanto, todas las desventajas anteriores servidor de archivos Los circuitos se eliminan en la arquitectura. cliente-servidor:

  • Las matrices de datos no se transfieren a través de la red desde el servidor de la base de datos a la computadora del usuario. Se reducen los requisitos de ancho de banda de la red. Esto hace posible que una gran cantidad de usuarios trabajen simultáneamente con grandes cantidades de datos.
  • El procesamiento de datos se realiza en el servidor de la base de datos y no en el ordenador de los usuarios. Esto permite el uso de computadoras más simples y, por lo tanto, más económicas en los sitios de los clientes.
  • Los datos no son bloqueados (capturados) por un solo usuario.
  • El usuario no tiene acceso a todo el archivo, sino solo a los datos del mismo con los que el usuario tiene derecho a trabajar.

Modelo de servidor de archivos

Las aplicaciones de servidor de archivos son aplicaciones similares en estructura a las locales.

aplicaciones y utilizar un recurso de red para almacenar programas y datos.

Funciones del servidor: almacenamiento de datos y código de programa. Funciones del cliente: procesamiento

El procesamiento de datos se produce exclusivamente por parte del cliente.

El número de clientes está limitado a decenas.

1. Modo multiusuario para trabajar con datos;

2. Conveniencia del control de acceso centralizado;

3. Bajo costo de desarrollo;

1. Bajo rendimiento;

2. Baja confiabilidad;

3. Capacidades de expansión débiles;

Las desventajas de la arquitectura del servidor de archivos son obvias y se derivan de las principales

manera porque los datos se almacenan en un lugar y se procesan en otro. Este

significa que deben transmitirse a través de la red, lo que genera cargas muy altas

en la red y, como resultado, una fuerte disminución en el rendimiento de la aplicación cuando

aumentar el número de clientes que trabajan simultáneamente. La segunda desventaja importante

dicha arquitectura es una solución descentralizada a problemas de integridad y

coherencia de los datos y acceso simultáneo a los datos. Esta solución reduce

confiabilidad de la aplicación.

2.Cliente-servidor

La diferencia clave entre la arquitectura cliente-servidor y la arquitectura de servidor de archivos es

abstracción de la representación interna de los datos (esquema de datos físicos).

Los programas cliente ahora manipulan datos a nivel de circuito lógico.

Entonces, el uso de la arquitectura cliente-servidor hizo posible crear confiables (en

sentido de integridad de los datos) sistemas de información multiusuario con una base de datos centralizada

datos, independientemente de la parte de hardware (y a menudo software) del servidor de base de datos y

soporte de interfaz gráfica de usuario (GUI) en estaciones cliente,

conectado por red local.

El programa cliente trabaja con datos a través de solicitudes al software del servidor.

 Las funciones básicas de la aplicación se dividen entre el cliente y el servidor.

 Soporte completo para trabajo multiusuario.

 Garantía de integridad de datos

 La lógica de negocio de las aplicaciones permaneció en el software del cliente. Para cualquier cambio

algoritmos, es necesario actualizar el software del usuario en cada cliente.

 Altos requisitos para la capacidad de los canales de comunicación con

servidor, que impide el uso de estaciones cliente que no sean las

red local.

 Débil protección de datos contra piratería, especialmente por parte de personas sin escrúpulos.

usuarios del sistema.

 Alta complejidad de administración y configuración de las estaciones de trabajo de los usuarios.

 La necesidad de utilizar PC potentes en los sitios de los clientes.

 Alta complejidad del desarrollo del sistema debido a la necesidad de realizar negocios.

lógica y proporciona la interfaz de usuario en un solo programa.

modelo de servidor DBMS


Las redes informáticas y locales modernas tienen una estructura peer-to-peer (cuando todos los nodos están conectados directamente y tienen los mismos derechos) o una estructura jerárquica, un tipo de la cual es la arquitectura cliente-servidor. La idea de organizar un modelo de este tipo se basa en la comprensión de la diferencia entre un cliente y un servidor, y en la división de recursos.

Servidor– una computadora que sirve a otras computadoras en la red y les proporciona sus recursos para resolver ciertos problemas.

Cliente– una computadora que utiliza recursos del servidor y brinda al usuario la capacidad de interactuar con el sistema y la red.

El mismo esquema se utiliza al organizar aplicaciones de red, solo las partes del servidor y del cliente del software actúan como nodos principales.

Comparación

Este modelo de interacción se puede visualizar recordando programas y juegos multiusuario: iniciamos una aplicación cliente en nuestro dispositivo y vemos en la pantalla una granja, tanques o nuestra propia galería de fotos en Dropbox. Si no hay conexión a una red global o local (dependiendo de la ubicación), alimentar a las vacas y luchar en equipo no funcionará: todos los archivos y datos se almacenan en el servidor.

Dentro de una pequeña red doméstica o de oficina construida sobre un modelo jerárquico, la diferencia entre un cliente y un servidor puede residir únicamente en el plano del software. El primero envía solicitudes, el segundo las procesa y devuelve el resultado; Todos los procesos se llevan a cabo a través de aplicaciones instaladas en las computadoras. Técnicamente, las máquinas pueden ser cualquier cosa, siempre que el software no requiera un alto nivel de rendimiento de los componentes. Para realizar tareas que consumen muchos recursos, se utiliza una PC potente como servidor, mientras que una estación de trabajo solo debe ser conveniente para el usuario y garantizar el funcionamiento de los canales de comunicación.

Las computadoras que desempeñan funciones de servidor en una red con una gran cantidad de clientes generalmente tienen hardware reforzado con varios conjuntos de unidades con lectura y escritura de datos de alta velocidad. Además, estas máquinas están equipadas con la máxima cantidad de RAM posible. Pero los dispositivos periféricos para ellos son superfluos: monitores, teclados, ratones, sistemas de audio simplemente quedan excluidos del sistema debido a la falta de contacto directo con el usuario.

Entonces, ¿cuál es la diferencia funcional entre cliente y servidor? El primero inicia el funcionamiento del software (con o sin participación del usuario), el segundo espera una solicitud del usuario. El cliente conoce la dirección completa del servidor y cómo contactarlo, y el servidor recibe información sobre el cliente una vez que comienza la interacción. Las estaciones de trabajo se pueden apagar según un cronograma o el deseo del usuario, pero la PC del servidor siempre está funcionando (o mientras se ejecuta la aplicación del servidor). La falla de uno de los clientes no afectará nada, mientras que la falla del equipo del servidor significa la indisponibilidad del servicio para todos los nodos de la red conectados a él.

Mesa

Cliente Servidor
Envía solicitudes al servidor a través de la red.Recibe solicitudes, procesa y devuelve el resultado al cliente.
Software cliente instaladoSoftware de servidor instalado
Los requisitos para los recursos de hardware del sistema son mínimos.Requiere un desempeño adecuado según la cantidad de clientes y la complejidad de las tareas.
Interactúa directamente con el usuario.No interactúa con el usuario, por lo que no puede tener periféricos
Se puede activar y desactivar aleatoriamenteSiempre funciona mientras haya necesidad de servicio al cliente.
El método de acceso al servidor y su dirección se conocen de antemano.Recupera información del cliente de una solicitud.

Departamento de Educación General y Profesional de la Región de Bryansk

Institución educativa estatal

Colegio Textil Klintsovsky

SOFTWARE PARA SISTEMAS DE INFORMACIÓN AUTOMATIZADOS

Tecnología cliente-servidor

Estudiante gr. A-90____________________________(Petrochenko A.O.)

Maestra _______________________ (Shirokova A.L.)

Klintsy – 2011

1. Servidores. Conceptos básicos del servidor

2. Modelo cliente-servidor

3. Clasificación de servidores estándar.

4. Conclusión

1. Servidores. Conceptos básicos del servidor

Servidor (del servidor inglés, sirviendo). Dependiendo del propósito, existen varias definiciones del concepto de servidor.

1. Servidor (red): un nodo de red lógico o físico que atiende solicitudes a una dirección y/o nombre de dominio (nombres de dominio adyacentes), que consta de uno o un sistema de servidores de hardware en los que se ejecuta uno o un sistema de programas de servidor.

2. Servidor (software): software que recibe solicitudes de clientes (en arquitectura cliente-servidor).

3. Servidor (hardware): una computadora (o equipo informático especial) dedicado y/o especializado para realizar determinadas funciones de servicio.

3. Un servidor en tecnologías de la información es un componente de software de un sistema informático que realiza funciones de servicio a solicitud del cliente, proporcionándole acceso a determinados recursos.

Interrelación de conceptos. Una aplicación de servidor (servidor) se ejecuta en una computadora, también llamada "servidor", y cuando se considera la topología de la red, dicho nodo se denomina "servidor". En general, puede ser que una aplicación de servidor se esté ejecutando en una estación de trabajo normal, o que una aplicación de servidor que se ejecute en una computadora servidor dentro de la topología en cuestión actúe como un cliente (es decir, no es un servidor desde el punto de vista de la topología de la red).

2. Modelo cliente-servidor

Un sistema cliente-servidor se caracteriza por la presencia de dos procesos independientes que interactúan: un cliente y un servidor, que, en general, se pueden ejecutar en diferentes computadoras, intercambiando datos a través de la red.

Los procesos que implementan un servicio, como un sistema de archivos o un servicio de base de datos, se denominan servidores(servidores). Los procesos que solicitan servicios de los servidores enviando una solicitud y luego esperando una respuesta del servidor se llaman clientela(clientes).

Según este esquema, se pueden construir sistemas de procesamiento de datos basados ​​​​en DBMS, correo y otros sistemas. Hablaremos de bases de datos y sistemas basados ​​en ellas. Y aquí será más conveniente no solo considerar la arquitectura cliente-servidor, sino compararla con otra: el servidor de archivos.

En un sistema de servidor de archivos, los datos se almacenan en un servidor de archivos (por ejemplo, Novell NetWare o Windows NT Server) y su procesamiento se lleva a cabo en estaciones de trabajo que, por regla general, operan con uno de los llamados "DBMS de escritorio". -Acceso, FoxPro, Paradox, etc.

La aplicación en la estación de trabajo es “responsable de todo”: de crear la interfaz de usuario, del procesamiento lógico de datos y de la manipulación directa de datos. El servidor de archivos proporciona solo el nivel más bajo de servicios: abrir, cerrar y modificar archivos. Tenga en cuenta: archivos, no bases de datos. El sistema de gestión de bases de datos está ubicado en la estación de trabajo.

Por tanto, en la manipulación directa de datos intervienen varios procesos independientes e inconsistentes. Además, para realizar cualquier tratamiento (búsqueda, modificación, suma, etc.), todos los datos deben transferirse a través de la red desde el servidor a la estación de trabajo ( ver fig. Comparación de modelos de servidor de archivos y cliente-servidor)


Arroz. Comparación de modelos de servidor de archivos y cliente-servidor

En un sistema cliente-servidor, hay (al menos) dos aplicaciones: un cliente y un servidor, que comparten entre sí aquellas funciones que, en una arquitectura de servidor de archivos, las realiza íntegramente una aplicación en una estación de trabajo. El almacenamiento y manipulación directa de los datos se realiza mediante un servidor de base de datos, que puede ser Microsoft SQL Server, Oracle, Sybase, etc.

La interfaz de usuario la crea el cliente, para cuya construcción se pueden utilizar varias herramientas especiales, así como la mayoría de los DBMS de escritorio. La lógica de procesamiento de datos se puede ejecutar tanto en el cliente como en el servidor. El cliente envía solicitudes al servidor, normalmente formuladas en SQL. El servidor procesa estas solicitudes y envía el resultado al cliente (por supuesto, puede haber muchos clientes).

Por tanto, un proceso es responsable de manipular directamente los datos. Al mismo tiempo, el procesamiento de datos se produce en el mismo lugar donde se almacenan: en el servidor, lo que elimina la necesidad de transferir grandes cantidades de datos a través de la red.

¿Qué proporciona la arquitectura cliente-servidor?

Veamos esta arquitectura desde el punto de vista de las necesidades comerciales. ¿Qué cualidades aporta un cliente-servidor a un sistema de información?

Fiabilidad

El servidor de la base de datos realiza la modificación de datos basándose en un mecanismo de transacción, que otorga a cualquier conjunto de operaciones declaradas como transacción las siguientes propiedades:

  • atomicidad- bajo cualquier circunstancia, se realizarán todas las operaciones de transacción o no se realizará ninguna; integridad de los datos al finalizar la transacción;
  • independencia- las transacciones iniciadas por diferentes usuarios no interfieren con los asuntos de los demás;
  • tolerancia a fallas- una vez completada la transacción, sus resultados ya no se perderán.

El mecanismo de transacción soportado por el servidor de la base de datos es mucho más eficiente que el mecanismo similar en los DBMS de escritorio, porque el servidor controla centralmente la operación de las transacciones. Además, en un sistema servidor de archivos, una falla en cualquiera de las estaciones de trabajo puede provocar la pérdida de datos y su inaccesibilidad para otras estaciones de trabajo, mientras que en un sistema cliente-servidor, una falla en el cliente casi nunca afecta la integridad de los datos. y su disponibilidad para otros clientes.

Escalabilidad

La escalabilidad es la capacidad del sistema para adaptarse al crecimiento del número de usuarios y del volumen de la base de datos con un aumento adecuado del rendimiento de la plataforma hardware, sin sustituir el software.

Es bien sabido que las capacidades de los DBMS de escritorio son muy limitadas: de cinco a siete usuarios y de 30 a 50 MB, respectivamente. Los números, por supuesto, representan algunos valores medios; en casos específicos pueden desviarse en cualquier dirección. Lo más importante es que estas barreras no se pueden superar aumentando las capacidades del hardware.

Los sistemas basados ​​en servidores de bases de datos pueden soportar miles de usuarios y cientos de GB de información; basta con darles la plataforma de hardware adecuada.

Seguridad

El servidor de base de datos proporciona medios poderosos para proteger los datos contra el acceso no autorizado, lo cual no es posible en los DBMS de escritorio. Al mismo tiempo, los derechos de acceso se administran de forma muy flexible, hasta el nivel de los campos de la tabla. Además, puede prohibir completamente el acceso directo a las tablas, permitiendo al usuario interactuar con los datos a través de objetos intermedios: vistas y procedimientos almacenados. De este modo, el administrador puede estar seguro de que ningún usuario demasiado inteligente leerá lo que no debe leer.

Flexibilidad

En una aplicación de datos, existen tres capas lógicas:

  • interfaz de usuario ;
  • reglas de procesamiento lógico(reglas comerciales);
  • gestión de datos(simplemente no confunda las capas lógicas con los niveles físicos, que se analizarán a continuación).

Como ya se mencionó, en una arquitectura de servidor de archivos, las tres capas se implementan en una aplicación monolítica que se ejecuta en una estación de trabajo. Por tanto, los cambios en cualquiera de las capas conllevan claramente la modificación de la aplicación y posterior actualización de sus versiones en los puestos de trabajo.

En una aplicación cliente-servidor de dos niveles que se muestra en la figura anterior, como regla general, todas las funciones para crear una interfaz de usuario se implementan en el cliente, todas las funciones para la administración de datos se implementan en el servidor, pero las reglas comerciales se pueden implementar tanto en el servidor utilizando mecanismos de programación del servidor (procedimientos almacenados, disparadores, vistas, etc.) y en el cliente.

En una aplicación de tres niveles, hay una tercera capa intermedia que implementa reglas de negocio, que son los componentes de la aplicación que se modifican con más frecuencia ( ver fig. Modelo de aplicación cliente-servidor de tres niveles)

Arroz. Modelo de aplicación cliente-servidor de tres niveles

La presencia no de uno, sino de varios niveles le permite adaptar la aplicación de forma flexible y rentable a los requisitos cambiantes del negocio.

Intentemos ilustrar todo lo anterior con un pequeño ejemplo. Supongamos que las reglas de nómina (reglas comerciales) de una determinada organización han cambiado y es necesario actualizar el software correspondiente.

1) En un sistema de servidor de archivos, "simplemente" realizamos cambios en la aplicación y actualizamos sus versiones en las estaciones de trabajo. Pero esto “simplemente” implica costos laborales máximos.

2) En un sistema cliente-servidor de dos niveles, si el algoritmo de cálculo de nómina se implementa en el servidor como una regla de nómina, se ejecuta mediante un servidor de reglas comerciales, implementado, por ejemplo, como un servidor OLE, y Actualizaremos uno de sus objetos sin cambiar nada ni en la aplicación cliente ni en el servidor de la base de datos.




Arriba