TECNOLOGICO NACIONAL DE MEXICO
ING. EN SISTEMAS COMPUTACIONALES
Programación de Base de Datos
Unidad II: Aplicaciones con Arquitectura Cliente-Servidor
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Cliente-Servidor
1. TECNOLÓGICO NACIONAL DE MÉXICO
Ingeniería en Sistemas Computacionales
Programación de Base de Datos
Unidad 2: Aplicaciones con arquitectura cliente-servidor
2. PROGRAMACIÓN DE BASE DE DATOS
Competencia:
• Elaborar un sistema de base de datos con arquitectura cliente – servidor.
3. 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
4. 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
5. • 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
6. • 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.
Robustez
• 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
PROGRAMACIÓNDEBASEDEDATOS
7. 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.
10. 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
12. Modelo en 3 capas
PROGRAMACIÓN DE BASE DE DATOS
13. • 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
14. 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.
15. 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.
16. 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).
PROGRAMACIÓNDEBASEDEDATOS
17. Arquitectura de distintas capas
Aplicaciones comerciales se dividen en tres partes
Acceso a datos
Gestión y acceso a datos persistentes
Presentación (o interfaz de usuario)
Presentación de resultados al usuario de forma comprensible
Lógica de aplicación o del negocio
El procesamiento
PROGRAMACIÓN DE BASE DE DATOS
18. Proyecto
1. 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
19. 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
20. 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
21. • 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
22. Diagrama del servidor
Crear
TcpListener
Iniciar escucha
Start
Atender peticiones
AcceptSocket
Atender peticiones
AcceptSocket y Receive()
Devuelve datos
ASCIIEncoding y GetBytes()
Cerrar y permanecer en
escucha
PROGRAMACIÓN DE BASE DE DATOS
24. 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
26. Proyecto
Desarrolle 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.
PROGRAMACIÓNDEBASEDEDATOS
27. • 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.
PROGRAMACIÓNDEBASEDEDATOS
28. 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