red social : un millón de amigos. contenidos descripción del negocio requerimientos funcionales...

24
Red Social: “Un millón de Amigos”

Upload: roldan-cubas

Post on 03-Jan-2015

31 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Red Social:

“Un millón de Amigos”

Page 2: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Contenidos

Descripción del negocio Requerimientos funcionales Requerimientos no funcionales

Solución propuesta Arquitectura propuesta Técnicas de diseño aplicadas a cada capa

Demo

Page 3: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Funcionalidades requeridas

Buscar amigos en la red. Hacer amigos. Sugerir amigos

Por afinidad o transitividad. Visitar amigos. Notificar eventos. Aplicaciones. Mensajería

Mensajes públicos y privados. Seguridad.

Page 4: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Arquitectura PropuestaConsiderando la escalabilidad horizontal de los servidores de la aplicación:

Utilizamos Ncache:que resolvería de forma transparente (sin la necesidad de modificar código) la replicación de la cache del ORM entre aplication servers y las sesiones que se resolverán a través del almacenamiento de las mismas en la base de datos.

Utilizamos un balanceador de carga (para los application servers) implementado con LVS.

Utilizamos un cluster de servidores PostgreSQL con pgpool-II. servidor de base de datos, y sólo en el caso de ser necesario,

Page 5: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Despliegue

Page 6: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Capas de nuestra arquitectura

Page 7: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

UnMillonDeAmigos.Web: Contiene las páginas web de la aplicación, que constituyen las vistas (presentación)

UnMillonDeAmigos.Presentacion: Contiene los presenters y las interfaces para cada una de las vistas del proyecto web.

UnMillonDeAmigos.ContratosDeAplicacion: Este proyecto publica los servicios que contienen la funcionalidad que es necesaria desde la presentación.

UnMillonDeAmigos.Aplicacion: Define las interfaces de los servicios que son implementados en el proyecto de aplicación.

UnMillonDeAmigos.AccesoADatos: Aquí se encapsulan todas las clases que implementan el acceso a Datos mediante NHibernate.

UnMillonDeAmigos. Dominio: Aquí se encuentran las clases de negocio, procesos y reglas de negocio.

Page 8: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Justificación de su uso Permite la descomposición del sistema en componentes

más pequeños; Facilita el análisis, la comprensión y el diseño del

sistema; Permite obtener implementaciones más sencillas. Aislamiento de código; Facilita los cambios en los componentes sin impactar en

otros módulos; Permite el desarrollo en paralelo del equipo de

programadores; Agrupamiento de funcionalidad similar; Facilita el mantenimiento del sistema.

Page 9: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de clases general

Page 10: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de clases completo

Page 11: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Casos de Uso

Page 12: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura
Page 13: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Componentes

Permite modelar la vista estática del sistema. Muestra la organización y las dependencias entre un conjunto de componentes. No necesariamente un diagrama incluye todos los componentes del sistema, normalmente se realizan por partes. Cada diagrama describe un apartado del sistema.

Page 14: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Componentes

Page 15: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Paquetes.

Permite visualizar cómo el sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, un diagrama de paquetes suministra una descomposición de la jerarquía lógica del sistema.

Page 16: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Paquetes

Page 17: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Procesos

Representa los aspectos de concurrencia y procesos de ejecución del sistema.

Nos permite ver cómo se comunican los procesos.

Page 18: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Diagrama de Procesos

Page 19: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Modelo 4 + 1Modelo 4 + 1

Vista de Despliegue

Vista Física

Vista Lógica

Vista de Procesos

Vista de Casos de Uso

Page 20: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Técnicas de Diseños aplicadas en cada capa

Strategy Aplicación:

Se lo utilizó para resolver tema de sugerencia de amigos por afinidad.

Factory Method Aplicación:

Se lo utilizó en la creación de aplicaciones. Definimos una interfaz para instanciar la aplicación Calendario, explicitando el tipo de objeto que se creará en base a los parámetros recibidos.

Page 21: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Iterator: Aplicación: Usuario que consulta el EspacioVisita

recorre sus mensajes y notificaciones por medio de iteradores que muestran únicamente los que son visibles según el perfil asociado.

Flyweigth:Aplicación: Evitamos tener una gran cantidad de instancias de perfiles con un estado interno idéntico.

Composite:Aplicación: Se lo aplicó en la creación de aplicaciones.

Page 22: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Adapter: Aplicación: Implementamos una interfaz para poder

pasar datos entre distintas vistas en forma genérica.En la práctica la vista origen sabe cual es la vista destino y puede hacer un pasaje explícito accediendo a las propiedades de la página y establecer una referencia strongly type entre las páginas.

Observer: Aplicación: Se lo aplicó en la implementación de las Notificaciones de la aplicación.

Page 23: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

PersistenciaPara la persistencia, encapsulamos las clases que participan del

acceso a Datos mediante NHibernate.

Hibernate Es una herramienta de Mapeo objeto-relacional que facilita el

mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación. Como todas las herramientas de su tipo, hibernate busca solucionar el problema de la diferencia entre los dos modelos de datos coexistentes en una aplicación: el usado en la memoria y el usado en las bases de datos. Para lograr esto permite al desarrollador detallar cómo es su modelo de datos, qué relaciones existen y qué forma tienen.

Justificación de su uso A través de la utilización del framework hibernate, se implementó la

persistencia de los objetos del sistema; herramienta que nos permitió el mapeo de los objetos necesarios, en una base de datos relacional, mediante la configuración de archivos XML, evitándose el manejo manual de los datos y permitiendo la portabilidad del código.

Page 24: Red Social : Un millón de Amigos. Contenidos Descripción del negocio Requerimientos funcionales Requerimientos no funcionales Solución propuesta Arquitectura

Demo…