Download - Unidad 2 Prog BD
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
0 11 de septiembre de 2015
INGENIERÍA EN SISTEMAS COMPUTACIONALES
MATERIA: PROGRAMACION DE BASE DE DATOS
BLANCO NOGUEROLA VICTOR RAFAEL
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
1 11 de septiembre de 2015
INGENIERIA EN SISTEMAS COMPUTACIONALES
ASIGNATURA
PROGRAMACION DE BASE DE DATOS
ALUMNO
BLANCO NOGUEROLA VICTOR RAFAEL
NUMERO DE CONTROL
126Z0225
DOCENTE
REYES ZAMUDIO RAFAEL
SEMESTRE-GRUPO
SEPTIMO – YB
UNIDAD 2
APLICACIONES CON ARQUITECTURA CLIENTE/SERVIDOR
PRODUCTO ACADEMICO
REPORTE DE INVESTIGACION
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
2 11 de septiembre de 2015
INDICE
UNIDAD 2 - APLICACIONES CON ARQUITECTURA CLIENTE /S………..PAG 1
UNDIAD 2 - 2.1 MODELO CLIENTE/S………………………….……………...PAG 2
UNIDAD 2 – 2.2 PROGM DE UN SISTEMA CON ARQUITECTURA C/S….PAG 3
UNIDAD 2 – 2.3 ARQUITECTURA DE 3 CAPAS…………………..….….PAG 4 – 6
UNIDAD 2 – 2.4 ARQUITECTURA DE N CAPAS …………………………….PAG 7
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
1 11 de septiembre de 2015
UNIDAD 2 – APLICACIONES CON ARQUITECTURA CLIENTE-SERVIDOR
La aplicación cliente/servidor siempre es instalada en la computadora del cliente, a
diferencia de una aplicación web. Las aplicaciones web pueden funcionar en los
navegadores directamente y por ello no requieren de instalación. Una aplicación
cliente/servidor utiliza arquitectura de dos niveles, mientras que una aplicación web
utiliza arquitectura multi nivel que cosiste en el cliente usuario, nivel intermedio y
servidor de aplicación. Una aplicación web utiliza solo un sistema usuario a
diferencia de la aplicación cliente/servidor que utiliza dos usuarios: cliente y servidor.
Una aplicación web es alojada en un ambiente controlado por un navegador o es
usualmente programada en un lenguaje que soporta el navegador. El lenguaje
soportado por navegador más utilizado es JavaScript. En la aplicación
cliente/servidor, la máquina servidor aloja y ejecuta uno o múltiples programas
servidores compartiendo así sus recursos con los clientes. Un cliente siempre
solicita a un servidor información o contenido sin compartir ninguno de sus recursos.
En una aplicación cliente/servidor es difícil testear errores de programación,
mientras que en aplicaciones web es sencillo teastear errores de scripting. Tipos
específicos de clientes utilizados en un modelo cliente/servidor son navegadores
web, clientes de email y clientes de chat en línea. Los tipos de servidores utilizados
son servidores web, servidores ftp, servidores de aplicación, servidores de base de
datos, servidores de nombre, servidores de archivo, servidores de correo,
servidores de terminal e impresión.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
2 11 de septiembre de 2015
MODELO CLIENTE- SERVIDOR
Es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a las solicitudes. Arquitecturas múltiples clientes / múltiples servidores.- Son más flexibles, ya que la base de datos es distribuida en varios servidores. Cada cliente tiene un servidor directo al cual hace sus peticiones. La comunicación entre los servidores ejecuta las transacciones y peticiones de los usuarios y esta es transparente para ellos. Arquitecturas de igual a igual.-Un DBMS verdadero no distingue entre cliente y servidor. Idealmente cada máquina puede desempeñar la funcionalidad de cliente y de servidor. La base de datos es físicamente distribuida en diferentes lugares fragmentado y replicando los datos. La fragmentación es deseable ya que hace posible el poner los datos cerca de los usuarios que los necesitan, de esta forma reduciendo potencialmente el costo de la transmisión y reduciendo el tamaño de las relaciones involucradas en las consultas de los usuarios. Entre las principales características de la arquitectura cliente/servidor se pueden destacar las siguientes:
El servidor presenta a todos sus clientes una interfaz única y bien definida. El cliente no necesita conocer la lógica del servidor, sólo su interfaz
externa. El cliente no depende de la ubicación física del servidor, ni del tipo de
equipo físico en el que se encuentra, ni de su sistema operativo. Los cambios en el servidor implican pocos o ningún cambio en el cliente.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
3 11 de septiembre de 2015
VENTAJAS Y DESVENTAJAS DEL MODELO CLIENTE-SERVIDOR
Las principales ventajas que ofrece son
Administración centrada en el servidor. Los clientes tienen poca
trascendencia en el esquema y sus necesidades de administración son
menores.
Centralización de los recursos. Los recursos comunes a todos los usuarios
se administran en el servidor. Así se evitan situaciones como la
redundancia o inconsistencia de información en las bases de datos.
Mejora de la seguridad. Al disponer de un mecanismo central de
autenticación, las posibilidades de acceso indebido se reducen
considerablemente.
Escalabilidad de la instalación. Se pueden añadir o suprimir clientes sin que
el funcionamiento de la red se vea afectado.
Inconvenientes de la arquitectura cliente/servidor
Aunque, después de lo dicho hasta ahora parezca difícil de creer, una
infraestructura cliente/servidor también tiene sus inconvenientes:
Coste elevado. Tanto la instalación como el mantenimiento son más
elevados debido al perfil muy técnico del lado servidor.
Dependencia del servidor. Toda la red está construida al rededor del
servidor y si éste deja de funcionar o lo hace con un rendimiento
inadecuado, afectará a toda la infraestructura.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
4 11 de septiembre de 2015
PROGRAMACIÓN DE UN SISTEMA CON ARQUITECTURA CLIENTE-
SERVIDOR
Una aplicación cliente servidor requiere básicamente tres elementos: un programa
servidor que atiende las peticiones de los clientes; un programa cliente que se
conecta al servidor y; un protocolo de comunicaciones que indica la secuencia de
mensajes que se pasan un cliente y un servidor.
En el siguiente ejemplo, el servidor será multiusuario, es decir, atenderá
simultáneamente varios clientes, y para ello se utilizarán hilos -uno por cada cliente
que se conecte- que atenderán en forma exclusiva el proceso de cada cliente. El
cliente, por su parte, se conectará al servidor e iniciarán un diálogo (protocolo) en el
cual el cliente enviará un número y el servidor devolverá el valor del área del círculo
de radio igual al valor enviado por el cliente. El proceso para cada cliente terminará
cuando se le envíe al servidor un valor negativo.
Servidor
El proceso del servidor inicia creando un ServerSocket para escuchar peticiones por
el puerto 65432 (debe ser un valor entre 1225 y 65535 que no esté siendo utilizado
en el equipo donde va a correr). Cada vez que un cliente ingrese se crea un nuevo
objeto de la clase Socket y se instancia un nuevo hilo de la clase HiloServidor que
se encargará de manejar la interacción con el cliente.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
5 11 de septiembre de 2015
CODIGO JAVA DE PROGRAMACION CLIENTE – SERVIDOR
import java.io.*;
import java.net.*;
public class ServidorAreaCirculo {
final int puerto = 65432; // puerto sobre el que se esperarán conexiones
ServerSocket ss;
public void proceso() {
try {
ss = new ServerSocket(puerto);
while(true) { // ciclo infinito para esperar conexiones
Socket socket = ss.accept(); // espera hasta que un cliente se conecta
Thread hilo = new Thread(new HiloServidor(socket)); // crea hilo hijo
hilo.start(); // inicia el hilo hijo que atiende al cliente
}
}
catch(IOException x) {
System.err.println("Error de conexión: " + x.getMessage());
}}
class HiloServidor implements Runnable {
Socket socket;
HiloServidor(Socket s) { socket = s; }
public void run() {
try {
// crea flujos de entrada y salida
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
// paso 1: envio mensaje de bienvenida
out.println("Bienvenid@, este servidor calcula áreas de círculos");
while(true) {
// paso 2: solicita envio del radio del círculo
out.println("Digite radio del circulo (ó número negativo para terminar): ");
out.flush();
// paso 3: recibe el radio y genera la salida a enviar
String cadena = in.readLine();
try {
double radio = Double.parseDouble(cadena);
if(radio<0) break;
double area = Math.PI*Math.pow(radio,2);
cadena = "El área de un círculo de radio " + radio + " es " +
String.format("%,.4f", area);
}
catch(NumberFormatException x) {
cadena = "Error, la cadena recibida no es un número válido";
}
// paso 4: devuelve el mensaje al usuario
out.println(cadena);
out.flush();
}
out.println("Gracias por venir, vuelve pronto");
out.flush();
socket.close();
}
catch(IOException x) {
System.err.println(x.getMessage());
}}}
public static void main(String[] args) {
ServidorAreaCirculo s = new ServidorAreaCirculo();
s.proceso();}}
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
6 11 de septiembre de 2015
CLIENTE CODIGO JAVA
import java.io.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import static javax.swing.JOptionPane.*;
public class ClienteAreaCirculo {
public void proceso() {
try {
// Se crea socket conectado al servidor y puerto conocidos
Socket socket = new Socket("localhost",65432);
// Se crean los flujos de entrada y salida
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
// Paso 1: se recibe mensaje de bienvenida del servidor
String cadena = in.readLine();
System.out.println(cadena);
while(true) {
// Paso 2: se recibe mensaje de solicitud de número
cadena = in.readLine();
System.out.println(cadena);
// Paso 3: se pregunta al usuario el número a enviar
cadena = showInputDialog(cadena);
// Paso 4: se envia el número al servidor
out.println(cadena);
out.flush();
// Paso 5: se recibe la respuesta del servidor
cadena = in.readLine();
System.out.println(cadena);
if(cadena.startsWith("Gracias por venir")) break;
}
}
catch(IOException x) {
System.err.println("Error de conexión: "+x.getMessage());
}
}
public static void main(String[] args) {
ClienteAreaCirculo c = new ClienteAreaCirculo();
c.proceso();
}
}
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
7 11 de septiembre de 2015
ARQUITECTURA EN 3 CAPAS
La arquitectura en tres capas es un tipo de arquitectura usada en la gran mayoría
de sistemas. Se suele usar en sistemas que implementan un modelo de negocio
como podría ser una tienda online, una aplicación para gestionar ciertos datos, etc.
Sin embargo no es recomendable usarla en sistemas de tiempo real como los de
los coches o aviones.
Todo sistema que gestiona datos tendrá una base de datos para guardar esos datos
y una interfaz de usuario que será con la que interactúan los usuarios. Además, una
parte del sistema se encargará de procesar los datos y gestionar lo que se hace con
ellos. La arquitectura en tres capas lo que hace es dividir el sistema en tres partes
diferenciadas, de tal forma que cada capa solo se comunique con la inferior. Esas
tres capas se denominan:
Persistencia: Esta capa se encarga de guardar los datos. Será donde se
gestione todo lo relativo a la base de datos y a la creación, edición y borrado de
datos de ésta.
Negocio: En esta capa se gestiona la lógica de la aplicación. Es donde se dice
que se hace con los datos. Por ejemplo para una aplicación de gestión de una
biblioteca será donde se gestione cuántos préstamos puede tener un usuario,
que ocurre si un usuario se retrasa al devolver un libro, etc. Estará conectada
con la capa de persistencia para poder realizar sus funciones.
Presentación: En esta capa se crea la interfaz del usuario. Su única función es
pasarle las acciones que realice el usuario a la capa de negocio.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
8 11 de septiembre de 2015
ARQUITECTURA DE N CAPAS
Lo que se conoce como arquitectura en capas es en realidad un estilo de
programación donde el objetivo principal es separar los diferentes aspectos del
desarrollo, tales como las cuestiones de presentación, lógica de negocio,
mecanismos de almacenamiento, etc.
Dividir un software en varias partes lógicas, ya sean módulos, paquetes o capas, ofrece la posibilidad de comprender fácilmente su filosofía y distribuir las tareas que ejecuta. Por ello la comunidad del software desarrolló la noción de una arquitectura de varios niveles y entre las más difundidas se encuentra la arquitectura de tres capas.
La Arquitectura en Tres Capas divide la aplicación en tres partes lógicas, con un grupo de interfaces perfectamente definidas.
La Primera Capa o Capa de Presentación consiste en una interfaz gráfica que reúne los aspectos de software enfocados a la interacción con los diferentes tipos de usuarios. Es decir, incluye el manejo y aspecto de las ventanas, la autentificación, el formato de los reportes, menús, gráficos y demás elementos multimedia.
La Segunda Capa o Capa Intermedia reúne los aspectos de software que automatizan los procesos de negocio. Conocida también como capa de la Lógica de la Aplicación. Recibe la entrada de la capa anterior, interactúa con los servicios de datos para ejecutar las operaciones y envía el resultado procesado a la capa de presentación.
La Tercera Capa o Capa de Datos, contiene los datos necesarios para la aplicación. Es la encargada de almacenarlos, recuperarlos y mantener su integridad. Estos datos consisten en cualquier fuente de información, incluido una base de datos de empresa como Oracle o MySQL, un conjunto de documentos XML o incluso un servicio de directorio como LDAP. Además del tradicional mecanismo de almacenamiento relacional de base de datos, existen muchas fuentes diferentes de datos de empresa a las que pueden acceder las aplicaciones.
La separación entre la lógica de la aplicación y la interfaz de usuario ofrece mayor flexibilidad al diseño de la misma. De manera que los modelos de N capas están encaminados a maximizar aspectos importantes dentro de las aplicaciones, su autonomía, confiabilidad, disponibilidad, escalabilidad e interoperabilidad.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
9 11 de septiembre de 2015
CONCLUSION DE LA INVESTIGACION
Victor Rafael Blanco Noguerola: Básicamente todo parte de la arquitectura cliente-
servidor que pueden tener las diferentes aplicaciones a si tales como los programas
y páginas webs que se utilizan para iniciar una consulta y recibir una respuesta y
por lo cual está conformada por varias fracciones del modelo cliente-servidor en la
cual también integra diferentes tipos de organización asi como la organización de
las capas y los tipos de niveles que existen además de las ventajas y desventajas
que nos pueden brindar ya que hay muy pocas desventajas este modelo se hace el
mejor para utilizar en dispositivos y aplicaciones. Y así poder atender a múltiples
clientes.
MATERIA: BASE DE DATOS SABADO 12/SEPTIEMBRE/15 ING. RAFAEL ZAMUDIO REYES BLANCO NOGUEROLA VICTOR
10 11 de septiembre de 2015
BIBLIOGRAFIA
http://www.eumed.net/libros-gratis/2012b/1232/arquitectura-N-capas.html
http://instintobinario.com/arquitectura-en-tres-capas/
http://www.alegsa.com.ar/Respuesta/ventajas_y_desventajas_del_modelo_cliente
servidor.htm
http://nereida.deioc.ull.es/~cleon/doctorado/tic02/cs.html
http://www.ecured.cu/index.php/Cliente-Servidor
http://anagaldo.blogspot.mx/2011/05/modelo-cliente-servidor.html