You are on page 1of 17

Alejandro Díaz

Cristina Sananez
Katherine Verasmendi
n sistema de operación representa un programa que controla la
U
ejecución de otros programas, es por ello que el proyecto a desarrollar
esta enfocado a la utilización e implementación de recursos y elementos
que involucran una aplicación.

E l proyecto propuesto consiste en la elaboración de un sistema de


reproducción musical vía web donde los protagonistas básicos del diseño
son el cliente y el servidor. El cliente tiene la tarea de realizar peticiones
al servidor mediante la solicitud de pistas disponibles al mismo, a
demás de seleccionar y enviar dichas pistas de reproducción una vez
generada la respuesta. Mientras que el servidor tiene la tarea de atender
las peticiones de uno o más clientes enviando las pistas disponibles en
el sistema y reproduciendo dichas canciones.

L o primordial es aplicar todos los conceptos y conocimientos vistos


en la parte teórica de la asignatura de manera tal que podamos cumplir
con todos los requerimientos exigidos en el proyecto a desarrollar. Entre
los recursos necesarios tenemos: manejo de hilos en el lenguaje de
programación Java, mecanismo de comunicación entre cliente-servidor
(sockets), política de manejo de peticiones a nivel de servidor, etc.

P lanteamiento del sistema a desarrollar


Se requiere diseñar un sistema de reproducción musical en línea
para la página web de Apple que permita a todos y cada uno de los
visitantes reproducir canciones de su preferencia en tiempo real. De
forma tal que el proyecto contará con un diseño lógico reflejado en la
siguiente figura:
• Servidor
Representado por la página web de Apple donde se podrá recibir una o
más peticiones de clientes, lo que significa que debe existir una política
de ejecución para darle cabida a todas y cada una de las solicitudes de
reproducción. Este servidor ofrecerá todas las pitas que estén
disponibles en el sistema al momento de una solicitud para luego
realizar la reproducción de las mismas.

• Cliente
Representado por cada uno de los usuarios de la página (maquina local),
los cuales podrán solicitar información de las canciones disponibles en el
sistema, para luego seleccionar las pistas de su preferencia y enviar
petición al servidor.

E lementos y recursos disponibles


• Lenguaje de programación Java
Este lenguaje forma parte de los requerimientos para el desarrollo del
sistema, algunos de los conocimientos de esta herramienta de
programación fueron preconcebidos en asignaturas anteriores, el
ambiente a utilizar será NetBeans IDE 6.1.

• Estructuras de almacenamiento y/o envío de información


En el sistema es necesario establecer un medio de comunicación entre
el cliente y el servidor, que no es más que el manejo de información
entre ellos, para garantizar dicho medio estableceremos un formato de
envío ya sea por archivos de textos planos, cadenas simples o archivos
XML, dicho formato será definido más adelante según las posibilidades
propuestas.

• Manejo de Hilos en Java


Junto con el envío de información, se debe contar con un mecanismo
para la conexión entre cliente-servidor, dicha conexión deberá satisfacer
la necesidad de manejar múltiples peticiones de clientes. Según el
lenguaje de programación a utilizar (java) contaremos con sistema de un
único proceso con múltiples hilos.

• Sistemas Operativos
Los sistemas operativos propuestos para la ejecución del sistema tanto a
nivel de servidor como de cliente son en primera instancia Mac Os X,
Ubuntu o Windows. Es ineludible tener un mínimo de conocimiento para
cada uno de ellos.

S olución y esquematización del sistema


Para el diseño del sistema es preciso contar con un esquema para
representar la actuación del cliente y el servidor, durante el proceso de
petición.
2
3
Solicitud de canciones
1 disponibles

Cliente realiza
petición 4 Servidor recibe
petición
Envío de canciones
disponibles

Lista de

6
Envío de canciones

5 seleccionadas 7

Cliente selecciona Recibe canciones


canciones seleccionadas
Lista de canciones

Reproducción de pistas
8 en el

Servidor

M ecanismo de conexiónentre el cliente y el servidor


