Re: [pyPYME-Giotto] [CHARON] [DISENYO] Componente 'Gestion de recursos'
Status: Planning
Brought to you by:
pyneo
From: Jose <coo...@py...> - 2005-09-22 17:14:47
|
El mar, 20-09-2005 a las 14:35, Mauro S=E1nchez escribi=F3: > 2005/9/14, Jose <coo...@py...>: [..] > > Esta ser=EDa la funcionalidad a grosso modo. Pero quedan por definir = los > > detalles: > >=20 > > 1. =BFdesde d=F3nde y c=F3mo se ha de invocar este servicio?. Ya q= ue toda > > la generaci=F3n de objetos se hace (o deber=EDa hacer) desde el conte= nedor, > > este servicio deber=E1 integrarse de alguna forma en =E9l y ser invoc= ado por > > =E9l > =BFSe podr=EDa hacer que el servicio delegue la creaci=F3n de objetos a= l > contenedor directamente? O sea, =BFque cada vez que se solicita la > generaci=F3n de un objeto este servicio llame al contenedor, sin que > tenga la posibilidad de generarlos el servicio por s=ED solo? De hecho esa es la forma en la que deber=EDa proceder. En principio toda instanciaci=F3n debe realizarse mediante el m=E9todo getInstance() del contenedor. > > 2. aunque inicialmente desarrollaremos este servicio para que > > gestione la creaci=F3n de formularios, =BFvale la pena crear una clas= e > > 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 formu= larios > > aunque no utilizemos ninguna otra especializaci=F3n > Coincido con esto. Me parece que con la historia de usuario n=BA 1 se > puede dar que lo =FAnico que se quiere que se gestione es si se tiene > acceso para realizar una operaci=F3n =BFo estoy confundido? La historia 1 es totalmente gen=E9rica, no est=E1 relacionada con un tipo= de recurso determinado. En cambio el resto de historias pueden ser aplicadas o no dependiendo del tipo de recurso de que se trate e incluso su operativa puede ser distinta. Teniendo en cuenta que en un principio utilizaremos este servicio s=F3lo para gestionar formularios, mi duda era si vale la pena desarrollar una base gen=E9rica de la que deriven las implementaciones concretas (que en principio ser=EDa una, la de gesti=F3n de formularios) o es mejor gestion= ar directamente formularios. > > 3. =BFc=F3mo determinar la lista de procesadores a invocar?. En pr= incipio > > yo veo 3 opciones: > > 1. fijarlo en el c=F3digo > > 2. utilizar un fichero de configuraci=F3n > > 3. utilizar alg=FAn otro medio > =BFCuando te refieres a procesadores est=E1s hablando de los servicios > ServicioControladorDeAcceso, ServicioI18N, etc.? Utilizar el fichero > de configuraci=F3n, =BFnos dar=EDa un poco m=E1s de abstracci=F3n que f= ijarlo en > el c=F3digo? =BFse hizo algo parecido ya en el c=F3digo de pypyme? Cuando digo "procesador" en este contexto me estoy refiriendo a aquella parte del "Gestor de recursos" que se encarga de "procesar" una petici=F3= n de servicio. Es decir, una clase especializada que aplica una transformaci=F3n al recurso requerido. Esta transformaci=F3n normalmente = se har=E1 mediante un servicio auxiliar, como ServicioI18N, con lo que el procesador actuar=E1 como simple intermediario. O sea, no, no me refiero a los servicios auxiliares como ServicioControladorDeAcceso sino a una clase interna al componente 'Gestor de recursos'. Entones mi duda es c=F3mo definir qu=E9 procesadores se deben aplicar sob= re un recurso cuando el Usuario realiza una solicitud. Creo que por ahora lo m=E1s f=E1cil ser=E1 definirlo por c=F3digo. Respecto a si en pyPYME estamos utilizando ficheros de configuraci=F3n te dir=E9 que no, excepto el fichero 'components.xml' que forma parte del contenedor. > > 4. =BFc=F3mo invocar a cada procesador?. Esta parte puede ser senc= illa de > > responder: > > 1. dise=F1ando un interfaz que documente el API de un "procesad= or de > > recursos" > > 2. dise=F1ando una clase por cada procesador que implemente dic= ho > > interfaz > > 3. haciendo accesible el procesador dentro de la infraestructur= a > > de pyPYME (esto tiene que ver con el fichero 'components.xml') > La API que mencionas aqu=ED, =BFse encontrar=EDa en thalassa? Esta API ser=E1 parte de Charon, ya que es d=F3nde se implementar=E1 y us= ar=E1. Espec=EDficamente como parte del API del componente "Gestor de recursos". S=F3lo la incluir=EDamos en Thalassa si resultase ser parte del funcionamiento interno del contenedor. > > 5. =BFqu=E9 objeto deber=E1 ser pasado a los procesadores?. En pri= ncipio > > este servicio deber=E1 instanciar el formulario a trav=E9s del conten= edor y > > ser=EDa esta instancia la que pasar=EDa a cada uno de los procesadore= s > Si es as=ED, =BFquedar=EDa respondido el detalle n=BA 1 que planteas an= teriormente? S=ED. El proceso ser=EDa m=E1s o menos as=ED: 1. el Usuario solicita un formulario (recurso) al contenedor 2. el contenedor pasa la solicitud al "Gestor de recursos" 3. el "Gestor de recursos" determina si puede instanciar el recurso solicitado. Aqu=ED tenemos una posible "cadena de procesadores", normalmente relacionados con la seguridad. Para no liarnos, podemos asumir que siempre es posible instanciar recursos 4. si no hay ning=FAn problema de instanciaci=F3n, solicita al contene= dor una instancia; en caso contrario genera una excepci=F3n 5. hace pasar la instancia por cada uno de los procesadores que, de acuerdo a su "tipo de recurso", le son aplicables 6. devuelve la instancia "procesada" > > 6. =BFc=F3mo es el ServicioControlDeAcceso? > >=20 > > 7. =BFc=F3mo es el ServicioI18N? > >=20 > > 8. =BFc=F3mo es el ServicioL10N? > >=20 > > 9. =BFc=F3mo es el ServicioConfiguracion? > Tal vez todos estos servicios tengan cosas en com=FAn. =BFSe podr=EDa c= rear > una clase especializada por cada servicio? o =BFconviene tener todos > estos servicios por separados? No me queda bien claro que es lo que > realiza el ServicioConfiguracion. =BFSe utilizar=EDa cuando el usuario > tenga definido en la configuraci=F3n de la aplicaci=F3n (pypyme) un idi= oma > o un pa=EDs diferente al de su estaci=F3n de trabajo o nada que ver con= lo > que estoy diciendo? S=ED, es como dices. Se trata del =FAnico componente que sabe c=F3mo aplicar la configuraci=F3= n de la aplicaci=F3n y del usuario a los "recursos" utilizados por =E9sta. Chao, Jose |