Este documento describe la arquitectura cliente/servidor para una aplicación de música mediante el modelo 4+1. Se analiza la funcionalidad desde las cinco vistas del modelo. La aplicación permitirá a los usuarios acceder a una biblioteca de música pública para reproducir, subir canciones o actualizar su lista personal. El sistema se implementará con un cliente en Windows y un servidor en Ubuntu comunicados a través de una red LAN.
2. Historial de Revisiones
Fecha Versión Descripción Autor
04/05/2015 1.0 Utilizar el modelo de
descripción arquitectónica 4+
Israel Rey
04/05/2015 1.0 Identificar el IDE de
implementación.
Israel Rey
04/05/2015 1.0 Entregable del estilo
Cliente/Servidor
Israel Rey
3. Documento de Arquitectura de Software
INTRODUCCIÓN
El estilo arquitectónico de cliente/servidor describe los sistemas que comprenden a un
cliente independiente y a un sistema de servidor, que se comunica mediante una red
de conexión distribuida. Uno o varios clientes acceden a un servidor, el cual contiene
gran parte de la lógica de negocio, que a su vez este accede a la base de datos para
consultar y devolver información.
Describe la relación entre un cliente y un servidor, en el que se envían respuestas
utilizando una gama de protocolos (HTTP, FTP, SMTP, entre otros) y formatos de
datos para comunicar la información al cliente.
El cliente/servidor es considerado como un estilo de dos capas por lo cual en el
siguiente trabajo se analizará a más detalle la funcionalidad y los componentes que lo
conforman.
Propósito
Este documento describe la arquitectura cliente/servidor mediante el modelo 4+1, en
donde se analizará con cada una de las vistas.
En la vista lógica se observará la funcionalidad que la arquitectura proporciona a los
usuarios finales. En la vista de procesos se mostrará los procesos que conforman el
sistema y la forma como se comunican entre sí. En la vista de despliegue se verá
cómo está dividido el sistema software en componentes que lo conforman y las
dependencias que hay entre esos componentes. En la vista física comprenderá el
entorno donde se ejecutará la aplicación y finalmente en la vista de escenarios, se
verá los diagramas de casos de uso que corresponden a la aplicación.
Alcance
El alcance de este proyecto, consiste en describir los componentes más importantes
de la arquitectura cliente/servidor, y como ésta se adaptada a una arquitectura
distribuida que permite a los usuarios finales obtener acceso a la información en forma
transparente, es decir se describe la combinación de un cliente que interactúa con un
servidor.
Descripción
Sección 2: Describe el uso de cada vista
En el caso del componente cliente, utilizando el modelo 4+1 se describe de la
siguiente manera:
Vista Lógica: El cliente mediante una interfaz gráfica, que puede ser el navegador,
una aplicación de escritorio o una aplicación móvil, se solicita al servidor un recurso,
para que este acepte la solicitud y presente el resultado.
4. La aplicación cliente/servidor está dividido en dos capas.
El servidor siempre está actualizando la lista de canciones de la biblioteca pública de
los usuarios, en donde cada uno sube sus canciones favoritas.
Vista de procesos: El cliente realiza una petición conocida como request para que
consuma un servicio o un recurso, y el servidor devuelve una respuesta (response) en
donde provee dicho servicio o recurso.
En la vista de procesos, un usuario para acceder a la biblioteca debe utilizar su usuario
y contraseña, en caso de no tenerlas, debe registrarse. Una vez que haya ingresado
podrá reproducir la música, subir canciones o actualizar su lista con la de la biblioteca
pública.
Cliente Servidor
Vista de despliegue: Para establecer una comunicación entre cliente/servidor, se
utiliza Socket de las librerías de java (canal de comunicación) para que exista una
conexión y un flujo de información, que se encuentra en las librerías de los lenguajes
de programación y mediante los protocolos de red, se programa las aplicaciones
(cliente, servidor).
Vista de descomposición de módulos
Cliente (aplicación escritorio)
Servidor (aplicación escritorio)
Usuario 1
Usuario 2
Usuario 3
Usuario N
Servidor
Canciones
Iniciar Sesión
Actualizar Lista
Subir música
5. La aplicación de servicio de música consta de los siguientes componentes.
Vista física: La aplicación se ejecutará en dos diferentes equipos, donde un equipo
será el cliente que constará del sistema operativo Windows y el otro el servidor que
posee el sistema operativo Ubuntu, los cuales se comunicaran mediante la red LAN.
Para desarrollar la aplicación se utilizó socket.
Servicio de
música
Repositorio
música
Reproductor
de música
Sincronizador de
bibliotecas
6. Sección 3: describe las limitaciones arquitectónicas del sistema
Las limitaciones que presenta esta arquitectura es la congestión del tráfico de datos
debido a que cuando acceden varios clientes, realizan varias peticiones simultáneas,
lo cual conlleva hacer caer al servidor y por ende a no dar respuesta a las
peticiones.
Los clientes dependen de un servidor que se encuentra en un solo equipo, si este deja
de funcionar todos los usuarios se ven afectado.
Sección 4: describe los requisitos funcionales con un impacto significativo en la
arquitectura
ID Requisito Nombre del Requisito Descripción del Requisito
R01 Ingreso de Usuario El usuario siempre deberá ingresar al
sistema para consumir los servicios.
R02 Actualizar biblioteca El cliente debe actualizar biblioteca para
obtener las canciones.
R03 Subir canción El cliente subirá las canciones al servidor
para que otros usuarios (cliente) puedan
reproducirlas.
R04 Reproducir canción El cliente podrá reproducir las canciones.
7. Sección 5: describe lo más importante la realización de casos de uso.
Caso de Uso: Ingresar
Descripción Breve
El presente caso de uso hace referencia al ingreso y validación de un usuario al
sistema.
Descripción del Actor
El usuario deberá ingresar al sistema con su respectivo usuario y contraseña para
acceder a las opciones del sistema como biblioteca de canciones y poder
reproducirlas.
Flujo Básico de Eventos
1. Al ingresar al sistema del cliente, se mostrara la opción de escribir usuario y
contraseña.
2. Al ingresar los datos correctos, deberá presionar el botón Entrar.
3. Si el usuario no tiene cuenta, ver flujo alternativo 01.
Flujos Alternativos
Flujo Alternativo 01:
1. El usuario deberá presionar el botón registrarse y completar los datos
solicitados.
8. Caso de Uso: Actualizar biblioteca
Descripción Breve
El presente caso de uso hace referencia al consumo de recursos.
Descripción del Actor
El usuario una vez que se haya logueado puede elegir la opción de actualizar
biblioteca, y se mostrara una lista de canciones.
Precondiciones
pre-condición 1
El usuario deberá presionar el botón actualizar para obtener la lista de canciones.
Flujo Básico de Eventos
1. Al ingresar al sistema se mostrará un botón Actualizar.
2. Al presionar el botón, se presentará la lista de canciones.
3. Si el usuario desea añadir a lista de reproducción, ver flujo alternativo 01.
4. Si el usuario desea reproducir una canción, ver flujo alternativo 02.
Flujos Alternativos
Flujo Alternativo 01:
1. El usuario podrá añadir canciones a su lista de reproducción mediante el
botón (>).
Flujo Alternativo 02:
1. El usuario podrá reproducir una canción presionando el botón play.
Caso de Uso: Subir canción
Descripción Breve
El presente caso de uso hace referencia a poder subir una canción.
Descripción del Actor
El usuario una vez que se haya logueado puede elegir la opción de subir canción al
servidor.
Precondiciones
9. pre-condición 1
El usuario deberá presionar el botón Subir canción.
Flujo Básico de Eventos
5. Al ingresar al sistema se mostrara un botón Subir Canción.
6. Al presionar el botón, se presentara una ventana para seleccionar la canción a
subir.
Caso de Uso: Reproducir canción
Descripción Breve
El presente caso de uso hace referencia de reproducir una canción.
Descripción del Actor
El usuario una vez que se haya logueado puede elegir la opción de reproducir canción
de la biblioteca o de la lista de reproducción.
Precondiciones
pre-condición 1
El usuario deberá presionar el botón Play/Pause.
Flujo Básico de Eventos
1. Al ingresar al sistema se mostrara un botón Play/Pause.
2. Al presionar el botón, se reproducirá la canción seleccionada.
3. Si el usuario desea reproducir otra canción, ver flujo alternativo 01.
Flujos Alternativos
Flujo Alternativo 01:
1. El usuario podrá reproducir otras canciones, presionando el botón Anterior
o Siguiente.
11. Sección 6: describe aspectos de concurrencia de diseño
Al momento de que varios clientes realizan peticiones simultáneas, el servidor
responde a dichas peticiones de forma paralela.
Como la aplicación tiene un solo servidor, los procesos se intercalan para que se
ejecuten simultáneamente.
Si se tiene varias peticiones de recursos, y se desea intercambiar información, esto
implica el intercambio de datos por medio de un canal de comunicación y se consigue
de que la ejecución de un proceso influya en la ejecución de otro.
Sección 7: describe cómo se implementará el sistema.
El sistema se implementará a partir de los requerimientos especificados, se analiza y
se desarrolla un modelo conceptual del sistema y se aplica la arquitectura.
El sistema cliente y el sistema servidor se encontrarán en diferentes equipos o en el
mismo equipo ya sea utilizando las ventajas de la virtualización