La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.

Presentaciones similares


Presentación del tema: "Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores."— Transcripción de la presentación:

1 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores Java Database Connectivity JDBC  JDBC es una API, formada por conjunto de clases e interfaces en el lenguaje de programación Java, para ejecutar sentencias SQL.  Ofrece un estándar de conexión a cualquier base de datos disponible en el mercado.  Permite obtener los datos en forma fácil y cómoda en ambientes cliente-servidor a través de Internet/Intranet.

2 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores ¿Qué hace JDBC?  Establece una conexión a una base de datos.  Envía sentencias SQL.  Procesa los resultados de estas sentencias.

3 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 3 Arquitectura JDBC  Arquitectura normal  Puente JDBC-ODBC Aplicaciones Java JDBC API Adm. de controladores JDBC Controlador JDBC DB Controlador JDBC DB Aplicaciones Java JDBC API Adm. de controladores JDBC C. ODBC DB C. ODBC DB Adm. de controladoresODBC Puente JDBC/ODBC

4 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores Primer ejemplo básico Connection con = DriverManager.getConnection ( "jdbc:odbc:nombre", "login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); }  JDBC usa una URL para especificar la base de datos.

5 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 5...Primer ejemplo básico  Ejemplos de URL:  jdbc:mysql://myserver:4444/db1  jdbc:oracle://oraserver  jdbc:odbc:mydatabase

6 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 6 JDBC vs. ODBC  Se puede usar ODBC desde Java, pero el puente JDBC-ODBC ayuda bastante.  ODBC tiene una interfaz tipo C rompiendo el esquema de seguridad, robustez e implementación de Java.  ODBC mezcla funciones simple y complejas.  Los controladores de ODBC deben ser instalados en cada cliente.

7 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 7...JDBC vs. ODBC  JDBC es una interfaz natural en Java.

8 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 8 Modelos de acceso a BD  De 2 capas  La aplicación “habla” directamente con la base de datos.  Controlador JDBC se comunica con el sistema específico que maneja la base de datos.  La base de datos puede estar en otra máquina, con lo que el cliente se comunica por red. Esta es la configuración llamada cliente/servidor. Aplicación Java JDBC DBMS Cliente Servidor BD Protocolo BD

9 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 9 Modelos de acceso a BD  De 3 capas  Los comandos son enviados a la capa intermedia de servicios, la cual envía sentencias SQL a la base de datos. Ésta las procesa y envía los resultados de vuelta a la capa intermedia, para luego ser enviados al cliente.  Permite un control de acceso y de actualización.  Provee ventajas de performance. Aplicación Java JDBC DBMS Applet en Java o Navegador HTML Cliente (GUI) Llamadas HTTP, RMI,CORBA Servidor BD Servidor Protocolo BD

10 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 10 Categorías de los controladores JDBC  Puente JDBC-ODBC.  Parte API Nativa-Parte Java. Se convierte las llamadas JDBC al sistema de la Base de datos.  JDBC-Red. Es sólo Java. Las llamadas JDBC son convertidas a un protocolo de red independiente del sistema de la base de datos. Este protocolo es convertido en un servidor  Protocolo Nativo. Es sólo Java. Se usa un protocolo de red con la BD.

11 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 11 Conexión  Un objeto “Connection” representa una conexión a una base de datos.  Una sesión incluye las sentencias SQL que son ejecutadas y los resultados de éstas.  Establecer la conexión: “DriverManager.getConnection”  La clase “DriverManager” intenta ubicar el controlador que pueda conectarse a la base de datos representada en la URL.

12 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 12...Conexión  Sintáxis de una URL JDBC:  jdbc: :  es el nombre del controlador o del mecanismo de conexión. Ejemplo: odbc.  es la identificación de la base de datos. El formato varia según el controlador especificado. Ejemplo: //servidor:puerto/etc

13 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 13 Enviando sentencias SQL  JDBC permite que se escriba cualquier tipo de sentencia SQL. Aunque ésta fuera dependiente de la base de datos sólo se correría el riesgo de incompatibilidad al cambiar de base de datos.  Llamadas a procedimientos almacenados  Formatos de fecha

14 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 14...Enviando sentencias SQL  JDBC provee 3 clases:  “Statement”: Este objeto es usado para enviar sentecias SQL simples. Es creado por el método “createStatement”.  “PreparedStatement”: Este objeto es usado para sentencias que requieren uno o más parámetros. La sentencia es precompilada y guardada para uso futuro.  “CallableStatement”: Es usado para ejecutar procedimientos almacenados.

15 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 15 Transacciones  Una transacción consiste en una o más sentencias que han sido ejecutadas y luego confirmadas (commit) o deshechas (rolled back)  Auto-commit está predeterminado.  Si Auto-commit está desactivado se debe usar los métodos “commit” o “rollback” explícitamente.

16 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 16 Procesando respuestas  Las respuestas a las sentencias SQL se reciben en el objeto “ResultSet” que mantiene las filas.  Este objeto provee el acceso a los datos de esas filas a través de un conjunto de métodos “get”, los cuales, a su vez, permiten el acceso a cada columna de estas filas.

17 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 17 Cargando la clase del controlador JDBC  Ejemplo: Class.forName(”empresa.db.Driver");  Esto crea una instancia del controlador y llama al método “DriverManager.registerDriver” registrando este controlador en la lista de controladores disponibles para conexiones.

18 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores Ejemplo de sentencia Connection con = DriverManager.getConnection ( "jdbc:odbc:nombre", "login", "password"); PreparedStatement pstmt = con.prepareStatement( “UPDATE tabla1 SET m=? WHERE x=?”); pstmt.setString(1, "Hola"); for (int i = 0; i < 10; i++) { pstmt.setInt(2, i); int rowCount = pstmt.executeUpdate(); }

19 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores Primer ejemplo básico Connection con = DriverManager.getConnection ( "jdbc:odbc:nombre", "login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); }

20 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 20 El funcionamiento del Web está basado en el paradigma cliente/servidor Un applet es un programa escrito en Java que anima una porción de la página Web.Al igual que el resto de los medio audio/visuales, el applet está almacenado en el servidor y se transmite al cliente por medio de Internet El usuario puede interactuar con un applet, gracias a que se trata de un programa Un applet se ejecuta completamente en el cliente. Velocidad de la interacción no depende de la velocidad de la red. Si es necesario, el applet también se puede comunicar con el servidor. Para que un programa de navegación en el Web pueda ejecutar un applet es necesario que posea un intérprete de Java. Applets

21 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 21 Portabilidad de Applets Sueño: “ejecutar un programa de cualquier parte del mundo” Problema : portabilidad. Existe una amplia gama de plataformas con procesadores y sistemas operativos incompatibles entre sí. Java resuelve el problema de la incompatibilidad de los procesadores :

22 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 22 El problema de la seguridad: enfoque paranoico Riesgo que corre un usuario cuando recupera programas por medio de Internet: > DIR FILE NOT FOUND Java resuelve el problema de la seguridad de los usuarios haciendo que un applet no tenga acceso a:  Los archivos del cliente.  Los dispositivos del cliente (por ejemplo la impresora).  La red. Colocando un monitor entre el applet y los recursos que posee el computador del cliente

23 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 23 Seguridad del monitor Java fue diseñado de modo que un applet sólo puede consultar y modificar la memoria que pidió legalmente para sus objetos. Esto se logra porque Java es semánticamente muy distinto a C:  Java chequea los índices en arreglos.  Java no posee aritmética de punteros.  Java realiza chequeo estático y dinámico de tipos.

24 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 24 Seguridad del código intermedio ¿Puede un hacker fabricar un applet, escribiendo directamente su código intermedio sin pasar por el fuente escrito en Java? ¿Qué tan seguro es el código intermedio? Validación Verificar que en el código intermedio no se realicen operaciones peligrosas. Demuestra que existe un programa en Java cuya compilación es el código intermedio que se recuperó por la red. Si encuentra secuencias de instrucciones que no pueden ser generadas por el compilador de Java entonces el applet se rechaza.

25 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 25 Seguridad: Enfoque de confianza en el proveedor  El proveedor del applet firma digitalmente su contenido.  El browser verifica que la firma corresponde a un proveedor de confianza.  La firma permite asegurar que el applet no fue alterado en el camino.  El browser ejecuta el applet sin restricciones.

26 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 26 ¿Que son las firmas digitales? Una firma digital es un bloque de caracteres que acompaña a un documento, acreditando quién es su autor ("autenticación") y que no ha existido ninguna manipulación posterior de los datos ("integridad"). Para firmar un documento digital, su autor utiliza su propia clave secreta, a la que sólo él tiene acceso. Cualquier persona puede verificar la validez de una firma si dispone de la clave pública del autor.

27 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 27 ¿Cómo se realiza una firma digital? El software del firmante aplica (de forma transparente al usuario) un algoritmo hash sobre el texto a firmar, obteniendo un extracto de longitud fija, y absolutamente específico para ese mensaje (cualquier modificación lo afecta). Este extracto, cuya longitud oscila entre 128 y 160 bits, se somete a continuación a cifrado mediante la clave secreta del autor. El extracto cifrado constituye la firma y se añade al final del mensaje (o en un fichero adherido a él).

28 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 28 ¿Cómo se comprueba la validez de una firma digital? Se necesita disponer de la clave pública del firmante para poder verificar su firma. El sw del receptor descifra el extracto cifrado que constituye la firma digital (de forma transparente al usuario), utilizando para ello la clave pública del remitente. Como resultado obtiene un bloque de caracteres. A continuación, aplica algoritmo hash que corresponde al texto del mensaje. Si el resultado coincide exactamente con el bloque de caracteres obtenido en la operación anterior, la firma se considera válida. Si existe la menor diferencia, la firma se considera no válida.

29 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 29

30 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 30 ¿Cuál es el punto débil? la firma digital nos permite comprobar la relación entre un mensaje y la clave utilizada pero... ¿Esa clave corresponde realmente a la persona o entidad que dice poseerla? Autoridad de Certificación Actuando como una especie de notario que extiende un certificado de claves (la ligazón entre una determinada clave y su propietario real )

31 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 31

32 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores 32 Conclusiones Un applet en Java:  Es portable: se distribuye en un formato independiente de la máquina.  Es seguro:  corre aislado de los recursos del navegante, o alternativamente  se puede comprobar su origen.


Descargar ppt "Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores."

Presentaciones similares


Anuncios Google