From: Hernan L. <her...@de...> - 2003-11-19 02:50:29
|
On Tue, 2003-11-18 at 22:53, Jorge Campos wrote: > Hola. > > Tengo un par de cosas que plantear: > 1) en que vamos a hablar dentro del proyecto? > Ingles/Espaol/Frances/Portugues/Aleman/Chino/Esperanto? Me duele pero me parece que vamos a tener que hablar en ingles. Por lo menos en los fuentes. Quizas el contenido y los foros tambien. Igual nuestro idioma es universal: la calidad ;-) > > 2) les planteo una arquitectura que estoy > desarrollando y mi situacin en el proyecto. > > Por ahora las interfaces que estn en > PersistentCollectio, Selector y ObjectBase me cierran, > y por esa razn me avoqu a intentar persistir algo... > esto me llev a ver los siguientes problemas: > - ser "no intrusivos" es complicado, evidentemente > vamos a necesitar acceder al estado del objeto desde > afuera. Para hacerlo me inclin por usar reflection > (otra alternativa es usar una lib como javassist, que > igualmente pretendo usar). > Usando reflection estoy empezando a generar un XML del > objeto con todos, TODOS (incluyendo todos los de las > superclases). > Con este esquema logramos ser poco intrusivos, las > clases persistidas tienen que tener un constructor > vaco (podra extenderse esto tocando el bytecode, > pero de todas maneras hay clases que no se pueden > tocar) y que los atributos que son de clases > "asociadas" a algo fsico no pueden ser replicados > satisfactoriamente (si adentro del objeto tiene un > fileOutputStream, no es posible volverlo al estado en > que estaba). > > Este mecanismo de reflection debera servir tambin > para poder copiar los objetos. > > Esto que parece tan simple, me est tomando algo de > tiempo, pero me gustara validarlo con Uds. No me estas leyendo el website de ob! Quizas en principio se puede hacer esto, pero me parece que que es la solucion. Yo digo que si un objeto mantiene compotamiento por sus metodos y estado por sus variables, persistamos variables. El corportamiento esta en el class digamos que no inicializado. Yo me imaginaba aspectear (que buen verbo np!) las variables y armar una estructura de tabla (no me reten por performance) mas facil y rapida de acceder. Ejemplo Objecto Persona con atributos nombreString, edadInt, Document (Object). Object Documento nombreString, pais (Objecto) Object Pais, nombreString una instancia de Persona la guardaria en una estructura tipo tabla relacional: instancias/atributos persona.nombre persona.edad document.nombre pais.nombre instancia persona 1 Billy Radcliffe 65 DNI Argentina instancia persona 2 Jaina 12 LU Argentina teniendo esta tablita colorida y un bytecode de Pais.class, Documento.class y Pais.class no podria buscar y recomponer objetos sin hacer nada mas complejo que recorrer la tabla? Me falta ver algo?, porque esta idea me parece barbara. Entonces decia, si encuentro a persona 1, hago un new Persona() y le seteo a la fuerza las variables (a la persona y a sus objetos asociados y super clases) > > - la otra cosa es que el mecanismo de reflection no > alcanza para lo que queremos hacer. Es necesario > extender las clases (el bytecode, sea en tiempo de > compilacin o de carga) para agregar > "transparentemente"/"no intrusivamente" algunos > atributos y funcionalidad, tales como un OID (para que > objetos que representan el mismo objeto sean realmente > el mismo objeto con dos referencias), constructores > especiales, etc. > > - proxies, creo que la idea de proxies es viable y > hara casi la transparencia absoluta... por ahora no > pens mucho en el asunto, pero creo que vamos a > usarlos. Estoy enojado porque hablando de esto el sabado, los patoteros de la utn me hicieron callar y me dijeron que son detalles de implementacion :-) Proxy si, ahora no se si el proxy se usa para hacer llamadas remotas. Quizas es obvio, pero como la mayoria de proxies que usamos es para reducir los accesos remotos... > > Me gustara tener las opiniones de todos respecto del > camino que planteo. Tambin me gustara que alguien > empiece a tomar postas de los temas pendientes. Yo tenia ganas de implementar las interfaces de busqueda onda webmacro en otro paquete. Sinceramente no me gustan los selectors que implementaste. En el codigo tire los comentarios. > > Un abrazo > > Jorge > > PD: no se van a quejar, vamos a meter > reflection/bytecode handling/proxies y adems nuestra > OB va a permitir que miles de programadores sean > felices. > > __________________________________ > Do you Yahoo!? > Protect your identity with Yahoo! Mail AddressGuard > http://antispam.yahoo.com/whatsnewfree > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > Objectbase-devel mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbase-devel > |