GAE: Cómo asignar diseños orientados a objetos en el almacén de datos de Appengine de manera eficiente

Supongamos que tengo el siguiente Modelo de objeto conmigo (puede cambiarlo de la manera que desee, mi interés es solo mapear de manera eficiente),

public class Product{
    private String someAttribute;
    //...
}

// A Seller who has a lot of products to sell, More than one Seller can sell the same Product
public class Seller{
    private List<Product> products;
    //...
}

public class Offer{
    // who is offering
    private Seller seller;
    // multiple products can make an offer
    private List<Product> products;
    // pricing related
    private Price price;
    //...
}

Quiero escribir una aplicación web, que realice, lea / escriba / busque en estos objetos y considere que el punto de entrada podría ser cualquiera de ellos.

Siguiendo son mis consultas, -

¿Cuál es el patrón de diseño que usaré? ¿Supongo que algún tipo de patrón Adaptador?

Mientras guardo los objetos del Vendedor, ¿debo almacenar también las referencias de los objetos del Producto? o solo las llaves? Lo que quiero decir es si debo convertir la clase del vendedor en siguiente,

public class Seller {Private List productKeys; }

Si quiero escribir una aplicación escalable y mantenible, creo que debería haber alguna forma agradable de diseñar mi aplicación en una arquitectura en capas. ¿Hay algún ejemplo para eso o algún patrón ya usado? p.ej. ¿Algún tipo de JSP -> Servicio -> DAO -> dataStore? Los ejemplos serían realmente apreciados.

Yo también pasé por AppEngineSDK para Java, pero no encontré un ejemplo para lo mismo. ayuda en respuestas o punteros es realmente apreciada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta