[pyPYME-Giotto] [CHARON] [DISENYO] Componente 'Gestion de recursos'
Status: Planning
Brought to you by:
pyneo
From: Jose <coo...@py...> - 2005-09-14 22:08:10
|
Hola Mauro (y dem=E1s), Acabo de "formalizar" las historias de usuario en el sitio Plone [1] as=ED que podemos empezar a comentar el dise=F1o. Como puedes deducir de las historias este componente (o servicio, como prefieras llamarlo) viene a ser un "despachador" de operaciones de transformaci=F3n/adaptaci=F3n de recursos. Es decir, cuando un Usuario solicita un recurso (p.e. un formulario) ha de: 1. crear una instancia del recurso solicitado 2. determinar la lista de "procesadores" a los que el Servicio ha de invocar para que "procesen" el recurso de acuerdo 3. crear una "cadena de procesamiento" 4. ejecutar la "cadena de procesamiento" invocando, en cada paso, al "procesador" que corresponda con el recurso modificado en el paso anterior Esta ser=EDa la funcionalidad a grosso modo. Pero quedan por definir los detalles: 1. =BFdesde d=F3nde y c=F3mo se ha de invocar este servicio?. Ya que t= oda la generaci=F3n de objetos se hace (o deber=EDa hacer) desde el contenedo= r, este servicio deber=E1 integrarse de alguna forma en =E9l y ser invocado = por =E9l 2. aunque inicialmente desarrollaremos este servicio para que gestione la creaci=F3n de formularios, =BFvale la pena crear una clase espec=EDfica para formularios en previsi=F3n de soportar en un futuro la gesti=F3n de otros tipos de recursos?. Yo creo que vale la pena crear una clase gen=E9rica y una clase especializada para la gesti=F3n de formulari= os aunque no utilizemos ninguna otra especializaci=F3n 3. =BFc=F3mo determinar la lista de procesadores a invocar?. En princi= pio yo veo 3 opciones: 1. fijarlo en el c=F3digo 2. utilizar un fichero de configuraci=F3n 3. utilizar alg=FAn otro medio 4. =BFc=F3mo invocar a cada procesador?. Esta parte puede ser sencilla= de responder: 1. dise=F1ando un interfaz que documente el API de un "procesador d= e recursos" 2. dise=F1ando una clase por cada procesador que implemente dicho interfaz 3. haciendo accesible el procesador dentro de la infraestructura de pyPYME (esto tiene que ver con el fichero 'components.xml') 5. =BFqu=E9 objeto deber=E1 ser pasado a los procesadores?. En princip= io este servicio deber=E1 instanciar el formulario a trav=E9s del contenedor= y ser=EDa esta instancia la que pasar=EDa a cada uno de los procesadores 6. =BFc=F3mo es el ServicioControlDeAcceso? 7. =BFc=F3mo es el ServicioI18N? 8. =BFc=F3mo es el ServicioL10N? 9. =BFc=F3mo es el ServicioConfiguracion? Como v=E9is, quedan algunos detalles por definir. Jose [1]http://dev.pypyme.org/doc/proyecto/modulos/charon/recursos/document_vi= ew |