1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

Acceso a Bases de Datos con Java
Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
EXCEPCIONES UNIDAD 5.
VISUAL. 1.Hacer nuevo proyecto 2.Crear un nuevo paquete 3.Hacer una clase visual 1.Dar el nombre 2.Seleccionar el estilo AWT 3.Seleccionar Frame.
Lenguaje de programación Java
Programación “Conducida por eventos” Event-driven programming
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Práctica II: Java RMI.
Programación en Java Instructor:.
JDBC Acceso a B.B.D.D. con Java.
Oracle y Java Continuación *
Entornos orientados a objetos
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA) VI.- ARCHIVOS Y BASES DE DATOS
UNIVERSIDAD LATINA (UNILA)
RMI (Remote Method Invocation)
Francisco Moreno Bases de Datos II Universidad Nacional
Oskar GRUPO Jon Ander Alex Lander Jorge Jose Luis Diego.
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Objetos Distribuidos – Aplicaciones RMI
Qué pasa cuando varios clientes tratan de conectarse al mismo teimpo a un servidor Una forma es ir atendiéndolos de a uno en un ciclo: como en el programa.
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Método en Java.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
M.I. María Luisa González Ramírez Servlets y JSP.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
TEMA 1. Diseño de interfaces gráficas
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO330.
0. Desarrollo de Programas: técnica del refinamiento.
Inicio Java: Algunas utilidades. Inicio Temporización En ingeniería nos encontramos con tareas que deben repetirse de forma periódica. Son tareas temporizadas.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
ARCHIVOS Y CONEXIÓN A BASE DE DATOS. FileInputStream: Clase que representa ficheros de texto accedidos en orden secuencial, byte a byte. FileWriter: Clase.
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Invocación de Métodos Remotos RMI: Remote Method Invocation
3.  Recursividad.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Tema 11: Excepciones Antonio J. Sierra.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
RMI Remote Method Invocation 2da. Clase del 19 de Junio
Manejo de Base de Datos en Java Ing. Esp. Ricardo Cujar.
Programación Orientada a Objetos II
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
JDBC Java Database Connectivity CC52N - Computación para el trabajo grupal Profesor: Nélson Baloian Por: Edgard Pineda.
Manuel I. Capel Tuñón Ramón A. Carrasco González
Java Data Base Connectivity
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Detalles Generales sobre Java
Bases de Datos y Conectores
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Crear Aplicación Cliente para Conectarse a una Base de Datos.
ENTERPRISE JAVA BEANS. ACCESO AL EJB EJB_HOME. Accesible mediante JNDI. Permite crear y destruir EJB. EJB_OBJECT Expone los métodos del negocio del EJB.
Java RMI. Entornos orientados a objetos  Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí.  Un programa.
Francisco Moreno Bases de Datos II Universidad Nacional
Conferencia 9. ODBC, OLE DB y JDBC.
Transcripción de la presentación:

1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso Grado de Ocupación (Junio 2004)  Caso de Uso Registrar (Septiembre 2004)  Caso de Uso Entradas Vendidas (Junio 2005)  Se pide:  Diagrama de clases con su separación física  Completar código  Explicar instrucciones

2 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Se pide:  Diagrama de clases con su separación física  Completar código  Explicar instrucciones

3 Ingeniería del Software

