28
TECNOLÓGICO NACIONAL DE MÉXICO Ingeniería en Sistemas Computacionales Programación de Base de Datos Unidad 2: Aplicaciones con arquitectura cliente-servidor

Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Embed Size (px)

Citation preview

Page 1: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

TECNOLÓGICO NACIONAL DE MÉXICO

Ingeniería en Sistemas ComputacionalesProgramación de Base de Datos

Unidad 2: Aplicaciones con arquitectura cliente-servidor

Page 2: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

PROGRAMACIÓN DE BASE DE DATOS

Competencia:• Elaborar un sistema de base de datos con arquitectura cliente – servidor.

Page 3: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Introducción

• La arquitectura Cliente - Servidor es una forma de dividir y especializar programas y equipos de cómputo de forma que la tarea que cada uno de ellos realiza se efectúa con la mayor eficiencia posible y permita simplificar las actualizaciones y mantenimiento del sistema.

PROGRAMACIÓN DE BASE DE DATOS

Page 4: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

El Modelo Cliente/Servidor: El concepto

• Sistema distribuido donde el software está dividido entre Tareas servidor Tareas cliente

• Separación clara de responsabilidades Basado en la noción de servicio

PROGRAMACIÓN DE BASE DE DATOS

Page 5: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

• Papel del cliente: Inicia el diálogo Envía peticiones al servidor conforme a algún protocolo asimétrico Pide que el servidor actúe, o que le informe, o ambas cosas

• Papel del servidor: Espera pasivamente peticiones de los clientes Responde a las peticiones según su política

PROGRAMACIÓN DE BASE DE DATOS

Page 6: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

• Facilita migrar a servidor más grande / veloz o servidores múltiples.

• Fácil de escalar.• Facilita añadir clientes.

• Servidor protegido contra fallos en el cliente.

• Despliegue independiente de cliente y servidor

• Clientes / servidores pueden usar el hardware y SO más adecuados para su función.

• Reparto de cargas.

Ventajas

Escalabilidad “vertical”

Escalabilidad “Horizontal”

Hardware y plataformas software (SO) heterogéneos

PRO

GRAM

ACIÓ

N D

E BA

SE D

E DA

TOS

Page 7: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Desventajas

PROGRAMACIÓN DE BASE DE DATOS

La congestión del tráfico ha sido siempre un problema.Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. Importancia de las comunicaciones.El software y el hardware de un servidor son generalmente muy determinantes. Nuevas aplicaciones.

Page 8: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Modelo Cliente/ServidorPR

OGR

AMAC

IÓN

DE

BASE

DE

DATO

S

Page 9: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

ImplicacionesPR

OGR

AMAC

IÓN

DE

BASE

DE

DATO

S

Page 10: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Clasificación

Cliente pesado/ servidor ligero• Mayor parte de la aplicación corre en el lado cliente• Servidor exporta datos en bruto• Clientes saben de organización de datos en el servidor

Cliente ligero/ servidor pesado• Mayor parte de la aplicación corre en el lado servidor• Servidor exporta métodos que operan sobre los datos• Cliente no es mucho más que el GUI

PROGRAMACIÓN DE BASE DE DATOS

Page 11: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Distribución de las aplicaciones

PROGRAMACIÓN DE BASE DE DATOS

Page 12: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Modelo en 3 capas

PROGRAMACIÓN DE BASE DE DATOS

Page 13: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

• La programación por capas tiene como objetivo separar la lógica de diseño de la lógica de negocios. • Una de las ventajas que podemos destacar sobre este estilo es que el

desarrollo del software se puede llevar a cabo en varios tipos de niveles.• La programación por capas es una técnica propia de la programación a

objetos, que se divide en 3 capas:

PROGRAMACIÓN DE BASE DE DATOS

Page 14: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Capa de presentación

PROGRAMACIÓN DE BASE DE DATOS

Se refiere a la presentación del programa frente al usuario, esta presentación debe cumplir su propósito con el usuario final, una presentación fácil de usar y amigable.

También las interfaces deben ser consistentes con la información dentro del software (Por ejemplo; en los formularios no debe haber más que lo necesario), tomar en cuenta los requerimientos del usuario, la capa de presentación va de la mano con capa de la lógica de negocio.

Page 15: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Capa de lógica de negocio

PROGRAMACIÓN DE BASE DE DATOS

En esta capa es donde se encuentran los programas que son ejecutados, recibe las peticiones del usuario y posteriormente envía las respuestas tras el proceso.

Esta capa es muy importantes pues es donde se establecen todas aquellas reglas que se tendrán que cumplir, se decía anteriormente que la capa de presentación tiene comunicación con la capa de lógica de negocio ya que se tienen que comunicar para recibir las solicitudes y presentar los resultados.

Page 16: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Capa de datos

Esta capa es la que se encarga de hacer las transacciones con la base de datos y con otros sistemas para descargar

o insertar información al sistema.

La consistencia en los datos es sumamente importante, es decir, los datos que se ingresan o insertan deben ser

precisos y consientes.

Aquí definimos las consultas que vamos a realizar en la base de datos, o consultas para reporteo.

La comunicación de esta capa con la capa de lógica de negocio se refiere a que la capa de datos es la que le

enviará información a la capa de negocio para que sea procesada e ingresada en objetos según sea necesario

(encapsulamiento).

PRO

GRAM

ACIÓ

N D

E BA

SE D

E DA

TOS

Page 17: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Arquitectura de distintas capas

Aplicaciones comerciales se dividen en tres partes

