Publicado el 14 de Enero del 2017
608 visualizaciones desde el 14 de Enero del 2017
809,2 KB
55 paginas
Creado hace 17a (24/06/2006)
Fisterra : Compartiendo esfuerzos en el
desarrollo de software de gestión
Contenidos
● Introducción
● ¿ Qué es Fisterra ?
– Arquitectura abierta
– Framework de desarrollo
– Módulos de negocio
● Conclusiones
Introducción
● Fisterra nació en mayo de 2003 como alternativa a las
escasas soluciones libres para la gestión de negocio.
● Propuesta diferente, innovadora y totalmente libre
utilizando tecnologías GNOME.
● Fisterra tiene dos partes :
– framework de desarrollo
– soluciones verticales
¿ Qué es Fisterra ?
● Arquitectura abierta
– Fisterra define una arquitectura para el desarrollo de
aplicaciones cliente/servidor.
● Framework de desarrollo
– Se proporcionan herramientas y funcionalidades básicas,
necesarias para la implementación de este tipo de sistemas.
● Módulos de negocio
– La estructura modular de Fisterra permite la creación de
módulos de negocio, favoreciendo su ampliación y
reutilización.
¿ Qué es Fisterra ?
Arquitectura
Arquitectura
● Arquitectura multicapa
● Servidor funcionando como middleware
● Patrón MVC en el diseño de la interfaz
● Contenedor de EGBs
Arquitectura
Arquitectura
Tecnologías
Tecnologías
● La arquitectura Fisterra se centra en todas las capas de
una aplicación cliente/servidor, por lo que implica mútiples
tecnologías.
● Interfaz
– Desktop
– Web
● Integración de sistemas
– CORBA
– SOAP
Tecnologías
● Gestión de información
– Migración
– Replicación
– Acceso y almacenamiento
Tecnologías
Interfaz del cliente
Interfaz del cliente
● Fisterra usa librerías GTK+ y LibGlade para el diseño de
las ventanas de interfaz.
● GObject para la implementación de objetos en C
● LibXml para el parseo de la configuración de interfaces.
● Cada ventana se crea a partir de un fichero GLADE.
● Un controlador se encarga de gestionar los eventos de la
ventana.
Interfaz del cliente
● Cada ventana esta formada por uno o varios widgets de
negocio.
● La configuración de cada ventana se define en un fichero
XML : f_client_fisterra.xml
Interfaz del cliente
● Esta configuración se carga al inicio : FMainController
● Cada ventana es construida por un builder.
Interfaz del cliente
Tecnologías web
Tecnologías web
● Fisterra proporciona también soporte para interfaces
Web.
● Existen múltiples posibilidades :
Tecnologías web
● Para la implementación del prototipo Web, se ha utilizado
la implementación de Mono para ASP.Net 1.0
● En este punto, se está evaluando aprovechar el proyecto
Mono para migración de la plataforma Fisterra a C#.
● Se han realizado los primeros casos de uso en Gtk#,
usando GAPI para la migración de los servicios
necesarios.
Tecnologías
Middleware
Middleware
● Aislar y localizar la lógica de negocio.
● Servicios de soporte : autenticación, acceso a datos, ...
● Único punto de acceso a la información.
● Arquitectura orientada a servicios.
Middleware
Middleware
● Gestión global de autorizaciones.
● Control de las operaciones : transacciones.
● Dos capas :
– Comunicaciones : CORBA / SOAP
– Servicios : Componentes EGBs
● Conjunto de componentes comunicados entre sí, que se
encargan de gestionar la lógica de negocio,
almacenamiento persistente y control de operaciones.
Middleware
● Algunos de los principales de servicios de soporte
implementados en el servidor Fisterra son :
– Fisterra Barnacle
– Sistema de listados e informes
– Servicios de autenticación y autorización
– Gestión de sesiones
– Workflow
– Planificador de tareas
Middleware
– Sistema de migración
– Sistema de replicación
– Impresión de documentos
● La capa de comunicaciones ha sido diseñada para
permitir independencia del protocolo de comunicaciones.
● En la actualidad, se han implementado delegates de
comunicación sobre CORBA y SOAP.
Middleware
Middleware
● Además del control de operaciones y la implementación
de lógica de negocio, el middleware Fisterra puede
enfocarse hacia integración de sistemas.
¿ Qué es Fisterra ?
Framework de desarrollo
Framework de desarrollo
● EL corazón de Fisterra lo conforman una serie de
tecnologías y herramientas sonre las que se implementan
los módulos de negocio.
● Entre estos servicios, cabe destacar :
– Fisterra Barnacle
– Generador de código fuente
– Gestión de transacciones
– Mapeado ObjetoRealcional
Framework de desarrollo
– Gestión de errores
– Shell principal y gestión de controladores
– Formularios genéricos
– Gestión de menús y barra de herramientas : Stock items
– Persistencia de objetos
● identificación de objetos
● DAOs
● esquema relacional
Framework de desarrollo
Generador de código
Generador de código
● A través de un fichero XML se definen las entidades del
dominio de la aplicación a desarrollar.
● Mediante el preprocesado XSLT, se generan los
siguientes sistemas :
– Objetos Fisterra Barnacle : Dataobjects
– Objetos de acceso a datos : DAOS
– Esquema relacional (restricciones de integridad)
– Mapping ObjetoRlacional
– Mapping comunicaciones : CORBA / SOAP
Generador de código
Framework de desarrollo
Comunicaciones
Comunicaciones
● Definición de servicios remotos : especificación IDL.
● A partir de la definición de los servicios, se generan stubs
y skeletons para para CORBA y SOAP.
● Las clases FCommunicationLayer se encargan de la
inicialización de la capa de comunicación cliente y
servidor.
● Las clases delegate permiten una gestión transparente
de las operaciones remotas.
● Mapping automático de estructuras de comunicación.
Comunicaciones
Framework de desarrollo
Persistencia
Persistencia
● Sistema de persistencia basado en DAOs.
● Identificación única de objetos : código barnacle
– clave de 64 bits
– nombre de clase
– hostcode
● Gestión de conexiones
– Independencia del proveedor de conexión
– múltiples conexiones a distintas bases de datos
Persistencia
Experimental : sistema de persistencia objetual
Recuperación y de datos basado en la jerarquía de objetos
Políticas lazy/igger
Configuración de acceso a datos a nivel de servicio
Multiplicidad en la relación de objetos
Framework de desarrollo
Gestión de transacciones y errores
Gestión de transacciones y errores
● FisterraBase define el componente básico FEgb que se
encarga del control de transacciones.
● EL programador define la granularidad de cada una de
las operaciones de negocio.
● Los errores son transmitidos entre componentes, de
forma que en caso de producirse, se aborta
automáticamente la operación en curso.
Gestión de transacciones y errores
● Fisterra proporciona un conjunto de excepciones
completo, aunque el programador puede definir sus
propias excepciones.
● Estas excepciones son transferidas a través de la capa de
comunicación para ser procesadas en el cliente.
● La clase Facade en el cliente gestiona las excepciones,
mostrando una ventana de error al usuario.
● Las fachadas de negocio implementadas heredan todas
de esta clase.
Framework de desarrollo
Shell principal y gestión de controladores
Shell principal y gestión de
controladores
● Para la construcción de aplicaciones Desktop, se
proporciona el shell principal sobre el que incrustar
ventanas.
● Como todas las ventanas en la arquitectura Fisterra,
dispone de su controlador : FShellController.
● Cualquier controlador puede instanciar una nueva
ventana llamando al constructor apropiado.
● La clase FMainController contiene la configuración de
todas las ventanas del sistema (f_client_fisterra.xml).
Shell principal y gestión de
controladores
● La barra de herramientas y el menú principal de la
aplicación son gestionados por la clase FShellController.
● Para ello, se proporciona diversos Stock Items para
configurar la barra de herramientas.
● La gestión de menús la realiza el UI Manager mediante
un sencillo fichero XML (f_main_window_app.xml), en el
que se definen las acciones de cada elemento del menú.
● Este fichero está relacionado con la configuración general
de ventanas (f_client_fisterra.xml) mediante el tag action.
Shell principal y gestión de
controladores
Framework de desarrollo
Formularios genéricos
Formularios genéricos
● Implementación rápida de ventanas I/O
● Se parte de un fichero glade, con la definición de la
interfaz.
● No es necesario implementar ni el constructor ni el
controlador.
● La fachada de negocio correspondiente define los
métodos necesarios para la inicialización, la carga de
datos y la operación a realizar al aceptar los datos del
formulario.
¿ Qué es Fisterra ?
Módulos de negocio
Módulos de negocio
● Fisterra se compone de 2 subproyectos :
– FisterraBase
– FisterraBModules
● Los módulos de Fisterra pueden dividirse en 2 grupos :
– Módulos de servicio
– Módulos de negocio
● Los módulos de servicio implementan utilidades y
herramientas para las operaciones básicas de negocio.
Módulos de negocio
● Entre los módulos de servicio implementados, cabe
destacar los siguientes :
– Módulo de listados
– Módulo de autenticación
– Módulo de migración
– Módulo de replicación
– Módulo de planificación
● Lós módulos de negocio implementan la lógica de gestión
del proceso de negocio propiamente dicho.
Módulos de negocio
● Los módulos de negocio definen lógica general para
cualquier tipo de sector :
– Módulo de documentos (workflow)
– Módulo de pagos
– Módulo de impuestos
– Módulo de calendario
● Esta estructura modular permite reutilizar el trabajo
realizado en las implementaciones verticales para
sectores de negocio específicos.
Módulos de negocio
Módulo de listados
Módulo de listados
● Generación de consultas SQL y visualización en
Comentarios de: Fisterra : Compartiendo esfuerzos en el desarrollo de software de gestión (0)
No hay comentarios