4 interface GestorVentasInterfaz + int calcular (String usuario) interface java.rmi.remote -- interfaz remota implementa extends class GestorVentas + int calcular (String usuario)... + main (){...//Naming.rebind } class java.rmi.server.UnicastRemoteObject -- clase remota extends class IU_TGU // Naming.lookup -- gv: GestorVentasInterfaz usa SERVIDOR DE DATOS Capa de Datos BD Capa de Presentación Capa de Lógica de Negocio SERVIDOR CLIENTE

5 Ingeniería del Software void jButton1_actionPerformed(ActionEvent e) { try { int total = gv.calcular(jTextField1.getText()); jTextField2.setText(new Integer(total).toString ()) } catch (Exception ex) {System.out.println("Error:"+ex.toString());} }

6 Ingeniería del Software public static void main(String[] args){ IU_TGU frame = new IU_TGU(); frame.setVisible(true); try { System.setSecurityManager(new RMISecurityManager()); gv =(GestorVentasInterfaz)Naming.lookup("rmi:// localhost:1099/GestionDeVentas"); } catch (Exception ex) {System.out.println("Error:"+ex.toString());} }

7 Ingeniería del Software public class GestorVentas extends UnicastRemoteObject implements GestorVentasInterfaz { Statement s; Connection c; …

8 Ingeniería del Software public int calcular(String nombre) throws RemoteException { try { int total=0; s=c.createStatement(); ResultSet r=s.executeQuery("select totalprice from orders where username='"+nombre+"'"); while(r.next()){ total=total+r.getInt("totalprice"); } return total; } catch(SQLException e){ System.out.println("Error:"+e.toString()); return -1; }

9 Ingeniería del Software 1.El cliente localiza el objeto remoto GestorVentas mediante el método lookup de la clase Naming. Para ello utiliza el nombre con el que ha identificado el objeto en el registro de nombres rmi: GestionDeVentas del servidor sipsi.ehu.es que atiende peticiones por el puerto El servidor utiliza el método forName de la clase Class para cargar el driver que actuará de puente entre las llamadas JDBC y el driver ODBC que accede a una BD. 3.El método setConnection nos crea una conexión con la base de datos BDPetShop alojada en el servidor sipsi.ehu.es 4.El servidor utiliza el método rebind de la clase Naming para registrar un objeto servidor en el registro de nombres rmi. Se nombra como GestionDeVentas a un objeto GestorVentas que esta situado en el servidor sipsi.ehu.es, siendo el puerto de escucha de peticiones el 1099.

10 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Mejor Usuario (Septiembre 2003)  Se pide:  Diagrama de clases con su separación física  Implementar método

11 Ingeniería del Software

12 interface InterfazGestorUsuario + String buscarUsuarioConMasGasto() interface java.rmi.remote -- Interfaz remota implementa extends class GestorUsuario + String buscarUsuarioConMasGasto() {...}... + main (){...//Naming.rebind } class java.rmi.server.UnicastRemoteObject -- clase remota extends class IU_PremiarUsuario // Naming.lookup -- g: InterfazGestorUsuario usa DB Capa de Presentación Capa de Negocio Capa de Datos

13 Ingeniería del Software public String buscarUsuarioConMasGasto () throws RemoteException { try { int max=0; int totalgasto; s=c.createStatement(); ResultSet r = s.executeQuery ("select totalgastomes from Usuarios”); while(r.next()){ totalgasto = r.getInt("totalgastomes"); if (totalgasto>max) { usuario = r.getString(“nombre”); max = totalgasto } return usuario }

14 Ingeniería del Software Examen Junio  2o Parcial: Implementación: Grado Ocupación  Se pide:  El diagrama de clases y la separación física  Implementar en Java el método GradoOcupación de la clase Película  Responder a las preguntas

15 Ingeniería del Software

16 interface InterfazPelicula + int gradoOcupacion(String ciclo) interface java.rmi.remote implements class Pelicula + int gradoOcupacion(String ciclo) {...}... + main (){... Naming.rebind } class java.rmi.server.UnicastRemoteObject extends class IU_GO + main () {... Naming.lookup } p: InterfazPelicula usa CLIENTE SERVIDOR SERVIDOR DE DATOS BD Capa de Presentación Capa de Lógica de Negocio Capa de Datos extends

17 public int gradoOcupacion (String ciclo, String fechaA) throws RemoteException { String SQL = "select vendidas, butacas from Pase inner join Pelicula inner join Sala where ciclo = ‘”+ciclo+”' and fecha > ‘”+fechaA+”‘ "; int totalEntradasVendidas= 0; int totalButacas= 0; try { Statement s = c.createStatement(); // connection c anteriormente definida ResultSet r = s.executeQuery(SQL); while (r.next()){ totalEntradasVendidas = totalEntradasVendidas + r.getInt(“vendidas"); totalButacas = totalButacas + r.getInt(“butacas"); } go = (totalEntradasVendidas/totalButacas)*100; } catch (Exception ex) { go = -1; } return go; }

18 1.¿En el método de qué clase se carga el puente JDBC-ODBC? En el constructor de la clase Pelicula. 1.¿Cómo es la instrucción que establece la conexión con la base de datos? Connection c = DriverManager.getConnection(“jdbc.odbc.BD”); 1.¿Qué instrucciones registran el servicio remoto y en el método de qué clase se encuentran? Pelicula p = new Pelicula(); Naming.rebind(“”//localhost:1099/Pelicula”, p); En el método main de la clase Pelicula. 1.¿Cuál es la instrucción que busca el objeto remoto y en qué método de qué clase se encuentra? p = (Pelicula)Naming.lookup("rmi://super.zinemaldia.es:1099/Pelicula"); En el método main de la clase IU_GO.