36
scis.regis.edu [email protected] CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Scis.regis.edu ● [email protected] CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Embed Size (px)

Citation preview

Page 1: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

scis.regis.edu ● [email protected]

CS-434: Programación Orientada a Objetos usando

JavaSemana 7

Dr. Jesús BorregoAdjunct FacultyRegis University

1

Page 2: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Temas

•Bases de Datos y JDBC•Redes y OSI•Programación con Sockets

2

Page 3: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Términos Clave

•Enlace de Datos – Enlace de datos•Listener - Oyente

3

Page 4: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

JDBC

•Java Database Connectivity – un API que permite acceso a bases de datos relacionales, hojas de cálculo y archivos communes

•JDBC no depende de una base de datos específica▫Puede tener acceso a cualquier base de

datos relacional

4

Page 5: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

JDBC

5

Page 6: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

6

Page 7: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

JDBC API

•Se ubica en dos paquetes:▫java.sql y javax.sql

•Para programar con JDBC:▫Cargar JDBC▫Connectar a la base de datos▫Preparar instrucciones en SQL y procesar

los resultados▫Desconectar la base de datos

7

Page 8: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Conectarse a la base de datos

8

String connString = "jdbc:mysql://localhost/acme?user=root&password=admin"; Connection conn = DriverManager.getConnection(connString);

Statement stmt = conn.createStatement(); PreparedStatement pstmt = conn.prepareStatement(…); CallableStatement cstmt = conn.prepareCall(…);

ResultSet rs = stmt.executeQuery(“SELECT * FROM book”);

Stmt.executeUpdate(“INSERT into book VALUES (…)”);

Page 9: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Actividad 1

•Ejemplo de JDBC en NetBeans/Java: http://www.youtube.com/watch?v=xk_6_ntC49o (14:35 min.)

9

Page 10: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Modelo OSI

10

Física

Enlace de Datos

Red

Transporte

Sesión

Presentación

Aplicación

Page 11: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Capas OSI

11

•Aplicación – acceso al ambiente distribuído y OSI

•Presentación – Oculta los detalles de implementación de los datos

•Sesión – controla la comunicación entre las aplications, configure, conecta y termina las conexiones

Source: Stallings, W. (2007). Datos and computer communications (8th ed.). Upper Saddle River, NJ: Pearson Prentice Hall.

Page 12: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Capas OSI - II

12

•Transporte – control de comunicaciones fiables, la recuperación y el flujo de extremo a extremo

•Red – aisla las capas superiores de los detalles de conectividad

•Enlace de datos – controla transmisión de bloque (error, flujo, syncronización)

•Física– transmite datos sin estructura

Source: Stallings, W. (2007). Datos and computer communications (8th ed.). Upper Saddle River, NJ: Pearson Prentice Hall.

Page 13: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Server

Ejemplo de Flujo

13

Aplicación

Presentación

Sesión

Transporte

Red

Enlace de Datos

Física

Datos

Datos

Datos

Datos

Datos

Datos

Datos

Server

Aplicación

Presentación

Sesión

Transporte

Red

Enlace de Datos

Física Datos

Datos

Datos

Datos

Datos

Datos

Datos

Page 14: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Protocolo de Internet

14

Transporte

Física

Control del Enlace de

Datos

Red/Internet

Transporte

Aplicación

Page 15: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

OSI vs. IP

15

Física

Enlace de Datos

Red

Transporte

Sesión

Presentación

Aplicación

Física

Control del Enlace de

Datos

Red/Internet

Transporte

Aplicación

Page 16: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Protocolos del Internet

16

Page 17: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

IPv4

17

Page 18: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Protocolos del Internet

18

BGP - Border Gateway ProtocolFTP - File Transfer ProtocolHTTP - Hypertext Transfer ProtocolICMP - Internet Control Message

ProtocolIGMP - Internet Group Management

ProtocolIP - Internet ProtocolMIME - Multipurpose Internet Mail

ExtensionSource: Stallings, W. (2007). Datos and computer communications (8th ed.). Upper Saddle River, NJ: Pearson Prentice Hall.

Page 19: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Protocolos del Internet - II

19

OSPF – Open Shortest Path FirstRSVP – Resource ReSerVation

