Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porRobertina De Luna Modificado hace 9 años
1
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
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
3 Ingeniería del Software
4
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
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
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
7 Ingeniería del Software public class GestorVentas extends UnicastRemoteObject implements GestorVentasInterfaz { Statement s; Connection c; …
8
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
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 1099. 2.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
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
11 Ingeniería del Software
12
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
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
14 Ingeniería del Software Examen Junio 2003-2004 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
15 Ingeniería del Software
16
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
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
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.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.