A lgunas definiciones
Modelo de arquitectura Cliente-Servidor
– Cualquier combinación de sistemas que pueden colaborar entre sí
para dar a los usuarios toda la información que ellos necesiten sin
que tengan que saber donde está ubicada.
– El término cliente/servidor es originalmente aplicado a la
arquitectura de software que describe el procesamiento entre dos
o más programas: una aplicación y un servicio soportante.

Características de los componentes del modelo cliente-


servidor
El cliente o frontend
-Administra la interfaz de usuario.
-Procesar la lógica de la aplicación y hacer validaciones locales.
-Recibir resultados del servidor y formatear resultados.

Servidor o backend
-Aceptar y procesar los requerimientos de la estructura de
almacenamiento que hacen los clientes.
-Formatear datos para trasmitirlos a los clientes.
-Procesar la lógica de la aplicación y realizar validaciones a
partir de las reglas de negocio

Socket
– Es un método para la comunicación entre un programa del cliente
y un programa del servidor en una red, estos se crean y se utilizan
con un sistema de peticiones o de llamadas de función.

I mplementación de modelo de arquitectura cliente-servidor y


socket en el desarrollo del sistema
El sistema a desarrollar tiene como actores fundamentales el
cliente y el servidor, donde el cliente es representado por cada uno de
los usuarios de una página weby servidor es la página de Apple es por
ello que la arquitectura descrita anteriormente es ideal para la
aplicación. Como se trata de una interacción directa entre ambos
componentes es necesario establecer un medio de comunicación entre
ellos, como lo es el socket.

C omportamiento de cliente-servidor durante el proceso de


comunicación
Acción Cliente Medio Servidor
Realizar petición Emisor Activación de mecanismo Recepto
Respuesta del de comunicación. Para r
servidor, envío de Estad solicitar canciones. Estad Emisor
canciones o Recepto Lista de canciones por o Recepto
disponibles. r formato pre-establecido y r
Selección de disponible
canciones Emisor Activación de mecanismo a
nivel de interfaz para Emisor
seleccionar pistas y enviar
Reproducción de al servidor la lista de
canciones en el selección.
servidor Recepto El servidor efectuara la
r reproducción de la lista
enviada por el cliente.

Formato de envío de información entre clientes y el servidor


• Archivo xml (Extensible Markup Language)
Es un lenguaje extensible de etiquetas que permite definir la
gramática de lenguajes específicos, por lo tanto XML no es realmente un
lenguaje en particular, sino una manera de definir lenguajes para
diferentes necesidades. Es sencillo entender su estructura y procesarla
ya que después de diseñado y puesto en producción, es posible
extenderlo con la adición de nuevas etiquetas, de modo que se pueda
continuar utilizando sin complicación alguna.

M anejo de Hilos en Java


Los hilos de proceso (threads) representan uno de los recursos más
importantes que disponemos como programadores para crear
aplicaciones complejas donde puede ser conveniente, o incluso
necesario, realizar varias tareas de manera simultánea.

Puesto que Java será el lenguaje de programación a utilizar, el


manejo de peticiones de los usuarios será tratado bajo un sistema con
un único proceso y múltiples hilos. Es decir que múltiples clientes
realizarán una o más peticiones y por cada una de estas se creará un
hilo pero todos bajo un único proceso, de esta forma el sistema estará
en la capacidad de recibir todas las peticiones y procesarlas según la
política establecida.

Política de manejo de peticiones de clientes al servidor


La política para procesar reproducción de canciones será la de
FIFO (First In First Out), es decir, que la primera petición que reciba el
servidor desde un cliente va a ser la primera petición que se ejecute, por
lo tanto la segunda petición que reciba el servidor será la segunda que
se ejecute y así sucesivamente ejecutándose todas la peticiones
pendientes que tenga el servidor, simulando una cola donde el primero
en entrar es el primero en salir.

Estructura del código


La estructuración del código viene dada por 6 paquetes:

• appled.cliente:este paquete contiene la clase socketCliente la