ProtocolSMTP – Simple Mail Transfer

ProtocolSNMP – Simple Red Management

ProtocolTCP – Transmission Control

ProtocolUDP – User Datosgram ProtocolSource: Stallings, W. (2007). Datos and computer communications (8th ed.). Upper Saddle River, NJ: Pearson Prentice Hall.

Page 20: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

IPv6

20

Page 21: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Sockets

•Un socket es una abstracción que representa el punto final de una tubería de comunicación que conecta dos aplicaciones de software

•Durante dos aplicaciones de intercambio de información, cada uno de ellos necesita una toma de corriente que esté conectado a la misma tubería de comunicación

21

Page 22: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Canal de Comunicación

•El "canal de comunicación" representa las cuatro capas inferiores del modelo OSI, es decir, el transporte, red, enlace de datos, y las capas físicas

•De este modo, la abstracción Socket oculta todos los detalles de las capas inferiores, y por lo tanto, le permite centrarse en los conceptos de alto nivel para establecer una conexión y los datos en movimiento.

22

Page 23: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Comunicación

•Cada conexión de socket requiere la cooperación de dos aplicaciones participantes, uno inicialmente actúa como servidor, y el otro actuando inicialmente como cliente

•El servidor es una aplicación que solicitudes de conexión entrantes que se originan en las aplicaciones del cliente

•El cliente es una aplicación que inicia una conexión a un servidor que espera recibir solicitudes

23

Page 24: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Comunicación - II

•El servidor escucha en un puerto conocido (por ejemplo, 8000)

•El cliente emite una solicitud de conexión a ese puerto usando un socket

•El servidor responde a la solicitud y crea su propio socket

•La comunicación entre las dos aplicaciones procede mediante sockets

24

Page 25: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

En Java (Clase Server Socket)

•Utilizada por el servidor para escuchar las solicitudes de conexión entrantes

•A medida que se recibe cada petición, el ServerSocket crea un nuevo objeto Socket para controlar la solicitud

•Cada solicitud de conexión entrantes resulta en una instancia nueva del Socket en el servidor

25

Page 26: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

26

Page 27: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Clase Socket

•Se usa por el cliente y servidor para comuncarse entre ambos

•Los clients usan un socket para conectar al servidor y, después de establecer la conexión, para mandar y recibir información

•  Los servidores crean un socket por cada solicitud de conexión recibida de un cliente

27

Page 28: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Clase Socket

28

Page 29: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Código del Servidor

1. Crear un oyente (ServerSocket) en un puerto2. Escucha solicitudes de conexión con

ServerSocket.accept (), que devuelve un Socket cuando se recibe una solicitud de conexión desde una aplicación cliente.

3. Por cada solicitud de conexión: a. Iniciar entrada y salida de datosb. Leer y escribir la información correspondidac. Cerrar la conexión al terminar

29

Page 30: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

30

Page 31: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Código del Cliente1. Creear un Socket, especificando la dirección

IP y el puerto del servidor de aplicaciones.2. La dirección IP y el puerto se pueden

especificar con una instancia de InetAddress. 3. Inicializer una corriente de flujo de entrada y

salida para los datos de lectura / escritura desde / hacia el cliente

4. Recibir y mandar la información correspondida

5. Al terminar la comunicación con el servidor, cierre el socket.

31

Page 32: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

32

Page 33: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Actividad 2

•Ejemplo de Sockets en NetBeans/Java: http://www.youtube.com/watch?v=WfKU-Ui-CJQ (19:05 min.)

33

Page 34: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Tarea

•Completar el proyecto final•Entregar antes de la semana 8 en

WorldClass•Una persona entrega el proyecto con los

nombres de los miembros del equipo•Incluír el proyecto de NetBeans y un

documento que capture pantallas donde revisan el programa

•Incluír todo el material en un archivo Zip

34

Page 35: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

Exámen Final

•Material cubierto desde la semana 4•4 preguntas•1 programa•Entregar a WorldClass antes de media

noche el martes 24 de junio

35

Page 36: Scis.regis.edu ● scis@regis.edu CS-434: Programación Orientada a Objetos usando Java Semana 7 Dr. Jesús Borrego Adjunct Faculty Regis University 1

¿Preguntas?

•Email to [email protected]

36