4.3 Cluster preprocessing
4.3.4 Cluster attribute estimation
Esta sección presenta el modelo de casos de uso para implementar el prototipo. El modelo presenta los servicios que implementan los requerimientos funcionales definidos en la Sección 5.1, con cuatro grupos de servicios identificados: 1) Servicios Administrativos Básicos (UC1) – Requeridos por el administrador y los miembros usuario para crear y
modificar las estructuras usadas para comunicación. Los servicios incluidos en este grupo son: registrar y des- registrar miembros, crear y destruir canales, suscribir y des-suscribir miembros a/de canales.
2) Servicios Operacionales (UC2) – Requeridos por todos los miembros para enviar y recibir mensajes.
3) Servicios Administrativos Extendidos (UC3) – Requeridos por el miembro administrador para entregar nuevas extensiones, y por miembros usuario para habilitar, configurar y deshabilitar extensiones.
4) Servicios de Configuración (UC4) – Requeridos por el miembro administrador para personalizar parámetros de configuración y establecer las estructuras de comunicación requeridas por el sistema.
La Figura 60 describe el diagrama de casos de uso de alto nivel.
Los Servicios Administrativos Básicos especifican funciones para crear y modificar las estructuras de comunicaciones usadas por los miembros para intercambiar mensajes, tales como: registrar y des-registrar miembros, crear y destruir canales, suscribir y des-suscribir miembros a/de canales. Adicionalmente, los servicios para reenviar mensajes entre miembros y para reiniciar miembros son también provistos. El diagrama de casos de uso es presentado en la Figura 61 y explicado a continuación:
F4 Registrar Miembro Nuevo F5 Des-registrar Miembro Existente F6 Recuperar Miembro
Funcional Canales F7 Proveer Canal de Administración F8 Proveer Canal Visitante
F9 Crear Canal F10 Destruir Canal
F11 Suscribir Miembro a Canal F12 Des-suscribir Miembro de Canal Funcional Mensajes F13 Componer Mensaje
F14 Obtener Cabecera de Mensaje F15 Obtener Cuerpo de Mensaje F16 Obtener Adjunto de Mensaje
F17 Enviar Mensaje como Propietario de Canal F18 Enviar Mensaje como Suscriptor de Canal F19 Recibir Mensaje
F20 Reenviar Mensaje entre Miembros Funcional Extensiones F21 Administrar Repositorio de Extensiones
F22 Habilitar Extensión F23 Configurar Extensión F24 Deshabilitar Extensión
F25 Proveer Extensión de Auditoría F26 Proveer Extensión de Validación F27 Proveer Extensión de Transformación No Funcional Disponibilidad NF28 Disponibilidad del Miembro Administrador
NF29 Aseguramiento de Al-Menos-Una Entrega NF30 Aseguramiento de Entrega-No-Permutada
Figura 60: Diagrama de Casos de Uso de Alto Nivel
1) Registrar Miembro – Un visitante envía un requerimiento al administrador a través del canal visitante para registrar un miembro incluyendo el nombre del nuevo miembro. Si es satisfactorio, el administrador asigna un nuevo identificador al usuario, modifica la base de datos central agregando al nuevo miembro, y contesta al visitante, mientras que el visitante crea el nuevo miembro y modifica la base de datos local. Los casos de uso UC5 (por visitante) y UC6 (por administrador) implementan los requerimientos F2 y F4.
2) Des-Registrar Miembro – Un usuario envía un mensaje de requerimiento al administrador para ser removido por medio del canal de administración. Después de recibir este mensaje, el administrador verifica si el usuario no posee algún recurso como propietario o suscriptor, de ser así envía un mensaje al usuario para conceder el requerimiento y borra al usuario de la base de datos central. Al recibir el mensaje, el usuario elimina sus datos de la base de datos local y destruye su propio objeto. Si el usuario posee recursos, el administrador envía un mensaje al usuario declinando el requerimiento. Los casos de uso UC7 (por usuario) y UC8 (por administrador) implementan el requerimiento F5.
3) Crear Canal – Un usuario envía un mensaje de requerimiento al administrador por medio del canal de administración para crear un nuevo canal, incluyendo el nombre del mismo. En respuesta, el administrador asigna un identificador al nuevo canal, agrega el canal al repositorio central, de ser satisfactorio y contesta al miembro. Después de recibir una respuesta positiva, el usuario crea un nuevo canal y actualiza la base de datos local con información del mismo. De lo contario, no toma acción. Los casos de uso UC7 (por usuario) y UC8 (por administrador) implementan el requerimiento F9.
4) Destruir Canal – Un usuario envía un mensaje de requerimiento al administrador para destruir un canal existente. En respuesta, si el canal no tiene suscriptores, el administrador remueve todos los datos relacionados al canal del repositorio central y contesta al usuario. Al recibir una respuesta satisfactoria, el usuario borra todos los datos relacionados al canal de la base de datos local. De lo contrario, no toma acción. Los casos de uso UC7 (por usuario) y UC8 (por administrador) implementan el requerimiento F10.
5) Suscribir a Canal – La funcionalidad (UC13) está descompuesta en cinco funciones, cada una especificada por un caso de uso más detallado: Requerir Suscripción al Administrador (UC14) – Ejecutado por un usuario, se almacena un requerimiento de suscripción pendiente en la base de datos local, y se prepara para enviar un mensaje al administrador requiriendo la suscripción; Requerir Suscripción al Propietario (UC15) – Ejecutado por el administrador, se almacena un requerimiento de suscripción pendiente en el repositorio central y se reenvía el requerimiento al propietario del canal, si el canal existe, de lo contrario notifica al usuario; Recibir Requerimiento de Suscripción (UC16) – Ejecutado por el propietario del canal, agrega al usuario como un nuevo suscriptor en la base de datos local y contesta al administrador; Responder Suscripción al Suscriptor (UC17) – ejecutado por el administrador, actualiza el estado del requerimiento en la base de datos central y contesta al usuario; y Recibir Respuesta a Suscripción (UC18) – Ejecutado por el usuario, si la respuesta es positiva, actualiza la lista de canales suscriptos en la base de datos local. Los casos de uso UC13 a UC18 implementan el requerimiento F11.
6) Des-Suscribir de Canal – Similar a UC13, este caso de uso (UC19) está descompuesto en cinco funciones, cada una especificada por un caso de uso más detallado: Requerir Des-suscripción al Administrador (UC20), Requerir Des-suscripción al Propietario (UC21), Recibir Requerimiento de Des-suscripción (UC22), Responder Des-Suscripción al Suscriptor (UC23), y Recibir Respuesta a Des-suscripción (UC24). UC20 a UC23 son similares a los casos de uso correspondientes para suscripción, con los miembros actualizando sus bases de datos y reenviando mensajes. En el último caso de uso (UC24), si la respuesta del administrador fue satisfactoria, el suscriptor borra el objeto para manejar el canal suscripto y remueve el canal de la base de datos local. Los casos de uso UC19 a UC24 implementan el requerimiento F12.
7) Reenviar Mensaje – Un miembro envía un mensaje a otro por medio del administrador usando los canales de administración. Basado en el tipo de mensaje y dirección de destino, el mensaje es reenviado al receptor por medio de canal de administración. Los casos de uso UC25 (por usuarios) y UC26 (por administrador) implementan el requerimiento F20.
8) Recuperar Usuario – Este caso de uso permite a los visitantes recuperar información de la base de datos local relacionada a un usuario, como canales poseídos o suscriptos, e instanciar todos los objetos requeridos para reiniciar al usuario luego de reiniciar el sistema. Luego que un visitante solicitó la recuperación al administrador, el administrador comprueba si el requerimiento refiere a un usuario existente y responde al visitante. Si es correcto, visitante recupera la información de usuario de la base de datos local e instancia los objetos. Los casos de uso UC27 (por visitante) y UC28 (por administrador) implementan el requerimiento F6. Figura 61: Diagrama de Casos de Uso – Servicios Administrativos Básicos
Los Servicios Operacionales permiten a los miembros enviar y recibir mensajes. Este caso de uso de alto nivel está descompuesto en tres: Enviar Mensaje como Propietario, Enviar Mensaje como Suscriptor y Recibir Mensaje, como se describe a continuación:
1) Enviar Mensaje – El caso de uso para envío de mensajes (UC29) está descompuesto en dos casos de uso:
o Enviar Mensaje como Propietario – El caso de uso (UC30) involucra al propietario de un canal en el envío de mensajes a través del mismo. El envío es seguido por el procesamiento de todas las extensiones habilitadas en el canal las cuales requieren procesamiento pre envío, tales como: auditoría, validación, transformación, etc. De ser correcto, el mensaje es enviado a todos los suscriptores del canal excepto al emisor del mensaje. De lo contario, el propietario reenvía el mensaje nuevamente al emisor para notificar la ocurrencia de un error. El caso de uso implementa los requerimientos F13 y F17.
o Enviar Mensaje como Suscriptor – El caso de uso involucra a un suscriptor de canal enviando un mensaje al canal (UC31). El envío es seguido por el reenvío del mensaje al propietario del canal, el cual lleva a cabo el procesamiento posterior como se especifica en el caso de uso UC30. El caso de uso implementa los requerimientos F13 y F18.
2) Recibir Mensaje – El caso de uso consiste en un miembro recibiendo un mensaje (UC32). La recepción es precedida por el proceso de todas las extensiones habilitados en el canal que requieren procesamiento pos envío, como Criptografía, que requiere la desencriptación de mensajes. De ser satisfactorio, el mensaje es recibido por el miembro y reenviado a una aplicación externa. El caso de uso implementa los requerimientos F14, F15, F16 y F19. Figura 62: Diagrama de Casos de Uso – Servicios Operacionales
Los Servicios Administrativos Extendidos le permiten a los usuarios administrar extensiones, incluyendo tres extensiones concretas provistas – Auditoría, Validación y Transformación. Los casos de uso detallados son descriptos en la Figura 63 y explicados a continuación:
1) Entregar Extensión – Este caso de uso (UC33) le permite al administrador del sistema agregar, borrar y actualizar datos relacionados a una extensión en la base de datos central – tipo de extensión, número de parámetros requeridos, etc. Consiste en que el prototipo le presente un formulario al administrador del sistema quien completa y envía este formulario; el prototipo ejecuta la acción solicitada en el formulario. El caso de uso implementa el requerimiento F21.
2) Habilitar Extensión de Canal – El propietario de un canal envía un requerimiento al administrador para habilitar una extensión. Después de recibir el requerimiento, el administrador controla si la extensión está disponible (entregada), actualiza la base de datos central y responde al propietario. Si la respuesta es satisfactoria, el propietario actualiza la base de datos local e instancia el miembro de extensión. Los casos de uso UC34 (por propietario) y UC35 (por administrador) implementan el requerimiento F22.
3) Configurar Extensión de Canal – El propietario de un canal solicita al administrador configurar una extensión. Recibido el requerimiento, el administrador valida si la extensión está habilitada en el canal, y responde al miembro. Si la respuesta es satisfactoria, el propietario pasa un parámetro al miembro responsable de implementar la extensión. Los casos de uso UC36 (por propietario) y UC37 (por administrador) implementan el requerimiento F23.
4) Deshabilitar Extensión de Canal – Después que el propietario reenvía al administrador un requerimiento para deshabilitar una extensión, el administrador controla si la extensión está habilitada en el canal y si el miembro solicitante es el propietario del canal, y de ser así, actualiza la base de datos central y responde al usuario. De lo contrario, sólo envía al usuario un mensaje de error. De ser satisfactorio, el usuario destruye el objeto usado para procesar la extensión y actualiza la base de datos local. Los casos de uso UC38 (por propietario) y UC39 (por administrador) implementan el requerimiento F24.
5) Distribuir Extensión de Auditoría – Este caso de uso (UC40) especifica una extensión a través de la cual cada mensaje en tránsito por un canal auditado puede ser grabado en una base de datos, el registro estará disponible para ser visto y recuperado en el fututo. El caso de uso implementa el requerimiento F25.
6) Distribuir Extensión de Validación – Este caso de uso (UC41) especifica una extensión a través de la cual cada mensaje en tránsito por un canal validado es validado de acuerdo a un formato predefinido especificado por el parámetro de la extensión (usualmente un esquema XML). De ser válido, el mensaje es enviado a todos los suscriptores del canal. Si no lo es, es devuelto al emisor notificando el error de validación. Este caso de uso implementa el requerimiento F26.
7) Distribuir Extensión de Transformación – Este caso de uso (UC42) especifica una extensión a través de la cual cada mensaje en tránsito por un canal de transformación es transformado de un formato a otro, aplicando un conjunto de reglas de transformación especificadas por el parámetro de la extensión (usualmente una plantilla XSLT). Si la transformación no es satisfactoria, un mensaje de error es enviado al emisor. El caso de uso implementa el requerimiento F27.
Figura 63: Diagrama de Casos de Uso – Servicios Administrativos Extendidos
Los Servicios de Configuración aseguran la existencia de estructuras básicas de mensajería, como los miembros administrador y visitante, y canales en el estado inicial del prototipo. Los casos de uso son descriptos en la Figura 64 y explicados a continuación:
1) Suministrar Miembro Visitante – Este caso de uso (UC43) asegura la existencia del tipo de miembro visitante, permitiendo la instanciación de tantos objetos visitante como sean necesarios. Un objeto visitante es instanciado cada vez que una entidad solicita registrar un nuevo usuario o reiniciar uno existente. Una vez enviado el requerimiento al administrador y recibida la respuesta, el objeto cumple su tarea y es destruido. El caso de uso implementa el requerimiento F1.
2) Suministrar Miembro Administrador – Este caso de uso (UC44) asegura la existencia del miembro administrador. Con exactamente un miembro administrador siempre disponible en el sistema, los datos del administrador deben estar disponibles en el archivo de configuración del prototipo. El caso de uso implementa el requerimiento F3. 3) Suministrar Canal Visitante – Este caso de uso (UC45) requiere en todo momento la presencia de un canal de
comunicación entre cada miembro visitante y el administrador. Implementa el requerimiento F8.
4) Suministrar Canal de Administración – Este caso de uso (UC46) requiere en todo momento la presencia de un canal que comunique los miembros usuario con el administrador. Al recibir un requerimiento de registración de un nuevo usuario, el administrador crea el canal de administración del usuario, se designa a sí mismo como propietario del canal, y al usuario como el único suscriptor del canal. Como resultado, hay tantos canales de administración como usuarios registrados en el sistema. El caso de uso implementa el requerimiento F7.
5) Manejar Estructura de Mensaje – Este caso de uso (UC47) permite manejar la estructura de mensajes, tales como: construir una cabecera de mensaje a partir de la información de identificador, emisor, tipo y canal; construir un cuerpo de mensaje a partir del contenido, e incluir los adjuntos; recuperar la información de la cabecera para enviar mensajes a los receptores apropiados; y hacer que el contenido y adjuntos estén disponibles para entidades externas. El caso de uso implementa los requerimientos F13 a F16.
Figura 64: Diagrama de Casos de Uso – Servicios de Configuración