cual permite realizar la conexión hacia un servidor en un puerto y
host específico. Está clase está formada por todas las funciones y
procedimientos necesarios para la conexión con el servidor como:
- public void cerrarConexion
- public void abrirConexion
- public void recibir
- public void enviar

• appled.imagenes: paquete que contiene todas las imágenes


usadas en el sistema.

• appled.intefaz.cliente: paquete que contiene todas ventanas


requeridas para la gestión del cliente.

• appled.interfaz.servidor: paquete que contiene todas ventanas


requeridas para la gestión del servidor.
• appled.logicaNegocios: paquete contiene todas las políticas y
reglas establecidas.

• appled.servidor: paquete que contiene la clase Servidor.java la


cual recibe las peticiones del Cliente. Entre las funciones y
procedimiento utilizados tenemos:
- private void procesarConexion
- public void run
- public void iniciarServidor

Nota: Este diseño del sistema puede variar a futuro.

La interfaz que ofrecemos está basada en el reconocimiento de la


evolución de que ha tenido Apple como empresa innovadora en el
mundo de la tecnología, en nuestro caso en el ámbito de música digital,
es por ello que el ambiente y tema elegido para el diseño y desarrollo de
la interfaz hace vital mérito a los inicios de Apple. Donde los colores
determinantes del logo (manzana) como lo son verde, amarillo, naranja,
rojo, morado y azul hacen parte fundamental de la interfaz ofrecida.

Nos pareció algo diferente y creativo para los entusiastas en usar


los productos de Apple tanto a nivel de software y hardware.

Descripción Importante

• Nombre de la aplicación: Appled

• ¿Por qué Appled? Para hacer referencia al pasado.

• Eslogan: “El pasado te trae la música del futuro” ó “El pasado


regresa con la música digital del presente”

PAGINA PRINCIPAL DE CLIENTE


DESCRIPCION BREVE
• Solicitar una pista

Al seleccionar esta opción se enviaran todas las canciones disponibles


en el sistema, recibiendo un mensaje de notificación.

• Lista Reproducción

Al seleccionar esta opción se desplegará una ventana donde aparecerán


las canciones recibidas por el sistema y un mecanismo para la selección
de las mismas y así construir su lista de reproducción, para luego ser
enviada al servidor.

• Ayuda

Al seleccionar está opción se desplegará una ventana con ayuda


referente al sistema.

• Salir salida del sistema.

LISTA DE REPRODUCCIÓN
En esta ventana el usuario se convierte en Dj, ya que tendrá la
capacidad de seleccionar las canciones de su preferencia entre todas las
canciones ofrecidas por el sistema y agregarlas a su lista de
reproducción.

Una vez creada la lista de reproducción debe ser enviada al


servidor para la reproducción de las canciones, además se ofrecen
botones para las acciones de agregar canción, eliminar canción y
eliminar todas las canciones de la lista de reproducción.

PAGINA PRINCIPAL DEL SERVIDOR


Como se demuestra en el gráfico la ventana principal del servidor es
una vista desde atrás con respecto a la ventana principal del cliente, lo
cual significa que el servidor estará esperando todas peticiones
realizadas por uno o más cliente, para luego ejecutar las acciones
correspondientes de acuerdo a la política preestablecida.

DESCRIPCION BREVE

• Usuarios en Línea

Al seleccionar está opción se mostraran todos los usuarios que están


conectados al sistema.
• Mostrar Lista

Selección que desplegará una ventana con todos los usuarios


conectados al sistema y al seleccionar uno de los usuarios se mostrará
la lista de reproducción que fue enviadapor el mismo.

• Política Establecida

Al seleccionar está opción se mostrará gráficamente la política


establecida para darle cabida a las múltiples peticiones de los usuarios.

• Reproducción Actual
Opción que muestra reproducción actual del sistema.

• Salir
Salir del sistema.

USUARIOS EN LINEA
MOSTRAR LISTA

POLITICA ESTABLECIDA
REPRODUCCION ACTUAL

You might also like