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

Centro de preferencias de privacidad

Cookies

El acceso a este Sitio Web puede implicar la utilización de cookies. Las cookies son pequeñas cantidades de información que se almacenan en el navegador utilizado por cada Usuario —en los distintos dispositivos que pueda utilizar para navegar— para que el servidor recuerde cierta información que posteriormente y únicamente el servidor que la implementó leerá. Las cookies facilitan la navegación, la hacen más amigable, y no dañan el dispositivo de navegación.

Las cookies son procedimientos automáticos de recogida de información relativa a las preferencias determinadas por el Usuario durante su visita al Sitio Web con el fin de reconocerlo como Usuario, y personalizar su experiencia y el uso del Sitio Web, y pueden también, por ejemplo, ayudar a identificar y resolver errores.

La información recabada a través de las cookies puede incluir la fecha y hora de visitas al Sitio Web, las páginas visionadas, el tiempo que ha estado en el Sitio Web y los sitios visitados justo antes y después del mismo. Sin embargo, ninguna cookie permite que esta misma pueda contactarse con el número de teléfono del Usuario o con cualquier otro medio de contacto personal. Ninguna cookie puede extraer información del disco duro del Usuario o robar información personal. La única manera de que la información privada del Usuario forme parte del archivo Cookie es que el usuario dé personalmente esa información al servidor.

Las cookies que permiten identificar a una persona se consideran datos personales. Por tanto, a las mismas les será de aplicación la Política de Privacidad anteriormente descrita. En este sentido, para la utilización de las mismas será necesario el consentimiento del Usuario. Este consentimiento será comunicado, en base a una elección auténtica, ofrecido mediante una decisión afirmativa y positiva, antes del tratamiento inicial, removible y documentado.

cookie_notice_accepted, PHPSESSID, gdpr[allowed_cookies], gdpr[consent_types], wfvt_854953179, wfwaf-authcookie-6551efe13cbfd0f309df2196394f1ef4, wordfence_verifiedHuman, wp-settings-1, wordpress_logged_in_b03ee833495d0a37b6d465ed4571f165, wordpress_test_cookie, wp-settings-time-1, wordpress_b03ee833495d0a37b6d465ed4571f165
1P_JAR, CONSENT, GMAIL_LOGIN, HSID, NID, SID, SIDCC
ELOQUA, _ga, _lipt, bcookie, lang, liap, lidc

¿Quieres cerrar tu cuenta?

Se cerrará tu cuenta y todos los datos se borrarán de manera permanente y no se podrán recuperar ¿Estás seguro?

Translate »
Twitter
LinkedIn