Arquitectura de un marketplace

El desarrollo de un marketplace es abordable desde diferentes puntos de vista, tanto tecnológicos como estratégicos en la empresa. A la hora de desarrollar un marketplace debemos de tener presente 3 pilares fundamentales:

  • Administración de contenidos del site. (productos)
  • Administrador de usuarios (Control de productos comprados por usuarios)
  • La tienda expositora de productos (la tienda propiamente dicha)

Si conseguimos tener una capa común para los 3 sitios (una capa de negocio bien estructurada) estaremos ahorrando esfuerzos, esto nos lleva a plantearnos qué arquitectura es la más conveniente.

La pregunta de MVC o mejor DDD, etc… no es acertada, MVC y DDD son perfectamente compatibles, la pregunta es más bien, a nivel de cliente que tecnología uso, así como en la parte servidora, que arquitectura me interesa más.

Parece evidente que una arquitectura a 3 capas sería suficiente, pero… la realidad impone otras cosas a tener en cuenta.

Primera, un marketplace implica llamar a terceros, para proveer los servicios contratados y dependiendo de sistemas de terceros (normalmente Web Services).

Segunda, en nuestra parte, deberemos prever si vamos o no a tener diferentes comportamientos en nuestro marketplace (multi-tienda por ejemplo, que implique diferentes flujos de trabajo).

Como consejo, elegid un buen sistema que a futuro no esté limitado y con la tecnología que no vaya a estar obsoleta en poco tiempo.

 

Arquitectura en capas

1.- Capa de presentación .- entendiendo esta la que va a generar el HTML a servir al cliente. MVC

  • Modelo .- estructura de datos a manejar en la presentación al cliente
  • Vista .- el código html y el código javascript (lo más encapsulado posible).
  • Controlador .- esta capa es la que va a interactuar entre el modelo y la vista… y lo más importante con la capa de negocio.

Para la Vista, además, es importante ajustarnos a diferentes dispositivos donde funcionará nuestro Marketplace, por ello es importante que nuestro diseño sea responsive ( resoluciones de pantalla grande, pantalla mediana, pantalla pequeña), no a sus intermedios que pueden no verse 100% correctos, ya que el diseño se irá a justando. Aquí, ser compatibles con boostrap, jquery Mobile, o similares son una ventaja, ya que nos da gran parte del trabajo realizado.

2.- Capa de Negocio.- En esta capa, nuestra recomendación pasa por Driven Domain Development (DDD) que nos va a permitir la realización de Test en sus partes (Test Driven Development) para comprobación de código aumentando la calidad de este.

3.- Capa de Datos .- Es la capa que va a intercambiar los datos a exponer en la parte del cliente (Modelos de la capa MVC) con el almacenamiento de datos (Oracle, Sql Server… etc). Importante buen diseño en BBDD y consultas optimizadas. Es la base de nuestra aplicación.

En arquitecturas complejas suele haber una capa transversal común a las capas para el uso de utilidades comunes, (logs, seguridad, tratamiento de excepciones).

La capa de presentación, como hemos dicho, puede estar montada sobre diferentes sistemas, como MVC, RIA (con Silverlight por ejemplo), o con Web Forms.

mkp

Leave a Reply

Your email address will not be published. Required fields are marked