From 639d6a3009afe2a6e1aba97ec5d1c58b26c46e5c Mon Sep 17 00:00:00 2001 From: danigm Date: Thu, 26 Jun 2008 01:01:27 +0200 Subject: [PATCH] =?utf8?q?La=20documentaci=C3=B3n=20de=20la=20practica?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- pcd.pdf | Bin 0 -> 107532 bytes pcd.tex | 1012 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ server.ior | 2 +- 3 files changed, 1013 insertions(+), 1 deletion(-) create mode 100644 pcd.pdf create mode 100644 pcd.tex diff --git a/pcd.pdf b/pcd.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a06b58c921a2c08d71453719ba84d43ca5a4de24 GIT binary patch literal 107532 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ⅇ5D#i2vXzP9`=M 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 literal 0 HcmV?d00001 diff --git a/pcd.tex b/pcd.tex new file mode 100644 index 0000000..c5247b2 --- /dev/null +++ b/pcd.tex @@ -0,0 +1,1012 @@ +\documentclass{article} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[spanish]{babel} +\usepackage{times} + +\usepackage{color} +\definecolor{gray97}{gray}{.97} +\definecolor{gray75}{gray}{.75} +\definecolor{gray45}{gray}{.45} + +\usepackage{listings} +\lstset{ frame=Ltb, + framerule=0pt, + aboveskip=0.5cm, + framextopmargin=3pt, + framexbottommargin=3pt, + framexleftmargin=0.4cm, + framesep=0pt, + rulesep=.4pt, + backgroundcolor=\color{gray97}, + rulesepcolor=\color{black}, + % + stringstyle=\ttfamily, + showstringspaces = false, + basicstyle=\small\ttfamily, + commentstyle=\color{gray45}, + keywordstyle=\bfseries, + % + numbers=left, + numbersep=15pt, + numberstyle=\tiny, + numberfirstline = false, + breaklines=true, + } + +% minimizar fragmentado de listados +\lstnewenvironment{listing}[1][] + {\lstset{#1}\pagebreak[0]}{\pagebreak[0]} + +\lstdefinestyle{consola} + {basicstyle=\scriptsize\bf\ttfamily, + backgroundcolor=\color{gray75}, + } + +\lstdefinestyle{java} + {language=java, } + +\lstdefinestyle{idl} + {language=IDL, } + +\lstdefinestyle{Python} + {language=Python, } + +\title{Práctica PCD 07/08 - Subastas} +\author{Daniel García Moreno } +\date{\today} + +\begin{document} +\maketitle + +\tableofcontents + +\section{Cómo compilar y ejecutar} + +\subsection{Compilar} + Para compilar hay que ejecutar: + \texttt{javac src/subastas/*.java -d bin/} + desde el directorio PCD. Los .class se guardarán en el directorio + bin. + +\subsection{Ejecutar} + + El cliente y servidor se comunican a través de un fichero .ior, + así que el servidor tiene que tener permiso de escritura en el directorio + desde el cual se ejecute y el cliente tiene que ejecutarse desde + el mismo directorio despues de haber ejecutado el servidor. + + \begin{itemize} + \item \textbf{Servidor:} + \texttt{java -classpath PCD/bin subastas.Servidor} + \item \textbf{Cliente:} + \texttt{java -classpath PCD/bin subastas.Cliente} + \end{itemize} + + Para conocer los comandos disponibles en el cliente basta con + escribir el comando 'help' que mostrará una lista con todos los + posibles comandos. + + Hay que tener en cuenta que para poder hacer alguna operación con + alguna de las subastas creadas hay que hacer una busqueda para que + se inicialice el vector de subastas, y el id será el indice en + esta busqueda. + +\section{Explicación del diseño} + +\subsection{Interfaces IDL} + Las tres interfaces que hay que implementar se han implementado + dentro del modulo subastas. + + \subsubsection{clienteSubastas} + + La interfaz clienteSubastas está implementada según la + especificación del trabajo y además contiene una operación + nuevoValor que sirve para resolver el primer problema especificado + en el documento. + + \subsubsection{coordinadorSubasta} + + Para la interfaz gestorSubasta se ha declarado un tipo de dato + sequence para la lista de clientes. + + En esta interfaz se definen los atributos y las operaciones + especificadas en el documento. Además se define la operación + cerrarSubasta que será llamado para cerrar una subasta y así + evitar el segundo problema. + + \subsubsection{gestorSubastas} + + Para la interfaz gestorSubasta se ha definido un tipo sequence + para la lista de subastas que hay que devolver en la operación + localizarSubasta. + + Por lo demás se ha implementado según lo especificado en el + documento. + +\subsection{Sirvientes} + + Se han implementado los sirvientes: + + \subsubsection{clienteSubastasImpl} + Este sirviente implementa la interfaz clienteSubastas por + herencia. Se han implementado las operaciones según la + especificación. Cuando se actualiza el valor de una suabasta el + cliente será informado por el coordinador subasta e imprimirá el + nuevo valor. + + \subsubsection{coordinadorSubastaImpl} + Al igual que el sirviente anterior este está implementado por + herencia. Se han definido las operaciones según lo especificado en + el documento. + + Se han definido los métodos \texttt{abrirSubasta}, + \texttt{ganador}, \texttt{pujar}, \texttt{ultimaPuja} y + \texttt{cerrarSubasta} como synchronized puesto que serán llamados + desde diferentes clientes. Para la sincronización entre clientes + se utilizan los métodos proporcionados por java y vistos en clase, + wait y notifyAll. Cuando se cambia el estado se ejecuta notifyAll. + + Las esperas de los clientes se realizan mediante wait y el + atributo estado. + + \subsubsection{gestorSubastasImpl} + Como los dos sirvientes anteriores este también se ha implementado + por herencia. + + Este sirviente es un objeto fábrica. Crea coordinadores de + subastas. + + Para evitar el segundo problema especificado en el documento se ha + utilizado la clase SubastaKiller que implementa la interfaz + Runnable para ser lanzado en un hilo. Este hilo duerme durante el + tiempo especificado y después cierra la subasta especificada + llamando al método cerrarSubasta del coordinadorSubasta. + + El resto de operaciones está implementado según la especificación + del documento. + +\subsection{SubastaKiller} + Para solventar el problema de que una subasta no acabe nunca por + culpa de un cliente se ha implementado esta clase que implementa + la interfaz Runnable. Este hilo duerme durante un tiempo + especificado y después cierra la subasta. + +\subsection{Servidor} + El servidor crea un gestorSubastasImpl y crea un fichero + \texttt{server.ior} donde escribe el ior correspondiente a este + objeto. Y se lanza el servidor. + +\subsection{Cliente unificado} + Esta es la parte con más código del trabajo aunque no por ello la + más compleja. + + Se han definido los suiguientes comandos: + + \begin{verbatim} + /** + * COMANDOS DISPONIBLES + * + * GESTOR SUBASTAS + * --------------- + * salir -> sale del bucle + * crear valor tiempo desc -> crea una subasta + * buscar desc -> busca una subasta y muestra todas las coincidencias + * borrar id -> borra una subasta si esta cerrada + * + * COORDINADOR SUBASTA + * ------------------- + * abrir id -> abre la subasta por id + * estado id -> devuelve el estado de una subasta + * valor id -> devuelve el valor actual de una puja + * ganador_prov id -> dice el identificador del cliente que va ganando la puja + * ganador id -> muestra el ganador, si la puja no esta cerrada aun, bloquea al cliente + * clientes id -> muestra todos los identificadores de los clientes de la subasta + * inscribir id cliente_id -> inscribe un cliente en una subasta + * pujar id cliente_id valor + * ultima id cliente_id + * + * CLIENTE SUBASTAS + * ---------------- + * crearcliente identificacion + * cldisp -> muestra los clientes disponibles + */ + \end{verbatim} + + Cuando se ejecuta un cliente muestra una línea de comandos que + permite llamar a cualquiera de estos comandos. No se han capturado + los errores por lo que si se llama a alguno con una sintaxis + inadecuada el programa dará errores. + + Este cliente unificado permite tanto crear y gestionar subastas + como crear clientes y trabajar con más de un cliente desde un + mismo cliente unificado. + +\section{Código fuente} + +\subsection{Definción de interfaces en IDL} +\begin{lstlisting}[style=java] + +module subastas{ + + + interface clienteSubastas{ + readonly attribute string identificacion; + void finSubasta(); + void nuevoValor(in float valor); + }; + + typedef sequence lista_clientes; + interface coordinadorSubasta{ + /** + * coordinadorSubasta: interfaz de objetos que gestionan el + * desarrollo de la subasta de cada bien subastado por la empresa. + + * La subasta pasara por tres estados: + * Inscripcion + * Abierta + * Cerrada + * + */ + + readonly attribute clienteSubastas ganador_provisional; + readonly attribute lista_clientes clientes; + + readonly attribute float valor; + readonly attribute string descripcion; + // Inscripcion -> Abierta -> Cerrada + readonly attribute string estado; + + void inscribirCliente(in clienteSubastas cl); + void abrirSubasta(); + boolean pujar(in float cantidad, in clienteSubastas cl); + void ultimaPuja(in clienteSubastas cl); + clienteSubastas ganador(); + void cerrarSubasta(); + }; + + typedef sequence lista_subastas; + interface gestorSubastas{ + coordinadorSubasta crearSubasta(in float valor, in string desc, in long tiempo); + void destruirSubasta(in coordinadorSubasta cs); + lista_subastas localizarSubasta(in string palabra); + }; + +}; + +\end{lstlisting} + +\subsection{clienteSubastasImpl.java} + +\begin{lstlisting}[style=java] + +package subastas; + +/** + * @author danigm + * + */ +public class clienteSubastasImpl extends clienteSubastasPOA { + private String identificacion; + private boolean fin=false; + private float valor_subasta=0; + public clienteSubastasImpl(String id) { + super(); + identificacion = id; + } + + public void finSubasta() { + fin = true; + } + + public String identificacion() { + return identificacion; + } + + public void nuevoValor(float valor) { + valor_subasta = valor; + System.out.println("NUEVO VALOR " + valor); + } + +} +\end{lstlisting} + + +\subsection{coordinadorSubastaImpl.java} + +\begin{lstlisting}[style=java] + +package subastas; +import java.util.Vector; + +/** + * @author danigm + * + */ +public class coordinadorSubastaImpl extends coordinadorSubastaPOA { + private clienteSubastas ganador_provisional; + private Vector clientes; + private float valor; + private String descripcion; + // Inscripcion -> Abierta -> Cerrada + private String estado; + + public coordinadorSubastaImpl(float v_inicial, String desc) { + super(); + estado = "Inscripcion"; + ganador_provisional=null; + clientes = new Vector(); + valor = v_inicial; + descripcion = desc; + } + + synchronized public void abrirSubasta() { + if(estado.equals("Inscripcion")){ + estado = "Abierta"; + notifyAll(); + } + } + + public clienteSubastas[] clientes() { + clienteSubastas[] cs = new clienteSubastas[clientes.size()]; + for (int i=0; i valor){ + valor = cantidad; + ganador_provisional = cl; + for (int i=0; i subastas; + + private POA poa; + public gestorSubastasImpl(POA arg_poa) { + super(); + subastas = new Vector(); + poa = arg_poa; + } + + public coordinadorSubasta crearSubasta(float valor, String desc, int tiempo) { + coordinadorSubasta c = null; + coordinadorSubastaImpl coord = new coordinadorSubastaImpl(valor, desc); + org.omg.CORBA.Object obj; + try { + obj = poa.servant_to_reference(coord); + c = coordinadorSubastaHelper.narrow(obj); + subastas.add(c); + } catch (ServantNotActive e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (WrongPolicy e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + SubastaKiller sk = new SubastaKiller(c, tiempo); + + return c; + } + + public void destruirSubasta(coordinadorSubasta cs) { + if (cs.estado().equals("Cerrada")){ + subastas.remove(cs); + } + } + + public coordinadorSubasta[] localizarSubasta(String palabra) { + coordinadorSubasta[] encontradas = new coordinadorSubasta[subastas.size()]; + int j=0; + for(int i=0; i sale del bucle + * crear valor tiempo desc -> crea una subasta + * buscar desc -> busca una subasta y muestra todas las coincidencias + * borrar id -> borra una subasta si esta cerrada + * + * COORDINADOR SUBASTA + * ------------------- + * abrir id -> abre la subasta por id + * estado id -> devuelve el estado de una subasta + * valor id -> devuelve el valor actual de una puja + * ganador_prov id -> dice el identificador del cliente que va ganando la puja + * ganador id -> muestra el ganador, si la puja no esta cerrada aun, bloquea al cliente + * clientes id -> muestra todos los identificadores de los clientes de la subasta + * inscribir id cliente_id -> inscribe un cliente en una subasta + * pujar id cliente_id valor + * ultima id cliente_id + * + * CLIENTE SUBASTAS + * ---------------- + * crearcliente identificacion + * cldisp -> muestra los clientes disponibles + */ + + coordinadorSubasta[] subastas = null; + clienteSubastas[] clientes = new clienteSubastas[100]; + int n_clientes = 0; + + boolean salir = false; + String comando = ""; + System.out.println("== INICIO =="); + while(!salir){ + System.out.print(">>"); + try{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + comando = br.readLine(); + }catch(Exception e){ e.printStackTrace();} + String[] partesDelComando = comando.split(" "); + if(comando.equals("salir")){ + salir = true; + System.out.println("Adios ;)"); + break; + } + else if(comando.equals("help")){ + System.out.println( + "* COMANDOS DISPONIBLES\r\n" + + "*\r\n " + + "* GESTOR SUBASTAS\r\n"+ + "* --------------\r\n"+ + "* salir -> sale del bucle\r\n"+ + "* crear valor tiempo desc -> crea una subasta\r\n"+ + "* buscar desc -> busca una subasta y muestra todas las coincidencias\r\n"+ + "* borrar id -> borra una subasta si esta cerrada\r\n"+ + "* \r\n"+ + "* COORDINADOR SUBASTA\r\n"+ + "* -------------------\r\n"+ + "* abrir id -> abre la subasta por id\r\n"+ + "* estado id -> devuelve el estado de una subasta\r\n"+ + "* valor id -> devuelve el valor actual de una puja\r\n"+ + "* ganador_prov id -> dice el identificador del cliente que va ganando la puja\r\n"+ + "* ganador id -> muestra el ganador, si la puja no esta cerrada aun, bloquea al cliente\r\n"+ + "* clientes id -> muestra todos los identificadores de los clientes de la subasta\r\n"+ + "* inscribir id cliente_id -> inscribe un cliente en una subasta\r\n"+ + "* pujar id cliente_id valor\r\n"+ + "* ultima id cliente_id\r\n"+ + "* \r\n"+ + "* CLIENTE SUBASTAS\r\n"+ + "* ----------------\r\n"+ + "* crearcliente identificacion\r\n"+ + "* cldisp -> muestra los clientes disponibles\r\n"); + } + + // Opciones de gestorSubastas + else if(partesDelComando[0].equals("crear")){ + String desc = ""; + float valor = 0; + int time = 0; + valor = Float.valueOf(partesDelComando[1]); + time = Integer.valueOf(partesDelComando[2]); + for(int i=3; i " + subastas[i].estado()); + } + else if(partesDelComando[0].equals("borrar")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + gs.destruirSubasta(subastas[id]); + System.out.println("Subasta borrada"); + } + + // Opciones de coordinadorSubasta + else if(partesDelComando[0].equals("abrir")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + subastas[id].abrirSubasta(); + System.out.println(subastas[id].estado()); + } + else if(partesDelComando[0].equals("estado")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + System.out.println(subastas[id].estado()); + } + else if(partesDelComando[0].equals("valor")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + System.out.println(subastas[id].valor()); + } + else if(partesDelComando[0].equals("ganador_prov")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + System.out.println(subastas[id].ganador_provisional().identificacion()); + } + else if(partesDelComando[0].equals("ganador")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + System.out.println(subastas[id].ganador().identificacion()); + } + else if(partesDelComando[0].equals("clientes")){ + int id = 0; + id = Integer.valueOf(partesDelComando[1]); + clienteSubastas[] clientes2 = subastas[id].clientes(); + for (int i=0; i< clientes2.length; i++){ + System.out.println(i+": "+clientes2[i].identificacion()); + } + } + else if(partesDelComando[0].equals("inscribir")){ + int id = 0; + String cliente_id=""; + clienteSubastas cl=null; + id = Integer.valueOf(partesDelComando[1]); + cliente_id = partesDelComando[2]; + cl = buscar(cliente_id, clientes); + subastas[id].inscribirCliente(cl); + System.out.println("Cliente inscrito"); + } + + else if(partesDelComando[0].equals("pujar")){ + int id = 0; + float valor = 0; + String cliente_id=""; + clienteSubastas cl=null; + id = Integer.valueOf(partesDelComando[1]); + cliente_id = partesDelComando[2]; + valor = Float.valueOf(partesDelComando[3]); + cl = buscar(cliente_id, clientes); + if(subastas[id].pujar(valor, cl)) + System.out.println("Vas ganando"); + else + System.out.println("No es suficiente"); + } + else if(partesDelComando[0].equals("ultima")){ + int id = 0; + String cliente_id=""; + clienteSubastas cl=null; + id = Integer.valueOf(partesDelComando[1]); + cliente_id = partesDelComando[2]; + cl = buscar(cliente_id, clientes); + subastas[id].ultimaPuja(cl); + System.out.println("Has dejado de pujar"); + System.out.println(subastas[id].estado()); + } + + // creacion de clientes + else if(partesDelComando[0].equals("crearcliente")){ + String id=""; + clienteSubastas cl=null; + id = partesDelComando[1]; + cl = crearCliente(id, poa); + clientes[n_clientes++] = cl; + } + else if(partesDelComando[0].equals("cldisp")){ + for(int i=0; i>") + if comando.split()[0] == 'salir': + break + elif comando.split()[0] == 'inscribir': + subasta = subastas[int(comando.split()[1])] + subasta.inscribirCliente(cl) + elif comando.split()[0] == 'pujar': + subasta = subastas[int(comando.split()[1])] + valor = float(comando.split()[2]) + if subasta.pujar(valor, cl): + print "Vas ganando" + else: + print "No es suficiente" + elif comando.split()[0] == 'ultima': + subasta = subastas[int(comando.split()[1])] + subasta.ultimaPuja(cl) + print "Has dejado de pujar" + + elif comando.split()[0] == 'buscar': + try: + desc = comando.split()[1] + except: + desc = '' + subastas = gestor_subasta.localizarSubasta(desc) + for i,s in enumerate(subastas): + print i, s._get_descripcion(), s._get_estado() + + elif comando.split()[0] == 'ganador': + subasta = subastas[int(comando.split()[1])] + print subasta.ganador()._get_identificacion() + + elif comando.split()[0] == 'ganador_prov': + subasta = subastas[int(comando.split()[1])] + print subasta._get_ganador_provisional()._get_identificacion() + + elif comando.split()[0] == 'estado': + subasta = subastas[int(comando.split()[1])] + print subasta._get_estado() + + elif comando.split()[0] == 'valor': + subasta = subastas[int(comando.split()[1])] + print subasta._get_valor() + + elif comando.split()[0] == 'clientes': + subasta = subastas[int(comando.split()[1])] + clientes = subasta._get_clientes() + for i, c in enumerate(clientes): + print i, c._get_identificacion() + + elif comando.split()[0] == 'help': + help_str = ''' + COMANDOS DISPONIBLES + -------------------- + buscar desc -> muestra la lista de subastas + ganador id -> muestra el ganador de una subasta + inscribir id -> te inscribe en una puja + pujar id cantidad -> puja cantidad en la puja con id + ultima id -> dejas de pujar en la puja id + ganador_prov id -> muestra el ganador provisional + estado id -> muestra el estado de una puja + valor id -> muestra el valor actual de una puja + clientes id -> muestra los clientes que hay en una puja + salir -> sale del cliente + help -> muestra esta ayuda + + ''' + print help_str + +\end{lstlisting} + +\subsubsection{cliente.py} +\begin{lstlisting}[style=Python] + +import subastas__POA + +class clienteSubastas_i(subastas__POA.clienteSubastas): + def __init__(self, id): + self.identificacion = id + + def finSubasta(self): + pass + + def nuevoValor(self, valor): + print "NUEVO VALOR: ", valor + + def _get_identificacion(self): + return self.identificacion + +\end{lstlisting} + +\end{document} diff --git a/server.ior b/server.ior index 6ec2662..c373d91 100644 --- a/server.ior +++ b/server.ior @@ -1 +1 @@ -IOR:000000000000002049444c3a73756261737461732f676573746f7253756261737461733a312e3000000000010000000000000082000102000000000a3132372e302e302e3100ad0a00000031afabcb00000000207e88189f00000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002 +IOR:000000000000002049444c3a73756261737461732f676573746f7253756261737461733a312e3000000000010000000000000082000102000000000a3132372e302e302e3100811200000031afabcb0000000020c145ee8d00000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002 -- 2.1.4