Thread: [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 |
From: Jose <coo...@py...> - 2005-09-08 10:53:43
|
Hola, Acabo de a=F1adir el documento [1] que contendr=E1 el an=E1lisis y dise=F1= o de este componente y de paso he modificado [2] el correspondiente al m=F3dul= o al que pertenece, Charon. As=ED que ya podemos empezar con el an=E1lisis 8-)) . El objetivo de este componente es el de resolver las peticiones de carga de formularios, di=E1logos y cualquier otro tipo de recurso que consideremos deba ser gestionado de forma centralizada. =BFPara qu=E9?. Para poder incluir control de acceso, personalizaci=F3n, configuraci=F3n y cualquier otro tipo de pre-proceso que creamos necesario. Podemos distinguir las siguientes historias: 1) el Usuario solicita un recurso protegido, que ser=E1 resuelto por e= l ServicioControladorDeAcceso (alias 'Agente de Inmigraci=F3n') 2) el Usuario solicita un recurso que debe ser personalizado, adaptado a su idioma. Aqu=ED estamos considerando el soporte i18n, que ser=E1 resuelto por el ServicioI18N (alias 'Traductor') 3) el Usuario solicita un recurso que debe ser localizado, adaptado a las costumbres de su regi=F3n. Aqu=ED estamos considerando el soporte l10= n, que ser=E1 resuelto por el ServicioL10N (alias 'Alcalde') 4) el Usuario solicita un recurso que debe ser adaptado a la configuraci=F3n activa (al usuario y/o a la aplicaci=F3n). Aqu=ED estamos considerando el efecto de la configuraci=F3n sobre el recurso, efecto que ser=E1 resuelto por el ServicioConfiguracion (alias 'Sastre') 5) el Usuario solicita un recurso protegido que debe ser adaptado a su idioma, a las costumbres de su regi=F3n y a la configuraci=F3n de la aplicaci=F3n donde, el Usuario puede ser tanto la persona que utiliza el programa como un objeto que precisa de otro el ServicioControladorDeAcceso es el servicio pyPYME encargado de gestionar y aplicar las pol=EDticas de seguridad, en particular, el control de acceso a clases y objetos el ServicioI18N es el servicio pyPYME encargado de resolver las peticiones de traducci=F3n, el soporte i18n el ServicioL10N es el servicio pyPYME encargado de adaptar un objeto a las reglas definidas para su localizaci=F3n (p.e. la composici=F3n de u= na direcci=F3n en Espa=F1a o Argentina) el ServicioConfiguracion es el servicio pyPYME encargado de gestionar y aplicar la configuraci=F3n de la aplicaci=F3n =BFEsta colecci=F3n de historias os parece correcta/completa y adecuados = los nombres de los roles?. He inclu=EDdo los alias para dar una visi=F3n algo m=E1s informal, pero pr=F3xima, a su funci=F3n y uso. Saludos, Jose [1]http://dev.pypyme.org/doc/proyecto/modulos/charon/recursos/ [2]http://dev.pypyme.org/doc/proyecto/modulos/charon/ |
From: <ma...@gm...> - 2005-09-08 12:29:36
|
Las historias y los roles que planteas aqu=ED me parecene correctos, como as=ED tambi=E9n la metodolog=EDa de trabajo que propones en un mail anterior. Veo que en la agenda de desarrollo de Charon se encuentra un m=F3dulo llamado "seguridad". Por lo que entiendo este m=F3dulo ser=E1 el que le permitir=E1 al usuario (administrador, o el que tenga los permisos necesarios) definir las diferentes pol=EDticas de seguridad, mientras que el ServicioControladorDeAcceso (alias 'Agente de Inmigraci=F3n') ser=E1 el encargado de hacerlas cumplir. Lo mismo pasa con el m=F3dulo Personalizaci=F3n y los servicios ServicioI18N y ServicioL10N. =BFEstoy en lo correcto?. En otros m=F3dulos como por ejemplo Thalassa han definido un rol llamado "Cliente" (actor "virtual" que solicita servicios del contenedor. Normalmente ser=E1n los Componentes los que act=FAen bajo este rol.). =BFAqu=ED te est=E1s refiriendo a este mismo "Cliente" cuando dices "un objeto que precisa de otro"?. Esas son las dudas que ten=EDa. Saludos, Mauro. 2005/9/8, Jose <coo...@py...>: > Hola, >=20 > Acabo de a=F1adir el documento [1] que contendr=E1 el an=E1lisis y dise= =F1o de > este componente y de paso he modificado [2] el correspondiente al m=F3dul= o > al que pertenece, Charon. >=20 > As=ED que ya podemos empezar con el an=E1lisis 8-)) . >=20 > El objetivo de este componente es el de resolver las peticiones de carga > de formularios, di=E1logos y cualquier otro tipo de recurso que > consideremos deba ser gestionado de forma centralizada. >=20 > =BFPara qu=E9?. Para poder incluir control de acceso, personalizaci=F3n, > configuraci=F3n y cualquier otro tipo de pre-proceso que creamos > necesario. >=20 > Podemos distinguir las siguientes historias: >=20 > 1) el Usuario solicita un recurso protegido, que ser=E1 resuelto por e= l > ServicioControladorDeAcceso (alias 'Agente de Inmigraci=F3n') > 2) el Usuario solicita un recurso que debe ser personalizado, > adaptado a su idioma. Aqu=ED estamos considerando el soporte i18n, que > ser=E1 resuelto por el ServicioI18N (alias 'Traductor') > 3) el Usuario solicita un recurso que debe ser localizado, adaptado a > las costumbres de su regi=F3n. Aqu=ED estamos considerando el soporte l10= n, > que ser=E1 resuelto por el ServicioL10N (alias 'Alcalde') > 4) el Usuario solicita un recurso que debe ser adaptado a la > configuraci=F3n activa (al usuario y/o a la aplicaci=F3n). Aqu=ED estamos > considerando el efecto de la configuraci=F3n sobre el recurso, efecto que > ser=E1 resuelto por el ServicioConfiguracion (alias 'Sastre') > 5) el Usuario solicita un recurso protegido que debe ser adaptado a > su idioma, a las costumbres de su regi=F3n y a la configuraci=F3n de la > aplicaci=F3n >=20 > donde, >=20 > el Usuario puede ser tanto la persona que utiliza el programa como un > objeto que precisa de otro > el ServicioControladorDeAcceso es el servicio pyPYME encargado de > gestionar y aplicar las pol=EDticas de seguridad, en particular, el > control de acceso a clases y objetos > el ServicioI18N es el servicio pyPYME encargado de resolver las > peticiones de traducci=F3n, el soporte i18n > el ServicioL10N es el servicio pyPYME encargado de adaptar un objeto > a las reglas definidas para su localizaci=F3n (p.e. la composici=F3n de u= na > direcci=F3n en Espa=F1a o Argentina) > el ServicioConfiguracion es el servicio pyPYME encargado de gestionar > y aplicar la configuraci=F3n de la aplicaci=F3n >=20 > =BFEsta colecci=F3n de historias os parece correcta/completa y adecuados = los > nombres de los roles?. He inclu=EDdo los alias para dar una visi=F3n algo > m=E1s informal, pero pr=F3xima, a su funci=F3n y uso. >=20 > Saludos, > Jose >=20 > [1]http://dev.pypyme.org/doc/proyecto/modulos/charon/recursos/ > [2]http://dev.pypyme.org/doc/proyecto/modulos/charon/ >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practic= es > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & Q= A > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > pypyme-giotto mailing list > pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypyme-giotto > |
From: Jose <coo...@py...> - 2005-09-08 13:59:10
|
El jue, 08-09-2005 a las 14:22, Mauro S=E1nchez escribi=F3: > Las historias y los roles que planteas aqu=ED me parecene correctos, > como as=ED tambi=E9n la metodolog=EDa de trabajo que propones en un mai= l > anterior. > Veo que en la agenda de desarrollo de Charon se encuentra un m=F3dulo > llamado "seguridad". Por lo que entiendo este m=F3dulo ser=E1 el que le > permitir=E1 al usuario (administrador, o el que tenga los permisos > necesarios) definir las diferentes pol=EDticas de seguridad, mientras > que el ServicioControladorDeAcceso (alias 'Agente de Inmigraci=F3n') > ser=E1 el encargado de hacerlas cumplir. Lo mismo pasa con el m=F3dulo > Personalizaci=F3n y los servicios ServicioI18N y ServicioL10N. =BFEstoy= en > lo correcto?. S=ED, se trata de diferentes servicios de Charon que todav=EDa est=E1n pendientes de implementar. > En otros m=F3dulos como por ejemplo Thalassa han definido un rol llamad= o > "Cliente" (actor "virtual" que solicita servicios del contenedor. > Normalmente ser=E1n los Componentes los que act=FAen bajo este rol.). > =BFAqu=ED te est=E1s refiriendo a este mismo "Cliente" cuando dices "un > objeto que precisa de otro"?. Esas son las dudas que ten=EDa. Saludos, > Mauro. S=ED. En principio cada m=F3dulo utilizar=E1 su propio conjunto de roles (que, = a su vez, ser=E1n utilizados por los componentes que forman parte de =E9l). Esto hace que 2 roles iguales puedan nombrarse de forma distinta en 2 m=F3dulos distintos o que 2 roles distintos puedan nombrarse de la misma forma en 2 m=F3dulos distintos. Es decir, la definici=F3n de un rol deber= =E1 realizarse en el an=E1lisis de un m=F3dulo (no de un componente), independientemente de los roles definidos en otros m=F3dulos. Esto reflej= a la necesaria independencia entre m=F3dulos (exceptuando Thalassa, del que dependen t=F3dos). Espero no haberme liado mucho con la explicaci=F3n... Saludos, Jose |
From: <ma...@gm...> - 2005-09-08 17:40:18
|
Creo que lo entend=ED. O sea que los roles que nombraste tienen que ser definidios en Charon y no dentro del componente "Gesti=F3n de Recursos". 2005/9/8, Jose <coo...@py...>: > El jue, 08-09-2005 a las 14:22, Mauro S=E1nchez escribi=F3: > > Las historias y los roles que planteas aqu=ED me parecene correctos, > > como as=ED tambi=E9n la metodolog=EDa de trabajo que propones en un mai= l > > anterior. > > Veo que en la agenda de desarrollo de Charon se encuentra un m=F3dulo > > llamado "seguridad". Por lo que entiendo este m=F3dulo ser=E1 el que le > > permitir=E1 al usuario (administrador, o el que tenga los permisos > > necesarios) definir las diferentes pol=EDticas de seguridad, mientras > > que el ServicioControladorDeAcceso (alias 'Agente de Inmigraci=F3n') > > ser=E1 el encargado de hacerlas cumplir. Lo mismo pasa con el m=F3dulo > > Personalizaci=F3n y los servicios ServicioI18N y ServicioL10N. =BFEstoy= en > > lo correcto?. >=20 > S=ED, se trata de diferentes servicios de Charon que todav=EDa est=E1n > pendientes de implementar. >=20 > > En otros m=F3dulos como por ejemplo Thalassa han definido un rol llamad= o > > "Cliente" (actor "virtual" que solicita servicios del contenedor. > > Normalmente ser=E1n los Componentes los que act=FAen bajo este rol.). > > =BFAqu=ED te est=E1s refiriendo a este mismo "Cliente" cuando dices "un > > objeto que precisa de otro"?. Esas son las dudas que ten=EDa. Saludos, > > Mauro. >=20 > S=ED. >=20 > En principio cada m=F3dulo utilizar=E1 su propio conjunto de roles (que, = a > su vez, ser=E1n utilizados por los componentes que forman parte de =E9l). > Esto hace que 2 roles iguales puedan nombrarse de forma distinta en 2 > m=F3dulos distintos o que 2 roles distintos puedan nombrarse de la misma > forma en 2 m=F3dulos distintos. Es decir, la definici=F3n de un rol deber= =E1 > realizarse en el an=E1lisis de un m=F3dulo (no de un componente), > independientemente de los roles definidos en otros m=F3dulos. Esto reflej= a > la necesaria independencia entre m=F3dulos (exceptuando Thalassa, del que > dependen t=F3dos). >=20 > Espero no haberme liado mucho con la explicaci=F3n... >=20 > Saludos, > Jose >=20 >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practic= es > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & Q= A > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > pypyme-giotto mailing list > pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypyme-giotto > |
From: Jose <coo...@py...> - 2005-09-08 19:59:52
|
El jue, 08-09-2005 a las 19:40, Mauro S=E1nchez escribi=F3: > Creo que lo entend=ED. > O sea que los roles que nombraste tienen que ser definidios en Charon > y no dentro del componente "Gesti=F3n de Recursos". S=ED, ya que un m=F3dulo (p.e. Contabilidad) contiene una funcionalidad determinada y un lenguaje com=FAn compartido de alguna forma por los componentes que lo forman pero independiente, en principio, de cualquier otro m=F3dulo que trata una =E1rea funcional distinta. Jose |
From: <ma...@gm...> - 2005-09-17 00:06:25
|
Jos=E9. Estuve viendo la documentaci=F3n de este componenete, pero muy por arriba porque estoy ocupado con unos trabajos. A principio de la semana que viene, Lunes o Martes, la mirar=E9 m=E1s tranquilo para analizarlo con detenimiento. Saludos a todos. 2005/9/14, Jose <coo...@py...>: > Hola Mauro (y dem=E1s), >=20 > Acabo de "formalizar" las historias de usuario en el sitio Plone [1] as= =ED > que podemos empezar a comentar el dise=F1o. >=20 > 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. >=20 > Es decir, cuando un Usuario solicita un recurso (p.e. un formulario) ha > de: >=20 > 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 >=20 > 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 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 >=20 > 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 >=20 > 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 >=20 > 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') >=20 > 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 >=20 > 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? >=20 > Como v=E9is, quedan algunos detalles por definir. >=20 > Jose >=20 > [1]http://dev.pypyme.org/doc/proyecto/modulos/charon/recursos/document_vi= ew >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. > Download it for free - -and be entered to win a 42" plasma tv or your ver= y > own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > pypyme-giotto mailing list > pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypyme-giotto > |
From: Jose <coo...@py...> - 2005-09-17 11:16:37
|
El s=E1b, 17-09-2005 a las 02:06, Mauro S=E1nchez escribi=F3: > Jos=E9. Estuve viendo la documentaci=F3n de este componenete, pero muy = por > arriba porque estoy ocupado con unos trabajos. A principio de la > semana que viene, Lunes o Martes, la mirar=E9 m=E1s tranquilo para > analizarlo con detenimiento. Saludos a todos. En la documentaci=F3n observar=E1s que las historias de usuario (que estructuran el an=E1lisis) s=F3lo sirven como gu=EDas para enfocar las conversaciones (via esta lista de correo) que definen los detalles funcionales y que resultan en las especificaciones de los dise=F1os. Es decir, primero hemos de discutir los detalles (como en el mensaje anterior) y luego los documentaremos mediante un dise=F1o y un grupo de tests de aceptaci=F3n. Saludos, Jose |
From: <ma...@gm...> - 2005-09-20 12:35:59
|
2005/9/14, Jose <coo...@py...>: > Hola Mauro (y dem=E1s), >=20 > Acabo de "formalizar" las historias de usuario en el sitio Plone [1] as= =ED > que podemos empezar a comentar el dise=F1o. >=20 > 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. >=20 > Es decir, cuando un Usuario solicita un recurso (p.e. un formulario) ha > de: >=20 > 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 >=20 > 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 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 =BFSe podr=EDa hacer que el servicio delegue la creaci=F3n de objetos al 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? >=20 > 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 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? >=20 > 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 =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 fijar= lo en el c=F3digo? =BFse hizo algo parecido ya en el c=F3digo de pypyme? >=20 > 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') La API que mencionas aqu=ED, =BFse encontrar=EDa en thalassa? >=20 > 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 Si es as=ED, =BFquedar=EDa respondido el detalle n=BA 1 que planteas anteri= ormente? >=20 > 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 crear 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 idioma o un pa=EDs diferente al de su estaci=F3n de trabajo o nada que ver con lo que estoy diciendo? >=20 > Como v=E9is, quedan algunos detalles por definir. >=20 > Jose >=20 > [1]http://dev.pypyme.org/doc/proyecto/modulos/charon/recursos/document_vi= ew >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. > Download it for free - -and be entered to win a 42" plasma tv or your ver= y > own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > pypyme-giotto mailing list > pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypyme-giotto > |
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 |