Unidad 2 Prog BD

13
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
  • date post

    09-Dec-2015
  • Category

    Documents

  • view

    248
  • download

    7

description

Unidad 2 Prog BD

Transcript of Unidad 2 Prog BD

Page 1: 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

Page 2: Unidad 2 Prog BD

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

Page 3: Unidad 2 Prog BD

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

Page 4: Unidad 2 Prog BD

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.

Page 5: Unidad 2 Prog BD

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.

Page 6: Unidad 2 Prog BD

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.

Page 7: Unidad 2 Prog BD

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.

Page 8: Unidad 2 Prog BD

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();}}

Page 9: Unidad 2 Prog BD

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();

}

}

Page 10: Unidad 2 Prog BD

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.

Page 11: Unidad 2 Prog BD

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.

Page 12: Unidad 2 Prog BD

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.

Page 13: Unidad 2 Prog BD

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