Introduccion

Definición MarketPlace

Un Marketplace es un sitio virtual en el cual se hacen operaciones de compra y venta de bienes o servicios. Algunos ejemplos de Marketplace son mercadolibre.com, ebay.com, amazon.com, fallabela.com. Aquí estamos interesados en desarrollar Marketplaces donde tanto los proveedores como los compradores son personas naturales y lo que se vende es un bien (no un servicio). Este documento contiene la documentación de la arquitectura y funcionamiento de la aplicación de marketplace de libros.

El Marketplace debe:

  • Facilitar a los proveedores el registro de sus productos y a los compradores, la búsqueda, selección y compra de los mismos.
  • Ofrecer un registro, autenticación y autorización de los usuarios dado su rol tener un frontend web

Adicionalmente, se espera:

  • un registro de proveedores de alrededor de 1000 y un número de compradores de 10000.
  • el tiempo de respuesta de cada servicio que se ofrezca en el Marketplace no debe ser superior a 1seg
  • de manera simultanea se espera un máximo de 100 transacciones por segundo

Arquitectura Base MarketPlace

Vista Funcional

La arquitectura base de las aplicaciones Marketplace desde el punto de vista funcional es de tres capas (layers): La capa del Frontend, la capa de los servicios Restful y la capa del Back-end.

La capa de Frontend ha sido desarrollada en HTML5 y javascript utilizando el framework Angular 1.4.3 y la librería de estilos bootstrap.

La capa de los servicios Restful se ha desarrollado utilizando el API JAX-RS.

La capa del Backend o lógica de la palicaión se ha desarrollado utilizando EJBs y JPA para el manejo de la persistencia. La base de datos es Postgres.

Vista de desarrollo

La vista de desarrollo de la aplicación se muestra en la siguiente figura:

El primer proyecto es un proyecto maven que contiene el archivo pom.xml general de la aplicación. Este proyecto define que la aplicación está compuesta de dos módulos: el módulo web y el módulo logic.

El proyecto web contiene el frontend y también los servicios restful. El proyecto logic contiene los EJBs y la persistencia de la aplicación.

El proceso de construcción que está definido, empaqueta un único war que incluye ambos proyectos.

Vista de despliegue

Vista de despliegue

Tanto el FrontEnd como el BackEnd se despliegan en el mismo servidor de aplicaciones, el cual permitirá el acceso a la aplicación a través del protocolo HTTP, soportado por todos los navegadores web.

Vista de despliegue

Este documento está organizado siguiendo cada una de las capas de la arquitectura.