Acceso a datos Gestión y acceso a datos persistentesPresentación (o interfaz de usuario) Presentación de resultados al usuario de forma comprensibleLógica de aplicación o del negocio El procesamiento

PROGRAMACIÓN DE BASE DE DATOS

Page 18: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Proyecto1. Crear una base de datos que se llame AlumnosDB en la instancia que tiene instalado SQL.2. Crear una tabla en la base de datos AlumnosDB, que se llame Alumnos, con los siguientes campos (capa de datos):– NoControl; cadena de 10 caracteres, debe ser llave primaria.– Nombre; cadena de 80 caracteres (incluye apellidos).– Dirección; cadena de 80 caracteres– Localidad; cadena de 30 caracteres– Carrera; cadena de 5 caracteres (se admiten solo: IIND, IIA, IGE, ISC, IIAS, IMEC)– FechaNacimiento; fecha en formato dd/mm/yyyy.

PROGRAMACIÓN DE BASE DE DATOS

Page 19: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

3. Crear en Visual Studio C#, una DLL que contenga las reglas de operación o reglas de negocios (capa de negocios):• Alta de Alumnos• Modificación de Alumnos• Baja de Alumnos• Consulta de Alumnos

4. Crear en Visual Studio C#, la GUI que ha de interactuar (hacer llamados a la DLL) con las reglas de negocio (capa de presentación).5. Verificar los resultados en la base de datos directamente.

PROGRAMACIÓN DE BASE DE DATOS

Page 20: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Anatomía de un programa tipo servidor en C#. La mayoría de los servidores TCP/IP tienen un ciclo de vida similar y en nuestro caso sería:

• Creamos una nueva instancia de TcpListener y la asociamos a la dirección IP y al puerto que deseemos utilizando el constructor de la clase

• Inicializamos o ponemos a la escucha dicho puerto, esto se hace con el método Start

• Una vez que un cliente se conecte el método AcceptSocket devuelve una instancia de TcpClient que es utilizada para atender la petición del cliente

PROGRAMACIÓN DE BASE DE DATOS

Page 21: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

• El servidor y el cliente interactúan entre ellos, normalmente a través de un Stream de red (NetworkStream) proporcionado por el método Receive()

• El servidor puede devolver valores al cliente atreves de un ASCIIEncoding y el método

• El servidor, el cliente o ambos cierran la conexión.• El servidor vuelve a quedar a la escucha de nuevas conexiones en el puerto

designado.

PROGRAMACIÓN DE BASE DE DATOS

Page 22: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Diagrama del servidor

Crear TcpListener

Iniciar escuchaStart

Atender peticionesAcceptSocket

Atender peticionesAcceptSocket y Receive()

Devuelve datosASCIIEncoding y GetBytes()

Cerrar y permanecer en escucha

PROGRAMACIÓN DE BASE DE DATOS

Page 23: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

PRO

GRAM

ACIÓ

N D

E BA

SE D

E DA

TOS

Page 24: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Anatomía de un programa tipo cliente. Su ciclo de vida es similar al de los servidores:

• Creamos una instancia de la clase TcpClient y la conectamos a la dirección IP y puerto deseados. Esto lo haremos con el método Connect

• El cliente se comunica con el servidor a través de su NetworkStream, ASCIIEncoding

• Se mantiene el dialogo hasta que el servidor, el cliente o ambos terminan la comunicación.

PROGRAMACIÓN DE BASE DE DATOS

Page 25: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

PRO

GRAM

ACIÓ

N D

E BA

SE D

E DA

TOS

Page 26: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

ProyectoDesarrolle una aplicación cliente-servidor en 3 capas.

• La capa de presentación es el cliente y se hará ya sea en consola o en interfaz gráfica, en esta se debe poder capturar la información correspondiente a la tabla que se le asigne en clase de la BD Northwind. • Al iniciar el cliente se debe abrir el archivo texto cliente.dat, el cual

contendrá en la primer línea la dirección IP y en la segunda línea el puerto correspondientes al servidor.• La capa de negocios es la aplicación servidor y deberá hacerse en

CONSOLA, esta recibirá como parámetro la cadena que servirá para insertar, modificar, borrar o consultar la información proveniente del SQL Server.

PRO

GRAM

ACIÓ

N D

E BA

SE D

E DA

TOS

Page 27: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

• La aplicación servidor debe abrir un archivo de texto llamado servidor.dat, el cual contiene en la primer línea el puerto con el que funciona el servidor y en la segunda línea el nombre del servidor e instancia del SQL Server, tercer línea el nombre de la BD, y cuarta línea tipo de seguridad.• Dentro de la capa de negocios se debe validar que todos los datos tipo

string guarden en mayúsculas la información en la BD. También se debe realizar aquí cualquier operación matemática que se requiera.• La capa de datos es la instancia de SQL Server que ya tenemos instalada y

servirá para corroborar que las instrucciones enviadas desde el cliente fueron correctamente aplicadas por el servidor.

PRO

GRAM

ACIÓ

N D

E BA

SE D

E DA

TOS

Page 28: Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor

Bibliografía

• Patrick LeBlanc. 2015. Microsoft Visual C# 2013 Step by Step. EE. UU. Octal Publishing, Inc. ISBN: 978-0-7356-8183-5.

• John Sharp. 2013. Microsoft SQL Server 2012 Step by Step PrePress. EE. UU. Sevastopol, CA. O’Reilly Media, Inc.

PROGRAMACIÓN DE BASE DE DATOS